Use Case: Porovnání verzí

Z WikiKnihovna
 
(Není zobrazeno 15 mezilehlých verzí od stejného uživatele.)
Řádek 12: Řádek 12:
 
''podřazené'' - průchod případem užití, krok, reakce aplikace</blockquote>
 
''podřazené'' - průchod případem užití, krok, reakce aplikace</blockquote>
  
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ísekvenci 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, č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 [[Úkol|úkolu]] za použití [[Interakce|interagujícího]] [[Systém|systému]] (konkrétního [[Software|softwarového]] či [[Hardware|hardwarového]] [[Produkt|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 [[Bankomat|bankomatu]]. Ve zvláštních případech může jít o interakci dvou [[Stroj|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), který formou diagramu popisuje jednotlivé akce uživatele a reakce systému, ale celou interakci je možné popsat i jednoduše slovně.
+
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)<ref>FOWLER, Martin. "UML Distilled: A Brief Guide to the Standard Object Modeling Language", Addison-Wesley Professional, 2003.</ref>, 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''<ref> JACOBSON, Ivar, BITTNER K., SPENCE I. "Use Case 2.0: The Guide to Succeeding with Use Cases"</ref> shrnuje současné užití metody use case.
  
 
==Příklad==
 
==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í:
+
Konkrétním příkladem use case může být výběr [[Peníze|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<ref>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]</ref>, nicméně existuje více zápisů, záleží na konkrétním typu produktu i úzu pracovního kolektivu):
 
 
Mějme uživatele, jeho cílem je výběr peněz, využívá k naplnění tohoto cíle bankomat. Bankomat je opatřen displejem a ovládacími tlačítky: numerická klávesnice a několik tlačítek, ovládána jsou ručně.
 
  
 +
Čí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".
 
  1. Bankomat zobrazuje text "Vložte kartu".
 
  2. Uživatel vkládá kartu.
 
  2. Uživatel vkládá kartu.
 
  3. Bankomat zobrazuje text "Počkejte prosím".
 
  3. Bankomat zobrazuje text "Počkejte prosím".
 
  4. Uživatel čeká.
 
  4. Uživatel čeká.
  5. Bankomat vyzývá uživatele k zadání čísla PIN.  
+
  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  
 
  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.
+
  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.
 
  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.
 
  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.
 
  9. Bankomat kontroluje, zda má uživatel právo vybrat požadovanou částku.
  10a. Pokud uživatel má dostatečný zůstatek, bankomat uživateli vydá požadovanou částku.
+
  10. Bankomat uloží informace o transakci do databáze.
  11a. Uživatel přebírá peníze.
+
11. Bankomat uživateli vydá požadovanou částku.
  10b. Pokud uživatel nemá dostatečný zůstatek, bankomat uživatele požádá  
+
  12. Uživatel přebírá peníze.
o zadání nové částky (návrat ke kroku 7) anebo o ukončení interakce (Storno).
+
  13. Bankomat uživatele vyzve k odebrání karty.
  11b. Uživatel se vrací do bodu 8 anebo ukončuje interakci.
+
14. Uživatel odebírá kartu.
  12. Bankomat uživatele vyzve k odebrání karty.
+
15. Bankomat je připraven pro další užití, zobrazuje text "Vložte kartu".
13. Uživatel odebírá 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:
  
Na popsaném use case je možné spatřovat několik důležitých momentů:
+
* …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).
  
* Use case neobsahuje 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.
+
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 [[Feature creep|zmnožení funkcí]] bankomatu, [[Bezpečnost počítačových systémů|bezpečnostním opatřením]] anebo zvýšení [[Uživatelský komfort|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.
* Je možné jej převést do programové logiky.
 
* Neobsahuje detaily, je maximálně stručný.
 
* Jsou v něm 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í.
 
  
==Testování==
+
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<ref>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</ref> (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í==
 
==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 jeho limity –
+
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 [[Kontext interakce|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í|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]])<ref>KOHN, Mike. "User Stories Applied: For Agile Software Development", Addison-Wesley Professional. 1 edition, 2004.</ref> anebo další metody, využívající více různých popisných a analytických nástrojů.
 +
 
 +
==Poznámky==
 +
<references/>
 +
 
 +
==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.

Aktuální verze z 15. 1. 2013, 21:31

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.