Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung...

Post on 05-Apr-2015

106 views 1 download

Transcript of Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung...

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1

Gliederung

1. Einführung

2. Objektdiagramme zur Analyse von Beispielen

3. Methodenentwurf

4. Test-First Prinzip

5. Story Driven Modeling

6. Zusammenfassung

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 2

Motivation: rettet Prinz(essin) Ada

Aufgabe:

Wegesuche

Handicaps:

Räume kosten

genaue Geldmenge ausgeben

versteckte Geschenke

Fallen

. . .

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 3

Rette Ada, dann mal los

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 4

Rette Ada naivpublic class RetteAda {

int[] Roomkosten = {1,2,3,4,5,6,7,8,9,10,11,12,13};

int[][] dooren = { {0,1,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,1,0,1,0,0,0},

{0,0,0,1,0,0,0,0,0,0,0,0,0}, {1,0,0,0,0,0,0,1,0,1,0,0,0},

{1,0,0,0,0,0,0,1,0,1,0,0,0}, {1,0,0,0,0,0,0,1,0,1,0,0,0},

{1,0,0,0,0,0,0,1,0,1,0,0,0}, {1,0,0,0,0,0,0,0,0,1,0,0,0},

{1,0,0,0,0,0,0,0,0,1,0,0,0}, {1,0,0,0,0,0,0,1,0,0,0,0,0},

{1,0,0,0,0,0,0,1,0,1,0,0,0}, {1,0,0,0,0,0,0,1,0,1,0,0,0},

{1,0,0,0,0,0,0,1,0,1,0,0,0}};

int[] geschenkeOrt = {6, 1, 9};

String [] geschenkeNamen = {"Blumen", "Ringe", "Pralinen"};

int prinzOrt = 5;

int prinzessinOrt = 13;

float geld = 99;

int[] hatGeschenk = {0,0,0}; . . .

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 5

Objektorientierte (Daten)Modellierung

int [] reicht zur Datenmodellierung NICHT aus

Objekte für Räume, Personen, Geschenke , Fallen … einführen

Objektdiagramme zur Analyse von Beispielen

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 6

Gesamtvorgehen

1. Textuelle Szenarios

2. Objektdiagramme

3. Klassendiagramm

4. Implementierung des Datenmodells

5. Implementierung der Szenarios als JUnit Tests

6. Textuelle Algorithmen

7. Story Diagramme

8. Implementierung der Algorithmen

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 7

1. Textuelle Szenarios

Start: August steht in Raum 8 und hat noch 42 Goldstücke

1. August geht in Raum 9

2. August bezahlt 9 Goldstücke und hat jetzt noch 33 Goldstücke.

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 8

Rette Ada objektorientiert

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 9

Rette Ada objektorientiert

r1costs = 1

r2costs = 2

r3costs = 3

r4costs = 0

r7costs = 12

r5costs = 10

r10costs = 11

r11costs = 9

r8costs = 8

r12costs = 7

r13costs = 6

r6costs = 4

hof

doorp1

name = "Ada"

p2name = "Prinz"

budget = 99

door door door door

door

doordoor

doordoor

door

door

doordoor

in

in

r9costs = 5

door

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 10

Objekte klassifizieren

r1costs = 1

r2costs = 2

r3costs = 3

r4costs = 0

r7costs = 12

r5costs = 10

r10costs = 11

r11costs = 9

r8costs = 8

r12costs = 7

r13costs = 6

doorp1name = "Ada"

door door door door

doordoor

doordoor

door

door

doordoor

in

hof

p2name = "Prinz"budget = 99

door

in

r9costs = 5

door

r6costs = 4

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 11

Objekte klassifizieren

r1 :Roomcosts = 1

r2 :Roomcosts = 2

r3 :Roomcosts = 3

r4 :Roomcosts = 0

r7 :Roomcosts = 12

r5 :Roomcosts = 10

r10 :Roomcosts = 11

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12 Roomcosts = 7

r13 :Roomcosts = 6

doorp1 :Personname = "Ada"

door door door door

doordoor

doordoor

door

door

doordoor

in

hof :Room

p2 : Personname = "Prinz"budget = 99

door

in

r9 :Roomcosts = 5

door

r6 :Roomcosts = 4

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 12

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 13

Klassen als Baupläne für Objekte

Roomcosts : Integer

indoor

Giftname : String

in

Person

name : Stringbudget: Integer

Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 14

Ausblick

Übung am Freitag um 14 Uhr im CIP Pool:

Szeanrios und Objektdiagramme selber entwerfen

Klassendiagramm ableiten

Vorlesung am Dienstag den 12.5.2009:

Klassen in Java implementieren

Objektstrukturen mit Java Programmen erzeugen

Freitag 15.5 und 22.5.Übung dazu

Dienstag 19.5 und 26.5. fallen aus

Freitag 29.5. Vorlesung im CIP Pool