programmiermethodik ss2007 © 2007 albert zündorf, university of kassel 1 6. story driven modeling...

20
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Klassendiagramme in Java implementieren 4. Methodenentwurf 5. Test-First Prinzip 6. Story Driven Modeling 7. Zusammenfassung

Upload: manfrid-kempf

Post on 05-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

6. Story Driven Modeling

Gliederung:

1. Einführung

2. Objektdiagramme zur Analyse von Beispielen

3. Klassendiagramme in Java implementieren

4. Methodenentwurf

5. Test-First Prinzip

6. Story Driven Modeling

7. Zusammenfassung

Page 2: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

The FAMous Fujaba Abstract Machine (Teil 1)Der Befehlssatz:

in den Objekten werden Kommandos / Nachrichten von vergesslichen „Object Guys“ abgearbeitet

Object Guys schlafen normaler weise

beim Aufwachen wird die Umgebung vom „Nebel des Vergessens“ verschleiert

Object Guys sehen nicht was die anderen tun

Jeder Object Guy hat eigenen „Namensraums“

Object Guy hat „Handlungsanweisungen“ für jedes mögliche Komando

Immer ein Object Guy pro Nachricht

Object Guy kann: Kanten lesen und lokale

Namen für Nachbarn vergeben

Attribute lesen und prüfen temporäre Werte notieren Berechnungen durchführen Nachrichten verschicken

(wartet (untätig) auf Antwort) Antworten zurückschicken

(und wieder einschlafen) Attribute schreiben Kanten löschen / erzeugen Objekte löschen / erzeugen

Page 3: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Kanten lesen

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 4: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Attribute lesen

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 5: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

temporäre Werte notieren

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 6: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Nachrichten verschicken

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 7: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Antworten zurückschicken

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 8: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Attribute schreiben

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 9: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Kanten löschen / erzeugen

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 10: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Objekte löschen / erzeugen

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 11: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Objekte löschen / erzeugen

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 12: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Rule Syntax: Overview

v : Class

v

v

v : ClassVariables:

v : Class v : Class v : Class«create» «create»

v

v : Class v : Class«create»

v«create»

v : Classv : Class v : Classv : Class v : Classv v : Classv

Attributes: . ..

attr <cmpOp> value

attr := value

Constrains:

{ <boolExpr> }

Links:assoc

ref

...

assoc[<key>]

«create» «create»

«create»

vv : Class

{first} {last}

«destroy»

«destroy»

«destroy» «destroy»

«destroy»

«destroy»

«destroy» 1: m () 2 [x>0]: m () 2.1 [while x>0]: m ()

Page 13: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Kontrollstrukturen: Sequenz

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 14: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Fallunterscheidungen:

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 15: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Fallunterscheidung implizit:

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 16: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Zählschleifen:

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 17: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Zählschleifen:

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 18: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Zählschleifen:

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 19: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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

Alle Matches:

r2 :Roomcosts = 2

r5 :Roomcosts = 10

r11 :Roomcosts = 9

r8 :Roomcosts = 8

r12costs = 7

r13 :Roomcosts = 6

p2 :Personname = "Prinz"geld = 99

d3 :Door

i1 :Item

d11 :Door

d10 :Door

d9 :Doord7 :Door

in

i2 :Item

i5 :Item

i6 :Item

i3 :Item

i4 :Item

in

in

in

inin

in

Page 20: Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse

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