![A 16:10 hero banner styled graphic featuring a clean, modern illustration. The background is subtle and uses glowing accents, circuit board traces, and digital symbols with blues, greens, and white colors. Vertical columns define main participants like "Card Reader", "ATM Interface", "Bank Server", and "Cash Dispenser" across the top. Arrows with numbered steps (1, 2, 3...) indicate the sequential flow of communication, beginning with a "Customer" actor on the left. Key sections highlight the main decision structures using "alt [PIN Invalid] / [PIN Valid]" and "alt [Insufficient Funds] / [Account Approved]", clearly detailing both successful and alternative paths of interaction. No product logos are included. At the very top center, the main title in clean fonts reads "BUILDING A ROBUST ATM SEQUENCE DIAGRAM" with a subtitle "STEP-BY-STEP PLANTUML GUIDE".](https://www.vpascode.com/wp-content/uploads/2026/08/atm-sequence-diagram-plantuml-guide.jpg)
Die Gestaltung systemischer Finanztransaktionen erfordert absolute Klarheit. Egal, ob Sie eine Banken-Engine entwerfen, einen veralteten Workflow dokumentieren oder Ingenieurteams schulen, ein PlantUML-Sequenzdiagramm ist eine der effektivsten Möglichkeiten, zeitlich geordnete Interaktionen zwischen Systemkomponenten zu visualisieren.
In diesem Tutorial führe ich Sie Schritt für Schritt durch meinen genauen Gedankengang beim Erstellen eines umfassenden ATM-Geldabhebungs-Sequenzdiagramm von Grund auf mit PlantUML. Wir behandeln die Einrichtung von Teilnehmern, Nachrichtenflüsse und verschachtelte bedingte Verzweigungen zur Fehlerbehandlung – alles mit VPasCode, unserem kostenlosen Diagramm-as-Code-Tool und Online-PlantUML-Editor.

Schritt 1: Einrichten des Titels und automatischer Schrittzählung
Ich beginne meine PlantUML-Diagramme immer mit klaren globalen Konfigurationen. Beim Modellieren von Finanzoperationen wie einer ATM-Abhebung ist es für Entwickler und Prüfer entscheidend, die Reihenfolge der Ausführung zu verfolgen.
Um dies zu erreichen, beginne ich mit dem @startuml -Tag, definiere einen beschreibenden Titel und aktiviere die autonumber -Funktion.
@startuml
title ATM-Geldabhebungs-Sequenzdiagramm
autonumber
Warum verwenden Sie autonumber? Ohne automatische Nummerierung müssen Prüfer die Sequenzlinien manuell verfolgen, um die Reihenfolge zu verstehen. Die Durchsetzung einer sequenziellen Nummerierung indexiert automatisch jede Anfrage und Antwort, wodurch das Querverweisen während Architekturprüfungen völlig problemlos wird.
Schritt 2: Definieren von Akteuren und Systemteilnehmern
Als Nächstes identifiziere ich die unterschiedlichen Entitäten, die an der Transaktion beteiligt sind. Ich möchte menschliche Akteure von Backend-Komponenten und Hardware-Subsystemen trennen.
Anstatt, dass PlantUML Teilnehmer implizit deklariert, wenn Nachrichten gezeichnet werden, definiere ich sie explizit am Anfang. Dadurch wird sichergestellt, dass sie in einer logischen, von links nach rechts angeordneten Reihenfolge erscheinen, die ihre architektonische Grenze widerspiegelt:
actor Kunde
participant "ATM-Oberfläche" als ATM
participant "Kartenleser" als Leser
participant "Bank-Server" als Bank
participant "Geldausgabemodul" als Ausgabemodul
Entwurfsbegründung:
Aktivität Kunde: Stellt den menschlichen Benutzer dar, der die Aktion initiiert.Teilnehmer ... als Alias: Zuweisung kurzer Aliase wieGeldautomat,Lesegerät, undBankmacht den Rest des Skripts sauber und lesbar, ohne lange Anzeigestringe zu wiederholen.- Durch die Platzierung von
LesegerätzwischenKundeundGeldautomatenschnittstelle, spiegele ich genau die physische Reihenfolge der Karteinsteckung vor den Software-UI-Interaktionen wider.
Schritt 3: Modellierung des initialen Authentifizierungsablaufs
Nach der Deklaration der Teilnehmer beginne ich mit der Abbildung der glücklichen Pfad-Initialisierung: Karte einstecken, Daten lesen, PIN abfragen und Kontakt zum zentralen Bankserver herstellen.
Kunde → Lesegerät: Karte einstecken
Lesegerät → Geldautomat: Karteninformationen lesen
Geldautomat → Kunde: PIN abfragen
Kunde → Geldautomat: PIN eingeben
Geldautomat → Bank: Karte und PIN überprüfen
Beachten Sie, dass synchrone Nachrichten feste Pfeile (->). Die Kartenhardware löst die Geldautomatensoftware aus, die den Benutzer auffordert, Eingaben zu tätigen, diese erfasst und die Authentifizierungsdaten sicher an dieBankServer weiterleitet.
Schritt 4: Strukturierung der Authentifizierungsverzweigung mitaltBlöcken
Realweltsysteme versagen, und Sequenzdiagramme müssen Fehlerzustände explizit kommunizieren. Sobald der Geldautomat die Überprüfung bei der Bank anfordert, können zwei Ergebnisse eintreten: Authentifizierung schlägt fehl oder gelingt.
Um bedingte Logik in PlantUML darzustellen, verwende ich einenalt / sonst / ende block:
alt PIN ungültig
Bank --> ATM: Authentifizierung fehlgeschlagen
ATM -> Kundin: Zeige "Ungültige PIN"-Nachricht an
ATM -> Lesegerät: Karte austreten lassen
Lesegerät --> Kundin: Karte zurückgeben
sonst PIN gültig
Bank --> ATM: Authentifizierung erfolgreich
ATM -> Kundin: Aufforderung zur Transaktionsauswahl und Betragseingabe
Kundin -> ATM: Wähle "Abheben" und gebe Betrag ein
ATM -> Bank: Anforderung zur Abhebungsautorisierung (Betrag)
...
ende
Wichtige Techniken verwendet:
- Punktierte Rückkehrpfeile (
-->) signalisieren asynchrone Antwortnachrichten zurück an die aufrufenden Komponenten. - Klare Blockbezeichnungen wie
[PIN ungültig]und[PIN gültig]informieren Softwareentwickler sofort, wie Ausnahmeflüsse beendet werden (z. B. Anzeigen einer Fehlermeldung, Austreten der Karte und Rückgabe des Geräts).
Schritt 5: Verschachtelte Logik für die Kontoberechtigung und Bargeldausgabe
Sobald die Authentifizierung bestätigt ist, fordert der Benutzer eine Abhebung an. Die Bank muss jedoch Kontostände und Tageslimits überprüfen. Um diese sekundäre Überprüfung darzustellen, verschachtle ich einen zweiten alt Block innerhalb des PIN gültig Zweig.
Wenn das Guthaben nicht ausreicht, wird die Transaktion sicher beendet. Wenn die Genehmigung erteilt wird, belastet die Bank das Konto, aktiviert den Bargeldausgabemechanismus, gibt Bargeld aus, wirft die Karte aus und bietet eine optionale gedruckte Quittung an.
alt Unzureichendes Guthaben / Tageslimit überschritten
Bank --> ATM: Transaktion abgelehnt
ATM -> Kundin: Fehlermeldung anzeigen
ATM -> Lesegerät: Karte austreten lassen
Lesegerät --> Kundin: Karte zurückgeben
sonst Konto genehmigt
Bank -> Bank: Kontostand belasten
Bank --> ATM: Transaktion genehmigt
ATM -> Ausgabegerät: Bargeld ausgeben
Ausgabegerät --> ATM: Bargeld bereit
ATM -> Kundin: Bargeld präsentieren
Kundin -> ATM: Bargeld entnehmen
ATM -> Lesegerät: Karte austreten lassen
Lesegerät --> Kundin: Karte zurückgeben
ATM -> Kundin: Quittung ausdrucken (optional)
ende
Pro-Tipp: Beachten Sie den internen Aufruf Bank -> Bank: Kontostand belasten. Selbstverweisende Pfeile in PlantUML eignen sich ideal, um interne Backend-Zustandsaktualisierungen hervorzuheben, die keine externen Netzwerkkommunikationen erfordern.
Der vollständige PlantUML-Skript
Hier ist der vollständige, zusammengestellte Quellcode für unser ATM-Bargeldabhebungs-Sequenzdiagramm. Sie können diesen Code direkt in Ihren bevorzugten kostenlosen PlantUML-Editor einfügen, um ihn zu bearbeiten oder Vektorgrafiken darzustellen:
@startuml
title Ablaufdiagramm für Bargeldabhebung an einem Geldautomaten
autonumber
aktor Kunde
teilnehmer "ATM-Oberfläche" als ATM
teilnehmer "Kartenleser" als Leser
teilnehmer "Bankserver" als Bank
teilnehmer "Bargeldausgabe-Einheit" als Ausgabegerät
Kunde -> Leser: Karte einlegen
Leser -> ATM: Karteninformationen lesen
ATM -> Kunde: Aufforderung zur PIN-Eingabe
Kunde -> ATM: PIN eingeben
ATM -> Bank: Karte und PIN überprüfen
alternativ PIN ungültig
Bank --> ATM: Authentifizierung fehlgeschlagen
ATM -> Kunde: Zeige "Ungültige PIN"-Nachricht an
ATM -> Leser: Karte zurückwerfen
Leser --> Kunde: Karte zurückgeben
sonst PIN gültig
Bank --> ATM: Authentifizierung erfolgreich
ATM -> Kunde: Aufforderung zur Auswahl der Transaktion und zum Betrag
Kunde -> ATM: Wähle "Abhebung" und gebe Betrag ein
ATM -> Bank: Anforderung zur Genehmigung der Abhebung (Betrag)
alternativ Unzureichendes Guthaben / Tageslimit überschritten
Bank --> ATM: Transaktion abgelehnt
ATM -> Kunde: Zeige Fehlermeldung an
ATM -> Leser: Karte zurückwerfen
Leser --> Kunde: Karte zurückgeben
sonst Konto genehmigt
Bank -> Bank: Buchung des Kontostands
Bank --> ATM: Transaktion genehmigt
ATM -> Ausgabegerät: Bargeld ausgeben
Ausgabegerät --> ATM: Bargeld bereit
ATM -> Kunde: Bargeld präsentieren
Kunde -> ATM: Bargeld entnehmen
ATM -> Leser: Karte zurückwerfen
Leser --> Kunde: Karte zurückgeben
ATM -> Kunde: Beleg ausdrucken (optional)
ende
ende
@enduml 
Warum Ihre Ablaufdiagramme mit VPasCode rendern?
Die Erstellung komplexer Diagramme mit Code sollte keine aufwendigen lokalen Umgebungskonfigurationen oder manuelle Kompilierung über die Befehlszeile erfordern.VPasCode von Visual Paradigm bringt sofortige Darstellung und leistungsstarke KI-Unterstützung direkt in Ihren Browser:
- Automatische Format-Erkennung: Fügen Sie PlantUML-, Mermaid-, Graphviz- oder D2-Skripte ein – VPasCode erkennt sofort das DSL-Format und rendert in Echtzeit.
- KI-Code-Fehlerbehebung: Stecken Sie bei einem Syntaxfehler fest? Klicken Sie auf „Von KI beheben“ um durchsichtige, nebeneinander stehende Unterschiede anzuzeigen und Syntaxfehler automatisch zu beheben.
- KI-Übersetzung in mehrere Sprachen: Übersetzen Sie Diagrammbezeichnungen und Nachrichten für internationale technische Teams in Sekunden einfach und problemlos.
- Export in hoher Auflösung: Laden Sie saubere, skalierbare SVG-Vektorgrafiken oder hochauflösende PNG-Bilder für technische Dokumentationen und Präsentationen herunter.



