Das Verhalten von Modellelementen, wie Klassen, kann durch UML-Zustandsdiagramme beschrieben werden. Sie beschreiben die möglichen Abfolgen von Zuständen und Aktionen die ein Modellelement in seinem Lebenszyklus durchlaufen kann, während es auf diskrete Ereignisse reagiert. Ein Zustandsdiagramm ist die Beschreibung einer Zustandsmaschine. Sie realisiert das im Diagramm spezifizierte Verhalten.
Aufgabe dieser Projektarbeit war es, einen Compiler zu erstellen, der ein UML-Zustandsdiagramm in eine lauffähige Zustandsmaschine übersetzt. Diese soll durch eine beliebige Klasse des Benutzers eingebunden werden können. Indem der Benutzer Ereignisse an die generierte Zustandsmaschine schickt, geht die Zustandsmaschine in die durch das Diagramm spezifizierte nachfolgende Zustandskonfiguration über und löst die nötigen Aktionen und Aktivitäten aus. Als Eingabe dient ein Zustandsdiagramm als XMI-Datei. XMI ist ein XML-Dokumenttyp zur Beschreibung von UML-Modellen. Der Benutzer kann als Aktionen einfache Java-Anweisungen in das Zustandsdiagramm schreiben. Als Bedingungen dienen Java-Ausdrücke. Diese werden bei der Generierung in die Zustandsmaschine übernommen. Ausgabe sind Java-Klassen (Version 1.2), die das eingegebene Zustandsdiagramm als Zustandsmaschine ausführen lassen.
Das Ergebnis realisiert einen großen Teil der UML-Spezifikation für Zustandsmaschinen. Um den Rahmen einer Projektarbeit nicht zu sprengen, wurden Elemente, wie Zusammengesetzte Transitionen, deferred events und Sub-Zustandsmaschinen nicht implementiert.
Bearbeiter:
Timm Schäfer
Aufgabensteller:
Prof. Dr. Martin Wirsing
Betreuer:
Alexander Knapp
Fertigstellung:
September 2000