[Seminarübersicht] ... [Einführung in OMT] ... [Das funktionale Modell]
Das dynamische Modell beschreibt zeitliche Abläufe. Das Modell spezifiziert, wann die Objekte handeln. Es ist vergleichbar mit einem Struktogramm in der strukturierten Programmierung.
In dem dynamischen Modell wird das Verhalten des Systems nach Ergeignissen beschrieben, dabei werden sowohl sequentielle als auch parallele Vorgänge betrachtet.
Das dynamische Modell besteht aus einem Zustandsdiagramm für jede Objektklasse, die ein zeitlich veränderliches Verhalten besitzt.
Vor der Erstellung konkreter Zustandsdiagramme, kann die Erstellung eines Szenarios bzw. eines Ereignispfades sinnvoll sein. Ein Szenario beschreibt eine Folge von Ereignissen bei einer bestimmten Ausführung des Systems (vergleichbar mit Anwendungsfällen, bzw. USE-CASES). An einem Szenario sind im allgemeinen mehrere Objektklassen beteiligt.
In Abb. 18 ist ein Szenario für einen Telefonanruf wiedergegeben. Die Objekte Anrufer, Telefonleitung und Angerufener sind als vertikale Linien dargestellt. Der Zeitablauf schreitet von oben nach unten fort, wobei Abstände keine Rolle spielen. Die horizontalen gerichteten Pfeile repräsentieren Ereignisse, die von dem Sendeobjekt an das Empfangsobjekt gesendet werden. Auch parallele Ereignisse können dargestellt werden. So wird zu einem Zeitpunkt im Beispiel das Ereignis Rufton an den Anrufer gesendet, während der Angerufene das Ereignis Telefon klingelt empfängt.
Abb. 18
Sowohl die Ereignisreihenfolge als auch die beteiligten Objekte, die Ereignisse austauschen, können in einem Szenario übersichtlich dargestellt werden.
Das Zustandsdiagramm, das für jede Objektklasse zu erstellen ist, enthält die folgenden grundlegenden Elemente:
Zustand
Ein Zustand beschreibt die aktuellen Attributwerte und
Verknüpfungen eines Objekts und besitzt eine Zeitdauer.
Im Zustandsdiagramm wird ein Zustand durch ein Rechteck
mit abgerundeten Ecken dargestellt.
Ein Zustand kann mit einer fortdauernden Aktivität
verknüpft sein. Diese Aktivität wird durch die
do-Klausel im Zustandsdiagramm beschrieben. Soll
bei Eintritt in einen Zustand oder bei Verlassen eines
Zustandes immer eine besondere Aktion ausgelöst
werden, so wird dieses durch die entry bzw. exit-Klausel
im Zustandsdiagramm angegeben.
Ereignisse, welche nicht zu einer Transition in einen
anderen Zustand führen - interne Ereignisse - sondern
lediglich im gegenwärtigen Zustand eine Aktion
auslösen, werden durch die Ereignis-Klausel
angegeben.
Aktivitäten
Aktivitäten beschreiben Operationen, die eine
Zeitdauer besitzen und mit einem Zustand verknüpft
sind (Beispielsweise: Cursorblinken).
Aktionen
Aktionen beschreiben Operationen, die keine Zeitdauer
besitzen und im allgemeinen mit einem Ereignis assoziiert
sind. (Beispielsweise: Mausklick öffnet Pop-Up Menü).
Ereignis
Ein Ereignis stellt einen "äußeren
Reiz" auf ein Objekt dar, der das Objekt veranlaßt,
seinen Zustand zu ändern. Dies wird im Diagramm durch
einen gerichteten Pfeil, der vom Anfangs- zum Endzustand
zeigt, dargestellt.
Für das eintretende Ereignis ist es möglich Attribute
anzugeben (bspw. rechter od. linker Mausklick) und das
Ereignis an eine sogenannte Wächterfunktion
(Bedingung) zu binden, welche einen boolischen Ausdruck
darstellt, die bestimmt, ob das Ereignis eine Transition
auslöst oder nicht.
Transition
Der Übergang in einen neuen Zustand wird als Transition
bezeichnet. Im Modell besitzt eine Transition keine
Zeitdauer. Eine Transition kann mit einer Aktion
verknüpft werden.
Es ist auch möglich, daß eine Transition, wenn sie
ausgelöst wird, ein Ereignis an eine andere Objektklasse
sendet. Dies ist in Abb. 19 durch den gepunkteten Pfeil
dargestellt. Diese Angabe ist nicht zwingend notwendig in
dem Zustandsdiagramm, da das Ereignis in dem
Zustandsdiagramm der Objektklasse, an welche das Ereignis
gesendet wird, nochmals dargestellt wird. Es dient jedoch
zur besseren Übersicht.
Abb. 19
Die folgende Abb. 20 ist ein Bespiel für ein denkbares Zustandsdiagramm für einen Verkaufsautomaten. Es enthält einige Transitionen, die nicht mit expliziten Ereignissen, sondern nur mit Wächterfunktionen charakterisiert werden. Daraus wird ersichtlich, das die Transitionen schalten, sobald die Wächterfunktion mit wahr ausgewertet werden kann. Die Transition vom umbenannten Zustand mit der Aktion Artikel ausgeben in den Zustand Bereit ist gänzlich unbeschriftet. Daraus wird deutlich, das diese Transition automatisch feuert, sobald die Aktion Artikel ausgeben beendet worden ist.
Abb. 20
Es ist möglich, ein Zustandsdiagramm weiter zu verfeinern. In Abb. 21 wird die Aktivität Artikel ausgeben aus dem Zustandsdiagramm für den Verkaufsautomaten aus Abb. 20 verfeinert. Dieses Diagramm ist ein Ein-Weg-Diagramm, das einen ausgezeichneten Start- und Endpunkt besitzt. Das Diagramm in Abb. 20 wird respektive als Mehr-Weg-Digramm bezeichnet, das eventuelle notwendige einmalige Initialisierungen des Systems nicht betrachtet.
Der Endpunkt beschreibt, das das Ereignis entnommen beim Erreichen des Endpunktes generiert wird.
Abb. 21
Auch eine Transition kann durch ein weiteres Zustandsdiagramm weiter verfeinert werden. Dies ist in Abb. 22 für die Transition aus dem Zustand Geld kassierend in den unbenannten Zustand mit der Aktivität Artikel testen und Wechselgeld berechnen dargestellt. Es liefert das Ereignis wählen mit dem dazugehörigen Attribut Artikel.
Abb. 22
Unter Zustandsgeneralisierung ist zu verstehen, das Zustande Unterzustände besitzen können, die die Transitionen der Oberzustandes erben. Dadurch wird das Zustandsdiagramm übersichtlicher. Im Zustandsdiagramm wird dies durch ein abgerundetes Rechteck dargestellt, das die Unterzustände beinhaltet (vgl. Abb. 23: Der Zustand Vorwärts der Komponente Getriebe umfaßt die Unterzustände Erster, Zweiter und Dritter).
Das dynamische Modell beschreibt eine Menge von Objekten in einem System, die ihren Zustand unabhängig voneinander ändern können. In Abb. 23 ist das Objektmodell für die Objektklasse Auto mit dem dazugehörigen Zustandsdiagramm dargestellt. Die Objektklasse Auto ist eine Aggregation aus den Komponenten Zündung, Getriebe, Bremse und Gaspedal. Jede Komponente wird in dem dazugehörigen Zustandsdiagramm in einem separatem Rechteck mit abgerundeten Ecken beschrieben. Abb. 23 dient als Beispiel für eine mögliche Aggregationsparallelität. Die Zustände der Komponenten sind weitestgehend unabhängig voneinander. Zu beachten ist jedoch, das die Zündung nur betätigt werden kann, sofern das Getriebe im Leerlauf ist.
Abb. 23
Das dynamische Modell beschreibt zulässige Veränderungen der Objekte des Objektmodells.
Ereignisse können im Objektmodell als Operationen dargestellt werden.
Ein Zustand verfeinert die Attribute und Verknüpfungswerte eines Objektes.
Objekte wechseln niemals ihre Klassenzugehörigkeit, jedoch ihren Zustand. Dadurch verfeinert das dynamische Modell die Beschreibung der Objektklassen.
Im Hinblick auf Vererbung, sei kurz angemerkt, daß auch das dynamische Modell an Unterklassen vererbt werden kann. Dies ist jedoch teilweise problematisch aus Gründen, die hier nicht näher erläutert werden sollen.
[Seminarübersicht] ... [Einführung in OMT] ... [Das funktionale Modell] ... [Seitenanfang]