Es gibt zwei unterschiedliche „Lesarten“ eines Zustandsdiagramms, die je nach Zweck zum Einsatz kommen.
Der Verhaltenszustandsautomat (Behavioral State Machine) beschreibt, wie sich ein Objekt tatsächlich verhält – inklusive aller internen Aktivitäten wie entry, do und exit.
Der Protokollzustandsautomat (Protocol State Machine) beschreibt dagegen nur, in welcher Reihenfolge Methodenaufrufe erlaubt sind – als eine Art Vertrag zwischen einem Objekt und seinen Aufrufern. Interne Aktionen werden hier nicht angegeben; stattdessen stehen an den Übergängen Vor- und Nachbedingungen.
| Verhaltenszustandsautomat | Protokollzustandsautomat | |
| Leitfrage | Wie verhält sich das Objekt? | Welche Aufrufreihenfolge ist erlaubt? |
| Inhalt der Zustände | entry / do / exit, interne Transitionen | nur der Name des Zustands |
| Typischer Einsatz | Implementierungsnahe Verhaltensbeschreibung | Schnittstellenbeschreibung / Vertrag |
Ein Drucker lässt sich auf beide Arten modellieren:
Verhaltenszustandsautomat (mit inneren Aktivitäten):
Protokollzustandsautomat (nur erlaubte Reihenfolge):
|
Bereit
|
start()
→
|
Druckt
|
fertig()
→
|
Bereit
|
Für die folgenden Übungen dieses Kapitels arbeiten wir ausschließlich mit Protokollzustandsautomaten – sie sind einfacher zu erstellen und stehen im Fokus der Prüfungsvorbereitung.