State Machine Diagram & Statechart Diagram i UML
Vad är ett tillståndsmaskindiagram?
Tillståndsdiagram används för att fånga beteendet hos ett mjukvarusystem. UML State-maskindiagram kan användas för att modellera beteendet hos en klass, ett undersystem, ett paket eller till och med ett helt system. Det kallas också ett Statechart eller State Transition diagram.
Vad är ett Statechart-diagram?
Statechart-diagram ger oss ett effektivt sätt att modellera de interaktioner eller kommunikation som sker inom de externa enheterna och ett system. Dessa diagram används för att modellera det händelsebaserade systemet. Ett objekts tillstånd styrs med hjälp av en händelse. Statechart-diagram används för att beskriva olika tillstånd för en entitet inom applikationssystemet.
Det finns totalt två typer av tillståndsmaskindiagram i UML:
1. Beteendetillståndsmaskindiagram
- Den fångar beteendet hos en enhet som finns i systemet.
- Det används för att representera den specifika implementeringen av ett element.
- Ett systems beteende kan modelleras med hjälp av beteendetillståndsmaskindiagram i OOAD.
2. Protokolltillståndsmaskindiagram
- Dessa diagram används för att fånga beteendet hos ett protokoll.
- Det representerar hur tillståndet för protokollet ändras angående händelsen. Det representerar också motsvarande förändringar i systemet.
- De representerar inte den specifika implementeringen av ett element.
Varför State Machine Diagram?
Statechart-diagram används för att fånga den dynamiska aspekten av ett system. Tillståndsmaskindiagram används för att representera beteendet hos en applikation. Ett föremål går igenom olika tillstånd under sin livslängd. Livslängden för ett objekt kvarstår tills programmet avslutas. Objektet går från flera tillstånd beroende på händelsen som inträffar inom objektet. Varje stat representerar viss unik information om objektet.
Statechart-diagram används för att designa interaktiva system som svarar på antingen interna eller externa händelser. Statechart-diagram i UML visualiserar flödet av exekvering från ett tillstånd till ett annat tillstånd för ett objekt.
Det representerar ett objekts tillstånd från skapandet av ett objekt tills objektet förstörs eller avslutas.
Det primära syftet med ett tillståndsdiagram är att modellera interaktiva system och definiera varje tillstånd för ett objekt. Statechart-diagram är utformade för att fånga det dynamiska beteendet hos ett applikationssystem. Dessa diagram används för att representera olika tillstånd för ett system och enheter inom systemet.
Notation och symbol för State Machine Diagram (Statechart Diagram)
Följande är de olika notationerna som används i hela tillståndsdiagrammet. Alla dessa notationer, när de kombineras, utgör ett enda diagram.
Initialtillstånd
Initialtillståndssymbolen används för att indikera början av ett tillståndsmaskindiagram.
Slutligt tillstånd
Denna symbol används för att indikera slutet av ett tillståndsmaskindiagram.
Beslutslåda
Den innehåller ett villkor. Beroende på resultatet av ett utvärderat skyddstillstånd, tas en ny väg för programexekvering.
Övergång
En övergång är en förändring i ett tillstånd till ett annat tillstånd som inträffar på grund av någon händelse. En övergång orsakar en förändring i ett objekts tillstånd.
Statlig låda
Det är ett specifikt ögonblick i ett objekts livslängd. Den definieras med hjälp av något villkor eller en sats i klassificerarens kropp. Den används för att representera statiska såväl som dynamiska situationer.
Det betecknas med en rektangel med runda hörn. Namnet på ett tillstånd skrivs inuti den rundade rektangeln.
Namnet på ett tillstånd kan också placeras utanför rektangeln. Detta kan göras vid sammansatta eller undermaskinstillstånd. Man kan antingen placera namnet på ett tillstånd inom rektangeln eller utanför rektangeln i en tabellform. Man kan inte utföra båda samtidigt.
Ett tillstånd kan vara antingen aktivt eller inaktivt. När ett tillstånd är i arbetsläget är det aktivt, så snart det slutar att utföras och går över till ett annat tillstånd, blir det föregående tillståndet inaktivt och det nuvarande tillståndet blir aktivt.
Typer av stat
Unified Modeling Language definierar tre typer av tillstånd:
- Enkelt tillstånd
- De har ingen substat.
- Sammansatt tillstånd
- Dessa typer av tillstånd kan ha en eller flera delstater.
- Ett sammansatt tillstånd med två eller flera deltillstånd kallas ett ortogonalt tillstånd.
- Submachine tillstånd
- Dessa tillstånd är semantiskt lika med de sammansatta tillstånden.
- Till skillnad från det sammansatta tillståndet kan vi återanvända undermaskinstillstånden.
Hur man ritar ett Statechart-diagram?
Tillståndsdiagram används för att beskriva de olika tillstånd som ett objekt passerar genom. En övergång mellan ett tillstånd till ett annat tillstånd sker på grund av någon utlöst händelse. Att rita ett tillståndsdiagram i UML, måste man identifiera alla möjliga tillstånd för en viss enhet.
Syftet med dessa UML-diagram är att representera tillstånd i ett system. Stater spelar en viktig roll i tillståndsövergångsdiagram. Alla väsentliga objekt, tillstånd och händelser som orsakar förändringar inom tillstånden måste analyseras först innan diagrammet implementeras.
Följande regler måste beaktas när du ritar ett tillståndsdiagram:
- Namnet på en tillståndsövergång måste vara unikt.
- Namnet på en stat måste vara lätt att förstå och beskriva en stats beteende.
- Om det finns flera objekt bör endast väsentliga objekt implementeras.
- Egennamn för varje övergång och en händelse måste anges.
När ska man använda ett State Machine-diagram?
Tillståndsdiagram används för att implementera verkliga arbetsmodeller och objektorienterade system på djupet. Dessa diagram används för att jämföra ett systems dynamiska och statiska karaktär genom att fånga systemets dynamiska beteende.
Statechart-diagram används för att fånga förändringarna i olika enheter i systemet från början till slut. De används för att analysera hur en händelse kan utlösa förändring inom flera tillstånd i ett system.
Tillståndsdiagram används:
- Att modellera objekt i ett system.
- Att modellera och implementera interaktiva system.
- För att visa händelser som utlöser förändringar inom staterna.
Exempel på State Machine
Följande tillståndsdiagram exempeldiagram representerar användarautentiseringsprocessen.
Det finns totalt två tillstånd, och det första tillståndet indikerar att OTP måste anges först. Därefter markeras OTP i beslutsrutan, om den är korrekt kommer endast tillståndsövergång att ske, och användaren kommer att valideras. Om OTP är felaktigt kommer övergången inte att äga rum, och den kommer igen att gå tillbaka till starttillståndet tills användaren anger rätt OTP som visas i exemplet ovan tillståndsmaskindiagram.
State Machine Diagram kontra flödesschema
Följande är de viktigaste skillnaderna mellan Statechart Diagram och Flowchart
Tillståndsmaskindiagram | Flödesschema |
---|---|
Det representerar olika tillstånd i ett system. | Flödesschemat illustrerar programexekveringsflödet. |
Tillståndsmaskinen har ett VÄNTA-koncept, dvs vänta på en handling eller en händelse. | Flödesschemat handlar inte om att vänta på ett koncept. |
Statliga maskiner används för ett levande system. | Flödesschemat visualiserar förgreningssekvenser av ett system. |
Tillståndsmaskinen är ett modelleringsdiagram. | Ett flödesschema är ett sekvensflöde eller ett DFD-diagram. |
Tillståndsmaskinen kan utforska olika tillstånd i ett system. | Flödesschema handlar om vägar och kontrollflöde. |
Sammanfattning
- Statechart-diagram kallas också för tillståndsmaskindiagram.
- Dessa diagram används för att modellera det händelsebaserade systemet.
- Ett tillstånd hos en entitet styrs med hjälp av en händelse.
- Det finns totalt två typer av tillståndsmaskindiagram: 1) Beteendetillståndsmaskindiagram 2) Protokolltillståndsmaskindiagram
- Statechart-diagram används för att fånga den dynamiska aspekten av ett system.
- Ett tillstånd är ett specifikt ögonblick i ett objekts livslängd.