Post on 05-Apr-2015
transcript
Programmiermethodik SS 08
Prof. Albert Zündorf
Fachgebiet für Software EngineeringWilhelmshöher Allee 73
34121 Kassel(Raum 1339 im Altbau)
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 2
Organisatorisches
Umfang: 4 SWS teils Vorlesungen teils Übungen
Übungsbetreuung: Ruben Jubeh und Tutoren
Ort und Zeit: Vorlesung: Dienstags 12:00 - 13:30 Raum 0446
(Erste Vorlesung: 1.04.08)Übung: Freitags 14:00 - 18:00 ,
Raum -1201 (CIP Pool unter der Mensa)(Erste Übung: Freitag, den 4.04.2008)
Prüfung: Pflichtübungsaufgaben (korrigiert, unbenotet, Voraussetzung zur Klausur) Klausur in der vorlesungsfreien Zeit
Folienskript: http://www.se.eecs.uni-kassel.de hoffentlich am Wochende vorher.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 3
Literatur
Grundlegend: Helmut Balzert: Lehrbuch der Software-Technik (Bd.\ 1 und 2), Spektrum
Akademischer Verlag 1996 (viele Details, sehr umfassend, eher ein Nachschlagewerk)
Unified Modeling Language: Grady Booch, James Rumbaugh, Ivar Jacobson: The Unified Modeling
Language - User Guide, Addison Wesley 1999 (die haben das erfunden) Jochen Seemann, Jürgen Wolff von Gudenberg: Software Entwurf mit
UML; Springer 2000 (finde ich ziemlich gut) Martin Hitz, Gerti Kappel: UML @ Work, dpunkt.verlag (ziemlich gut) Albert Zündorf: Rigorous Software Development with UML, Draft,
Fachgebietsseiten
Hintergrund: Frederick P.\ Brooks: The Mythical Man Month, Addison Wesley 1975 (ist
nur kurz aber Gründungsmanifest der Softwaretechnik, unbedingt mal lesen)
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 4
Gliederung
1. Einführung
2. Objektdiagramme zur Analyse von Beispielen
3. Methodenentwurf
4. Test-First Prinzip
5. Story Driven Modeling
6. Zusammenfassung
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 5
1. Einführung
Ziele der Veranstaltung:
methodische Vorgehensweise zur Entwicklung größerer Programme (> 10000 LOC)
objektorientierte Programmierung
objektorientierte Modellierung
objektorientierte Szenarios
Test-First Prinzip
Unified Modeling Language
Story Driven Modeling
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 6
Motivation: rettet Prinz(essin) Ada
Aufgabe:
Wegesuche
Handicaps:
Räume kosten
genaue Geldmenge ausgeben
versteckte Geschenke
Fallen
. . .
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 7
Rette Ada, dann mal los
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 8
Rette Ada naivpublic class RetteAda {
int[] raumkosten = {1,2,3,4,5,6,7,8,9,10,11,12,13};
int[][] tueren = { {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 SS2007 © 2007 Albert Zündorf, University of Kassel 9
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 SS2007 © 2007 Albert Zündorf, University of Kassel 10
Rette Ada objektorientiert
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 11
Rette Ada objektorientiert
r1kosten = 1
r2kosten = 2
r3kosten = 3
r4kosten = 0
r7kosten = 12
r5kosten = 10
r10kosten = 11
r11kosten = 9
r8kosten = 8
r12kosten = 7
r13kosten = 6
r6kosten = 4
r9kosten = 5
tuerp1
name = "Ada"p2
name = "Prinz"geld = 99
tuer tuer tuer tuer
tuer
tuertuer
tuertuer
tuer
tuer
tuertuer
in
in
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 12
Objekte klassifizieren
r1kosten = 1
r2kosten = 2
r3kosten = 3
r4kosten = 0
r7kosten = 12
r5kosten = 10
r10kosten = 11
r11kosten = 9
r8kosten = 8
r12kosten = 7
r13kosten = 6
r6kosten = 4
r9kosten = 5
tuerp1name = "Ada"
p2name = "Prinz"geld = 99
tuer tuer tuer tuer
tuer
tuertuer
tuertuer
tuer
tuer
tuertuer
in
in
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 13
Objekte klassifizieren
r1 :Raumkosten = 1
r2 :Raumkosten = 2
r3 :Raumkosten = 3
r4 :Raumkosten = 0
r7 :Raumkosten = 12
r5 :Raumkosten = 10
r10 :Raumkosten = 11
r11 :Raumkosten = 9
r8 :Raumkosten = 8
r12 Raumkosten = 7
r13 :Raumkosten = 6
r6 :Raumkosten = 4
r9 :Raumkosten = 5
tuerp1 :Personname = "Ada"
p2 :Personname = "Prinz"geld = 99
tuer tuer tuer tuer
tuer
tuertuer
tuertuer
tuer
tuer
tuertuer
in
in
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 14
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 15
Klassen als Baupläne für Objekte
Raumkosten : Integer
Personname : String
intuer
Geschenkname : String
in
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 16
Ausblick
Übung am Freitag um 13 Uhr im CIP Pool:
Objektdiagramme selber entwerfen
Klassendiagramm ableiten
Vorlesung am Dienstag den 8.4.2007:
Klassen in Java implementieren
Objektstrukturen mit Java Programmen erzeugen