21.11.2013 Aufrufe

3. Übung zu Software Engineering

3. Übung zu Software Engineering

3. Übung zu Software Engineering

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>3.</strong> <strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong><br />

WS 2007/2008<br />

Philipp Ciechanowicz


Aufgabe 4<br />

Betrachten Sie das unten dargestellte<br />

Klassendiagramm, das für eine Bibliothek<br />

<strong>zu</strong>r Verwaltung ihrer Buchbestände<br />

modelliert wurde. Modellieren Sie die<br />

verschiedenen Zustände, die ein Buch im<br />

Laufe seiner Nut<strong>zu</strong>ng in der Bibliothek<br />

einnehmen kann, als Harel-Automaten<br />

(Statechart). Gehen Sie davon aus, dass ein<br />

Buch von höchstens einer Person vorbestellt werden<br />

kann, weitere Vorbestellungen sind dann nicht mehr<br />

möglich. Modellieren Sie einen geeigneten Start- und<br />

End<strong>zu</strong>stand und berücksichtigen Sie dabei, welche<br />

Methoden der Klasse wann verwendet werden können.<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

1<br />

Philipp Ciechanowicz


Aufgabe 4<br />

Zustandsautomat A = (Q, ∑, δ, q 0 , F)<br />

Q: endliche Zustandsmenge<br />

Σ: endliches Eingabealphabet<br />

δ: Q х ∑ Q Übergangsfunktion<br />

q 0 ∈ Q Start<strong>zu</strong>stand<br />

F ⊂ Q End<strong>zu</strong>standsmenge<br />

Harel-Automat (state chart)<br />

Zustände als Knoten dargestellt durch Kreise bzw. Rechtecke<br />

Zustandsübergang δ(q, a) = q‘ dargestellt durch gerichtete, mit a<br />

beschriftete Kante von q nach q‘<br />

kurzer Pfeil auf Start<strong>zu</strong>stand q 0<br />

End<strong>zu</strong>stände dargestellt durch zwei geschachtelte Kreise<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

2<br />

Philipp Ciechanowicz


Aufgabe 4<br />

Zustandsmenge Q<br />

ausleihbar, ausgeliehen, vorbestellt, abholbereit, unbrauchbar<br />

Eingabealphabet Σ<br />

erfassen(), ausleihen(), vorbestellen(), <strong>zu</strong>rückgeben(), entfernen()<br />

Übergangsfunktion δ<br />

siehe Folie 4<br />

Start<strong>zu</strong>stand q 0<br />

ausleihbar<br />

End<strong>zu</strong>standsmenge F<br />

unbrauchbar<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

3<br />

Philipp Ciechanowicz


Aufgabe 4<br />

Buch defekt /<br />

entfernen()<br />

ausleihbar<br />

neues Buch<br />

liegt vor /<br />

erfassen()<br />

Abholfrist<br />

abgelaufen<br />

unbrauchbar<br />

Ausleihwunsch /<br />

ausleihen()<br />

Buch verloren /<br />

entfernen()<br />

Ausleihwunsch /<br />

vorbestellen()<br />

ausgeliehen<br />

Buch wird<br />

<strong>zu</strong>rückgegeben /<br />

<strong>zu</strong>rückgeben()<br />

Buch wird<br />

abgeholt /<br />

ausleihen()<br />

abholbereit<br />

Buch verloren<br />

bzw. defekt /<br />

entfernen()<br />

vorbestellt<br />

Buch wird<br />

<strong>zu</strong>rückgegeben /<br />

<strong>zu</strong>rückgeben()<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

4<br />

Philipp Ciechanowicz


Aufgabe 4<br />

Anmerkungen <strong>zu</strong>m Harel-Automaten<br />

Zustände mit Adjektiven benennen<br />

Ereignisse bei den Zustandsübergängen modellieren<br />

Anfangs<strong>zu</strong>stand und End<strong>zu</strong>stände modellieren<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

5<br />

Philipp Ciechanowicz


Aufgabe 5<br />

Modellieren Sie die Prozesse in der Fertigungsabteilung eines<br />

Automobil<strong>zu</strong>lieferers als Bedingungs/Ereignis-Netz, die sich wie<br />

folgt beschreiben lassen: Nachdem eine Kiste mit den benötigten<br />

Werkstücken W 1 und W 2 angeliefert wurde, werden diese<br />

ausgepackt und auf die Produktionsstraße gelegt. Das Werkstück<br />

W 2 durchläuft dabei einen Lackierungsprozess und kann<br />

anschließend mit dem bearbeiteten Werkstück W 1 wieder in die<br />

Kiste verpackt werden. Für die Bearbeitung des Werkstücks W 1<br />

sind die beiden Mitarbeiter A und B verantwortlich. Während<br />

Mitarbeiter A in das Werkstück W 1 drei Gewindelöcher fräst und<br />

anschließend in einem zweiten Arbeitsschritt die passenden<br />

Schrauben in die Löcher schraubt, versieht Mitarbeiter B das<br />

Werkstück W 1 lediglich mit einer Seriennummer. Die Reihenfolge,<br />

in der die Mitarbeiter A und B mit der Bearbeitung der Werkstücke<br />

beginnen, kann dabei variieren. Es kann allerdings jeder Mitarbeiter<br />

immer nur ein Werkstück gleichzeitig bearbeiten. Beide Mitarbeiter<br />

können auch nicht gleichzeitig an demselben Werkstück arbeiten.<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

6<br />

Philipp Ciechanowicz


Aufgabe 5<br />

Bedingungs/Ereignis-Netz BE = (S, T, F)<br />

S: Stellenmenge (Zustand, Bedingung)<br />

Stelle s ∈ S wird dargestellt durch einen Kreis<br />

T: Transitionen (Ereignis)<br />

Transition t ∈ T wird dargestellt durch ein Rechteck<br />

F ⊆ (S х T) ∪ (T х S) Kantenmenge<br />

Schaltregel<br />

Transition t kann Schalten, wenn alle Stellen im Vorbereich eine Marke<br />

enthalten und alle Stellen im Nachbereich leer sind.<br />

wenn t schaltet, wird von jeder Stelle im Vorbereich eine Marke entfernt<br />

und auf jeder Stelle im Nachbereich eine Marke hin<strong>zu</strong>gefügt.<br />

Bedingungs/Ereignis-Netze sind spezielle Petri-Netze<br />

mit Stellenkapazität = Kantengewichtung = 1<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

7<br />

Philipp Ciechanowicz


Aufgabe 5<br />

Transitionen (Ereignisse)<br />

Kiste entpacken<br />

lackieren<br />

fräsen<br />

verschrauben<br />

nummerieren<br />

Kiste verpacken<br />

Stellen (Zustände)<br />

Kiste entpackt<br />

lackiert<br />

gefräst<br />

verschraubt<br />

nummeriert<br />

Kiste verpackt<br />

fertig, d.h. gefräst, verschraubt<br />

und nummeriert<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

8<br />

Philipp Ciechanowicz


Aufgabe 5<br />

Die Reihenfolge, in der die Mitarbeiter A und B mit der<br />

Bearbeitung der Werkstücke beginnen, kann dabei<br />

variieren. Es kann allerdings jeder Mitarbeiter immer nur<br />

ein Werkstück gleichzeitig bearbeiten. Beide Mitarbeiter<br />

können auch nicht gleichzeitig an demselben<br />

Werkstück arbeiten.<br />

Nichtdeterminismus durch Variation der Bearbeitungsreihenfolge<br />

keine Parallelität während der Bearbeitung von W 1<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

9<br />

Philipp Ciechanowicz


Aufgabe 5<br />

Nebenläufigkeit<br />

Transition „Kiste entpacken“ erzeugt zwei Marken<br />

Nichtdeterminismus (logisches ODER)<br />

Marke der Stelle „W 1 entpackt“ kann nur ein Mal verwendet werden<br />

Synchronisation (logisches UND)<br />

Transition „W 1 und W 2 verpacken“<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

10<br />

Philipp Ciechanowicz


Aufgabe 5<br />

inklusive Mitarbeiter A und B<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

11<br />

Philipp Ciechanowicz


Aufgabe 5<br />

Anmerkungen <strong>zu</strong> Petri-Netzen<br />

Beschriftung der Stellen und Transitionen nicht vergessen<br />

Stellen = Zustände<br />

Transitionen = Ereignis<br />

auf syntaktische Korrektheit achten<br />

Stellen und Transitionen müssen sich abwechseln<br />

auf Deadlocks achten<br />

„ungünstige“ Schaltreihenfolgen betrachten<br />

i.d.R. verbleiben im Netz keine Marken<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

12<br />

Philipp Ciechanowicz


Aufgabe 6<br />

Erstellen Sie für das unten dargestellte Bedingungs/<br />

Ereignis-Netz einen Erreichbarkeitsgraphen.<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

13<br />

Philipp Ciechanowicz


Aufgabe 6<br />

Erreichbarkeitsgraph<br />

stellt dar, welche Zustände durch das Schalten von Transitionen<br />

erreichbar sind<br />

Zustände als Knoten mit Markenbelegung als Beschriftung<br />

Kanten als Zustandsübergang mit Transition als Beschriftung<br />

ist u.U. nicht endlich (im Gegensatz <strong>zu</strong>m Überdeckungsgraph)<br />

Stellen/Transitions-Netz<br />

Erreichbarkeitsgraph<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

14<br />

Philipp Ciechanowicz


Aufgabe 6<br />

000110<br />

t 5<br />

001100 010100<br />

t 6<br />

000101<br />

t 4<br />

t 2<br />

t 2<br />

001010<br />

t 4<br />

t 4<br />

t 2 010010 t 6 000011<br />

100100<br />

t 1<br />

t 3<br />

100010<br />

t 5<br />

t 5 t 5<br />

t 1 t 4<br />

110000<br />

010001<br />

011000<br />

t 2<br />

t 1<br />

t 6<br />

t 1 101000<br />

t 6<br />

100001<br />

001001<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

15<br />

Philipp Ciechanowicz


Aufgabe 6<br />

Eigenschaften des Erreichbarkeitsgraphen<br />

endlich (bei Bedingungs/Ereignis-Netzen immer gegeben)<br />

lebendig<br />

deadlockfrei<br />

weist mehrere Zyklen auf<br />

Start<strong>zu</strong>stand 000110 kann nicht wieder erreicht werden<br />

von den maximal 2 6 = 64 möglichen Zuständen können nur 15<br />

tatsächlich erreicht werden<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

16<br />

Philipp Ciechanowicz


Aufgabe 7<br />

Erstellen Sie für das unten dargestellte Stellen/<br />

Transitions-Netz einen Überdeckungsgraphen. Gehen<br />

Sie davon aus, dass sämtliche Stellenkapazitäten<br />

unbeschränkt und alle Kanten mit 1 gewichtet sind. Ist<br />

das Netz lebendig? Ist das Netz deadlockfrei?<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

17<br />

Philipp Ciechanowicz


Aufgabe 7<br />

Überdeckungsgraph<br />

Zustände als Knoten mit Markenbelegung als Beschriftung<br />

Zustandsübergänge als Kanten mit Transition als Beschriftung<br />

ist immer endlich (im Gegensatz <strong>zu</strong>m Erreichbarkeitsgraph)<br />

Zustandsüberdeckung<br />

Sei N ein Stellen/Transitions-Netz mit einer Markenbelegung m, das<br />

durch Schalten einer Transition t eine Folgemarkenbelegung m‘ erreicht<br />

die Markenbelegung einer Stelle s im Zustand m‘ muss durch ∞ ersetzt<br />

werden, wenn<br />

es einen Zustand m‘‘ gibt, dessen Markenbelegung kleiner als die von m‘ ist,<br />

d.h. m‘‘ < m‘ (daher der Begriff „Überdeckungsgraph“)<br />

und ein Weg von m‘‘ nach m‘ existiert<br />

der Zustand m‘ wird nach der Erset<strong>zu</strong>ng als m~ bezeichnet<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

18<br />

Philipp Ciechanowicz


Aufgabe 7<br />

Stellen/Transitions-Netz<br />

Überdeckungsgraph<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

19<br />

Philipp Ciechanowicz


Aufgabe 7<br />

Zustand (0101)<br />

m = (1100), m‘ = (0101)<br />

∄ m‘‘ mit m‘‘ < m‘<br />

Zustand (0011)<br />

m = (0101), m‘ = (0011)<br />

∄ m‘‘ mit m‘‘ < m‘<br />

Zustand (1200) / (1∞00)<br />

m = (1100), m‘ = (1200)<br />

∃ m‘‘ mit m‘‘ < m‘<br />

m‘‘ = (1100)<br />

∃ Weg von m‘‘ nach m‘<br />

(1100) (1200)<br />

m‘‘ m~ = (1∞00)<br />

Zustand (0∞01)<br />

m = (1∞00), m‘ = (0∞01)<br />

∄ m‘‘ mit m‘‘ < m‘<br />

Zustand (0∞11) / (0∞∞1)<br />

m = (0∞01), m‘ = (0∞11)<br />

∃ m‘‘ mit m‘‘ < m‘<br />

m‘‘ = (0∞01)<br />

∃ Weg von m‘‘ nach m‘<br />

(0∞01) (0∞11)<br />

m‘‘ m~ = (0∞∞1)<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

20<br />

Philipp Ciechanowicz


Aufgabe 7<br />

Lebendigkeit<br />

ein Netz ist lebendig, wenn alle Transitionen lebendig sind<br />

eine Transition ist lebendig, wenn sie nicht tot ist<br />

eine Transition ist tot, wenn sie bei keiner, ggf. indirekten,<br />

Folgemarkierung schalten kann<br />

das Netz ist nicht lebendig, da t 1 und t 3 im Zustand 0101 tot sind<br />

Deadlockfreiheit<br />

ein Netz ist deadlockfrei, wenn es unter keiner, ggf. indirekten,<br />

Folgemarkierung tot ist<br />

ein Netz ist tot, wenn es einen Zustand gibt, in dem alle Transitionen<br />

tot sind<br />

das Netz ist nicht deadlockfrei, da t 1 , t 2 und t 3 im Zustand 0011 tot sind<br />

lebendig / deadlockfrei immer auf Zustand beziehen!<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

21<br />

Philipp Ciechanowicz


Literatur<br />

W. Reisig: Petrinetze. Eine Einführung. Springer-Verlag<br />

1982.<br />

H. Balzert: Lehrbuch der <strong>Software</strong>-Technik. <strong>Software</strong><br />

Entwicklung. Spektrum Akademischer Verlag, 2000.<br />

Harel-Automaten: 342ff<br />

Petri-Netze: 345ff<br />

<strong>Übung</strong> <strong>zu</strong> <strong>Software</strong> <strong>Engineering</strong> im WS 2007/2008<br />

22<br />

Philipp Ciechanowicz

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!