UML diagramy případů užití
Diagram o rozsahu, ne o návrhu. Kdo systém používá, k čemu ho používá a kde vlastně leží hranice toho, co stavíte - kreslený dřív, než vznikne první třída.
13 min čteníUML 2.5.111 z 35
Krátká odpověď
- Diagram případů užití je mapa rozsahu: kdo se systémem interaguje, s jakými cíli přichází a kudy vede hranice mezi vnitřkem a vnějškem.
- Případ užití je cíl, který aktérovi přináší hodnotu, ne krok ani obrazovka. Aktéři jsou role a vždy stojí mimo hranici.
- «include» vede od základního případu k chování, které proběhne vždy; «extend» vede od volitelného rozšíření zpět k základu. Směry jsou opačné a právě v tom se nejčastěji chybuje.
- Diagram je obsah knihy. Výstupem je popis případu užití za každou elipsou - hlavní aktér, předpoklady, hlavní úspěšný scénář, rozšíření a následné podmínky.
01Co ukazuje a co záměrně neukazuje#
Diagram případů užití je mapa rozsahu. Pojmenovává lidi a systémy, které komunikují s tím, co stavíte, cíle, se kterými k tomu přicházejí, a čáru mezi vnitřkem a vnějškem. To je všechno, co dělá, a právě jeho zdrženlivost je smyslem.
Neříká nic o pořadí. Nic o obrazovkách, polích či algoritmech. Nic o tom, jak cokoli funguje. Každé z toho je jiný diagram a pokušení propašovat je na tenhle je to, co vyrábí rozbujelé a nepoužitelné diagramy případů užití, které této notaci udělaly špatné jméno.
02Jak najít aktéry a případy užití#
Seznam vám nikdo nedá. Diagram výše vypadá po nakreslení samozřejmě a předtím samozřejmý vůbec nebyl; mezeru mezi prázdným papírem a tím obrázkem vyplní čtyři otázky, které se v místnosti dají položit za dvacet minut.
- Kdo tu něco začíná? Každý z nich je kandidát na primárního aktéra. Ptejte se na roli, ne na jméno - člověk, který řekl „to dělám já“, je jedním nositelem role, která ho přežije.
- Kdo nebo co něco dostává, aniž by o to žádal? Reporty, soubory, notifikace, zúčtovací běhy. Tohle jsou podpůrní aktéři na pravé straně hranice a je to ta polovina diagramu, která většině prvních návrhů chybí.
- Co tam musí být, aby to fungovalo? Platební poskytovatelé, identitní služby, mainframe, protipodvodný engine. Cokoli, kvůli čemu byste zakládali ticket jinému týmu, je mimo hranici a patří na diagram - jeho nakreslení bývá okamžikem, kdy si někdo uvědomí, že ta závislost nikdy nebyla dohodnuta.
- Co se děje proto, že uběhl čas? Noční rekonciliace, čtrnáctidenní expirace, měsíční fakturace. Čas je aktér, kreslí se jako panáček s popisem
ClockneboScheduler, a procesy, které ho vynechají, končí s případy užití, které zdánlivě nikdo nezačíná.
Pak pojmenujte každý cíl z aktérovy strany pultu, slovesem napřed, jeho slovníkem: Submit payment, ne Payment submission handling a už vůbec ne PaymentController. Pokud název dává smysl jen někomu, kdo viděl kód, je to krok v případu užití, ne případ užití.
03Čtyři značky#
| Prvek | Notace | Co znamená |
|---|---|---|
| Aktér | panáček | Role mimo systém - člověk, jiný systém nebo hodiny. Role, ne konkrétní jedinec: Merchant, nikdy Anna. |
| Případ užití | elipsa | Cíl, který systém doručuje, pojmenovaný slovesem napřed. |
| Hranice systému | obdélník | Předmět. Případy užití jdou dovnitř, aktéři vždy ven. Její název je to, co stavíte. |
| Asociace | Tento aktér se účastní tohoto případu užití. Šipka není potřeba. | |
| Include | Přerušovaná šipka od základního k vloženému případu. Vložené chování proběhne vždy. | |
| Extend | Přerušovaná šipka od rozšíření k základnímu případu. Chování proběhne jen někdy. | |
| Generalizace | Prázdný trojúhelník u obecnějšího. Funguje mezi aktéry i mezi případy užití. |
04Include a extend bez zmatku#
Tyhle dva jsou důvodem, proč se diagramy případů užití kreslí špatně. Oba jsou přerušované šipky s klíčovým slovem a ukazují opačnými směry.
«include» ukazuje od základního případu k tomu, co vždy dělá. Čtěte to jako „volá“. V diagramu výše Submit payment zahrnuje Authorize payment: nejde odeslat bez autorizace. Existuje proto, aby vyňal chování sdílené několika případy - a přesně proto ho zahrnuje i Refund payment.
«extend» ukazuje od nepovinného doplňku zpět k základnímu případu. Čtěte to jako „může přerušit“. Log audit trail rozšiřuje Refund payment: refundace fungují i bez něj a děje se za jisté podmínky. Základní případ o svých rozšířeních neví.
05Za bublinou: popis případu užití#
Diagram je obsah knihy. To, z čeho se opravdu staví, je popis případu užití za každou elipsou - a projekt, který nakreslí diagram a popisy nikdy nenapíše, vyrobil obrázek práce místo její specifikace. Právě o téhle části notace neříká nic, a proto tolik týmů zůstane u obrázku.
Existují tři užitečné hloubky a výběr je rozhodnutí projektu, ne modelování. Stručný popis jsou dvě věty v backlogu. Volný je odstavec na scénář. Plně rozvinutý má pole níže a vyplatí se u té hrstky případů, které nesou skutečné peníze nebo skutečné riziko.
- Název. Popis elipsy, sloveso napřed:
Authorize payment. - Primární aktér. Ten, kdo chce výsledek.
Merchant. - Zainteresovaní a jejich zájmy. Komu dalšímu na tom záleží a co z toho potřebuje. Akviziční banka chce platný autorizační kód; protipodvodný tým chce mít pokus zaznamenaný bez ohledu na to, zda uspěl. V tomhle poli se objeví většina chybějících požadavků.
- Předpoklady. Co už platí, když případ začíná - obchodník je přihlášen, objednávka existuje. Ne seznam kroků, ale seznam záruk.
- Hlavní úspěšný scénář. Očíslovaná šťastná cesta, krok aktéra a pak krok systému, v jazyce byznysu. Někde mezi pěti a dvanácti kroky; víc znamená, že případ užití jsou ve skutečnosti dva.
- Rozšíření. Očíslovaná podle kroku, ze kterého se větví - 4a, 4b, 7a - každé s podmínkou a s tím, co se stane. Tohle je pole, kvůli kterému se formát vyplatí, protože je systematickou pobídkou pro každý způsob, jakým šťastná cesta selže.
- Následné podmínky. Co platí potom, při úspěchu i při každém selhání. „Autorizace je zaznamenána a prostředky jsou blokovány“ jde otestovat způsobem, jakým „platba je zpracována“ ne.
Rozpracováno v malém pro Authorize payment: hlavní úspěšný scénář je (1) obchodník odešle platbu, (2) systém ověří částku objednávky, (3) systém požádá akviziční banku o autorizaci, (4) banka vrátí schválení, (5) systém zaznamená blokaci a potvrdí. Práce je v rozšířeních - 3a bance vyprší čas, 4a banka zamítne, 4b banka si vyžádá dodatečné ověření - a každé z nich je rozhovor, který by jinak někdo vedl o šest týdnů později při triáži chyb.
06Kdy takový diagram kreslit#
Sáhněte po něm, když
- Dohadování rozsahu na začátku projektu s lidmi, kteří nečtou kód
- Zjišťování, na kterých externích systémech opravdu závisíte
- Výroba seznamu, ze kterého jde odvodit testovací plán nebo backlog
- Ukázání, že požadavek patří do cizího systému, ne do vašeho
Sáhněte po něčem jiném, když
- Chcete ukázat posloupnost kroků - to je diagram aktivit nebo sekvenční
- Systém má jednoho aktéra a čtyři případy užití; odrážkový seznam je jasnější
- Máte chuť rozkládat případy užití na podpřípady do tří úrovní
- Publikem jsou inženýři, kteří potřebují návrh, ne rozsah
Užitečný diagram případů užití se vejde na jednu stránku a má někde mezi třemi a deseti elipsami. Je to obsah, ne kniha. Detail patří do popisů případů užití - očíslovaného hlavního toku a jeho alternativ - nebo, pokud je tok dost větvený na to, aby se vyplatilo ho nakreslit, do diagramu aktivit na každý případ.
07Časté chyby#
- Funkční rozklad. Dvacet elips pojmenovaných podle tlačítek. Případy užití jsou cíle; pokud to není něco, co aktér chce, nepatří to sem.
- Aktéři pojmenovaní podle lidí nebo pozic z organigramu. Modelujte roli. Jeden člověk může být několika aktéry a jeden aktér může být dávková úloha.
- Prohozené šipky
«include»a«extend». Ukazují opačně. Použijte test odstranění z výše uvedeného. - Aktéři uvnitř hranice. Hranice je to, co stavíte. Aktér je z definice mimo ni.
- Pořadí naznačené svislou pozicí. Diagram případů užití nemá časovou osu. Nic na rozvržení neříká, co se děje dřív.
Po jednom řádku na každé
- 01Diagramy případů užití odpovídají na kdo a nač - nikdy na jak a v jakém pořadí.
- 02Případ užití je cíl, který aktérovi přináší hodnotu, pojmenovaný slovesem napřed.
- 03Aktéři jsou role a vždy stojí mimo hraniční obdélník.
- 04«include» ukazuje od základního případu k chování, které proběhne vždy.
- 05«extend» ukazuje od nepovinného doplňku zpět k základnímu případu.
- 06Tři až deset případů na jednu stránku; detail žije v popisech, ne na plátně.
08Časté dotazy#
Jaký je rozdíl mezi include a extend?
Include znamená, že základní případ užití vždy spustí ten zahrnutý, jde tedy o vyňaté chování a šipka míří od základního k zahrnutému. Extend znamená, že rozšiřující případ proběhne jen za podmínky, a šipka míří opačně, od rozšíření k základu. Právě směr si lidé nejčastěji pletou.
Co je aktér v diagramu případů užití?
Cokoli mimo systém, co s ním interaguje: člověk v roli, jiný systém nebo naplánovaný spouštěč. Aktér je role, ne jednotlivec, takže jeden člověk může být dvěma aktéry a jeden aktér může být mnoha lidmi.
Co do diagramu případů užití nepatří?
Pořadí, data a návrh. Diagram případů užití odpovídá na to, kdo to používá a k čemu, ne v jakém pořadí nebo s jakými poli. Zjistíte-li, že kreslíte kroky, chcete diagram aktivit.
K čemu je rám hranice systému?
Obdélník kolem případů užití vyznačuje to, co stavíte. Aktéři stojí venku a případy užití uvnitř. Je to prvek, který z diagramu dělá výrok o rozsahu, a to je hlavní důvod ho vůbec kreslit.
Co patří do popisu případu užití?
Plně rozepsaný má název, hlavního aktéra, zainteresované strany a to, co každá z nich potřebuje, předpoklady, očíslovaný hlavní úspěšný scénář, rozšíření očíslovaná podle kroku, ze kterého se větví, a následné podmínky. Formát si zaslouží právě pole rozšíření, protože je systematickou výzvou promyslet každý způsob, jakým může šťastná cesta selhat.
V této sérii
- 01Co je UML?
- 02Symboly UML
- 03Výběr diagramu
- 04Diagramy tříd
- 05Příklady diagramů tříd
- 06Jak nakreslit diagram tříd
- 07Symboly diagramu tříd
- 08Sekvenční diagramy
- 09Příklady sekvenčních diagramů
- 10Jak nakreslit sekvenční diagram
- 11Diagramy případů užití
- 12Příklady případů užití
- 13Diagramy aktivit
- 14Příklady aktivit
- 15Stavové diagramy
- 16Příklady stavových diagramů
- 17Diagramy komponent
- 18Příklady komponent
- 19Kreslení diagramu komponent
- 20Symboly komponent
- 21Diagramy nasazení
- 22Příklady nasazení
- 23Diagramy objektů
- 24Diagramy balíků
- 25Diagramy složené struktury
- 26Komunikační diagramy
- 27Sekvenční vs komunikační
- 28Časové diagramy
- 29Diagramy přehledu interakcí
- 30Diagramy profilů
- 31UML pomocí AI
- 32Příklad e-shopu
- 33Příklad banky
- 34Příklad mikroslužeb
- 35Příklad AWS
Související články
Základy
Diagramy chování
Diagramy chování
Diagramy struktury
Diagramy chování
Diagramy chování