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.

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:
- Nazwa zmiany stanu musi byฤ unikalna.
- Nazwa paลstwa musi byฤ ลatwo zrozumiaลa i opisywaฤ zachowanie paลstwa.
- Jeลผeli obiektรณw jest wiele, naleลผy zaimplementowaฤ tylko obiekty istotne.
- 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:
- Modelowanie obiektรณw systemu.
- Modelowaฤ i wdraลผaฤ systemy interaktywne.
- 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.
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.
