Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Philipp Ciechanowicz 3. Übung zu Software Engineering WS 2007/2008."—  Präsentation transkript:

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

2 1 Ü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 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 2 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 4 Zustandsautomat A = (Q, ∑, δ, q 0, F) Q: endliche Zustandsmenge Σ: endliches Eingabealphabet δ: Q х ∑  Q Übergangsfunktion q 0 ∈ 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 q 0 Endzustände dargestellt durch zwei geschachtelte Kreise

4 3 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 4 Zustandsmenge Q ausleihbar, ausgeliehen, vorbestellt, abholbereit, unbrauchbar Eingabealphabet Σ erfassen(), ausleihen(), vorbestellen(), zurückgeben(), entfernen() Übergangsfunktion δ siehe Folie 4 Startzustand q 0 ausleihbar Endzustandsmenge F unbrauchbar

5 4 Ü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 verloren bzw. defekt / entfernen() neues Buch liegt vor/ erfassen() Buch wird zurückgegeben/ zurückgeben() Ausleihwunsch/ vorbestellen() u n b r a u c h b a r

6 5 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 4 Anmerkungen zum Harel-Automaten Zustände mit Adjektiven benennen Ereignisse bei den Zustandsübergängen modellieren Anfangszustand und Endzustände modellieren

7 6 Ü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 W 1 und W 2 angeliefert wurde, werden diese ausgepackt und auf die Produktionsstraße gelegt. Das Werkstück W 2 durchläuft dabei einen Lackierungsprozess und kann anschließend mit dem bearbeiteten Werkstück W 1 wieder in die Kiste verpackt werden. Für die Bearbeitung des Werkstücks W 1 sind die beiden Mitarbeiter A und B verantwortlich. Während Mitarbeiter A in das Werkstück W 1 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 W 1 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 7 Ü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) Kantenmenge Schaltregel 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 8 Ü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

10 9 Ü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 W 1

11 10 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 5 Nebenläufigkeit Transition „Kiste entpacken“ erzeugt zwei Marken Nichtdeterminismus (logisches ODER) Marke der Stelle „W 1 entpackt“ kann nur ein Mal verwendet werden Synchronisation (logisches UND) Transition „W 1 und W 2 verpacken“

12 11 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 5 inklusive Mitarbeiter A und B

13 12 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 5 Anmerkungen zu Petri-Netzen Beschriftung der Stellen und Transitionen nicht vergessen Stellen = Zustände Transitionen = Ereignis auf syntaktische Korrektheit achten Stellen und Transitionen müssen sich abwechseln auf Deadlocks achten „ungünstige“ Schaltreihenfolgen betrachten i.d.R. verbleiben im Netz keine Marken

14 13 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 6 Erstellen Sie für das unten dargestellte Bedingungs/ Ereignis-Netz einen Erreichbarkeitsgraphen.

15 14 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 6 Erreichbarkeitsgraph stellt 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

16 15 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 6

17 16 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 6 Eigenschaften des Erreichbarkeitsgraphen endlich (bei Bedingungs/Ereignis-Netzen immer gegeben) lebendig deadlockfrei weist mehrere Zyklen auf Startzustand kann nicht wieder erreicht werden von den maximal 2 6 = 64 möglichen Zuständen können nur 15 tatsächlich erreicht werden

18 17 Ü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?

19 18 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 7 Überdeckungsgraph Zustände als Knoten mit Markenbelegung als Beschriftung Zustandsübergänge als Kanten mit Transition als Beschriftung ist 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‘ 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

20 19 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 7 Stellen/Transitions-NetzÜberdeckungsgraph

21 20 Ü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 21 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Aufgabe 7 Lebendigkeit ein 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 t 1 und t 3 im Zustand 0101 tot sind Deadlockfreiheit ein 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 t 1, t 2 und t 3 im Zustand 0011 tot sind lebendig / deadlockfrei immer auf Zustand beziehen!

23 22 Übung zu Software Engineering im WS 2007/2008 Philipp Ciechanowicz Literatur W. Reisig: Petrinetze. Eine Einführung. Springer-Verlag H. Balzert: Lehrbuch der Software-Technik. Software Entwicklung. Spektrum Akademischer Verlag, Harel-Automaten: 342ff Petri-Netze: 345ff


Herunterladen ppt "Philipp Ciechanowicz 3. Übung zu Software Engineering WS 2007/2008."

Ähnliche Präsentationen


Google-Anzeigen