User manual
Programmieren mit dem UML Zustandsdiagramm Seite: 107/152
© Laser & Co. Solutions GmbH Benutzerhandbuch SiSy
9 Programmieren mit dem UML Zustandsdiagramm
9.1 Einführung in die Zustandsmodellierung
Viele Problemstellungen in der Softwareentwicklung lassen sich als eine Folge von Zu-
ständen und Zustandsübergängen (Zustandsautomat, state machine) verstehen und
auch als solche implementieren. Dabei handelt es sich im Quellcode um oft recht auf-
wendige Fallunterscheidungen bzw. if/else Konstruktionen. SiSy ist mit dem entspre-
chenden Add-On in der Lage, aus UML-Zustandsdiagrammen den entsprechenden
Quellcode automatisch zu generieren.
Notationsübersicht Zustandsdiagramm (Auszug)
Notation Bezeichnung Beschreibung
Startknoten Ein Startknoten aktiviert Ab-
läufe. Startknoten besitzen nur
ausgehende Kanten.
Zustand Zustände eines Objektes sind
gekennzeichnet durch zu-
standsspezifische Aktivitäten
beim Einnehmen, während
und beim Verlassen des Zu-
standes (entry, do, exit)
Zustands-
Übergangs
Ein Zustandsübergang (transi-
tion) repräsentiert mindestens
zwei Aktivitäten. Eine Aktivität
vom Typ „exit“ beim alten und
eine Aktivität vom Typ „entry“
beim neuen Zustand.
Endknoten Ein Endknoten beendet Abläu-
fe und besitzt nur eingehende
Kanten.
9.2 Erstellen von Zustandsdiagrammen
Hinweis:
Dieses Beispiel kann mit der Ausgabe SiSy Microcontroller ++ und SiSy AVR erstellt
werden.
Das Zustandsdiagramm mit Quellcodegenerierung erhalten Sie über ein spezielles
Attribut im Klassendiagramm der UML. Dieses Zustandsattribut kann in mit einem Zu-
standsdiagramm verfeinert werden. Dabei wird der Quellcode in spezielle Klassenme-
thoden generiert. Der Entwickler kann selbst Methoden definieren, die an der Verarbei-
tungslogik des Zustandsautomaten (state machine) beteiligt sind. Voraussetzung ist es,
ein neues Projekt mit einem Klassendiagramm anzulegen.
9.2.1 Zielstellung
Die Aufgabe welche mit einem Zustandsdiagramm gelöst werden soll lautet wie folgt:
Ein Controller steuert einen Wächter (guard) der einen Sensor überwacht und entspre-
chend einen Aktor (actuator) ansteuert. Als Referenzhardware dient ein myAVR Board.