Zustandsdiagramme, oder Zustandsmaschinen-Diagramme, sind eine leistungsfähige Komponente der Unified Modeling Language (UML) zur Modellierung des dynamischen Verhaltens von Systemen verwendet wird. Sie veranschaulichen, wie ein Objekt oder System auf Ereignisse hin zwischen verschiedenen Zuständen wechselt, wodurch sie ideal für reaktive Systeme wie einen Bank-Automaten (ATM) sind. Diese Fallstudie untersucht, wie ein Zustandsdiagramm das Verhalten eines ATM darstellen kann, einem vertrauten realen System mit klaren Zuständen und ereignisgesteuerten Übergängen. Durch die Betrachtung des ATM-Lebenszyklus werden zentrale Konzepte des Zustandsdiagramms hervorgehoben, darunter Zustände, Übergänge, Aktionen, zusammengesetzte Zustände und ereignislose Übergänge. Diese Fallstudie zeigt auch, wie Werkzeuge wie Visual Paradigm die Erstellung solcher Diagramme vereinfachen können.
Unten ist ein Zustandsmaschinen-Diagramm dargestellt, das mit dem Zustandsmaschinen-Diagramm-Modellierungs-Editor von Visual Paradigm erstellt wurde:

Zustandsdiagramme erfassen das Verhalten eines Systems durch die Definition von:
Zustände: Spezifische Bedingungen oder Situationen während des Lebenszyklus des Systems (z. B. „Ausgeschaltet“ oder „Kunde wird bedient“).
Übergänge: Bewegungen zwischen Zuständen, die durch Ereignisse ausgelöst werden (z. B. Kartensteckvorgang).
Aktionen: Aktivitäten, die ausgeführt werden, wenn ein Zustand betreten, verlassen oder zwischen Zuständen gewechselt wird (z. B. Karte lesen).
Zusammengesetzte Zustände: Zustände, die Unterzustände enthalten, um hierarchische Modellierung zu ermöglichen (z. B. „Kunde wird bedient“ mit Unterzuständen wie „Kundenauthentifizierung“).
Anfangs- und Endzustände: Die Ausgangs- und möglichen Endpunkte des Systemverhaltens.
Ereignislose Übergänge: Automatische Übergänge ohne explizite Ereignisse (z. B. Wechsel vom Selbsttest zum Ruhezustand).
Diese Konzepte sind entscheidend für die Modellierung von Systemen, deren Verhalten von dem aktuellen Zustand und externen Reizen abhängt, wie beispielsweise bei einem ATM.
Ein Bank-ATM erleichtert Kundentransaktionen wie Bargeldabhebungen, Einzahlungen und Kontostandabfragen. Sein Verhalten ist ereignisgesteuert und wechselt zwischen verschiedenen Zuständen, abhängig von Benutzeraktionen (z. B. Kartensteckvorgang, PIN-Eingabe) oder Systembedingungen (z. B. Bestehen einer Selbsttestphase). Ein Zustandsdiagramm ist ein effektives Werkzeug, um dieses Verhalten zu modellieren, da es die Zustände, Übergänge und Aktionen des ATM klar definiert und eine strukturierte Darstellung für Design, Implementierung und Wartung gewährleistet.
Der ATM arbeitet in folgenden Zuständen:
Ausgeschaltet
Beschreibung: Der ATM ist ausgeschaltet und kann nicht mit Benutzern interagieren. Dies ist der Ausgangszustand, bevor das System aktiviert wird.
Wichtige Merkmale: Es sind keine Operationen möglich, bis der ATM eingeschaltet ist.
Selbsttest
Beschreibung: Beim Einschalten geht der ATM in diesen Zustand, um einen Diagnosetest durchzuführen, bei dem Komponenten wie der Kartenleser, die Tastatur und der Bargeldausgabemechanismus überprüft werden.
Ergebnisse:
Bestanden: Der ATM wechselt in den Zustand „Wartend“.
Fehlgeschlagen: Der ATM wechselt in den Zustand „Außer Betrieb“.
Wichtige Merkmale: Dieser Zustand stellt sicher, dass der ATM betriebsbereit ist, bevor er Kunden bedient.
Außer Betrieb
Beschreibung: Wird eingeschaltet, wenn der Selbsttest fehlschlägt oder ein kritischer Fehler auftritt (z. B. Ausfall des Bargeldausgabemechanismus). Der ATM ist nicht betriebsbereit und erfordert Wartung.
Wichtige Merkmale: Funktioniert als Endzustand, bis er repariert oder zurückgesetzt wurde.
Wartend
Beschreibung: Der ATM ist eingeschaltet, betriebsbereit und wartet darauf, dass ein Kunde eine Transaktion durch Einfügen einer Bank- oder Kreditkarte startet.
Wichtige Merkmale: Der primäre Wartezustand für die Kundeninteraktion.
Kunde bedienen
Beschreibung: Ein zusammengesetzter Zustand, der eingelegt wird, wenn ein Kunde eine Karte einführt. Er umfasst alle Interaktionen mit dem Kunden, von der Authentifizierung bis zur Abschluss der Transaktion.
Eingangsaktion: karteLesen (der ATM liest die Karteninformationen ein).
Ausgangsaktion: Karte austreten lassen (der ATM gibt die Karte frei).
Unterzustände:
Kundenauthentifizierung
Der ATM fordert den Kunden auf, eine PIN einzugeben und überprüft sie.
Wenn die PIN falsch ist, kann der ATM Wiederholungsversuche zulassen (z. B. bis zu drei Versuche), bevor er die Karte auswirft.
Transaktion auswählen
Der Kunde wählt eine Transaktionstyp aus (z. B. Abhebung, Einzahlung, Kontostandabfrage).
Transaktion
Der ATM verarbeitet die ausgewählte Transaktion (z. B. Ausgabe von Bargeld, Annahme einer Einzahlung, Anzeige des Kontostands).
Nach Abschluss kehrt der ATM in den „Wartezustand“ zurück.
Der ATM wechselt zwischen Zuständen basierend auf Ereignissen oder Bedingungen. Die wichtigsten Übergänge sind:
|
Übergang |
Von Zustand |
Zu Zustand |
Auslöser |
Aktion |
|---|---|---|---|---|
|
Einschalten |
Ausgeschaltet |
Selbsttest |
ATM ist eingeschaltet |
Startvorgang durchführen (Hardware initialisieren) |
|
Selbsttest erfolgreich |
Selbsttest |
Wartezustand |
Keine (auslösefrei) |
Keine |
|
Selbsttest fehlgeschlagen |
Selbsttest |
Außer Betrieb |
Test fehlgeschlagen |
Keine |
|
Karteingabe |
Wartend |
Kunde wird bedient |
Kunde steckt Karte ein |
Karte lesen |
|
Authentifizierung erfolgreich |
Kundenauthentifizierung |
Transaktion auswählen |
Gültige PIN eingegeben |
Keine |
|
Authentifizierungsfehler (nach Wiederholungen) |
Kundenauthentifizierung |
Wartend |
Ungültige PIN (Anzahl der Versuche überschritten) |
Karte auswerfen |
|
Transaktion ausgewählt |
Transaktion auswählen |
Transaktion |
Kunde wählt Transaktion aus |
Keine |
|
Transaktion abgeschlossen |
Transaktion |
Wartend |
Transaktion beendet |
Karte austreten |
|
Abbrechen |
Jeder Unterzustand im Zustand „Kunde bedienen“ |
Wartend |
Kunde bricht ab |
Karte austreten |
Dieses Zustandsdiagramm veranschaulicht mehrere zentrale Konzepte von Zustandsdiagrammen:
Zustände: Das Verhalten der Geldautomaten ist in verschiedene Zustände unterteilt (z. B. Ausgeschaltet, Wartend, Kunde bedienen), wobei jeder Zustand einen bestimmten Zustand darstellt.
Übergänge: Ereignisse wie das Einstecken der Karte oder die PIN-Überprüfung lösen Zustandswechsel aus und definieren klar den Ablauf des Systems.
Aktionen: Eingangshandlungen (z. B. Karte lesen) und Ausgangshandlungen (z. B. Karte austreten) legen Aktivitäten während Zustandswechsel fest.
Zusammengesetzte Zustände: Der Zustand „Kunde bedienen“ enthält Unterzustände (Kundenauthentifizierung, Transaktion auswählen, Transaktion), was eine hierarchische Modellierung ermöglicht.
Anfangs- und Endzustände: „Ausgeschaltet“ ist der Anfangszustand, während „Außer Betrieb“ bis zur Wartung als Endzustand fungiert.
Ereignislose Übergänge: Der Übergang von „Selbsttest“ zu „Wartend“ erfolgt automatisch, wenn der Test erfolgreich ist, ohne dass ein explizites Ereignis erforderlich ist.
Zustandsdiagramme eignen sich ideal zur Modellierung eines Geldautomaten, weil:
Endliche Zustände: Der Geldautomat verfügt über eine klare Menge an Zuständen (z. B. Wartend, Kunde bedienen), die sein Verhalten definieren.
Ereignisgesteuertes Verhalten: Übergänge werden durch Benutzeraktionen (z. B. Kartensteckvorgang, PIN-Eingabe) oder Systembedingungen (z. B. Ergebnisse der Selbsttestphase) ausgelöst.
Hierarchische Struktur: Komposite Zustände wie „Kunde bedienen“ ermöglichen eine detaillierte Modellierung komplexer Interaktionen.
Klarheit für Stakeholder: Das Diagramm bietet eine visuelle Darstellung, die Entwickler, Designer und Stakeholder leicht verstehen können, was bei der Systemgestaltung und -wartung hilft.
Visual Paradigm ist ein leistungsfähiges UML-Modellierungswerkzeug, das die Erstellung von Zustandsdiagrammen vereinfacht. Zu seinen Funktionen gehören:
Ziehen-und-Abllegen-Schnittstelle: Fügen Sie Zustände, Übergänge und Aktionen einfach hinzu.
Simulationswerkzeuge: Testen Sie Zustandsübergänge, um die Logik des Diagramms zu überprüfen.
Vorlagen: Verwenden Sie vorgefertigte Vorlagen für Systeme wie Geldautomaten, um das Modellieren zu beschleunigen.
Codegenerierung: Generieren Sie Code-Skelette (z. B. Java, C++) aus dem Diagramm.
Zusammenarbeit: Echtzeit-Editierung und Kommentarfunktion für gemeinsame Projekte.
Um das ATM-Zustandsdiagramm in Visual Paradigm zu erstellen:
Öffnen Sie Visual Paradigm und wählen SieDiagramm > Neu > Zustandsmaschinen-Diagramm.
Fügen Sie Zustände (z. B. Ausgeschaltet, Selbsttest, Bereitschaft) mit dem Ziehen-und-Abllegen-Editor hinzu.
Zeichnen Sie Übergänge mit geeigneten Auslösern (z. B. „Einschalten“, „Kartensteckvorgang“).
Definieren Sie Aktionen (z. B. readCard, ejectCard) für Eintritt, Austritt oder Übergänge.
Verwenden Sie die Simulation, um den Ablauf zu testen und die Genauigkeit zu gewährleisten.
Das Bank-ATM-Zustandsdiagramm veranschaulicht effektiv, wie UML-Zustandsdiagramme das Verhalten von realen Systemen modellieren können. Durch die Definition klarer Zustände, ereignisgesteuerter Übergänge und Aktionen bietet das Diagramm eine strukturierte Darstellung des ATM-Betriebs. Dieser Ansatz verbessert das Verständnis, erleichtert die Systemgestaltung und unterstützt die Implementierung und Wartung. Werkzeuge wie Visual Paradigm erleichtern die Erstellung, das Testen und den Austausch solcher Diagramme und sorgen für Genauigkeit und Zusammenarbeit bei der Systementwicklung.