UML stavové diagramy
Jeden objekt, každý stav, v ktorom môže byť, a každá udalosť, ktorá ním medzi nimi pohne. Diagram, ktorý z otázky "dá sa zachytená platba stornovať?" spraví namiesto hádky niečo, na čo sa dá ukázať.
9 min čítaniaUML 2.5.115 z 35
Krátka odpoveď
- Popis prechodu je spúšťač [stráž] / účinok a všetky tri časti sú voliteľné. Väčšina zmätku okolo stavových automatov je zmätok v tom jednom riadku.
- Vstupná akcia prebehne pri každej ceste do stavu, účinok prechodu len pri jednom prechode. Rozpisovať ten istý účinok na prechody je práve to, čím sa kópie rozídu.
- Zložený stav vyníma spoločný odchod: prechod nakreslíte raz z jeho okraja namiesto raz z každého podstavu vnútri.
- H sa vráti do naposledy aktívneho podstavu, H s hviezdičkou do poslednej vnorenej konfigurácie na každej úrovni. Je to notácia pre pokračuj tam, kde sme skončili.
01Čo ukazuje#
Stavový diagram popisuje život jednej veci. Nie proces, nie interakciu - jeden objekt alebo jeden komponent a stavy, ktorými prechádza od vzniku po zánik.
Jeho sila je v negatívnom priestore. Diagram vyššie kreslí šesť prechodov. Všetko ostatné je tým zakázané: platba v stave Refunded sa nemôže vrátiť do Captured, platbu v Failed nemožno zachytiť a platbu v Pending nemožno vrátiť. V diagrame tried tieto obmedzenia žijú v texte alebo v ničej hlave. Tu sú tým obrázkom.
02Stavy a prechody#
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Počiatočný pseudostav | vyplnený disk | Kde objekt začína. Nie je to stav - nič tu nezotrvá; odchádzajúci prechod sa spustí okamžite. |
| Stav | zaoblený obdĺžnik | Podmienka, v ktorej objekt zotrváva, kým na niečo čaká. Pomenovaný prídavným menom alebo príčastím: Authorized, nie Authorizing it. |
| Prechod | šípka s popisom | Pohyb medzi stavmi vyvolaný udalosťou. Popísaný ako spúšťač [stráž] / efekt. |
| Koncový stav | krúžok okolo disku | Život objektu končí. Za tým už nič nie je. |
| Zložený stav | stav obsahujúci stavy | Zoskupuje podstavy. Prechod von zo zloženého stavu platí pre každý stav vnútri. |
| História | zakrúžkované H | Opätovný vstup do zloženého stavu pokračuje v tom podstave, v ktorom bol naposledy, nie v jeho počiatočnom. |
03Kam patrí správanie#
Správanie môže visieť na prechode alebo na stave a správna voľba odstráni veľa duplicity.
- Efekt na prechode - píše sa za lomku. Prebehne raz, pri tom konkrétnom pohybe. Použite ho, keď správanie patrí tej ceste.
entry / …- prebehne pri každom vstupe do stavu, ktorýmkoľvek prechodom. Ak tri šípky do stavuCapturedvšetky potrebujú zapísať účtovnú položku, je to jedna akciaentry, nie tri efekty.exit / …- prebehne pri každom opustení stavu, ktorýmkoľvek prechodom.do / …- beží nepretržite počas zotrvania v stave a pri jeho opustení sa preruší. Toto je tá pre dlho bežiacu prácu.
Pravidlo palca: ak je správanie o bytí v stave, použite entry/do/exit. Ak je o konkrétnej ceste medzi dvoma stavmi, dajte ho na prechod.
04Zložené stavy a história#
Skutočné životné cykly si vypestujú bežný prípad: viacero stavov, ktoré na jednu udalosť reagujú rovnako. Platbu v stave Pending, Authorized aj Captured možno zrušiť a kresliť tri samostatné šípky cancel do stavu Cancelled je šum.
Rieši to zložený stav. Zabaľte tie tri do obklopujúceho stavu s názvom Active a nakreslite jeden prechod cancel von z Active. Platí pre ktorýkoľvek podstav je práve aktuálny. Tri šípky sa zmenia na jednu a pridanie štvrtého podstavu neskôr nič nestojí.
Pseudostav histórie - zakrúžkované H - rieši obnovenie. Bez neho opätovný vstup do zloženého stavu začne v jeho počiatočnom podstave. S ním sa stroj vráti do podstavu, v ktorom bol pri odchode. Plytká história (H) si pamätá jednu úroveň; hlboká história (H*) si pamätá celé vnorenie. Toto chcete pri čomkoľvek, čo sa dá pozastaviť.
05Kedy taký nakresliť#
Siahnite po ňom, keď
- Entita má pole so stavom a pravidlá o tom, ktoré zmeny sú povolené
- Objednávka, platba, predplatné, tiket, schvaľovanie dokumentu - čokoľvek so životným cyklom
- Protokol alebo zariadenie s režimami, kde nelegálne prechody spôsobia skutočnú škodu
- Chystáte sa napísať enum so stavmi a chcete mať najprv správne prechody
Siahnite po niečom inom, keď
- Objekt má dva stavy - stačí veta
- Popisujete proces cez viacero objektov; použite diagram aktivít
- Stavy sú v skutočnosti len kroky, ktoré vždy nasledujú po sebe v poradí
- Zaujímavé je, kto koho volá, nie v akom stave čo je
Stavový diagram sa mapuje takmer priamo do kódu, čo je pri UML nezvyčajné. Stavy sa stanú enumom, prechody tabuľkou a stráže podmienkami na každom zázname. Nakresliť ho ako prvý a implementovať podľa neho je jedno z mála miest, kde modelovanie priamočiaro šetrí čas a nielen dokumentuje.
06Časté chyby#
- Stavy pomenované ako činnosti.
Authorizingnaznačuje prebiehajúcu prácu; ak tam objekt čaká, pomenujte podmienku -Authorized,Awaiting capture. - Modelovanie procesu namiesto objektu.Ak sú vaše „stavy“ krokmi, ktoré vykonávajú rôzni ľudia, chcete diagram aktivít.
- Prechody bez spúšťača. Legálne - spustia sa, keď skončí činnosť
dodaného stavu - ale zvyčajne je to znak, že chýba udalosť. - Žiadny koncový stav a žiadne vysvetlenie. Buď objekt naozaj žije navždy, alebo sa na koncový stav zabudlo. Stáva sa oboje; zamýšľané je len jedno.
- Opakovanie toho istého prechodu z každého stavu. Práve na to je zložený stav.
Po jednom riadku na každé
- 01Jeden objekt, jeho stavy a udalosti, ktoré ním pohybujú. Nie proces.
- 02Prechody, ktoré nenakreslíte, sú tým obmedzením, kvôli ktorému diagram existuje.
- 03Popisy prechodov znejú spúšťač [stráž] / efekt a každá časť je voliteľná.
- 04Akcie entry, exit a do patria stavu; efekty patria jednému prechodu.
- 05Zložené stavy zbalia udalosť zdieľanú viacerými podstavmi do jednej šípky.
- 06Pseudostavy histórie pokračujú tam, kde stroj skončil, namiesto reštartu.
07Časté otázky#
Aký je formát popisu prechodu v UML?
Spúšťač, potom stráž v hranatých zátvorkách, potom účinok za lomkou. Spúšťač je udalosť, ktorá môže prechod vyvolať, stráž je podmienka, ktorá musí platiť, aby sa vyvolal, a účinok je to, čo sa pritom stane. Všetky tri sú voliteľné, takže popis môže byť len názov udalosti alebo len stráž.
Aký je rozdiel medzi vstupnou akciou a účinkom prechodu?
Vstupná akcia prebehne vždy pri vstupe do stavu, ktorýmkoľvek prechodom. Účinok prechodu prebehne len pri tom jednom prechode. Ak to isté správanie patrí ku každej ceste do stavu, je to vstupná akcia - a rozpísať ho na jednotlivé prechody je práve to, čím sa kópie od seba vzdialia.
Čo je zložený stav?
Stav obsahujúci vlastný stavový automat. Takto vyňmete skupinu stavov, ktoré zdieľajú ten istý odchádzajúci prechod: nakreslíte ho raz z okraja zloženého stavu namiesto raz z každého podstavu.
Čo znamená symbol H v stavovom automate?
Je to pseudostav histórie. Plytká história, H, sa vráti do naposledy aktívneho podstavu zloženého stavu; hlboká história, H s hviezdičkou, sa vráti do poslednej vnorenej konfigurácie na každej úrovni. Je to notácia pre pokračuj tam, kde sme skončili.
Kedy použiť stavový automat namiesto diagramu aktivít?
Keď je predmetom životný cyklus jedného objektu a otázka znie, čo sa môže stať ďalej. Stavový automat je sústredený na vec a stavy, v ktorých môže byť; diagram aktivít je sústredený na proces a kroky, ktorými prechádza.
V tejto sérii
- 01Čo je UML?
- 02Symboly UML
- 03Výber diagramu
- 04Diagramy tried
- 05Príklady diagramov tried
- 06Ako nakresliť diagram tried
- 07Symboly diagramu tried
- 08Sekvenčné diagramy
- 09Príklady sekvenčných diagramov
- 10Ako nakresliť sekvenčný diagram
- 11Diagramy prípadov použitia
- 12Príklady prípadov použitia
- 13Diagramy aktivít
- 14Príklady aktivít
- 15Stavové diagramy
- 16Príklady stavových diagramov
- 17Diagramy komponentov
- 18Príklady komponentov
- 19Kreslenie diagramu komponentov
- 20Symboly komponentov
- 21Diagramy nasadenia
- 22Príklady nasadenia
- 23Diagramy objektov
- 24Diagramy balíkov
- 25Diagramy zloženej štruktúry
- 26Komunikačné diagramy
- 27Sekvenčný vs komunikačný
- 28Časové diagramy
- 29Diagramy prehľadu interakcií
- 30Diagramy profilov
- 31UML pomocou AI
- 32Príklad e-shopu
- 33Príklad banky
- 34Príklad mikroslužieb
- 35Príklad AWS
Súvisiace články
Základy
Diagramy správania
Diagramy štruktúry
Diagramy správania
Diagramy správania
Diagramy správania