Use Case

Z WikiKnihovna
Přejít na: navigace, hledání

Autor: Jan Martinek

Klíčová slova: analýza, návrh aplikací, interakční design, interaction design, user experience design, human computer interaction, interakce mezi člověkem a počítačem

Synonyma: případ užití

Související pojmy:

nadřazené - analýza, design
podřazené - průchod případem užití, krok, reakce aplikace

Use case, česky případ užití, je termín označující v oborech jako Human–Computer Interaction (interakce člověka s počítačem) či interakční design metodu popisu sekvence kroků, který vykonává uživatel při plnění konkrétního úkolu za použití interagujícího systému (konkrétního softwarového či hardwarového produktu). Takovým úkolem může být například vytvoření určitého typu dokumentu v textovém editoru, nákup v internetovém obchodě, přečtení článku na zpravodajském serveru, ale například i výběr z bankomatu. Ve zvláštních případech může jít o interakci dvou strojů, z nichž jeden plní konkrétní úkol (například synchronizace zařízení).

Use case je složen ze sledu kroků, které uživatel vykonává, aby daný úkol splnil. Pro popis use case bývá užíván specializovaný jazyk Unified Modeling Language (UML)[1], který formou diagramu popisuje jednotlivé akce uživatele a reakce systému, ale celou interakci je možné popsat i jednoduše slovně.

Vznik

První užití use case, především pro formulaci funkčních požadavků konkrétních zařízení, formuloval švédský výpočetní inženýr Ivar Jacobson v roce 1982. Jeho aktuální kniha The Guide to Succeeding with Use Cases[2] shrnuje současné užití metody use case.

Příklad

Konkrétním příkladem use case může být výběr peněz z bankomatu. Takový proces můžeme popsat následující interakcí (struktura zápisu use case je zde inspirována textem Karla Minaříka[3], nicméně existuje více zápisů, záleží na konkrétním typu produktu i úzu pracovního kolektivu):

Číslo případu užití: 1
Titulek případu užití: Výběr peněz
Popis případu užití: Bankomat vydá peníze oprávněnému uživateli 
s dostatečným zůstatkem
Primární aktér (systém): Bankomat
Podmínky: Automat obsahuje peníze, je opatřen displejem 
a ovládacími tlačítky: numerická klávesnice a několik tlačítek, 
ovládána jsou ručně.
Ověření úspěšného průběhu případu užití: O vydání peněz je uložen záznam. Částka je
odečtena ze zůstatku uživatele.

Primární sekvence kroků vedoucí k úspěšnému vyřešení situace
1.	Bankomat zobrazuje text "Vložte kartu".
2. 	Uživatel vkládá kartu.
3. 	Bankomat zobrazuje text "Počkejte prosím".
4. 	Uživatel čeká.
5. 	Bankomat vyzývá uživatele k zadání čísla PIN. 
6. 	Uživatel zadává PIN. V případě chybného zadání uživatel použije tlačítko 
	Znovu pro pro opětné zadání anebo Storno pro ukončení interakce.
7. 	Bankomat zobrazí výběr možných částek, které uživatel může z bankomatu vybrat.
8. 	Uživatel si vybírá požadovanou částku, potvrzuje tlačítkem.
9. 	Bankomat kontroluje, zda má uživatel právo vybrat požadovanou částku.
10. 	Bankomat uloží informace o transakci do databáze.
11. 	Bankomat uživateli vydá požadovanou částku.
12. 	Uživatel přebírá peníze.
13. 	Bankomat uživatele vyzve k odebrání karty.
14. 	Uživatel odebírá kartu.
15. 	Bankomat je připraven pro další užití, zobrazuje text "Vložte kartu".

Rozšíření: 
10a. 	Uživatel nemá dostatečná zůstatek.
10a1. 	Bankomat uživatele požádá o zadání nové částky (návrat ke kroku 7) anebo o ukončení interakce (Storno).
10a1a. 	Uživatel se vrací do bodu 8 a opakuje proces s jinou částkou.
10a1b. 	Uživatel ukončuje interakci stisknutím tlačítka Storno.

Testování

Use case je možné testovat, tzn. ověřit, zda splňuje podmínky, které by měl splňovat jakýkoli popis případu užití. Správně popsaný use case by:

  • …měl minimalisticky popisovat podmínky, které existují (uživatel a jeho cíl, vlastnosti systému, způsob ovládání).
  • …měl obsahovat popis výsledného stavu systému po dosažení cíle.
  • …neměl obsahovat popis vnitřního fungování systému. Věnuje se pouze interakci a to z pohledu uživatele – nevěnuje se tomu, jaké podmínky očekává systém.
  • …mělo být možné převést do programové logiky.
  • …měl obsahovat podmínky, za kterých je možné se v procesu pohybovat jinak, než skokem na následující krok (např. návrat pro opakované zadání kódu PIN).

Popsaný use case je ve skutečnosti relativně vágní a pro danou potřebu nepřesný – práce s bankomatem je mnohem komplikovanější (ať už kvůli zmnožení funkcí bankomatu, bezpečnostním opatřením anebo zvýšení komfortu uživatele). Při skutečném vývoji by pak nejspíše bylo přihlášení (zadání PIN), výběr částky a odebírání částky a karty rozepsáno coby samostatné use cases.

Užitý use case pak obsahuje chyby, které jsou identifikovatelné pouze při hlubší znalosti kontextu celé interakce (například odebrání karty až po výběru peněz může vést k častému zapomenutí karty v zařízení. Use cases tak mají omezení, která jsou daná soustředěním se na pouhý obsah interakce, bez popisu širšího kontextu.

Testování případů užití, tedy jejich formálních náležitostí a jejich úplnosti a konzistence, je něco odlišného, než vytváření tzv. test cases[4] (testovacích užití), což jsou testy již existujícího zařízení, vytvořené podle scénářů případů užití (metodika převodu use cases na test cases je relativně komplikovaná).

Omezení

Use case sám o sobě není popisem širšího kontextu užívání systému. Popisuje pouze základní obrysy interakce, které jsou nezbytně nutné pro implementaci konkrétního systému (software či hardware). Z hlediska návrhu systému musí formulaci případů užití předcházet širší analýza, která se věnuje obecnějšímu kontextu interakce – ať už jde o motivaci uživatele k provádění akce, hlubší pochopení cíle, který uživatel sleduje, a výsledků, které při úspěšném provedení interakce očekává, nebo prostředí v němž je akce prováděna. Na výše uvedeném příkladu výběru z bankomatu si můžeme ukázat příklady jeho limitů:

  • Výběr z automatu v tuzemsku a v zahraničí může být pro uživatele značně odlišný.
  • Při užití bankomatu záleží na typu použité karty.
  • Bankomat by neměl být umístěn v místě, kam prší (ať už kvůli možnosti poškození přístroje nebo kvůli komfortu uživatele).
  • Zcela je vynechána otázka bezpečnosti (z hlediska systému, uživatele i samotné interakce).
  • Atp.

Pro popis širšího kontextu činnosti uživatele jsou používány tzv. uživatelské příběhy (user stories)[5] anebo další metody, využívající více různých popisných a analytických nástrojů.

Poznámky

  1. FOWLER, Martin. "UML Distilled: A Brief Guide to the Standard Object Modeling Language", Addison-Wesley Professional, 2003.
  2. JACOBSON, Ivar, BITTNER K., SPENCE I. "Use Case 2.0: The Guide to Succeeding with Use Cases"
  3. MINAŘÍK, Karel. "Agilní metodiky vývoje software a problém zadání". Dostupné online: https://github.com/karmi/colibriary/blob/master/doc/text/Agilni-metodiky-a-problem-zadani.Karel-Minarik.Informacni-systemy.markdown [Citováno 14. 1. 2012]
  4. CHAIM, Marcos Lordello, JINO, Mario, CARNIELLO, Adriana. "Structural Testing with Use Cases". Paper, dostupné online: http://journal.info.unlp.edu.ar/journal/journal14/papers/jcst-aug05-8.pdf
  5. KOHN, Mike. "User Stories Applied: For Agile Software Development", Addison-Wesley Professional. 1 edition, 2004.

Další použitá literatura

  • COCKBURN, Alistair. "Writing Effective Use Cases", Addison-Wesley, c. 2001. Dostupné ve verzi pre-publication draft coby e-book: http://alistair.cockburn.us/get/2465
  • COOPER, Alan, REIMANN, Robert, CRONIN, David. "About Face 3: The Essentials of Interaction Design", John Wiley & Sons, 2012.