UML diagramy prípadov použitia
Diagram o rozsahu, nie o návrhu. Kto systém používa, na čo ho používa a kde vlastne leží hranica toho, čo staviate - kreslený skôr, než vznikne prvá trieda.
13 min čítaniaUML 2.5.111 z 35
Krátka odpoveď
- Diagram prípadov použitia je mapa rozsahu: kto so systémom interaguje, s akými cieľmi prichádza a kade vedie hranica medzi vnútrom a vonkajškom.
- Prípad použitia je cieľ, ktorý aktérovi prináša hodnotu, nie krok ani obrazovka. Aktéri sú role a vždy stoja mimo hranice.
- «include» vedie od základného prípadu k správaniu, ktoré prebehne vždy; «extend» vedie od voliteľného rozšírenia späť k základu. Smery sú opačné a práve v tom sa najčastejšie chybuje.
- Diagram je obsah knihy. Výstupom je popis prípadu použitia za každou elipsou - hlavný aktér, predpoklady, hlavný úspešný scenár, rozšírenia a následné podmienky.
01Čo ukazuje a čo zámerne neukazuje#
Diagram prípadov použitia je mapa rozsahu. Pomenúva ľudí a systémy, ktoré komunikujú s tým, čo staviate, ciele, s ktorými k tomu prichádzajú, a čiaru medzi vnútrom a vonkajškom. To je všetko, čo robí, a práve jeho zdržanlivosť je zmyslom.
Nehovorí nič o poradí. Nič o obrazovkách, poliach či algoritmoch. Nič o tom, ako čokoľvek funguje. Každé z toho je iný diagram a pokušenie prepašovať ich na tento je to, čo vyrába rozbujnené a nepoužiteľné diagramy prípadov použitia, ktoré tejto notácii urobili zlé meno.
02Ako nájsť aktérov a prípady použitia#
Zoznam vám nikto nedá. Diagram vyššie vyzerá po nakreslení samozrejme a predtým samozrejmý vôbec nebol; medzeru medzi prázdnym papierom a tým obrázkom vyplnia štyri otázky, ktoré sa v miestnosti dajú položiť za dvadsať minút.
- Kto tu niečo začína? Každý z nich je kandidát na primárneho aktéra. Pýtajte sa na rolu, nie na meno - človek, ktorý povedal „to robím ja“, je jedným nositeľom roly, ktorá ho prežije.
- Kto alebo čo niečo dostáva bez toho, aby o to žiadal? Reporty, súbory, notifikácie, zúčtovacie behy. Toto sú podporní aktéri na pravej strane hranice a je to tá polovica diagramu, ktorá väčšine prvých návrhov chýba.
- Čo tam musí byť, aby to fungovalo? Platobní poskytovatelia, identitné služby, mainframe, protipodvodný engine. Čokoľvek, kvôli čomu by ste zakladali ticket inému tímu, je mimo hranice a patrí na diagram - jeho nakreslenie býva okamihom, keď si niekto uvedomí, že tá závislosť nikdy nebola dohodnutá.
- Čo sa deje preto, že ubehol čas? Nočná rekonciliácia, štrnásťdňová expirácia, mesačná fakturácia. Čas je aktér, kreslí sa ako panáčik s popisom
ClockaleboScheduler, a procesy, ktoré ho vynechajú, končia s prípadmi použitia, ktoré zdanlivo nikto nezačína.
Potom pomenujte každý cieľ z aktérovej strany pultu, slovesom napred, jeho slovníkom: Submit payment, nie Payment submission handling a už vôbec nie PaymentController. Ak názov dáva zmysel len niekomu, kto videl kód, je to krok v prípade použitia, nie prípad použitia.
03Štyri značky#
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Aktér | panáčik | Rola mimo systému - človek, iný systém alebo hodiny. Rola, nie konkrétny jedinec: Merchant, nikdy Anna. |
| Prípad použitia | elipsa | Cieľ, ktorý systém doručuje, pomenovaný slovesom napred. |
| Hranica systému | obdĺžnik | Predmet. Prípady použitia idú dnu, aktéri vždy von. Jej názov je to, čo staviate. |
| Asociácia | Tento aktér sa zúčastňuje tohto prípadu použitia. Šípka netreba. | |
| Include | Prerušovaná šípka od základného k vloženému prípadu. Vložené správanie prebehne vždy. | |
| Extend | Prerušovaná šípka od rozšírenia k základnému prípadu. Správanie prebehne len niekedy. | |
| Generalizácia | Prázdny trojuholník pri všeobecnejšom. Funguje medzi aktérmi aj medzi prípadmi použitia. |
04Include a extend bez zmätku#
Tieto dva sú dôvodom, prečo sa diagramy prípadov použitia kreslia zle. Oba sú prerušované šípky s kľúčovým slovom a ukazujú opačnými smermi.
«include» ukazuje od základného prípadu k tomu, čo vždy robí. Čítajte to ako „volá“. V diagrame vyššie Submit payment zahŕňa Authorize payment: nedá sa odoslať bez autorizácie. Existuje na to, aby vyňal správanie zdieľané viacerými prípadmi - a presne preto ho zahŕňa aj Refund payment.
«extend» ukazuje od nepovinného doplnku späť k základnému prípadu. Čítajte to ako „môže prerušiť“. Log audit trail rozširuje Refund payment: refundácie fungujú aj bez neho a deje sa za istej podmienky. Základný prípad o svojich rozšíreniach nevie.
05Za bublinou: popis prípadu použitia#
Diagram je obsah knihy. To, z čoho sa naozaj stavia, je popis prípadu použitia za každou elipsou - a projekt, ktorý nakreslí diagram a popisy nikdy nenapíše, vyrobil obrázok práce namiesto jej špecifikácie. Práve o tejto časti notácia nehovorí nič, a preto toľko tímov zostane pri obrázku.
Existujú tri užitočné hĺbky a výber je rozhodnutie projektu, nie modelovania. Stručný popis sú dve vety v backlogu. Voľný je odsek na scenár. Plne rozvinutý má polia nižšie a oplatí sa pri tej hŕstke prípadov, ktoré nesú skutočné peniaze alebo skutočné riziko.
- Názov. Popis elipsy, sloveso napred:
Authorize payment. - Primárny aktér. Ten, kto chce výsledok.
Merchant. - Zainteresovaní a ich záujmy. Komu ďalšiemu na tom záleží a čo z toho potrebuje. Akvizičná banka chce platný autorizačný kód; protipodvodný tím chce mať pokus zaznamenaný bez ohľadu na to, či uspel. V tomto poli sa objaví väčšina chýbajúcich požiadaviek.
- Predpoklady. Čo už platí, keď sa prípad začína - obchodník je prihlásený, objednávka existuje. Nie zoznam krokov, ale zoznam záruk.
- Hlavný úspešný scenár. Očíslovaná šťastná cesta, krok aktéra a potom krok systému, v jazyku biznisu. Niekde medzi piatimi a dvanástimi krokmi; viac znamená, že prípad použitia sú v skutočnosti dva.
- Rozšírenia. Očíslované podľa kroku, z ktorého sa vetvia - 4a, 4b, 7a - každé s podmienkou a s tým, čo sa stane. Toto je pole, kvôli ktorému sa formát oplatí, lebo je systematickou pobádkou pre každý spôsob, akým šťastná cesta zlyhá.
- Následné podmienky. Čo platí potom, pri úspechu aj pri každom zlyhaní. „Autorizácia je zaznamenaná a prostriedky sú blokované“ sa dá otestovať spôsobom, akým „platba je spracovaná“ nie.
Rozpracované v malom pre Authorize payment: hlavný úspešný scenár je (1) obchodník odošle platbu, (2) systém overí sumu objednávky, (3) systém požiada akvizičnú banku o autorizáciu, (4) banka vráti schválenie, (5) systém zaznamená blokáciu a potvrdí. Práca je v rozšíreniach - 3a banke vyprší čas, 4a banka zamietne, 4b banka si vyžiada dodatočné overenie - a každé z nich je rozhovor, ktorý by inak niekto viedol o šesť týždňov neskôr pri triáži chýb.
06Kedy taký diagram kresliť#
Siahnite po ňom, keď
- Dohadovanie rozsahu na začiatku projektu s ľuďmi, ktorí nečítajú kód
- Zisťovanie, od ktorých externých systémov naozaj závisíte
- Výroba zoznamu, z ktorého sa dá odvodiť testovací plán alebo backlog
- Ukázanie, že požiadavka patrí do cudzieho systému, nie do vášho
Siahnite po niečom inom, keď
- Chcete ukázať postupnosť krokov - to je diagram aktivít alebo sekvenčný
- Systém má jedného aktéra a štyri prípady použitia; odrážkový zoznam je jasnejší
- Máte chuť rozkladať prípady použitia na podprípady do troch úrovní
- Publikom sú inžinieri, ktorí potrebujú návrh, nie rozsah
Užitočný diagram prípadov použitia sa zmestí na jednu stranu a má niekde medzi tromi a desiatimi elipsami. Je to obsah, nie kniha. Detail patrí do popisov prípadov použitia - očíslovaného hlavného toku a jeho alternatív - alebo, ak je tok dosť vetviaci na to, aby sa oplatilo ho nakresliť, do diagramu aktivít na každý prípad.
07Časté chyby#
- Funkčný rozklad. Dvadsať elíps pomenovaných podľa tlačidiel. Prípady použitia sú ciele; ak to nie je niečo, čo aktér chce, nepatrí to sem.
- Aktéri pomenovaní podľa ľudí alebo pozícií z organigramu. Modelujte rolu. Jeden človek môže byť viacerými aktérmi a jeden aktér môže byť dávková úloha.
- Prehodené šípky
«include»a«extend». Ukazujú opačne. Použite test odstránenia z vyššie uvedeného. - Aktéri vnútri hranice. Hranica je to, čo staviate. Aktér je z definície mimo nej.
- Poradie naznačené zvislou pozíciou. Diagram prípadov použitia nemá časovú os. Nič na rozložení nehovorí, čo sa deje skôr.
Po jednom riadku na každé
- 01Diagramy prípadov použitia odpovedajú na kto a načo - nikdy na ako a v akom poradí.
- 02Prípad použitia je cieľ, ktorý aktérovi prináša hodnotu, pomenovaný slovesom napred.
- 03Aktéri sú roly a vždy stoja mimo hraničného obdĺžnika.
- 04«include» ukazuje od základného prípadu k správaniu, ktoré prebehne vždy.
- 05«extend» ukazuje od nepovinného doplnku späť k základnému prípadu.
- 06Tri až desať prípadov na jednu stranu; detail žije v popisoch, nie na plátne.
08Časté otázky#
Aký je rozdiel medzi include a extend?
Include znamená, že základný prípad použitia vždy spustí ten zahrnutý, ide teda o vyňaté správanie a šípka smeruje od základného k zahrnutému. Extend znamená, že rozširujúci prípad prebehne len za podmienky, a šípka smeruje opačne, od rozšírenia k základu. Práve smer si ľudia najčastejšie pomýlia.
Čo je aktér v diagrame prípadov použitia?
Čokoľvek mimo systému, čo s ním interaguje: človek v role, iný systém alebo naplánovaný spúšťač. Aktér je rola, nie jednotlivec, takže jeden človek môže byť dvoma aktérmi a jeden aktér môže byť mnohými ľuďmi.
Čo do diagramu prípadov použitia nepatrí?
Poradie, dáta a návrh. Diagram prípadov použitia odpovedá na to, kto to používa a na čo, nie v akom poradí alebo s akými poľami. Ak zistíte, že kreslíte kroky, chcete diagram aktivít.
Na čo je rám hranice systému?
Obdĺžnik okolo prípadov použitia vyznačuje to, čo staviate. Aktéri stoja vonku a prípady použitia vnútri. Je to prvok, ktorý z diagramu robí výrok o rozsahu, a to je hlavný dôvod, prečo ho vôbec kresliť.
Čo patrí do popisu prípadu použitia?
Plne rozpísaný má názov, hlavného aktéra, zainteresované strany a to, čo každá z nich potrebuje, predpoklady, očíslovaný hlavný úspešný scenár, rozšírenia očíslované podľa kroku, z ktorého sa vetvia, a následné podmienky. Formát si zaslúži práve pole rozšírení, pretože je systematickou výzvou premyslieť každý spôsob, akým môže šťastná cesta zlyhať.
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 správania
Diagramy štruktúry
Diagramy správania
Diagramy správania