Diagram maszyny stanowej i diagram stanu w UML

โšก Inteligentne podsumowanie

Diagram maszyny stanรณw, zwany rรณwnieลผ diagramem stanรณw, modeluje dynamiczne zachowanie obiektu przemieszczajฤ…cego siฤ™ miฤ™dzy stanami w odpowiedzi na zdarzenia. Ten materiaล‚ wyjaล›nia notacjฤ™, typy stanรณw, zasady rysowania i rรณลผnice miฤ™dzy diagramem a schematem blokowym.

  • ๐Ÿ” Gล‚รณwny cel: Diagram maszyny stanowej obrazuje, w jaki sposรณb obiekt zmienia swรณj stan w odpowiedzi na zdarzenia zachodzฤ…ce w trakcie jego cyklu ลผycia.
  • ๐Ÿงฉ Dwa typy: Maszyny stanowe behawioralne modelujฤ… implementacjฤ™ elementu; maszyny stanowe protokoล‚รณw modelujฤ… dozwolone zmiany protokoล‚u.
  • ๐Ÿ”ท Notacja kluczowa: Diagram obejmuje stany poczฤ…tkowy i koล„cowy, pola decyzyjne, przejล›cia i zaokrฤ…glone pola stanรณw.
  • ๐Ÿ—‚๏ธ. Rodzaje paล„stw: Stany proste, zล‚oลผone i podmaszynowe organizujฤ… zachowanie, przy czym stany ortogonalne zawierajฤ… rรณwnolegล‚e podstany.
  • ๐Ÿ” Przykล‚ad rozwiฤ…zania: Model uwierzytelniania OTP pokazuje przejล›cia miฤ™dzy stanami na podstawie warunku zabezpieczajฤ…cego.

Co to jest diagram maszyny stanowej?

Schemat stanu Sล‚uลผฤ… do rejestrowania zachowania systemu oprogramowania. Diagramy maszyn stanรณw UML mogฤ… sล‚uลผyฤ‡ do modelowania zachowania klasy, podsystemu, pakietu, a nawet caล‚ego systemu. Nazywa siฤ™ je rรณwnieลผ diagramem stanรณw lub diagramem przejล›ฤ‡ miฤ™dzy stanami.

Co to jest diagram stanu?

Diagramy stanรณw zapewniajฤ… nam skuteczny sposรณb modelowania interakcji lub komunikacji zachodzฤ…cej w jednostkach zewnฤ™trznych i systemie. Diagramy te sล‚uลผฤ… do modelowania systemu opartego na zdarzeniach. Stan obiektu kontrolowany jest za pomocฤ… zdarzenia. Diagramy stanรณw sล‚uลผฤ… do opisywania rรณลผnych stanรณw jednostki w systemie aplikacji.

W jฤ™zyku UML istniejฤ… dwa typy diagramรณw maszyn stanowych:

1. Diagram behawioralnej maszyny stanu

  • Oddaje zachowanie podmiotu obecnego w systemie.
  • Sล‚uลผy do reprezentowania konkretnej implementacji elementu.
  • Zachowanie systemu moลผna modelowaฤ‡ za pomocฤ… behawioralnego diagramu maszyny stanu w OOAD.

2. Schemat maszyny stanu protokoล‚u

  • Diagramy te sล‚uลผฤ… do uchwycenia zachowania protokoล‚u.
  • Reprezentuje sposรณb, w jaki zmienia siฤ™ stan protokoล‚u dotyczฤ…cy zdarzenia. Reprezentuje rรณwnieลผ odpowiednie zmiany w systemie.
  • Nie reprezentujฤ… one konkretnej implementacji elementu.

Dlaczego diagram maszyny stanowej?

Diagram stanu sล‚uลผy do uchwycenia dynamicznego aspektu systemu. Diagramy maszyn stanowych sล‚uลผฤ… do reprezentowania zachowania aplikacji. Obiekt w ciฤ…gu swojego ลผycia przechodzi przez rรณลผne stany. ลปywotnoล›ฤ‡ obiektu pozostaje aลผ do zakoล„czenia programu. Obiekt przechodzi z wielu stanรณw w zaleลผnoล›ci od zdarzenia, ktรณre ma miejsce w obiekcie. Kaลผdy stan reprezentuje pewne unikalne informacje o obiekcie.

Diagramy stanรณw sล‚uลผฤ… do projektowania systemรณw interaktywnych, ktรณre reagujฤ… na zdarzenia wewnฤ™trzne lub zewnฤ™trzne. Diagram stanu w jฤ™zyku UML wizualizuje przepล‚yw wykonania z jednego stanu do drugiego stanu obiektu.

Reprezentuje stan obiektu od momentu jego utworzenia do momentu zniszczenia lub zakoล„czenia dziaล‚ania obiektu.

Podstawowym celem diagramu stanu jest modelowanie systemรณw interaktywnych i definiowanie kaลผdego stanu obiektu. Diagramy stanรณw sล‚uลผฤ… do uchwycenia dynamicznego zachowania systemu aplikacji. Diagramy te sล‚uลผฤ… do reprezentowania rรณลผnych stanรณw systemu i jednostek w systemie.

Notacja i symbol diagramu maszyny stanu (diagram Statechart)

Poniลผej przedstawiono rรณลผne oznaczenia uลผywane w caล‚ym diagramie stanu. Wszystkie te oznaczenia, gdy sฤ… poล‚ฤ…czone, tworzฤ… jeden diagram.

Notacje diagramรณw stanu UML
Notacje diagramรณw stanu UML

Stan poczฤ…tkowy

Symbol stanu poczฤ…tkowego sล‚uลผy do wskazania poczฤ…tku diagramu maszyny stanowej.

Stan koล„cowy

Ten symbol jest uลผywany do wskazania koล„ca diagramu maszyny stanowej.

Skrzynka decyzyjna

Zawiera warunek. W zaleลผnoล›ci od wyniku ocenionego warunku ochronnego, do wykonania programu wybierana jest nowa ล›cieลผka.

Przejล›cie

Przejล›cie to przejล›cie z jednego stanu w inny, ktรณre nastฤ™puje w wyniku jakiegoล› zdarzenia. Przejล›cie powoduje zmianฤ™ stanu obiektu.

Skrzynka stanowa

Jest to specyficzny moment w ลผyciu obiektu. Definiuje siฤ™ go za pomocฤ… warunku lub instrukcji w treล›ci klasyfikatora. Sล‚uลผy do reprezentowania wszelkich sytuacji statycznych i dynamicznych.

Oznacza siฤ™ go za pomocฤ… prostokฤ…ta z zaokrฤ…glonymi naroลผnikami. Nazwa stanu jest zapisana wewnฤ…trz zaokrฤ…glonego prostokฤ…ta.

Nazwฤ™ stanu moลผna rรณwnieลผ umieล›ciฤ‡ poza prostokฤ…tem. Moลผna to zrobiฤ‡ w przypadku stanรณw zล‚oลผonych lub podmaszynowych. Moลผna umieล›ciฤ‡ nazwฤ™ stanu wewnฤ…trz prostokฤ…ta lub poza prostokฤ…tem w polu tabelarycznym. Nie moลผna wykonaฤ‡ obu czynnoล›ci jednoczeล›nie.

Stan moลผe byฤ‡ aktywny lub nieaktywny. Gdy stan jest w trybie pracy, jest aktywny, gdy tylko przestanie dziaล‚aฤ‡ i przejdzie do innego stanu, stan poprzedni staje siฤ™ nieaktywny, a stan bieลผฤ…cy staje siฤ™ aktywny.

Rodzaje paล„stwa

Unified Modeling Language definiuje trzy typy stanรณw:

  • Prosty stan
  • Nie majฤ… ลผadnego podstanu.
  • Stan zล‚oลผony
  • Tego typu stany mogฤ… mieฤ‡ jeden lub wiฤ™cej podstanรณw.
  • Stan zล‚oลผony skล‚adajฤ…cy siฤ™ z dwรณch lub wiฤ™cej podstanรณw nazywany jest stanem ortogonalnym.
  • Stan maszyny
  • Stany te sฤ… semantycznie rรณwne stanom zล‚oลผonym.
  • W przeciwieล„stwie do stanu zล‚oลผonego, moลผemy ponownie wykorzystaฤ‡ stany podmaszynowe.

Jak narysowaฤ‡ diagram stanu?

Diagramy stanรณw sล‚uลผฤ… do opisywania rรณลผnych stanรณw, przez ktรณre przechodzi obiekt. Przejล›cie z jednego stanu do drugiego nastฤ™puje w wyniku jakiegoล› zdarzenia wyzwalanego. Aby narysowaฤ‡ diagram stanu UML, naleลผy zidentyfikowaฤ‡ wszystkie moลผliwe stany dowolnego konkretnego bytu.

Cel tych diagramy UML ma reprezentowaฤ‡ stany ukล‚adu. Stany odgrywajฤ… kluczowฤ… rolฤ™ w diagramach przejล›ฤ‡ miฤ™dzy stanami. Przed wdroลผeniem diagramu naleลผy najpierw przeanalizowaฤ‡ wszystkie istotne obiekty, stany i zdarzenia powodujฤ…ce zmiany w stanach.

Rysujฤ…c diagram stanu, naleลผy wziฤ…ฤ‡ pod uwagฤ™ nastฤ™pujฤ…ce zasady:

  1. Nazwa zmiany stanu musi byฤ‡ unikalna.
  2. Nazwa paล„stwa musi byฤ‡ ล‚atwo zrozumiaล‚a i opisywaฤ‡ zachowanie paล„stwa.
  3. Jeลผeli obiektรณw jest wiele, naleลผy zaimplementowaฤ‡ tylko obiekty istotne.
  4. Naleลผy podaฤ‡ wล‚aล›ciwe nazwy kaลผdego przejล›cia i zdarzenia.

Kiedy uลผywaฤ‡ diagramu maszyny stanowej?

Diagramy stanรณw sล‚uลผฤ… do szczegรณล‚owego wdraลผania rzeczywistych modeli roboczych i systemรณw obiektowych. Diagramy te sล‚uลผฤ… do porรณwnywania dynamicznej i statycznej natury systemu poprzez uchwycenie dynamicznego zachowania systemu.

Diagramy stanรณw sล‚uลผฤ… do uchwycenia zmian w rรณลผnych jednostkach systemu od poczฤ…tku do koล„ca. Sล‚uลผฤ… do analizowania, w jaki sposรณb zdarzenie moลผe wywoล‚aฤ‡ zmianฤ™ w wielu stanach systemu.

Stosowane sฤ… diagramy znakรณw stanu:

  1. Modelowanie obiektรณw systemu.
  2. Modelowaฤ‡ i wdraลผaฤ‡ systemy interaktywne.
  3. Aby wyล›wietliฤ‡ zdarzenia wywoล‚ujฤ…ce zmiany w obrฤ™bie stanรณw.

Przykล‚ad maszyny stanu

Poniลผszy przykล‚adowy diagram stanu przedstawia proces uwierzytelniania uลผytkownika.

Diagram stanu UML

Diagram stanu UML

Istniejฤ… dwa stany, a pierwszy stan wskazuje, ลผe OTP musi zostaฤ‡ najpierw wprowadzone. Nastฤ™pnie OTP jest zaznaczane w polu decyzyjnym, jeล›li jest poprawne, nastฤ…pi tylko przejล›cie stanu, a uลผytkownik zostanie zatwierdzony. Jeล›li OTP jest nieprawidล‚owe, przejล›cie nie nastฤ…pi i nastฤ…pi powrรณt do stanu poczฤ…tkowego, dopรณki uลผytkownik nie wprowadzi poprawnego OTP, jak pokazano w powyลผszym przykล‚adzie diagramu maszyny stanowej.

Diagram maszyny stanowej a schemat blokowy

Poniลผej przedstawiono kluczowe rรณลผnice miฤ™dzy diagramem stanรณw a schematem blokowym

Schemat maszyny stanowej Schemat blokowy
Reprezentuje rรณลผne stany systemu. Schemat blokowy ilustruje przebieg wykonywania programu.
Maszyna stanรณw ma koncepcjฤ™ WAIT, tj. czeka na akcjฤ™ lub zdarzenie. Schemat blokowy nie dotyczy oczekiwania na koncepcjฤ™.
Maszyny stanowe sฤ… uลผywane w dziaล‚ajฤ…cym systemie. Schemat blokowy wizualizuje sekwencje rozgaล‚ฤ™zieล„ systemu.
Maszyna stanรณw jest diagramem modelowania. Schemat blokowy to przepล‚yw sekwencji lub diagram DFD.
Maszyna stanรณw moลผe badaฤ‡ rรณลผne stany systemu. Schemat blokowy dotyczy ล›cieลผek i przepล‚ywu sterowania.

FAQ

Diagram maszyny stanowej przedstawia stany jednego obiektu i zdarzenia, ktรณre go miฤ™dzy nimi przemieszczajฤ…. Diagram aktywnoล›ci przedstawia ogรณlny przepล‚yw dziaล‚aล„ i decyzji w procesie. Diagramy stanu koncentrujฤ… siฤ™ na stanach; diagramy aktywnoล›ci koncentrujฤ… siฤ™ na przepล‚ywie pracy.

Samoprzejล›cie to przejล›cie, ktรณre powraca do tego samego stanu po wystฤ…pieniu zdarzenia. Ponownie uruchamia ono akcje wyjล›cia i wejล›cia do stanu bez zmiany bieลผฤ…cego stanu, co jest przydatne w przypadku zachowaล„ powtarzalnych lub ponawianych.

Warunek straลผnika to wyraลผenie boolowskie w przejล›ciu, zapisane w nawiasach kwadratowych. Przejล›cie jest aktywowane tylko wtedy, gdy wystฤ…pi zdarzenie, a straลผnik zwrรณci wartoล›ฤ‡ true, wiฤ™c straลผnicy kontrolujฤ… ล›cieลผkฤ™, ktรณrฤ… podฤ…ลผa obiekt.

Narzฤ™dzia do tworzenia diagramรณw AI potrafiฤ… odczytaฤ‡ opis zachowania i wygenerowaฤ‡ wersjฤ™ roboczฤ… maszyny stanรณw, zawierajฤ…cฤ… listฤ™ stanรณw, zdarzeล„ i przejล›ฤ‡. Pomaga to projektantom szybko rozpoczฤ…ฤ‡ pracฤ™, choฤ‡ stany i warunki ochronne powinny zostaฤ‡ sprawdzone pod kฤ…tem kompletnoล›ci.

Tak. Analiza AI pozwala porรณwnaฤ‡ maszynฤ™ stanรณw z wymaganiami i oznaczyฤ‡ brakujฤ…ce stany, stany nieosiฤ…galne lub przejล›cia bez wyzwalaczy. Pomaga to wczeล›nie wykryฤ‡ luki, ale inลผynierowie powinni potwierdziฤ‡ kaลผdฤ… sugestiฤ™ przed aktualizacjฤ… modelu.

Podsumuj ten post nastฤ™pujฤ…co: