philipp ciechanowicz 3. Übung zu software engineering ws 2007/2008
TRANSCRIPT
Philipp Ciechanowicz
3. Übung zu Software EngineeringWS 2007/2008
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.
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 StartzustandF ⊂ Q Endzustandsmenge
Harel-Automat (state chart)Zustände als Knoten dargestellt durch Kreise bzw. RechteckeZustandsü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
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
ausleihbarEndzustandsmenge F
unbrauchbar
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()
6
Übung zu Software Engineering im WS 2007/2008
Philipp Ciechanowicz
Aufgabe 4
Anmerkungen zum Harel-AutomatenZustände mit Adjektiven benennenEreignisse bei den Zustandsübergängen modellierenAnfangszustand und Endzustände modellieren
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.
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 KreisT: Transitionen (Ereignis)
Transition t ∈ T wird dargestellt durch ein RechteckF ⊆ (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
9
Übung zu Software Engineering im WS 2007/2008
Philipp Ciechanowicz
Aufgabe 5
Transitionen (Ereignisse)Kiste entpackenlackierenfräsenverschraubennummerierenKiste verpacken
Stellen (Zustände)Kiste entpacktlackiertgefrästverschraubtnummeriertKiste verpacktfertig, d.h. gefräst, verschraubt und nummeriert
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 Bearbeitungsreihenfolgekeine Parallelität während der Bearbeitung von W1
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 verpacktKiste trifft ein
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 verpacktKiste trifft ein
Mitarbeiter A frei
Mitarbeiter B frei
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ändeTransitionen = Ereignis
auf syntaktische Korrektheit achtenStellen und Transitionen müssen sich abwechseln
auf Deadlocks achten„ungünstige“ Schaltreihenfolgen betrachteni.d.R. verbleiben im Netz keine Marken
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
s6t3
t4
s5s4
15
Übung zu Software Engineering im WS 2007/2008
Philipp Ciechanowicz
Aufgabe 6
Erreichbarkeitsgraphstellt dar, welche Zustände durch das Schalten von Transitionen erreichbar sindZustände als Knoten mit Markenbelegung als BeschriftungKanten als Zustandsübergang mit Transition als Beschriftungist u.U. nicht endlich (im Gegensatz zum Überdeckungsgraph)
Stellen/Transitions-Netz
Erreichbarkeitsgraph
s1 s2t1
10 t1 11 t1 12 t1 13 t1 ...
16
Übung zu Software Engineering im WS 2007/2008
Philipp Ciechanowicz
Aufgabe 6000110
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
17
Übung zu Software Engineering im WS 2007/2008
Philipp Ciechanowicz
Aufgabe 6
Eigenschaften des Erreichbarkeitsgraphenendlich (bei Bedingungs/Ereignis-Netzen immer gegeben)lebendigdeadlockfreiweist mehrere Zyklen aufStartzustand 000110 kann nicht wieder erreicht werdenvon den maximal 26 = 64 möglichen Zuständen können nur 15 tatsächlich erreicht werden
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
19
Übung zu Software Engineering im WS 2007/2008
Philipp Ciechanowicz
Aufgabe 7
ÜberdeckungsgraphZustände als Knoten mit Markenbelegung als BeschriftungZustandsübergänge als Kanten mit Transition als Beschriftungist immer endlich (im Gegensatz zum Erreichbarkeitsgraph)Zustandsüberdeckung
Sei N ein Stellen/Transitions-Netz mit einer Markenbelegung m, das durch Schalten einer Transition t eine Folgemarkenbelegung m‘ erreichtdie 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
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
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)
22
Übung zu Software Engineering im WS 2007/2008
Philipp Ciechanowicz
Aufgabe 7
Lebendigkeitein Netz ist lebendig, wenn alle Transitionen lebendig sindeine Transition ist lebendig, wenn sie nicht tot isteine 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 istein 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!
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: 342ffPetri-Netze: 345ff