Diagram maszyny stanowej i diagram stanu w UML

Co to jest diagram maszyny stanowej?

Schemat stanu sล‚uลผฤ… do przechwytywania zachowania systemu oprogramowania. Diagramy maszyn stanowych UML mogฤ… sล‚uลผyฤ‡ do modelowania zachowania klasy, podsystemu, pakietu, a nawet caล‚ego systemu. Nazywa siฤ™ go takลผe diagramem stanu lub diagramem przejล›cia stanu.

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.

Podsumowanie

  • Diagramy stanรณw sฤ… rรณwnieลผ nazywane diagramami maszyn stanรณw.
  • Diagramy te sล‚uลผฤ… do modelowania systemu opartego na zdarzeniach.
  • Stan jednostki kontrolowany jest za pomocฤ… zdarzenia.
  • Istniejฤ… w sumie dwa typy diagramรณw maszyn stanowych: 1) Diagram behawioralnej maszyny stanowej 2) Diagram maszyny stanowej protokoล‚u
  • Diagram stanu sล‚uลผy do uchwycenia dynamicznego aspektu systemu.
  • Stan to konkretny moment w ลผyciu obiektu.

Podsumuj ten post nastฤ™pujฤ…co: