State Machine-diagram en Statechart-diagram in UML

Wat is een staatsmachinediagram?

Staat diagram worden gebruikt om het gedrag van een softwaresysteem vast te leggen. UML State-machinediagrammen kunnen worden gebruikt om het gedrag van een klasse, een subsysteem, een pakket of zelfs een heel systeem te modelleren. Het wordt ook wel een Statechart of State Transition-diagram genoemd.

Wat is een Statechart-diagram?

Statechart-diagrammen bieden ons een efficiënte manier om de interacties of communicatie te modelleren die plaatsvinden binnen de externe entiteiten en een systeem. Deze diagrammen worden gebruikt om het op gebeurtenissen gebaseerde systeem te modelleren. Een toestand van een object wordt bestuurd met behulp van een gebeurtenis. Statechart-diagrammen worden gebruikt om verschillende toestanden van een entiteit binnen het applicatiesysteem te beschrijven.

Er zijn in totaal twee soorten toestandsmachinediagrammen in UML:

1. Gedragstoestandsmachinediagram

  • Het legt het gedrag vast van een entiteit die in het systeem aanwezig is.
  • Het wordt gebruikt om de specifieke implementatie van een element weer te geven.
  • Het gedrag van een systeem kan worden gemodelleerd met behulp van een gedragsstatusmachinediagram in OOAD.

2. Protocolstatusmachinediagram

  • Deze diagrammen worden gebruikt om het gedrag van een protocol vast te leggen.
  • Het geeft weer hoe de status van het protocol verandert met betrekking tot de gebeurtenis. Het vertegenwoordigt ook overeenkomstige veranderingen in het systeem.
  • Ze vertegenwoordigen niet de specifieke implementatie van een element.

Waarom een ​​staatsmachinediagram?

Statechart-diagram wordt gebruikt om het dynamische aspect van een systeem vast te leggen. State Machine-diagrammen worden gebruikt om het gedrag van een applicatie weer te geven. Een object doorloopt tijdens zijn levensduur verschillende toestanden. De levensduur van een object blijft bestaan ​​totdat het programma wordt beëindigd. Het object gaat vanuit meerdere toestanden, afhankelijk van de gebeurtenis die binnen het object plaatsvindt. Elke staat vertegenwoordigt een aantal unieke informatie over het object.

Statechart-diagrammen worden gebruikt om interactieve systemen te ontwerpen die reageren op interne of externe gebeurtenissen. Statechart-diagram in UML visualiseert de uitvoeringsstroom van de ene toestand naar de andere toestand van een object.

Het geeft de toestand van een object weer vanaf het moment dat het is gemaakt totdat het object wordt vernietigd of beëindigd.

Het primaire doel van een toestandsdiagram is om interactieve systemen te modelleren en elke toestand van een object te definiëren. Statechart-diagrammen zijn ontworpen om het dynamische gedrag van een applicatiesysteem vast te leggen. Deze diagrammen worden gebruikt om verschillende toestanden van een systeem en entiteiten binnen het systeem weer te geven.

Notatie en symbool voor staatsmachinediagram (Statechart-diagram)

Hieronder staan ​​de verschillende notaties die in het state chart diagram worden gebruikt. Al deze notaties vormen samen één diagram.

Notaties van UML-statusdiagrammen
UML-statusdiagramnotaties

Oorspronkelijke toestand

Het initiële statussymbool wordt gebruikt om het begin van een statusmachinediagram aan te geven.

Eindtoestand:

Dit symbool wordt gebruikt om het einde van een toestandsmachinediagram aan te geven.

Beslissingsbox

Er staat een voorwaarde in. Afhankelijk van het resultaat van een geëvalueerde bewakingsconditie wordt een nieuw pad gevolgd voor de uitvoering van het programma.

Overgang

Een overgang is een verandering van de ene toestand naar een andere toestand die plaatsvindt als gevolg van een bepaalde gebeurtenis. Een transitie veroorzaakt een verandering in de toestand van een object.

Staatsvak

Het is een specifiek moment in de levensduur van een object. Het wordt gedefinieerd met behulp van een voorwaarde of een verklaring binnen de classificatie-instantie. Het wordt gebruikt om zowel statische als dynamische situaties weer te geven.

Het wordt aangegeven met een rechthoek met ronde hoeken. De naam van een staat wordt in de afgeronde rechthoek geschreven.

De naam van een staat kan ook buiten de rechthoek worden geplaatst. Dit kan worden gedaan in het geval van samengestelde of submachine-staten. Men kan de naam van een staat binnen de rechthoek plaatsen of buiten de rechthoek in een tabelbox. Men kan niet beide tegelijk uitvoeren.

Een toestand kan actief of inactief zijn. Wanneer een staat zich in de werkmodus bevindt, is deze actief. Zodra deze stopt met uitvoeren en overgaat naar een andere staat, wordt de vorige staat inactief en wordt de huidige staat actief.

Soorten staten

Unified Modeling Language definieert drie soorten toestanden:

  • Eenvoudige staat
  • Ze hebben geen onderstaat.
  • Samengestelde staat
  • Dit soort toestanden kunnen één of meer dan één substaat hebben.
  • Een samengestelde toestand met twee of meer subtoestanden wordt een orthogonale toestand genoemd.
  • Staat van de submachine
  • Deze toestanden zijn semantisch gelijk aan de samengestelde toestanden.
  • In tegenstelling tot de samengestelde toestand kunnen we de submachinetoestanden hergebruiken.

Hoe teken je een Statechart-diagram?

Statechart-diagrammen worden gebruikt om de verschillende toestanden te beschrijven waar een object doorheen gaat. Een overgang tussen de ene toestand naar een andere toestand vindt plaats vanwege een getriggerde gebeurtenis. Om een ​​toestandsdiagram in te tekenen UML, moet men alle mogelijke toestanden van een bepaalde entiteit identificeren.

Het doel hiervan UML-diagrammen is om toestanden van een systeem weer te geven. Staten spelen een cruciale rol in staatstransitiediagrammen. Alle essentiële objecten, toestanden en gebeurtenissen die veranderingen binnen de toestanden veroorzaken, moeten eerst worden geanalyseerd voordat het diagram wordt geïmplementeerd.

Bij het tekenen van een toestandsdiagram moeten de volgende regels in acht worden genomen:

  1. De naam van een statusovergang moet uniek zijn.
  2. De naam van een staat moet gemakkelijk te begrijpen zijn en het gedrag van een staat beschrijven.
  3. Als er meerdere objecten zijn, mogen alleen essentiële objecten worden geïmplementeerd.
  4. Voor elke overgang en gebeurtenis moeten de juiste namen worden opgegeven.

Wanneer gebruik je een State Machine Diagram?

Toestandsdiagrammen worden gebruikt om real-life werkmodellen en objectgeoriënteerde systemen diepgaand te implementeren. Deze diagrammen worden gebruikt om de dynamische en statische aard van een systeem te vergelijken door het dynamische gedrag van een systeem vast te leggen.

Statechart-diagrammen worden gebruikt om de veranderingen in verschillende entiteiten van het systeem van begin tot eind vast te leggen. Ze worden gebruikt om te analyseren hoe een gebeurtenis verandering kan veroorzaken binnen meerdere toestanden van een systeem.

Er worden statuschardiagrammen gebruikt:

  1. Objecten van een systeem modelleren.
  2. Het modelleren en implementeren van interactieve systemen.
  3. Om gebeurtenissen weer te geven die veranderingen binnen de statussen veroorzaken.

Voorbeeld van een staatsmachine

Het volgende voorbeeld van een toestandsdiagram geeft het proces van gebruikersauthenticatie weer.

UML-statusdiagram

UML-statusdiagram

Er zijn in totaal twee toestanden en de eerste toestand geeft aan dat de OTP eerst moet worden ingevoerd. Daarna wordt OTP aangevinkt in het beslissingsvakje, als het correct is, vindt alleen de toestandsovergang plaats en wordt de gebruiker gevalideerd. Als OTP onjuist is, vindt de overgang niet plaats en gaat het weer terug naar de begintoestand totdat de gebruiker de juiste OTP invoert, zoals weergegeven in het bovenstaande toestandsmachinediagramvoorbeeld.

Staatsmachinediagram versus stroomdiagram

Hieronder staan ​​de belangrijkste verschillen tussen een toestandsdiagram en een stroomdiagram

Staatsmachinediagram Stroomdiagram
Het vertegenwoordigt verschillende toestanden van een systeem. Het stroomdiagram illustreert de stroom van programma-uitvoering.
De toestandsmachine heeft een WAIT-concept, dat wil zeggen wachten op een actie of gebeurtenis. Het Flowchart houdt zich niet bezig met wachten op een concept.
Staatsmachines worden gebruikt voor een live draaiend systeem. Stroomdiagram visualiseert vertakkende sequenties van een systeem.
De toestandsmachine is een modelleringsdiagram. Een stroomdiagram is een sequentiestroom of een DFD-diagram.
De toestandsmachine kan verschillende toestanden van een systeem onderzoeken. Stroomdiagram gaat over paden en controlestroom.

Samenvatting

  • Statechart-diagrammen worden ook wel statusmachinediagrammen genoemd.
  • Deze diagrammen worden gebruikt om het op gebeurtenissen gebaseerde systeem te modelleren.
  • Een toestand van een entiteit wordt gecontroleerd met behulp van een gebeurtenis.
  • Er zijn in totaal twee soorten toestandsmachinediagrammen: 1) Behavioral State Machine Diagram 2) Protocol State Machine Diagram
  • Statechart-diagram wordt gebruikt om het dynamische aspect van een systeem vast te leggen.
  • Een toestand is een specifiek moment in de levensduur van een object.