Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher...

16
Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

Transcript of Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher...

Page 1: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

Programmiermethodik SS 08

Prof. Albert Zündorf

Fachgebiet für Software EngineeringWilhelmshöher Allee 73

34121 Kassel(Raum 1339 im Altbau)

Page 2: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshö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.

Page 3: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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)

Page 4: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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

Page 5: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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

Page 6: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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

. . .

Page 7: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 7

Rette Ada, dann mal los

Page 8: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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}; . . .

Page 9: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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

Page 10: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 10

Rette Ada objektorientiert

Page 11: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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

Page 12: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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

Page 13: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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

Page 14: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 14

Page 15: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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

Page 16: Programmiermethodik SS 08 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339 im Altbau)

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