State Machine Diagram & Statechart Diagram i UML
โก Smart sammanfattning
Tillstรฅndsmaskinsdiagram, รคven kallat tillstรฅndsdiagram, modellerar det dynamiska beteendet hos ett objekt som rรถr sig mellan tillstรฅnd som svar pรฅ hรคndelser. Denna resurs fรถrklarar notation, tillstรฅndstyper, ritregler och hur det skiljer sig frรฅn ett flรถdesschema.

Vad รคr ett tillstรฅndsmaskindiagram?
Tillstรฅndsdiagram anvรคnds fรถr att fรฅnga beteendet hos ett programvarusystem. UML-tillstรฅndsmaskindiagram kan anvรคndas fรถr att modellera beteendet hos en klass, ett delsystem, ett paket eller till och med ett helt system. Det kallas ocksรฅ ett tillstรฅndsdiagram eller tillstรฅndsรถvergรฅngsdiagram.
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. |
