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: m Wegesuche Handicaps: m Räume kosten m genaue Geldmenge ausgeben m versteckte Geschenke m Fallen m...
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 naiv public 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,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}}; 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 m int [] reicht zur Datenmodellierung NICHT aus m Objekte für Räume, Personen, Geschenke, Fallen … einführen m 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 r1 costs = 1 r2 costs = 2 r3 costs = 3 r4 costs = 0 r7 costs = 12 r5 costs = 10 r10 costs = 11 r11 costs = 9 r8 costs = 8 r12 costs = 7 r13 costs = 6 r6 costs = 4 hof door p1 name = "Ada" p2 name = "Prinz" budget = 99 door in r9 costs = 5 door
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 10 Objekte klassifizieren r1 costs = 1 r2 costs = 2 r3 costs = 3 r4 costs = 0 r7 costs = 12 r5 costs = 10 r10 costs = 11 r11 costs = 9 r8 costs = 8 r12 costs = 7 r13 costs = 6 door p1 name = "Ada" door in hofp2 name = "Prinz" budget = 99 door in r9 costs = 5 door r6 costs = 4
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 11 Objekte klassifizieren r1 :Room costs = 1 r2 :Room costs = 2 r3 :Room costs = 3 r4 :Room costs = 0 r7 :Room costs = 12 r5 :Room costs = 10 r10 :Room costs = 11 r11 :Room costs = 9 r8 :Room costs = 8 r12 Room costs = 7 r13 :Room costs = 6 door p1 :Person name = "Ada" door in hof :Roomp2 : Person name = "Prinz" budget = 99 door in r9 :Room costs = 5 door r6 :Room costs = 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 Room costs : Integer in door Gift name : String in Person name : String budget: Integer
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 14 Ausblick Übung am Freitag um 14 Uhr im CIP Pool: m Szeanrios und Objektdiagramme selber entwerfen m Klassendiagramm ableiten Vorlesung am Dienstag den : m Klassen in Java implementieren m Objektstrukturen mit Java Programmen erzeugen Freitag 15.5 und 22.5.Übung dazu Dienstag 19.5 und fallen aus Freitag Vorlesung im CIP Pool