4. týždeň

Analýza požiadaviek

Identifikácia a opísanie používateľských príbehov

Ciele

  1. Naučiť sa analyzovať požiadavky na systém.
  2. Naučiť sa identifikovať používateľov systému a ich ciele.
  3. Naučiť sa opisovať požiadavky vo forme používateľských príbehov (user stories).

Postup

Krok 1: Požiadavky a ciele používateľov

Predtým, ako sa začne realizovať softvérový projekt, je potrebné vedieť, čo vlastne budúci softvér bude riešiť. Je teda potrebné zistiť požiadavky na vytváraný systém — komu bude slúžiť a aký bude jeho účel.

Príklad: Read Later

Predstavte si aplikáciu typu „read later“, ktorá umožňuje odkladať zaujímavé webové články na neskoršie prečítanie, podobne ako existujúce služby Instapaper a Pocket.

Používateľmi tejto aplikácie budú ľudia, ktorí radi čítajú a často narazia na webe na niečo zaujímavé, ale nemajú čas si to hneď prečítať. Preto chcu mať možnosť prečítať si to pohodlne vtedy, keď na to budú mať čas. Nazvime teda typického používateľa čitateľ.

Hlavné ciele čitateľa pri používani našej aplikácie by teda mohli byť takéto:

  • Pridať zaujímavý článok do zoznamu článkov na neskoršie prečítanie.
  • Prečítať niečo zaujímavé (napríklad pri čakaní).
  • Prečítať konkrétny odložený článok, na ktorý si pamätám.
  • Nájsť už prečítaný článok, v ktorom bolo niečo zaujímavé.

Na základe pochopenia týchto cieľov bude možné postupne navrhnuť funkcionality aplikácie, ktoré umožňa ich naplniť. Napríklad takéto

  • Pridanie URL článku do webového formulára
  • Rozšírenie pre prehliadač na pridávanie článkov, aby nemusel kopírovať URL
  • Zoznam článkov odložených na prečítanie
  • Zobrazenie článku
  • Označenie článku ako prečítaného, aby sa už nezobrazoval v zozname
  • Archív prečítaných článkov, aby sa dal nájsť už prečítaý článok
  • Vyhľadávať v článkoch, aby som mohol nájsť presne ten článok, o ktorý mým momentálne záujem
  • Registrácia používateľa, aby systém mohol ukladať moje články
  • Prihlásenie, aby som sa k svojim článkom dostal

Ako je možné vidieť, niektorým cieľom priamo zodpovedá konkrétna funkcia (napríklad pridanie článku) alebo niekoľko funkcií (rôzne spôsoby pridávania článkov). Niektoré ciele však vyžadujú postupné použitie niekoľkých funkcií. Napríklad cieľ „Prečítať niečo zaujímavé“ vyžaduje zoznam článkov, zobrazenie článku a tiež označenie článku ako prečítaného, aby bolo možné v zozname zobrazovať iba neprečítané články.

Je podstatné mať na pamäti skutočné ciele používateľa a nielen funkcie systému. Napríklad, systém má funkciu zoznam článkov, ale používateľ nechce pozrieť zoznam článkov len tak, on ho chce pozrieť kvôli niečomu — napríklad hľadá niečo zaujímavé na prečítanie pri čakaní u lekára, alebo chce nájsť a prečítať konkrétny článok.

Úloha 1.1

Je „Prihlásiť sa do systému“ cieľom používateľa?

Riešenie

Samotné prihlásenie sa do systému nie je cieľom používateľa. Jeho cieľom je urobiť niečo v systéme alebo si niečo pozrieť. Prihlásenie môže byť iba jedným krokom v rámci scenára vedúceho k naplneniu cieľa.

Krok 2: Identifikacia používateľských roli a ich cieľov

Predstavme si, že potrebujeme vytvoriť systém pre jednoduché webové publikácie — osobné blogy.

Úloha 2.1

Identifikujte používateľské roly redakčného systému pre blog. Aké sú ich základné ciele pri používaní systému?

Riešenie

  • Čitateľ — čítať článok, nájsť ďalšie zaujímavé články.
  • Autor — písať, publikovať a kategorizovať články, upravovať ich.

Predstavte si, že osobný blog sa stal veľmi populárnym a jeho autor sa rozhodol urobiť z neho webový magazín, pre ktorý budú okrem neho písať aj ďalší ľudia.

Úloha 2.2

Aká nová používateľská rola môže byť potrebná v redakčnom systéme, aby podporoval magazín s viacerými autormi?

Poznámka

V niektorých prípadoch sa pri analýze a návrhu softvéru definujú nielen abstraktné používateľské roly, ale aj príklady fiktívnych používateľov, nazývané Persony.

Krok 3: Používateľské príbehy

Jedným zo spôsobov ako vyjadriť požiadavky sú používateľské príbehy (users stories). Používateľský príbeh má vo všeobecnosti tvar:

As a < type of user >, I want < some goal > so that < some reason >.

Alebo po slovensky:

Ako < typ používateľa >, chcem < nejaký cieľ > , aby som < dôvod >.

Príklad

Napríklad, v našom systéme Read later môžeme mať takýto používateľský príbeh:

Ako používateľ, chcem pridať zaujímavý článok, na ktorý teraz nemám čas, aby som ho mohol prečítať neskôr.

Tento formát nie je nutne vždy dodržiavať doslovne. Je však podstatné, aby príbeh obsahovaľ všetky tri kľučivé časti:

  1. typ používateľa,
  2. jeho cieľ,
  3. dôvod alebo kontext.

Pozor na to, aby ste opisovali skutočne len požiadavky a nie aj detaily konkrétneho riešenia.

Nesprávny príklad

Ako používateľ, chcem kliknuť na tlačidlo „Pridať“ a zadať URL adresu článku, aby som ho mohol prečítať neskôr.

Úloha 3.1

Sformulujte používateľské príbehy pre redakčný systém z predchádzajúcich úloh.

Krok 4: Zadania

Úloha 4.1

Napíšte používateľské príbehy pre vaše zadania.

V prvom priblížení napíšte len zoznam používateľov a ich hlavných cieľov. Ďalej detailnejšie opíšte jednotlivé používateľské príbehy.

Krok 5: Domáca úloha

Úloha 5.1

Prečítajte si článok What are User Stories?.

Zdroje