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

14
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

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

Page 1: Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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