Een toestandsdiagram, ook gekend als een toestandsmachinediagram, is een soort gedragsdiagram in Unified Modeling Language (UML) dat de overgang tussen verschillende objecten weergeeft. Gebruik onze UML-diagramsoftware om uw eigen toestandsmachinediagram te bouwen, waar ook anderen aan kunnen bijdragen. Ga nu aan de slag met een gratis Lucidchart-account!
Dit artikel leest u in 5 minuten
Wilt u een eigen UML-diagram maken? Probeer Lucidchart. Het is snel, eenvoudig en volledig gratis.
Wat is een toestandsdiagram in UML?
Een toestandsmachine is een apparaat dat de status van een object op een bepaald moment opslaat en deze status kan wijzigen of andere acties kan uitvoeren op basis van de input die het ontvangt. Toestanden verwijzen naar de verschillende combinaties van informatie die een object kan opslaan, niet hoe het zich gedraagt. Om de verschillende toestanden van een object te begrijpen, kunt u alle mogelijke toestanden in kaart brengen en laten zien hoe een object in elke toestand komt. Dit kunt u doen met een UML-toestandsdiagram.
Elk toestandsdiagram begint gewoonlijk met een donkere cirkel die de oorspronkelijke toestand weergeeft, en eindigt met een omrande cirkel die de uiteindelijke toestand voorstelt. Toestandsdiagrammen hebben dus een duidelijk begin- en eindpunt, maar ze zijn niet noodzakelijk de beste manier om een reeks evenementen of vooruitgang weer te geven. Ze worden vooral gebruikt om bepaalde soorten gedrag te illustreren, meer bepaald wijzigingen van één toestand naar een andere.
Toestandsdiagrammen beschrijven hoofdzakelijk toestanden en overgangen. Toestanden worden voorgesteld als rechthoeken met afgeronde hoeken, die gelabeld worden met de naam van de toestand. Overgangen worden voorgesteld door pijlen die van één toestand naar een andere stromen. Hieronder ziet u beide elementen in de context van het leven van een student. Onze UML-diagramtool kan u helpen een eigen toestandsmachinediagram te bouwen.
Toepassingen toestandsdiagram
Net als de meeste UML-diagrammen zijn er meerdere mogelijke toepassingen voor toestandsdiagrammen. Dit zijn de belangrijkste mogelijkheden:
-
Event-gebaseerde objecten weergeven in een reactief systeem.
-
Use case-scenario's illustreren in een zakelijke context.
-
Beschrijven hoe een object verschillende toestanden doorloopt.
-
Het algemene gedrag van een toestandsmachine of het gedrag van een gerelateerde reeks toestandsmachines weergeven.
Diagrammen maken gaat snel en eenvoudig met Lucidchart. Start vandaag nog een gratis proefperiode en u kunt meteen beginnen met het maken en delen van diagrammen.
Maak een UML-diagramSymbolen en componenten van een toestandsdiagram
U kunt veel verschillende vormen in een toestandsdiagram opnemen, zeker als u het met een ander diagram combineert. Deze lijst biedt een overzicht van de vaakst gebruikte vormen:
Samengestelde status
Een toestand waarin subtoestanden zijn ingebed. Het onderstaande voorbeeld toont het toestandsdiagram van een universiteit. "Registratie" is hier de samengestelde toestand die de verschillende subtoestanden van het registratieproces bevat.
Pseudotoestand
Een ruitsymbool dat een dynamische staat voorstelt met mogelijke resultaten als vertakkingen.
Gebeurtenis
Een instantie die een overgang triggert, met de naam als label boven de pijl in kwestie. In dit geval is "einde van de colleges" (classes end) de gebeurtenis die het einde van de toestand "wordt onderwezen" (being taught) en het begin van de toestand "eindexamens" (final exams) teweegbrengt.
Uittredepunt
Het punt waar er zich een uittrede voordoet voor een samengestelde toestand of toestandsmachine, aangegeven door een cirkel met een X. Het uittredepunt wordt meestal gebruikt als het proces niet is voltooid, maar moet worden verlaten voor een fout of een ander probleem.

Begintoestand
De eerste toestand in het proces, voorgesteld door een donkere cirkel met een overgangspijl.
guard
Een booleaanse toestand die een overgang toelaat of tegenhoudt, geschreven boven de overgangspijl.
Regio
Een rechthoek met afgeronde hoeken die de huidige aard van een object weergeeft.
Subtoestand
Een toestand die binnen het gebied van een samengestelde toestand valt. In het onderstaande voorbeeld toestandsmachinediagram van een universiteit is "open voor inschrijving" (Open for enrollment) een subtoestand in de grotere, samengestelde toestand "inschrijving" (Enrollment).
Terminator
Een cirkel met een stip erin die weergeeft dat een proces is afgelopen.

Overgang
Een pijl die van één toestand naar een andere loopt om een wijzigende toestand weer te geven.
Overgangsgedrag
Gedrag dat zich voordoet tijdens de overgang, boven de pijl beschreven.
Trigger
Een soort bericht dat een object actief van toestand doet veranderen, boven de overgangspijl beschreven. In dit voorbeeld is "probleem met reservering" de trigger die de persoon naar het reisbureau in de luchthaven zou sturen in plaats van de volgende stap in het proces.
Voorbeelden toestandsdiagram
Voorbeeld van een toestandsdiagram voor agendabeschikbaarheid
Dit voorbeeld toont het proces dat wordt doorlopen als iemand een afspraak op zijn agenda plaatst. In de samengestelde status "Datum controleren" (Check date) controleert het systeem de agenda op beschikbaarheid in enkele verschillende subtoestanden. Als het tijdstip niet beschikbaar is, zal het proces worden verlaten. Als het wel beschikbaar is, zal de afspraak aan de agenda worden toegevoegd.

Voorbeeld van een toestandsdiagram voor een universiteit
Dit toestandsdiagram toont het inschrijvingsproces en het doorlopen van colleges op van een universiteit. De samengestelde toestand "Inschrijving" (Enrollment) bestaat uit verschillende subtoestanden die studenten door het inschrijvingsproces leiden. Als de student is ingeschreven, verandert de toestand naar "wordt onderwezen" en uiteindelijk naar "eindexamens".
Voorbeeld van een toestandsdiagram voor inchecken op een vliegveld
Het volgende voorbeeld vereenvoudigt de procedure die moet worden gevolgd bij het inchecken op een luchthaven. Een toestandsdiagram kan luchtvaartmaatschappijen helpen om processen te stroomlijnen en onnodige stappen te elimineren.