State Machine Diagram & Statechart Diagram i UML

โšก Smart oppsummering

Tilstandsmaskindiagram, ogsรฅ kalt et tilstandsdiagram, modellerer den dynamiske oppfรธrselen til et objekt som beveger seg mellom tilstander som respons pรฅ hendelser. Denne ressursen forklarer notasjon, tilstandstyper, tegneregler og hvordan det skiller seg fra et flytskjema.

  • ๐Ÿ” Kjerneformรฅl: Et tilstandsmaskindiagram fanger opp hvordan et objekt endrer tilstand som respons pรฅ hendelser i lรธpet av levetiden.
  • ๐Ÿงฉ To typer: Atferdsmessige tilstandsmaskiner modellerer implementeringen av et element; protokolltilstandsmaskiner modellerer tillot protokollendringer.
  • ๐Ÿ”ท Nรธkkelnotasjon: Start- og slutttilstander, beslutningsbokser, overganger og avrundede tilstandsbokser utgjรธr diagrammet.
  • ๐Ÿ—‚๏ธ Statstyper: Enkle, sammensatte og submaskintilstander organiserer atferd, med ortogonale tilstander som holder parallelle undertilstander.
  • ๐Ÿ” Utarbeidet eksempel: En OTP-autentiseringsmodell viser overganger mellom tilstander basert pรฅ en beskyttelsesbetingelse.

Hva er et statsmaskindiagram?

Statlig diagram brukes til รฅ fange oppfรธrselen til et programvaresystem. UML-tilstandsmaskindiagrammer kan brukes til รฅ modellere oppfรธrselen til en klasse, et delsystem, en pakke eller til og med et helt system. Det kalles ogsรฅ et tilstandsdiagram eller tilstandsovergangsdiagram.

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.

Spรธrsmรฅl og svar

Et tilstandsmaskindiagram viser tilstandene til ett objekt og hendelsene som flytter det mellom dem. Et aktivitetsdiagram viser den overordnede flyten av handlinger og beslutninger i en prosess. Tilstandsdiagrammer fokuserer pรฅ tilstander, mens aktivitetsdiagrammer fokuserer pรฅ arbeidsflyt.

En selvtransisjon er en transisjon som gรฅr tilbake til samme tilstand etter at en hendelse utlรธses. Den utlรธser tilstandens utgangs- og inngangshandlinger igjen uten รฅ endre gjeldende tilstand, noe som er nyttig for gjentatt eller nye forsรธk.

En vaktbetingelse er et boolsk uttrykk pรฅ en overgang, skrevet i hakeparenteser. Overgangen utlรธses bare nรฅr hendelsen inntreffer, og vaktbetingelsen evalueres til sann, slik at vaktene kontrollerer hvilken bane objektet tar.

AI-diagramverktรธy kan lese en atferdsbeskrivelse og generere et utkast til en tilstandsmaskin, som viser tilstander, hendelser og overganger. Dette hjelper designere med รฅ starte raskt, men tilstandene og beskyttelsesbetingelsene bรธr gjennomgรฅs for fullstendighet.

Ja. AI-analyse kan sammenligne en tilstandsmaskin mot krav og flagge manglende tilstander, uoppnรฅelige tilstander eller overganger uten utlรธsere. Dette bidrar til รฅ fange opp hull tidlig, men ingeniรธrer bรธr bekrefte hvert forslag fรธr de oppdaterer modellen.

Oppsummer dette innlegget med: