![Page 1: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/1.jpg)
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
![Page 2: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/2.jpg)
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
. . .
![Page 3: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/3.jpg)
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 3
Rette Ada, dann mal los
![Page 4: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/4.jpg)
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}; . . .
![Page 5: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/5.jpg)
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
![Page 6: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/6.jpg)
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
![Page 7: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/7.jpg)
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.
![Page 8: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/8.jpg)
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 8
Rette Ada objektorientiert
![Page 9: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/9.jpg)
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
![Page 10: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/10.jpg)
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
![Page 11: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/11.jpg)
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
![Page 12: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/12.jpg)
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 12
![Page 13: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/13.jpg)
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
![Page 14: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf](https://reader037.vdocuments.net/reader037/viewer/2022103015/55204d6749795902118bca09/html5/thumbnails/14.jpg)
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