State Machine Diagram & Statechart Diagram i UML

Hva er et statsmaskindiagram?

Statlig diagram brukes til å fange oppførselen til et programvaresystem. UML State-maskindiagrammer kan brukes til å modellere oppførselen til en klasse, et undersystem, en pakke eller til og med et helt system. Det kalles også et Statechart eller State Transition-diagram.

Hva er et Statechart-diagram?

Statechart-diagrammer gir oss en effektiv måte å modellere interaksjonene eller kommunikasjonen som skjer innenfor de eksterne enhetene og et system. Disse diagrammene brukes til å modellere det hendelsesbaserte systemet. En tilstand til et objekt kontrolleres ved hjelp av en hendelse. Statechart-diagrammer brukes til å beskrive ulike tilstander til en enhet i applikasjonssystemet.

Det er totalt to typer tilstandsmaskindiagram i UML:

1. Behavioral State Machine Diagram

  • Den fanger opp oppførselen til en enhet som er tilstede i systemet.
  • Det brukes til å representere den spesifikke implementeringen av et element.
  • Oppførselen til et system kan modelleres ved å bruke atferdstilstandsmaskindiagram i OOAD.

2. Protokolltilstandsmaskindiagram

  • Disse diagrammene brukes til å fange oppførselen til en protokoll.
  • Den representerer hvordan tilstanden til protokollen endres angående hendelsen. Det representerer også tilsvarende endringer i systemet.
  • De representerer ikke den spesifikke implementeringen av et element.

Hvorfor State Machine Diagram?

Statechart-diagram brukes til å fange opp det dynamiske aspektet av et system. Statsmaskindiagrammer brukes til å representere oppførselen til en applikasjon. Et objekt går gjennom ulike tilstander i løpet av sin levetid. Levetiden til et objekt forblir til programmet avsluttes. Objektet går fra flere tilstander avhengig av hendelsen som inntreffer i objektet. Hver stat representerer noe unik informasjon om objektet.

Statechart-diagrammer brukes til å designe interaktive systemer som reagerer på enten intern eller ekstern hendelse. Statechart-diagram i UML visualiserer flyten av utførelse fra en tilstand til en annen tilstand av et objekt.

Den representerer tilstanden til et objekt fra opprettelsen av et objekt til objektet er ødelagt eller avsluttet.

Hovedformålet med et tilstandskartdiagram er å modellere interaktive systemer og definere hver eneste tilstand til et objekt. Statechart-diagrammer er designet for å fange opp den dynamiske oppførselen til et applikasjonssystem. Disse diagrammene brukes til å representere ulike tilstander til et system og enheter i systemet.

Notasjon og symbol for State Machine Diagram (Statechart Diagram)

Følgende er de forskjellige notasjonene som brukes gjennom tilstandskartdiagrammet. Alle disse notasjonene, når de kombineres, utgjør et enkelt diagram.

UML State Diagram Notasjoner
UML-tilstandsdiagramnotasjoner

Opprinnelige tilstand

Starttilstandssymbolet brukes til å indikere begynnelsen av et tilstandsmaskindiagram.

Endelig tilstand

Dette symbolet brukes til å indikere slutten på et tilstandsmaskindiagram.

Beslutningsboks

Den inneholder en betingelse. Avhengig av resultatet av en evaluert vakttilstand, tas en ny vei for programkjøring.

Overgang

En overgang er en endring i en tilstand til en annen tilstand som oppstår på grunn av en hendelse. En overgang forårsaker en endring i tilstanden til et objekt.

Statlig boks

Det er et spesifikt øyeblikk i en gjenstands levetid. Det er definert ved hjelp av en betingelse eller en uttalelse i klassifisereren. Den brukes til å representere statiske så vel som dynamiske situasjoner.

Det er betegnet ved hjelp av et rektangel med runde hjørner. Navnet på en tilstand er skrevet inne i det avrundede rektangelet.

Navnet på en tilstand kan også plasseres utenfor rektangelet. Dette kan gjøres i tilfelle av kompositt- eller submaskintilstander. Man kan enten plassere navnet på en tilstand innenfor rektangelet eller utenfor rektangelet i en tabellboks. Man kan ikke utføre begge deler samtidig.

En tilstand kan enten være aktiv eller inaktiv. Når en tilstand er i arbeidsmodus, er den aktiv, så snart den slutter å utføre og går over til en annen tilstand, blir den forrige tilstanden inaktiv, og den nåværende tilstanden blir aktiv.

Typer av stat

Unified Modeling Language definerer tre typer tilstander:

  • Enkel tilstand
  • De har ingen understat.
  • Sammensatt tilstand
  • Disse typer stater kan ha én eller flere enn én delstat.
  • En sammensatt tilstand med to eller flere undertilstander kalles en ortogonal tilstand.
  • Submachine tilstand
  • Disse tilstandene er semantisk like de sammensatte tilstandene.
  • I motsetning til den sammensatte tilstanden, kan vi gjenbruke submaskintilstandene.

Hvordan tegne et Statechart-diagram?

Statechart-diagrammer brukes til å beskrive de forskjellige tilstandene som et objekt passerer gjennom. En overgang mellom en tilstand til en annen tilstand skjer på grunn av en utløst hendelse. Å tegne et tilstandsdiagram inn UML, må man identifisere alle mulige tilstander til en bestemt enhet.

Formålet med disse UML-diagrammer er å representere tilstander i et system. Stater spiller en viktig rolle i staters overgangsdiagrammer. Alle de essensielle objektene, tilstandene og hendelsene som forårsaker endringer i tilstandene må analyseres først før diagrammet implementeres.

Følgende regler må vurderes når du tegner et tilstandskartdiagram:

  1. Navnet på en tilstandsovergang må være unikt.
  2. Navnet på en stat må være lett forståelig og beskrive oppførselen til en stat.
  3. Hvis det er flere objekter, bør bare essensielle objekter implementeres.
  4. Egennavn for hver overgang og en hendelse må oppgis.

Når skal jeg bruke et State Machine-diagram?

Tilstandsdiagrammer brukes til å implementere virkelige arbeidsmodeller og objektorienterte systemer i dybden. Disse diagrammene brukes til å sammenligne den dynamiske og statiske naturen til et system ved å fange opp den dynamiske oppførselen til et system.

Statechart-diagrammer brukes til å fange opp endringene i ulike enheter i systemet fra start til slutt. De brukes til å analysere hvordan en hendelse kan utløse endring innenfor flere tilstander i et system.

Tilstandstegndiagrammer brukes:

  1. Å modellere objekter i et system.
  2. Å modellere og implementere interaktive systemer.
  3. For å vise hendelser som utløser endringer i statene.

Eksempel på statsmaskin

Følgende tilstandsdiagram eksempeldiagram representerer brukerautentiseringsprosessen.

UML tilstandsdiagram

UML tilstandsdiagram

Det er totalt to tilstander, og den første tilstanden indikerer at OTP må angis først. Etter det er OTP merket av i beslutningsboksen, hvis den er riktig, vil kun tilstandsovergang skje, og brukeren vil bli validert. Hvis OTP er feil, vil ikke overgangen finne sted, og den vil igjen gå tilbake til begynnelsestilstanden til brukeren går inn i riktig OTP som vist i eksempelet på tilstandsmaskindiagrammet ovenfor.

State Machine Diagram vs. Flytskjema

Følgende er de viktigste forskjellene mellom Statechart Diagram og Flytdiagram

Statsmaskindiagram Flytskjema
Det representerer ulike tilstander i et system. Flytskjemaet illustrerer programutførelsesflyten.
Statsmaskinen har et WAIT-konsept, dvs. vente på en handling eller en hendelse. Flytskjemaet omhandler ikke å vente på et konsept.
Statlige maskiner brukes til et live-kjørende system. Flytskjema visualiserer forgreningssekvenser av et system.
Tilstandsmaskinen er et modelleringsdiagram. Et flytskjema er en sekvensflyt eller et DFD-diagram.
Tilstandsmaskinen kan utforske ulike tilstander i et system. Flytskjema omhandler baner og kontrollflyt.

Sammendrag

  • Statechart-diagrammer kalles også tilstandsmaskindiagrammer.
  • Disse diagrammene brukes til å modellere det hendelsesbaserte systemet.
  • En tilstand til en enhet kontrolleres ved hjelp av en hendelse.
  • Det er totalt to typer tilstandsmaskindiagrammer: 1) Behavioral State Machine Diagram 2) Protocol State Machine Diagram
  • Statechart-diagram brukes til å fange opp det dynamiske aspektet av et system.
  • En tilstand er et spesifikt øyeblikk i en gjenstands levetid.