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

Post on 05-Apr-2015

105 views 1 download

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