Špecifikácia požiadaviek, Diagramy prípadov užitia PB007 Softwarové inženýrství I Stanislav Chren 26. 9. 2012 Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 1 / 10 Funkčné požiadavky Funkčná požiadavka je vyjadrenie toho čo by mal systém robiť (príp. nerobiť), t.j. hovorí o funkcionalite systému. Doporučuje sa zapisovať v tvare: Príklady: 1. Bankomat overí platnosť vloženej karty. 2. Bankomat overí PIN zadaný zákazníkom. 3. Bankomat nedovolí vydať viac ako 10000 Kč na jednu kartu v priebehu 24 hodín. Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 2 / 10 Nefunkčné požiadavky Nefunkčná požiadavka je obmedzenie kladené na daný systém. Často sa týka obmedzení na výkon, kapacitu, dostupnosť, vyhovenie štandardom alebo bezpečnosť. Príklady: 1. Bankomat bude naprogramovaný v C++. 2. Bankomat bude pri komunikácii s bankou využívať 256-bit. šifrovanie. 3. Bankomat overí platnosť karty za menej ako 3 sekundy. Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 3 / 10 Diagram prípadu užitia Diagram prípadov užitia (Use Case Diagram) predstavuje spôsob zachytenia funkčných požiadaviek na systém. Tvoria ho: Hranica systému (System boundary, Subject) Aktéri (Actors) Prípady užitia (Use cases) Vzťahy/Asociácie (Relationships) Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 4 / 10 Aktéri I Aktér (Actor) je rola, ktorú nadobúda nejaká externá entita (osoba, iný systém, čas), ktorá priamo komunikuje s daným systémom. Aktéri sú vždy externé entity vzhľadom na systém. Aktéri komunikujú so systémom priamo. Aktéri reprezentujú role, ktoré zohrávajú v danom systéme. Nejde o konkrétne osoby alebo objekty. Jedna osoba alebo objekt môže zastávať viacero rolí súčasne, prípadne sa môžu meniť v čase. Každý aktér musí mať zrozumiteľné pomenovanie. Každý aktér musí mať krátky popis. Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 5 / 10 Aktéri II Identifikácia aktérov: Kto alebo čo používa daný systém? Akú rolu zohrávajú pri tejto interakcii? Aké ďalšie systémy spolupracujú s našim systémom? Kto alebo čo získava/poskytuje informácie z/do systému? Dochádza k nejakej udalosti v pevne danom čase? Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 6 / 10 Prípady užitia I Prípad užitia (Use case) popisuje chovanie systému pri interakcii s externými aktérmi. Je to niečo, čo aktér požaduje od systému, aby robil. Prípady užitia vždy začínajú nejakou akciou aktéra Prípady užitia sú vždy písané z pohľadu aktérov Často sa používa konvencia CamelCase pre pomenovanie prípadov užitia a zároveň názov by mal byť v tvare slovesnej väzby Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 7 / 10 Prípady užitia II Identifikácia prípadov užitia: Aké funkcie požaduje konkrétny aktér od systému? Ukladá a získava systém nejaké informácie? Ak áno, ktorí aktérii spúšťajú tieto činnosti? Čo sa stane pri zmene stavu systému? Sú o tom aktéri informovaní? Existujú externé udalosti, ktoré ovplyvňujú systém? Čo upozorní systém na tieto udalosti? Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 8 / 10 Informačné zdroje www.agilemodeling.com/artifacts/useCaseDiagram.htm www.andrew.cmu.edu/course/90-754/umlucdfaq.html www.drdobbs.com/top-ten-use-case-mistakes/184414701 Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 9 / 10 Úlohy Založte nový projekt vo Visual Paradigm. Názov: priezvisko1-priezvisko2-priezvisko3 (bez diakritiky). Autor: Celé meno a UČO všetkých členov tímu. Jazyk: UML 2.x. Vytvorte číslovaný zoznam funkčných a nefunkčných požiadaviek ako text v dokumentácii hlavného UC diagramu. Funkčné požiadavky roztrieďte podľa užívateľských rolí. Na záklde (ne)funkčných požiadaviek vytvorte prvotný model prípadov užitia, t.j. pridajte aktérov, prípady užitia a väzby medzi nimi. Hľadajte medzery v špecifikácii projektu a pýtajte sa na informácie, ktoré vám chýbajú. Vygenerujte pdf report a uložte do odovzdávarne. Deadline: 6.10. 23:59 (Skupina 14) 1.10. 23:59 (Skupiny 15,16) Softwarové inženýrství I (PB007) Požiadavky, Diagramy prípadov užitia 26. 9. 2012 10 / 10