07.02.2014 Aufrufe

VII-Von-der-Analyse-zum-Entwurf-Teil-3

VII-Von-der-Analyse-zum-Entwurf-Teil-3

VII-Von-der-Analyse-zum-Entwurf-Teil-3

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.

Vorlesung Software Engineering<br />

<strong>VII</strong>. <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong><br />

<strong>Entwurf</strong> – <strong>Teil</strong> 3<br />

Email<br />

SoftwEng (SS 06)<br />

Prof. Dr. Jens Grabowski<br />

Tel. 39 14 690<br />

grabowski@cs.uni-goettingen.de<br />

<strong>VII</strong>(3)-1<br />

Übersicht<br />

Planung<br />

Anfor<strong>der</strong>ungen<br />

(Lastenheft, Kapitel V)<br />

<strong>Analyse</strong><br />

<strong>Entwurf</strong><br />

Konzep. Datenmodell<br />

(Class Diagrams,<br />

Kapitel VI-2)<br />

Feines Klassenmodell<br />

(Class Diagrams mit Ops.,<br />

Kapitel <strong>VII</strong>)<br />

Anwendungsfälle<br />

(UML Use Cases,<br />

Kapitel VI-1)<br />

„Workflow“-Modell<br />

(Activity Diagrams,<br />

Kapitel VI-2)<br />

Feines Verhaltensmodell<br />

(Interaction Diagrams,<br />

Kapitel <strong>VII</strong>)<br />

Reaktives Verhalten<br />

(State Machines,<br />

Kapitel <strong>VII</strong>)<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-2<br />

Inhalt<br />

Objektzustände und -<br />

reaktionen<br />

<strong>Teil</strong> 1<br />

• Verfeinerung von Klassendiagrammen<br />

<strong>Teil</strong> 2<br />

• Verfeinerte Verhaltensbeschreibung<br />

<strong>Teil</strong> 3<br />

• Objektzustände und reaktives<br />

Verhalten<br />

• Aufgabe:<br />

• Beschreibung <strong>der</strong> Verhaltens <strong>der</strong> Objekte einer Klasse<br />

• Es werden hierarchische Zustandsdiagramme benutzt<br />

• Vorgehensweise:<br />

• Identifikation semantisch sinnvoller Objektzustände<br />

• Zuordnung von Operationen zu Zuständen<br />

• Welche Operationen können in welchem Zustand bearbeitet werden?<br />

• Bestimmung des "Objektlebenszyklus" als zulässige<br />

Zustandsfolgen<br />

• Operationsaufrufe/Signale als Ereignisse lösen Zustandsübergänge<br />

aus<br />

• [ vollständige "Ausprogrammierung" <strong>der</strong> Objektimplementierung ]<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-3<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-4<br />

Endliche Automaten 1(4)<br />

• Zustandsdiagramme = grafische Darstellung<br />

endlicher Automaten<br />

• Definition "endlicher deterministischer Automat"<br />

• Englisch: Finite State Machine<br />

• FSM = <br />

• Q endliche, nichtleere Menge von Zuständen<br />

• Σ endliches, nichtleeres Alphabet von Signalen<br />

(Ereignis)<br />

• δ : Q x Σ Q (partielle) Übergangsfunktion<br />

• q 0 ∈ Q Startzustand<br />

• F ⊆ Q Menge <strong>der</strong> Endzustände<br />

Endliche Automaten 2(4)<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-5<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-6<br />

1


Endliche Automaten 3(4)<br />

• Erklärung zu Folie 6<br />

• Q = new, Initial, WithClient, WithPeriod,<br />

WithCategory, Complete, Confirmed,<br />

destroyed<br />

• Σ = create, setClient, setPeriod, setCategory,<br />

confirm, fulfill, cancel<br />

• δ (new, create) = Initial …<br />

• q0 = new<br />

• F = destroyed<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-7<br />

Endliche Automaten 4(4)<br />

• Anmerkungen zur FSM:<br />

• die Rechtecke sind die Zustände <strong>der</strong> FSM<br />

• es gibt immer einen Anfangszustand und meist genau einen<br />

Endzustand<br />

• die Pfeile definieren die Übergangsfunktion von einem<br />

Zustand <strong>zum</strong> nächsten, sie werden Transitionen genannt<br />

und sind mit Signalen beschriftet<br />

• die Übergangsfunktion ist partiell, da man nicht mit jedem<br />

Signal (Ereignis) aus einem Zustand in einen an<strong>der</strong>en kommt<br />

• die FSM ist deterministisch, da für jedes Paar aus Zustand<br />

und Signal die Übergangsfunktion maximal einen möglichen<br />

neuen Zustand festlegt<br />

• die FSM ist "finite" = endlich, da sie nur eine endliche Menge<br />

von Zuständen besitzt<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-8<br />

Zustandsdiagramme 1(3)<br />

• Deutungen von Zustandsdiagrammen als Lebenszyklus:<br />

Zustandsdiagramme 2(3)<br />

• Deutung des Zustandsdiagramms als Klassenimplementierung:<br />

• Diagramm beschreibt, in welcher Reihenfolge die Operationen <strong>der</strong> Klasse<br />

ReservationContract aufgerufen werden dürfen.<br />

• Das Diagramm ist keine Implementierung <strong>der</strong> Klasse.<br />

• Man spricht von Lebenszyklus o<strong>der</strong> Protokoll <strong>der</strong> Klasse.<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-9<br />

• Bedeutung <strong>der</strong> Tranisionsbeschriftung:<br />

• wenn signal1 eintrifft schaltet Transition<br />

• falls condition erfüllt ist<br />

• und führt dabei ununterbrechbare action aus<br />

• und verschickt schließlich signal2<br />

• an ein bekanntes Objekt<br />

• Merke:<br />

• Viele CASE-Tools können aus solchen<br />

Zustandsdiagrammen guten Code generieren<br />

• Alle <strong>Teil</strong>e <strong>der</strong> Aufschrift sind optional:<br />

• Transition ohne Aufschrift feuert sofort<br />

• Transition nur mit Bedingung feuert, sobald die<br />

Bedingung erfüllt ist<br />

• Transition mit Signal feuert, sobald das Signal eintrifft<br />

• Transition mit Signal und Bedingung feuert, sobald<br />

Signal eintrifft, falls die Bedingung dann erfüllt ist<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-10<br />

Zustandsdiagramme 3(3)<br />

• Erweiterte Zustandsdiagramme<br />

• Problem: Zustandsdiagramme werden in realistischen Anwendungen<br />

groß!<br />

• Lösung: Hierarchisierung <strong>der</strong> Zustandsdiagramme<br />

• Harel, D.: Statecharts: A visual formalism for complex systems, Science of<br />

Computer Programming, vol. 8, Elsevier Science Publ. (1987), 231-274<br />

• UML State Machines (≈ Statecharts von Harel):<br />

• erweiterte Zustandsdiagramme<br />

• Zusammengesetzte Zustände<br />

• "nebenläufige" <strong>Teil</strong>diagramme<br />

• ein Diagramm wird immer genau einer Klasse zugeordnet<br />

• jede Klasse besitzt höchstens ein Diagramm<br />

• sie werden oft zur "Implementierung" von Objektverhalten benutzt<br />

• werden interpretativ ausgeführt o<strong>der</strong> in Quellcode übersetzt<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-11<br />

Hierarchische<br />

Zustandsdiagramme 1(16)<br />

• Statechart mit<br />

zusammengesetztem<br />

Zustand:<br />

• Lebenszyklus eines ReservationContract-Objektes mit Oberzustand Imcomplete,<br />

<strong>der</strong> Unterzustände besitzt. Immer genau einer <strong>der</strong> Unterzustände von<br />

Incomplete ist aktiv (deshalb wird <strong>der</strong> Zustand xor-Zustand genannt).<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-12<br />

2


Hierarchische<br />

Zustandsdiagramme 2(16)<br />

• Elimination von Anfangsund<br />

Endzuständen in<br />

xor-Zuständen:<br />

Hierarchische<br />

Zustandsdiagramme 3(16)<br />

• Elimination von Transitionen<br />

mit xor-Zustand als Quelle:<br />

• Die Transition in den Anfangszustand wurde auf den ersten<br />

"richtigen" Zustand umgelenkt, die Transition aus dem Endzustand<br />

geht nun vom letzten "richtigen" Zustand aus.<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-13<br />

• Die Transition mit Ereignis clear (alle Datenfel<strong>der</strong> wie<strong>der</strong> löschen)<br />

wurde durch eine entsprechende Transition von jedem Unterzustand<br />

aus ersetzt. Jetzt kann man den Oberzustand Incomplete entfernen<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-14<br />

Hierarchische<br />

Zustandsdiagramme 4(16)<br />

• Zu hierarchischem<br />

Statechart äquivalenter<br />

"flacher" Automat:<br />

Hierarchische<br />

Zustandsdiagramme 5(16)<br />

• Abstraktes Beispiel mit xor-Oberzustand:<br />

• Jedes "normale" hierarchische Statechart lässt sich in einen normalen<br />

(flachen) Automaten übersetzen.<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-15<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-16<br />

Hierarchische<br />

Zustandsdiagramme 6(16)<br />

• Übersetzung von Statecharts in einfache Zustandsdiagramme<br />

Hierarchische<br />

Zustandsdiagramme 7(16)<br />

• Übersetzung von Statecharts (cont.)<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-17<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-18<br />

3


Hierarchische<br />

Zustandsdiagramme 8(16)<br />

• and-Zustände (Concurrent States) in Together - Variante 1:<br />

Hierarchische<br />

Zustandsdiagramme 9(16)<br />

• and-Zustände (Concurrent States) in Together - Variante 2:<br />

• Incomplete wird verlassen, wenn entwe<strong>der</strong> Period.Defined o<strong>der</strong><br />

Category.Defined erreicht wurde und ok-Event (Operation) auftritt.<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-19<br />

• Incomplete wird verlassen, sobald ok-Event (Operation) auftritt.<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-20<br />

Hierarchische<br />

Zustandsdiagramme 10(16)<br />

• and-Zustände (Concurrent States) in Together - Variante 3:<br />

• Incomplete wird verlassen, wenn sowohl Period.Defined o<strong>der</strong><br />

Category.Defined erreicht wurde und ok-Event (Operation) auftritt.<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-21<br />

Hierarchische<br />

Zustandsdiagramme 11(16)<br />

• Erläuterung von and-Zuständen:<br />

• ein and-Zustand enthält beliebig viele Unterautomaten<br />

• beim Betreten des and-Zustandes geht je<strong>der</strong> Unterautomat in<br />

seinen Anfangszustand über<br />

• je<strong>der</strong> Unterautomat ist für sich aktiv (wie ein normaler Automat)<br />

und kann seinerseits wie<strong>der</strong> xor- und and-Zustände enthalten<br />

• kommt ein Signal an, so wird dieses Signal von jedem<br />

Unterautomaten abgearbeitet (theoretisch gleichzeitig, in <strong>der</strong><br />

Praxis in beliebiger Reihenfolge)<br />

• kann ein Unterautomat mit einem Signal nichts anfangen, bleibt er<br />

einfach im aktuellen Zustand<br />

• ein Unterautomat wird entwe<strong>der</strong> durch Transition nach "außen"<br />

mit explizitem Ereignis verlassen o<strong>der</strong> wenn alle Unterautomaten<br />

ihre Endzustände erreicht haben<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-22<br />

Hierarchische<br />

Zustandsdiagramme 12(16)<br />

• Abstraktes Beispiel mit and-Oberzustand:<br />

Hierarchische<br />

Zustandsdiagramme 13(16)<br />

• Übersetzung von and-Oberzustand in Produktautomaten:<br />

• Die Unterautomaten A und D schalten immer gleichzeitig (bei<br />

passendem Ereignis)<br />

• Querbezüge auf Zustand des "Nachbarautomaten" sind möglich<br />

mit "[in X]" als Transitionsbedingung (aber kein guter<br />

Modellierungsstil)<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-23<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-24<br />

4


Hierarchische<br />

Zustandsdiagramme 14(16)<br />

• Regeln für die Gestaltung von Statecharts:<br />

• Objekteigenschaften mit größerem Wertebereich nicht in Zuständen halten<br />

• Alter eines Autos, Gehalt einer Person, …<br />

• <strong>Teil</strong>diagramme mit mehr als 5 bis 7 Zuständen vermeiden<br />

• Hierarchisierung<br />

• nie Zustände verwenden, die Informationen zu mehreren Eigenschaften<br />

repräsentieren<br />

• z.B. Zustand "Auto ausgeliehen und Inspektion fällig"<br />

• Kopplung <strong>der</strong> <strong>Teil</strong>diagramme eines and-Zustandes über [in State]-<br />

Bedingungen (Wächter) nur überlegt einsetzen<br />

• führt oft zu schwer verständlichen Diagrammen<br />

• anstelle eines Objektes mit and-Zustand oft lieber mehrere Objekte mit<br />

einfachen Statecharts verwenden (die über Schnittstellenoperationen<br />

kommunizieren)<br />

• an die Verwendung ereignisloser Transitionen denken, die bei Erfüllung<br />

einer Bedingung schalten<br />

• z.B. Kilometerstand eines Autos größer als …<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-25<br />

Hierarchische<br />

Zustandsdiagramme 15(16)<br />

• <strong>Von</strong> sequentiellen Zustandsautomaten zu parallelen Statecharts:<br />

• Zustandsdiagramme beschreiben sequentielle Abläufe in einem Objekt:<br />

• zu einem Zeitpunkt löst ein Ereignis maximal einen Zustandsübergang aus<br />

• ein Event löst maximal eine Aktion aus<br />

• and-Zustände "normaler" Statecharts beschreiben (fast) nebenläufige<br />

Abläufe:<br />

• zu einem Zeitpunkt löst ein Ereignis maximal eine Transition im<br />

Produktautomaten aus (und damit gleichzeitig eine Menge von <strong>Teil</strong>transitionen)<br />

• Aktionen <strong>der</strong> <strong>Teil</strong>transitionen werden in beliebiger Reihenfolge ausgeführt<br />

• UML-Statecharts erlauben auch echt parallele Abläufe (mit fork/join):<br />

• während Aktionsausführung zu einem Ereignis in <strong>Teil</strong>automat A können bereits<br />

neue Ereignisse in an<strong>der</strong>em <strong>Teil</strong>automat B behandelt werden<br />

• je<strong>der</strong> <strong>Teil</strong>automat hat eine eigene (Kopie <strong>der</strong>) Warteschlange mit eingetroffenen<br />

Ereignissen (die noch abzuarbeiten sind)<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-26<br />

Hierarchische<br />

Zustandsdiagramme 16(16)<br />

• Komplexe = echt parallele Zustandsübergänge:<br />

Beispiel - Lebenszyklus von<br />

ReservationContract-Objekten<br />

• Die and-Zustände mit fork/join Konstrukt lassen sich<br />

nicht mehr in Produktautomaten übersetzen. Man hat<br />

in einem Objekt mehrere "threads of control"<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-27<br />

• fast schon UML-Aktivitätsdiagram ≈ Erweiterung von UML-<br />

Statecharts<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-28<br />

Weitere Sprachelemente von<br />

UML-Statecharts 1(2)<br />

• History-Mechanismus in komplexen Zuständen:<br />

bei Wie<strong>der</strong>eintritt in einen Zustand wird nicht <strong>der</strong> Anfangszustand<br />

aktiviert, son<strong>der</strong>n <strong>der</strong> letzte Unterzustand aus dem das Diagramm<br />

beim letzten Mal verlassen wurde (für Ausnahmebehandlungen).<br />

• entry/exit-Aktionen von Zuständen:<br />

nicht nur Transitionen sind mit Aktionen verbunden, son<strong>der</strong>n auch<br />

Eintritt in o<strong>der</strong> Austritt aus einem Zustand kann Aktionen auslösen<br />

• Schnittstellen (ports) komplexer Zuständen:<br />

Weitere Sprachelemente von<br />

UML-Statecharts 2(2)<br />

• Beispiel für<br />

History-<br />

Mechanismus:<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-29<br />

• Wenn man mit undoClear den Zustand Incomplete wie<strong>der</strong><br />

betritt, landet man in dem Unterzustand, von dem aus man<br />

mit clear den Zustand verlassen hatte, sonst im<br />

Anfangszustand WithClient.<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-30<br />

5


Zusammenfassung<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-31<br />

Übersicht (revisited)<br />

Planung<br />

Anfor<strong>der</strong>ungen<br />

(Lastenheft, Kapitel V)<br />

<strong>Analyse</strong><br />

<strong>Entwurf</strong><br />

Konzep. Datenmodell<br />

(Class Diagrams,<br />

Kapitel VI-2)<br />

Feines Klassenmodell<br />

(Class Diagrams mit Ops.,<br />

Kapitel <strong>VII</strong>)<br />

Anwendungsfälle<br />

(UML Use Cases,<br />

Kapitel VI-1)<br />

„Workflow“-Modell<br />

(Activity Diagrams,<br />

Kapitel VI-2)<br />

Feines Verhaltensmodell<br />

(Interaction Diagrams,<br />

Kapitel <strong>VII</strong>)<br />

Reaktives Verhalten<br />

(State Machines,<br />

Kapitel <strong>VII</strong>)<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-32<br />

Konsistenzbedingungen zwischen<br />

UML-Diagrammen<br />

• Klassendiagramm ↔ Objektdiagramm<br />

• jedes Objektdiagramm ist zulässige Instanz <strong>der</strong> Klassendiagramme<br />

• Klassendiagramm ↔ Interaktionsdiagramm<br />

• jede Operation muss bei <strong>der</strong> richtigen Klasse deklariert sein<br />

• Sequenzdiagramm ↔ Kollaborationsdiagramm<br />

• lassen sich wechselweise auseinan<strong>der</strong> generieren (im wesentlichen)<br />

• Interaktionsdiagramm ↔ Zustandsdiagramm<br />

• Operationsfolgen des Interaktionsdiagramms sind zulässig im<br />

Zustandsdiagramm<br />

• Klassendiagramm ↔ Zustandsdiagramm<br />

• jede Klasse besitzt maximal ein eigenes Zustandsdiagramm, Ereignisse sind<br />

Operationen <strong>der</strong> Klasse<br />

• wie Vererbung von Zustandsdiagrammen handhaben?<br />

• Aktivitätsdiagramm ↔ ???<br />

• ziemlich unklar<br />

SoftwEng (SS 06) <strong>Von</strong> <strong>der</strong> <strong>Analyse</strong> <strong>zum</strong> <strong>Entwurf</strong> – <strong>Teil</strong> 3 <strong>VII</strong>(3)-33<br />

6

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!