next up previous contents
Next: Das Referenzmodell für Open Up: Überblick über die Object Previous: 3.4.1 Objektmodell

3.4.2 Dynamisches Modell

Das Objektmodell teilt ein System in statische Objektklassen auf, die in bestimmten Beziehungen zueinander stehen. Es beschreibt, welche Attribute und Operationen ein Objekt besitzt, aber nicht, wann sich Attributwerte ändern oder in welcher Reihenfolge Operationen auf Objekten ausgeführt werden. Das dynamische Modell dient dazu, Interaktionen zwischen Objekten und die Ausführung von Operationen zeitlich anzuordnen. Weiterhin kann der Kontrollfluß in einem System mit mehreren, gleichzeitig aktiven Objekten gesteuert werden.

Zur dynamischen Modellierung kennt OMT mehrere Diagrammarten. Das wichtigste ist aber das Zustandsdiagramm (state chart), welches die Zustände eines Objekts und seine Reaktion auf Ereignisse in einer Notation beschreibt, die der Darstellung endlicher Zustandsmaschinen in der Automatentheorie ähnlich ist. Die Ereignisabfolge für ein bestimmtes Szenario kann durch einen Ereignispfad (event trace) beschrieben werden. Bei der Identifikation möglicher Ereignisse, die eine Gruppe von Objektklassen betreffen, helfen Ereignisflußdiagramme (event flow) und sog. Use Cases. An dieser Stelle werden nur die Zustandsdiagramme vorgestellt. Für eine Einführung in die anderen Diagramme wird nochmals auf die Literatur verwiesen.

Der Zustand eines Objekts ist durch seine Attributwerte und durch die Verknüpfungen zu anderen Objekten bestimmt. Das Auftreten eines Ereignisses kann den Zustand eines Objekts verändern. Ein Ereignis ist ein externer ,,Reiz`` auf ein Objekt und kann z.B. der Aufruf einer Methode sein. Ereignisse gehen immer von einem Quellobjekt aus und betreffen ein Zielobjekt. Die Reaktion auf ein Ereignis ist vom Zustand des Objekts abhängig. Möglich sind Zustandsänderungen, das Ausführen von Aktionen sowie das Senden eines neuen Ereignisses an das Quellobjekt oder an ein drittes Objekt. Ereignisse treten zu einem bestimmten Zeitpunkt auf und besitzen keine Dauer. Wenn zwischen Ereignissen kausale Zusammenhänge bestehen, können diese über die ,,nach`` -Relation angeordnet werden. Voneinander unabhängige Ereignisse treten in beliebiger Reihenfolge parallel auf. Die Zeitspanne zwischen zwei Ereignissen, die ein Objekt betreffen, entspricht einem Zustand. Ein Zustandsdiagramm stellt Zustände und Ereignisse für eine Klasse dar. Das dynamische Modell beinhaltet alle Zustandsdiagramme, um die Aktivitäten und Interaktionen des gesamten Systems beschreiben zu können.

Eine Zustandsänderung, die durch ein Ereignis ausgelöst wird, heißt Transition. Das Zustandsdiagramm ist ein gerichteter Graph, dessen Knoten Zustände bezeichnen. Die Kanten sind die Transitionen und werden mit dem Namen des zugehörigen Ereignisses beschriftet. Abbildung 3.11 zeigt hierfür die OMT-Notation:


 
Abbildung:  Die Notation für Zustandsdiagramme
18#18

Das Auftreten von «Ereignis_1» führt zu einem Übergang von «Zustand 1» nach «Zustand 2». Ereignisse können Attribute besitzen. In diesem Fall signalisieren sie dem Objekt nicht nur, daß etwas geschehen ist, sondern übermitteln durch die Attribute zusätzlich Datenwerte. Ist für einen Zustand keine Transition für ein bestimmtes Ereignis definiert, wird dieses bei Auftreten in dem Zustand ignoriert. Für Transitionen können Bedingungen durch eine boolesche Funktion formuliert werden. Falls vorhanden, findet der Zustandsübergang bei Auftreten des Ereignisses nur statt, wenn die Bedingungen erfüllt sind. Während eines Zustands kann ein Objekt eine bestimmte Aktivität ausführen. Ein Beispiel hierfür ist das Warten auf einen Tastendruck. Während eine Aktivität eine Zeitdauer besitzt, ist eine Aktion eine momentane Operation ohne Zeitdauer. Aktionen können bei einem Zustandsübergang ausgeführt werden. Beispiele für Aktionen sind interne Steueroperationen wie das Inkrementieren eines Zählers sowie das Generieren eines neuen Ereignisses. In Abbildung 3.11 generiert die Transition das Ereignis «Ereignis_2» für eine Objektklasse.

Zustandsdiagramme können zur Reduzierung der Komplexität verschachtelt werden. Ein Oberzustand wird dabei in mehrere detailliertere Unterzustände verfeinert, die in einem eigenem Diagramm dargestellt werden. Ein Objekt in einem Oberzustand befindet sich daher in genau einem Unterzustand im verschachtelten Diagramm. Weiterhin wird auch die Modellierung von Parallelität innerhalb eines Objekts unterstützt. Auch Ereignisse können in einer Generalisierungshierarchie angeordnet werden. Unterereignisse erben dabei Attribute von Oberereignissen. Das Auftreten eines speziellen Ereignisses löst Transitionen für jedes Vorfahrenereignis aus.

Das dynamische Modell erleichtert die Implementierung der Objektklassen, da die Interaktionen der Menge paralleler Objekte eines Systems graphisch dargestellt werden könnnen. Eine Codegenerierung auf Basis des dynamischen Modells ist allerdings nicht vorgesehen.


next up previous contents
Next: Das Referenzmodell für Open Up: Überblick über die Object Previous: 3.4.1 Objektmodell
Copyright Munich Network Management Team