3. Übung zu software engineering

23
Philipp Ciechanowicz 3. Übung zu Software Engineering WS 2007/2008

Upload: brit

Post on 15-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

3. Übung zu Software Engineering. WS 2007/2008. Aufgabe 4. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 3. Übung zu Software Engineering

Philipp Ciechanowicz

3. Übung zu Software Engineering

WS 2007/2008

Page 2: 3. Übung zu Software Engineering

2

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 4

Betrachten Sie das unten dargestellte Klassendiagramm, das für eine Bibliothek zur Verwaltung ihrer Buchbestände modelliert wurde. Modellieren Sie die verschiedenen Zustände, die ein Buch im Laufe seiner Nutzung in der Bibliothek einnehmen kann, als Harel-Automaten (Statechart). Gehen Sie davon aus, dass ein

Buchexemplar

...

+ ausleihen()+ entfernen()+ erfassen()+ vorbestellen()+ zurückgeben()

Buch von höchstens einer Person vorbestellt werden kann, weitere Vorbestellungen sind dann nicht mehr möglich. Modellieren Sie einen geeigneten Start- und Endzustand und berücksichtigen Sie dabei, welche Methoden der Klasse wann verwendet werden können.

Page 3: 3. Übung zu Software Engineering

3

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 4

Zustandsautomat A = (Q, ∑, δ, q0, F)

Q: endliche Zustandsmenge

Σ: endliches Eingabealphabetδ: Q х ∑ Q Übergangsfunktionq0 ∈ Q Startzustand

F ⊂ Q Endzustandsmenge

Harel-Automat (state chart)Zustände als Knoten dargestellt durch Kreise bzw. Rechtecke

Zustandsübergang δ(q, a) = q‘ dargestellt durch gerichtete, mit a beschriftete Kante von q nach q‘kurzer Pfeil auf Startzustand q0

Endzustände dargestellt durch zwei geschachtelte Kreise

Page 4: 3. Übung zu Software Engineering

4

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 4

Zustandsmenge Qausleihbar, ausgeliehen, vorbestellt, abholbereit, unbrauchbar

Eingabealphabet Σerfassen(), ausleihen(), vorbestellen(), zurückgeben(), entfernen()

Übergangsfunktion δsiehe Folie 4

Startzustand q0

ausleihbar

Endzustandsmenge Funbrauchbar

Page 5: 3. Übung zu Software Engineering

5

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 4

ausleihbar

ausgeliehen

vorbestellt

abholbereit

Ausleihwunsch /ausleihen()

Buch wird abgeholt /

ausleihen()

Buch defekt /entfernen()

Buch wird zurückgegeben /zurückgeben()

Abholfrist abgelaufen

Buch verloren /entfernen()

Buch verlorenbzw. defekt /entfernen()

neues Buch liegt vor /

erfassen()

Buch wird zurückgegeben /zurückgeben()

Ausleihwunsch /vorbestellen()

unbr

auch

b ar

Buchexemplar

...

+ ausleihen()+ entfernen()+ erfassen()+ vorbestellen()+ zurückgeben()

Page 6: 3. Übung zu Software Engineering

6

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 4

Anmerkungen zum Harel-AutomatenZustände mit Adjektiven benennen

Ereignisse bei den Zustandsübergängen modellieren

Anfangszustand und Endzustände modellieren

Page 7: 3. Übung zu Software Engineering

7

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 5

Modellieren Sie die Prozesse in der Fertigungsabteilung eines Automobilzulieferers als Bedingungs/Ereignis-Netz, die sich wie folgt beschreiben lassen: Nachdem eine Kiste mit den benötigten Werkstücken W1 und W2 angeliefert wurde, werden diese ausgepackt und auf die Produktionsstraße gelegt. Das Werkstück W2 durchläuft dabei einen Lackierungsprozess und kann anschließend mit dem bearbeiteten Werkstück W1 wieder in die Kiste verpackt werden. Für die Bearbeitung des Werkstücks W1 sind die beiden Mitarbeiter A und B verantwortlich. Während Mitarbeiter A in das Werkstück W1 drei Gewindelöcher fräst und anschließend in einem zweiten Arbeitsschritt die passenden Schrauben in die Löcher schraubt, versieht Mitarbeiter B das Werkstück W1 lediglich mit einer Seriennummer. Die Reihenfolge, in der die Mitarbeiter A und B mit der Bearbeitung der Werkstücke beginnen, kann dabei variieren. Es kann allerdings jeder Mitarbeiter immer nur ein Werkstück gleichzeitig bearbeiten. Beide Mitarbeiter können auch nicht gleichzeitig an demselben Werkstück arbeiten.

Page 8: 3. Übung zu Software Engineering

8

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 5

Bedingungs/Ereignis-Netz BE = (S, T, F)S: Stellenmenge (Zustand, Bedingung)

Stelle s ∈ S wird dargestellt durch einen Kreis

T: Transitionen (Ereignis)Transition t ∈ T wird dargestellt durch ein Rechteck

F ⊆ (S х T) ∪ (T х S) KantenmengeSchaltregel

Transition t kann Schalten, wenn alle Stellen im Vorbereich eine Marke enthalten und alle Stellen im Nachbereich leer sind.

wenn t schaltet, wird von jeder Stelle im Vorbereich eine Marke entfernt und auf jeder Stelle im Nachbereich eine Marke hinzugefügt.

Bedingungs/Ereignis-Netze sind spezielle Petri-Netze mit Stellenkapazität = Kantengewichtung = 1

Page 9: 3. Übung zu Software Engineering

9

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 5

Transitionen (Ereignisse)Kiste entpacken

lackieren

fräsen

verschrauben

nummerieren

Kiste verpacken

Stellen (Zustände)Kiste entpackt

lackiert

gefräst

verschraubt

nummeriert

Kiste verpackt

fertig, d.h. gefräst, verschraubt und nummeriert

Page 10: 3. Übung zu Software Engineering

10

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 5

Die Reihenfolge, in der die Mitarbeiter A und B mit der Bearbeitung der Werkstücke beginnen, kann dabei variieren. Es kann allerdings jeder Mitarbeiter immer nur ein Werkstück gleichzeitig bearbeiten. Beide Mitarbeiter können auch nicht gleichzeitig an demselben Werkstück arbeiten.

Nichtdeterminismus durch Variation der Bearbeitungsreihenfolge

keine Parallelität während der Bearbeitung von W1

Page 11: 3. Übung zu Software Engineering

11

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 5

NebenläufigkeitTransition „Kiste entpacken“ erzeugt zwei Marken

Nichtdeterminismus (logisches ODER)Marke der Stelle „W1 entpackt“ kann nur ein Mal verwendet werden

Synchronisation (logisches UND)Transition „W1 und W2 verpacken“

Kiste eingetroffen

Kiste entpacken

W1 entpackt

fräsen

W2 entpackt

nummerieren nummeriert

verschraubengefrästfräsen

verschraubengefräst

nummerierenverschraubt

fertig

lackieren lackiert

W1 und W2 verpacken

Kiste verpackt

Kiste trifft ein

Page 12: 3. Übung zu Software Engineering

12

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 5

inklusive Mitarbeiter A und B

Kiste eingetroffen

Kiste entpacken

W1 entpackt

fräsen

W2 entpackt

nummerieren nummeriert

verschraubengefrästfräsen

verschraubengefräst

nummerierenverschraubt

fertig

lackieren lackiert

W1 und W2 verpacken

Kiste verpackt

Kiste trifft einMitarbeiter A

frei

Mitarbeiter B frei

Page 13: 3. Übung zu Software Engineering

13

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 5

Anmerkungen zu Petri-NetzenBeschriftung der Stellen und Transitionen nicht vergessen

Stellen = Zustände

Transitionen = Ereignis

auf syntaktische Korrektheit achtenStellen und Transitionen müssen sich abwechseln

auf Deadlocks achten„ungünstige“ Schaltreihenfolgen betrachten

i.d.R. verbleiben im Netz keine Marken

Page 14: 3. Übung zu Software Engineering

14

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 6

Erstellen Sie für das unten dargestellte Bedingungs/ Ereignis-Netz einen Erreichbarkeitsgraphen.

t1s2

t2

s3

s1

t6t5

s6

t3

t4

s5s4

Page 15: 3. Übung zu Software Engineering

15

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 6

Erreichbarkeitsgraphstellt dar, welche Zustände durch das Schalten von Transitionen erreichbar sind

Zustände als Knoten mit Markenbelegung als Beschriftung

Kanten als Zustandsübergang mit Transition als Beschriftung

ist u.U. nicht endlich (im Gegensatz zum Überdeckungsgraph)Stellen/Transitions-Netz

Erreichbarkeitsgraph

s1 s2t1

10 t1 11 t1 12 t1 13 t1 ...

Page 16: 3. Übung zu Software Engineering

16

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 6

000110

011000

010001

000011

000101

010010001010

001100 010100

t5

t5

t5

t2 t6

t4

t6

t4t4

t2

t2t1

t1

t6t2

t5

t1 t4

t1

t3

t6

100001101000

110000

100010

100100

001001

Page 17: 3. Übung zu Software Engineering

17

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 6

Eigenschaften des Erreichbarkeitsgraphenendlich (bei Bedingungs/Ereignis-Netzen immer gegeben)

lebendig

deadlockfrei

weist mehrere Zyklen auf

Startzustand 000110 kann nicht wieder erreicht werden

von den maximal 26 = 64 möglichen Zuständen können nur 15 tatsächlich erreicht werden

Page 18: 3. Übung zu Software Engineering

18

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 7

Erstellen Sie für das unten dargestellte Stellen/ Transitions-Netz einen Überdeckungsgraphen. Gehen Sie davon aus, dass sämtliche Stellenkapazitäten unbeschränkt und alle Kanten mit 1 gewichtet sind. Ist das Netz lebendig? Ist das Netz deadlockfrei?

s2 s3

s4

s1

t3

t1 t2

Page 19: 3. Übung zu Software Engineering

19

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 7

ÜberdeckungsgraphZustände als Knoten mit Markenbelegung als Beschriftung

Zustandsübergänge als Kanten mit Transition als Beschriftung

ist immer endlich (im Gegensatz zum Erreichbarkeitsgraph)

ZustandsüberdeckungSei N ein Stellen/Transitions-Netz mit einer Markenbelegung m, das durch Schalten einer Transition t eine Folgemarkenbelegung m‘ erreicht

die Markenbelegung einer Stelle s im Zustand m‘ muss durch ∞ ersetzt werden, wenn

es einen Zustand m‘‘ gibt, dessen Markenbelegung kleiner als die von m‘ ist, d.h. m‘‘ < m‘ (daher der Begriff „Überdeckungsgraph“)

und ein Weg von m‘‘ nach m‘ existiert

der Zustand m‘ wird nach der Ersetzung als m~ bezeichnet

Page 20: 3. Übung zu Software Engineering

20

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 7

Stellen/Transitions-Netz Überdeckungsgraph

1100

0011

0101 0∞01

1∞00

0∞∞1

t1

t2

t1

t2

t2

t3 t3

s2 s3

s4

s1

t3

t1 t2

Page 21: 3. Übung zu Software Engineering

21

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 7

Zustand (0101)m = (1100), m‘ = (0101)

∄ m‘‘ mit m‘‘ < m‘

Zustand (0011)m = (0101), m‘ = (0011)

∄ m‘‘ mit m‘‘ < m‘

Zustand (1200) / (1∞00)m = (1100), m‘ = (1200)

∃ m‘‘ mit m‘‘ < m‘m‘‘ = (1100)

∃ Weg von m‘‘ nach m‘(1100) (1200)

m‘‘ m~ = (1∞00)

Zustand (0∞01)m = (1∞00), m‘ = (0∞01)

∄ m‘‘ mit m‘‘ < m‘

Zustand (0∞11) / (0∞∞1)m = (0∞01), m‘ = (0∞11)

∃ m‘‘ mit m‘‘ < m‘m‘‘ = (0∞01)

∃ Weg von m‘‘ nach m‘(0∞01) (0∞11)

m‘‘ m~ = (0∞∞1)

Page 22: 3. Übung zu Software Engineering

22

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Aufgabe 7

Lebendigkeitein Netz ist lebendig, wenn alle Transitionen lebendig sind

eine Transition ist lebendig, wenn sie nicht tot ist

eine Transition ist tot, wenn sie bei keiner, ggf. indirekten, Folgemarkierung schalten kann

das Netz ist nicht lebendig, da t1 und t3 im Zustand 0101 tot sind

Deadlockfreiheitein Netz ist deadlockfrei, wenn es unter keiner, ggf. indirekten, Folgemarkierung tot ist

ein Netz ist tot, wenn es einen Zustand gibt, in dem alle Transitionen tot sind

das Netz ist nicht deadlockfrei, da t1, t2 und t3 im Zustand 0011 tot sind

lebendig / deadlockfrei immer auf Zustand beziehen!

Page 23: 3. Übung zu Software Engineering

23

Übung zu Software Engineering im WS 2007/2008

Philipp Ciechanowicz

Literatur

W. Reisig: Petrinetze. Eine Einführung. Springer-Verlag 1982.

H. Balzert: Lehrbuch der Software-Technik. Software Entwicklung. Spektrum Akademischer Verlag, 2000.

Harel-Automaten: 342ff

Petri-Netze: 345ff