Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 50% výuky zdarma!
Pouze tento týden sleva až 80 % na e-learning týkající se Javy

Lekce 2 - UML - Use Case Diagram

V minulé lekci, Úvod do UML, jsme si uvedli jazyk UML a pochopili, že usnadňuje jak analýzu, tak i návrh informačních systémů. V dnešním UML tutoriálu začneme s Use Case diagramy.

Use Case Diagram (česky diagram případů užití) zobrazuje chování systému tak, jak ho vidí uživatel. Účelem diagramu je popsat funkcionalitu systému, tedy co od něj klient nebo my očekáváme. Diagram vypovídá o tom, co má systém umět, ale neříká, jak to bude dělat. Proto je to většinou první diagram, který při návrhu informačního systému vytváříme. Je důležité se nejprve shodnout na tom, co má náš systém (nebo aplikace, hra, cokoli) umět. Až potom má smysl se ptát, jak to vlastně uděláme.

Use Case diagram se skládá z případů užití (use case), dále aktérů (actors) a vztahů mezi nimi.

Use Case (Případ užití)

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Případ užití (nebo zkráceně UC) je sada několika akcí, které vedou k dosažení určitého cíle. Use Case může být přidání komentáře k článku, registrování nového uživatele nebo např. vytisknutí dokumentu. Definuje tedy jednu funkcionalitu, kterou by měl navrhovaný systém umět. Ta v sobě obsahuje další akce, např. přidání komentáře bude obsahovat ověření uživatele, validaci zadaných dat, zápis do databáze apod. To v diagramu zachyceno již nebude. UML často hovoří o tzv. blackboxu (černé skříňce), kde skryjeme vnitřní logiku a pracujeme pouze s komponentami. Tento princip přesně využívá UC diagram.

Use Case je nejčastěji zakreslován jako elipsa s jeho názvem uvnitř.

UML Use Case

Případy užití vychází ze zadání systému od našeho zákazníka (pokud děláme systém pro sebe, tak z našich poznámek, co by měl umět). Hovoříme o tzv. mapování uživatelských požadavků na jednotlivé Use Case.

Actor (Aktér)

Aktér je role, která komunikuje s jednotlivými případy užití. V této roli může být obsazen uživatel nebo externí systém. Aktérem tedy může být např. Uživatel, Administrátor, SMS server nebo dokonce Čas. Aktér inicializuje nějaký případ užití (např. Uživatel vloží příspěvek do fóra). Zde bychom hovořili o tom, že je aktér aktivní. Aktér sám však může být případem užití iniciován (např. externí SMS server je iniciován případem užití Poslat SMS). V tomto případě hovoříme o pasivním aktérovi a zakresluje ho v diagramu napravo.

Aktéry znázorňujeme jako postavu z čar s názvem napsaným pod ní.

UML Aktér

Pojďme si nyní zkusit vytvořit ukázkový UC diagram, jelikož všichni znáte ITnetwork, budeme navrhovat jemu podobný systém, jen značně zjednodušený. Tento ukázkový systém nás bude provázet celým UML kurzem, vlastně si celý ITnetwork navrhneme pomocí několika UML diagramů. Popis jeho funkčnosti by vypadal pomocí Use Case diagramu takto:

Ukázkový Use Case UML diagram případů užití

Vidíme, že diagram není složité nakreslit. Navrhnout však případy užití tak, aby jich byl rozumný počet a rovnoměrně pokrývaly funkcionalitu systému již chce trochu praxe. Určitě je však lepší nějaký než žádný, takže se ho nebojte používat :)

  • Neregistrovaný uživatel může psát komentáře nebo se zaregistrovat. Komunikace probíhá zleva doprava (pokud není šipkou naznačen jiný směr). Aktéři jsou tedy propojeni s těmi případy užití, které se jich týkají. Vazbě znázorněné jednoduchou čarou říkáme asociace. Může mít specifikovanou násobnost i směr, ale tím se zde nebudeme ještě zabývat.
  • Člen může to samé, jako neregistrovaný uživatel, protože z něj dědí. Tento vztah je znázorněn prázdnou uzavřenou šipkou směrem k předkovi. Tuto vazbu nazýváme generalizace. Člen může navíc ještě spravovat svůj profil a hodnotit články.
  • Redaktor též umí to samé jako člen, ale navíc může články i psát.
  • Administrátor může oproti redaktorům opět spouštět několik funkčností navíc. Zajímavá je vazba <<include>>. Ta se používá v případě, že je nějaká funkcionalita důležitá natolik, že ji chceme mít v diagramu místo toho, abychom ji jen prohlásili součástí nějakého Use Case. Případ užití napojený pomocí vazby <<include>> se spustí vždy, když je spuštěn případ, na který je napojen. Zde je tedy autor článku upomenut při schválení a zamítnutí článku. Samotné upomenutí v sobě bude mít další logiku, např. jestli emailem, SMS apod. My ho máme zabalený v jednom případu užití. Kromě <<include>> existuje ještě vazba <<extend>>, ale ta je velmi zavádějící a příliš se nepoužívá, nebudeme se jí tedy zabývat.
  • Posledním aktérem je Timer (čas), ten se v určitou dobu spustí a provede odeslání aktualizací emailem. Aktéra čas zakreslujeme na pravou stranu, ačkoli je v podstatě aktivní.

Příště, v lekci UML - Use Case Specifikace, si řekneme něco o UC specifikaci a ukážeme si ještě jeden Use Case diagram, tentokrát komplexnějšího systému.


 

Předchozí článek
Úvod do UML
Všechny články v sekci
UML
Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
38 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 13 let. Má rád Nirvanu, sushi a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity (9)

 

 

Komentáře

Avatar
Benjibs
Člen
Avatar
Benjibs:7.8.2013 14:56

Aká väzba by sa dala použit, ked chcem na jeden User Case naviazat viacero dalších možností?
Dajme tomu, že mám aktéra uživateľ, ktorý môže 'zapnúť timer'. A na tento UC, by som chcel naviazat "Prerušiť" a "Zobraziť aktuálny stav".
Ďakujem za prípadnú odpoveď

Odpovědět
7.8.2013 14:56
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:7.8.2013 15:00

V UC nejsou žádné možnosti, to si pleteš s jinými diagramy.

Odpovědět
7.8.2013 15:00
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:7.8.2013 15:04

No, zle som sa vyjadril, jeden UC naviazat na viacero dalších UC :)

Odpovědět
7.8.2013 15:04
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:7.8.2013 15:07

UC se navazují na aktéry, ne na další UC. Nepochopil jsi princip toho diagramu.

Odpovědět
7.8.2013 15:07
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Benjibs
Člen
Avatar
Benjibs:7.8.2013 15:13

Mal som na mysli čosi podobné tomuto:
http://www.modernanalyst.com/…eDiagram.jpg
http://api.ning.com/…amSample.png

Odpovědět
7.8.2013 15:13
1 + 1 = 2
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Benjibs
David Čápka:7.8.2013 15:14

Četl jsi vůbec ten článek?

Odpovědět
7.8.2013 15:14
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Benjibs
Člen
Avatar
Odpovídá na David Čápka
Benjibs:7.8.2013 15:20

Keby som ho nečítal, tak by som sa naňho nepýtal.
Zrejme som tam niečo nepochopil.

Odpovědět
7.8.2013 15:20
1 + 1 = 2
Avatar
Mediel
Redaktor
Avatar
Mediel:23.9.2013 13:46

Ještě tu chybí zmínka o těch "čárách", které jsou uvnitř. Možná by bylo dobré napsat, že Mezi Actory jsou tzv."Generali­zation" a z Actorů do Use Case jdou "Association". Pak tam také vidím 2x "Include" čáry, ale ty jsou patrné :)

Odpovědět
23.9.2013 13:46
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Mediel
David Čápka:23.9.2013 13:59

Vždyť je to tam napsané, asi jsi článek nečetl. Nechápu tyhle komentáře.

Odpovědět
23.9.2013 13:59
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Mediel
Redaktor
Avatar
Odpovídá na David Čápka
Mediel:23.9.2013 14:03

Sorry, máš pravdu, jsem se soustředil na to UML. Chápu, že jsi podrážděný, ale zas tyhle komentáře jsou myšlené v dobrém ;) Ale pravda, raději držet jazyk za zuby, aby byl klid :D Jdu pokračovat.

Odpovědět
23.9.2013 14:03
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Martin
Neregistrovaný
Avatar
Martin:16.12.2013 15:26

Proč všichni dědí možnost registrovat se od Neregistrovaného uživatele?
Není to trochu blbost aby se např. administrátor mohl znova registrovat?

 
Odpovědět
16.12.2013 15:26
Avatar
Mirakin
Člen
Avatar
Odpovídá na Martin
Mirakin:26.1.2014 11:37

A není to spíš tak, že se nedědí možnost registrovat, ale samotný uživatel. Například, že neregistrovaný uživatel má jméno, příjmení, rok narození atd.
Stejně tak i člen, redaktor, administrátor.

 
Odpovědět
26.1.2014 11:37
Avatar
Odpovídá na Mirakin
Jakub Vaněk (Bubavanek):9.2.2014 20:03

Ono jde asi spis o to ze potomek dedi jen z primeho predka, nikoli z ,,prapredka,, nebo jak to nazvat. Tudiz redaktor dedi pouze ze clena, clen pouze z neregistrovaneho atp.

Opravte me nekdo jestli se pletu.

 
Odpovědět
9.2.2014 20:03
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Jakub Vaněk (Bubavanek)
MrPabloz:9.2.2014 20:37

Tu je dědičnost dána tak, že co umí rodič, umí i potomek, a jestli člen umí vše co neregistrovaný, tak potom redaktor, který dědí z člena, umí vše co člen, tedy i to co neregistrovaný :)

Odpovědět
9.2.2014 20:37
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Odpovídá na MrPabloz
Jakub Vaněk (Bubavanek):9.2.2014 20:41

Aha, takze by se dalo rict vicenasobna dedicnost?

 
Odpovědět
9.2.2014 20:41
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Jakub Vaněk (Bubavanek)
MrPabloz:9.2.2014 21:19

Ano, přesně tak.

Odpovědět
9.2.2014 21:19
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Tunco
Člen
Avatar
Tunco:18.10.2014 15:31

Prosím, prečo je UC3 a UC 4 vynechané?

 
Odpovědět
18.10.2014 15:31
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
holanekk
Člen
Avatar
holanekk:23.10.2014 18:10

Dají se use case diagramy používat i pro návrh desktopových aplikací ? Které typy ULM diagramů by se daly pro vývoj desktopových aplikací použít ? děkuji za odpověď.

 
Odpovědět
23.10.2014 18:10
Avatar
Tereza Pospíšilová:15.1.2016 16:54

Ahoj, možná trochu hloupá otázka, ale mějte se mnou slitování, učím se a mám za sebou 11 hodin koukání do monitoru :D Prosím Vás u Timera resp. uc, píše se asi také scénář, že? Zkouším v EA udělat zabezpečovací systém budovy a zasekla jsem se u scénáře...dlouhé hodiny mě zabralo to, jestli mám vůbec správně diagram a teď toto :D

 
Odpovědět
15.1.2016 16:54
Avatar
Simona Dostálová:27.9.2017 15:25

Skvělý další díl.

 
Odpovědět
27.9.2017 15:25
Avatar
Zuzana Dubnická:11.10.2017 11:56

Další pěkný článek - výstižný. Jen chybí vysvětlení, proč v diagramu chybí UC3 a UC6.

 
Odpovědět
11.10.2017 11:56
Avatar
Jakub Mikšík:21.4.2018 17:48

Dobrý den, nejsem si zcela jist, co je use case a co ne. Pokud si vezmu příklad s výtahem. Aktor je člověk a výtah je systém. Dá se říci, že use case jsou následující věci?:
UC1 - přivolání výtahu, UC2 - nastoupení do výtahu, UC3 - vystoupení z výtahu, UC4 zavolání si pomoci z výtahu, UC5 výběr patra
Děkuji za pomoc

 
Odpovědět
21.4.2018 17:48
Avatar
Jindřich Máca
Redaktor
Avatar
Odpovídá na Jakub Mikšík
Jindřich Máca:21.4.2018 18:14

Zdravím, může být. :-)

 
Odpovědět
21.4.2018 18:14
Avatar
Odpovídá na Jindřich Máca
Jakub Mikšík:21.4.2018 18:24

Děkuji za odpověď. Trochu jsem doufal, že nastoupení a vystoupení z výtahu bude špatně. Hlava mi to totiž moc nebere. Počítal jsem, že to bude spíše patřit třeba do diagramu aktivit. Při nastoupení do výtahu to není přece o tom, co by měl systém umět... Respektive musí umět otevření dveří, ale to je sekundární vlastnost přivolání výtahu (i když výtah stojí v daném patře, kde mi a jen otevře dveře)... :-/ Je možné mi to polopaticky vysvětlit? Nebo je to v pořádku jen za předpokladu, že aktor musí ještě něco udělat (kromě přivolání výtahu - třeba ručně ty dveře otevřít). Na normálních systémech to chápu, ale na tomhle případu jsem se kousl. díky :-)

 
Odpovědět
21.4.2018 18:24
Avatar
Jindřich Máca
Redaktor
Avatar
Odpovídá na Jakub Mikšík
Jindřich Máca:22.4.2018 0:26

Je to docela jednoduché a zkusím to tedy vysvětlit trochu polopaticky. Tento diagram se snaží o zachycení toho, co by daný systém měl umět. Už z doslovného překladu "diagram případů použití" je jasné, že primárním cílem je popis různých použití systému. Jelikož je to diagram analýzy, ne návrhu, řeší se zde pouze otázka toho, co bude umět, nikoliv jak to bude ve výsledku technicky zpracované. Jedním z jeho hlavních využití je pak např. možnost namapovat schopnosti systému na kladené uživatelské požadavky, tj. zkrátka jestli to bude umět všechno, co uživatel požadoval. :)

Ve Tvém případě tedy nastoupení i vystoupení jsou použití systému výtah, tudíž hurá s nimi do diagramu. To, že ve výsledku tyto akce budou čistě uživatelská interakce bez programové podpory je záležitost technického řešení (návrhu). Ber to tak, že v rámci analýzy ještě ani nevíš přesné technologie, ve kterých to budeš dělat, ale víš, že obecný výtah má umožňovat toto použití na základě toho, že to uživatel chtěl. :D

Doufám, že už je to trochu jasnější, líp to asi vysvětlit neumím...

 
Odpovědět
22.4.2018 0:26
Avatar
Jakub Mikšík:22.4.2018 17:56

Teď už je mi to naprosto jasné. Já jsem v některých krocích byl myšlenkově trošku napřed, tak mi to nedávalo moc smysl. Děkuji moc :-)

 
Odpovědět
22.4.2018 17:56
Avatar
bujna.tomas
Člen
Avatar
bujna.tomas:3.5.2018 7:48

Možno som niečo prehliadol, ale nie je Timer v tomto prípade aktívny aktér a teda by mal byť naľavo?

 
Odpovědět
3.5.2018 7:48
Avatar
bujna.tomas
Člen
Avatar
bujna.tomas:3.5.2018 8:02

Jemineee áno, prehliadol som je to v článku.

 
Odpovědět
3.5.2018 8:02
Avatar
Lukáš Hruška:19.7.2018 11:50

Díky za tutoriál, pro základní přehled skvělý. Mám ale připomínku k větě "Zajímavá je vazba <<include>>. Ta se používá v případě, že je nějaká funkcionalita důležitá natolik, že ji chceme mít v diagramu místo toho, abychom ji jen prohlásili součástí nějakého Use Case. "

Z tohoto důvodu tam <<include>> opravdu není ;-) Je tam z toho důvodu, že pokud se nějaká část (kroky scénáře) use case opakují u více use case, tak se tato část napíše samostatně, aby se u každého use case nevypisovala znovu. V případě změny se tak změní všude. Jedná se vlastně o odstranění zbytečných duplicit.
Navíc všechny popsané use case jsou stejně důležité, buď je daný systém má umět nebo nemá.

Editováno 19.7.2018 11:52
 
Odpovědět
19.7.2018 11:50
Avatar
Lukáš Hruška:19.7.2018 11:54

To, že zadavatel klade větší důraz na nějakou funkčnost patří do textového popisu, který diagram doplňuje.

 
Odpovědět
19.7.2018 11:54
Avatar
Jakub Hrubčo:14.8.2018 11:36

Ahoj, prosim ako sa nazyva vazba medzi Timer a UC12? Dakujem

 
Odpovědět
14.8.2018 11:36
Avatar
Odpovídá na Jakub Hrubčo
Josef Horváth:15.8.2018 6:55

Ahoj, výše v textu máš uvedeno:

Vazbě znázorněné jednoduchou čarou říkáme asociace. Může mít specifikovanou násobnost i směr.

Šipkou naznačíš, že odkaz na UC12 bude uchován v instanci Timeru. Více o vztazích mezi entitami se dozvíš v lekci 4 – UML – Doménový model.

 
Odpovědět
15.8.2018 6:55
Avatar
Zdenek
Člen
Avatar
Zdenek:2.12.2018 0:43

Ahoj, mohl by jsi jeste podrobneji popsat vazbu <<extend>>. Vidavam ji v diagramech casteji nez <<include>>.
Diky

 
Odpovědět
2.12.2018 0:43
Avatar
Aleš Vlasák:6. května 17:59

Ahoj lidi potřeboval bych poradit možná s trochu hloupou věcí. Když si chci instalovat python tak mi to hlásí že na to můj počítač nestačí. Nebo to špatně chápu a něco dělám špatně? Mám windows 7 a počítač toshiba satellite c 660 1p 8. Nechce se mi kupovat kvůli tomu nový pc ale myslím že problém asi bude jinde.

Poradíte mi někdo prosím nebo pošlete mi prosím odkaz kde si mohu stahnout python.

A když už to píšu až dokončím kurz html a css jaký bych měl dělat další? Který je pro začátečníka nejjednodušší? Když bych chtěl programovat a dělat něco v budoucnu třeba bokem při práci někomu na zakázku?Nebo je lepší dělat aplikace nebo se podílet na vývoji her? Java script c+ python?

Děkuji moc za radu a vaší trpělivost se mnou Aleš

 
Odpovědět
6. května 17:59
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 34 zpráv z 34.