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.

  • ๐Ÿ” Kรคrnsyfte: Ett tillstรฅndsmaskindiagram visar hur ett objekt รคndrar tillstรฅnd som svar pรฅ hรคndelser under sin livstid.
  • ๐Ÿงฉ Tvรฅ typer: Beteendemรคssiga tillstรฅndsmaskiner modellerar ett elements implementering; protokolltillstรฅndsmaskiner modellerar tillรฅtna protokollรคndringar.
  • ๐Ÿ”ท Nyckelnotation: Initiala och slutliga tillstรฅnd, beslutsrutor, รถvergรฅngar och avrundade tillstรฅndsrutor utgรถr diagrammet.
  • ๐Ÿ—‚๏ธ Statliga typer: Enkla, sammansatta och submaskintillstรฅnd organiserar beteende, med ortogonala tillstรฅnd som hรฅller parallella deltillstรฅnd.
  • ๐Ÿ” Utarbetat exempel: En OTP-autentiseringsmodell visar รถvergรฅngar mellan tillstรฅnd baserat pรฅ ett skyddsvillkor.

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.

UML State Diagram Notationer
UML-tillstรฅndsdiagramnoteringar

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:

  1. Namnet pรฅ en tillstรฅndsรถvergรฅng mรฅste vara unikt.
  2. Namnet pรฅ en stat mรฅste vara lรคtt att fรถrstรฅ och beskriva en stats beteende.
  3. Om det finns flera objekt bรถr endast vรคsentliga objekt implementeras.
  4. 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:

  1. Att modellera objekt i ett system.
  2. Att modellera och implementera interaktiva system.
  3. 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.

UML tillstรฅndsdiagram

UML tillstรฅndsdiagram

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.

Vanliga frรฅgor

Ett tillstรฅndsmaskindiagram visar tillstรฅnden fรถr ett objekt och hรคndelserna som flyttar det mellan dem. Ett aktivitetsdiagram visar det รถvergripande flรถdet av รฅtgรคrder och beslut i en process. Tillstรฅndsdiagram fokuserar pรฅ tillstรฅnd medan aktivitetsdiagram fokuserar pรฅ arbetsflรถde.

En sjรคlvรถvergรฅng รคr en รถvergรฅng som รฅtergรฅr till samma tillstรฅnd efter att en hรคndelse utlรถsts. Den utlรถser tillstรฅndets utgรฅngs- och ingรฅngsรฅtgรคrder igen utan att รคndra det aktuella tillstรฅndet, vilket รคr anvรคndbart fรถr upprepade beteenden eller รฅterfรถrsรถk.

Ett guard-villkor รคr ett booleskt uttryck fรถr en รถvergรฅng, skrivet inom hakparenteser. ร–vergรฅngen utlรถses endast nรคr hรคndelsen intrรคffar och guard-villkoret utvรคrderas till sant, sรฅ guards styr vilken vรคg objektet tar.

AI-diagramverktyg kan lรคsa en beteendebeskrivning och generera ett utkast till en tillstรฅndsmaskin som listar tillstรฅnd, hรคndelser och รถvergรฅngar. Detta hjรคlper konstruktรถrer att komma igรฅng snabbt, รคven om tillstรฅnden och skyddsvillkoren bรถr granskas fรถr fullstรคndighet.

Ja. AI-analys kan jรคmfรถra en tillstรฅndsmaskin mot krav och flagga saknade tillstรฅnd, ouppnรฅeliga tillstรฅnd eller รถvergรฅngar utan utlรถsare. Detta hjรคlper till att upptรคcka luckor tidigt, men ingenjรถrer bรถr bekrรคfta varje fรถrslag innan de uppdaterar modellen.

Sammanfatta detta inlรคgg med: