Objektová analýza požadavků - případy užití, doménový a procesní model.
Z Na státnice zvesela!
[editovat] Objektová analýza
- vstup: specifikace požadavků, příp. doménový model
 - cílem: určit analytické třídy a jejich zodpovědnosti
 - výstup: logický (analytický) model tříd + zodpovědnosti tříd
 -  nástroje:
- CRC karty (slouží k identifikaci zodpovědností)
 - diagramy analytických tříd (atribury + metody, zatím implementačně nezávislé) (slouží k identifikaci tříd)
 - sekvenční diagramy (slouží k identifikaci zodpovědností)
 
 
Jak najít analytické třídy?
- prvotní třídy rozvojem doménového modelu
- úvodní převod 1:1
 - může skončit jako 1:N
 - rozklad složených objektů, volně definovaných vztahů
 
 - Postup: postaven na rozboru případů užití (vytvoření detailního popisu PU)
- identifikace / navržení kandidátských objektů → tříd
 - určení zodpovědnosti za + metod pro realizaci funkčnosti
 
 
Přiřazení zodpovědností z popisu PU
- Rozbor scénáře případu užití s kandidáty na třídy
- Akce – otázka
- „Kniha je označena jako vrácená“ ⇒ „Kdo to zařídí?“
- některá ze stávajících tříd ⇒ nová zodpovědnost
 - magie ⇒ nová třída, přiřadit zodpovědnost
 
 
 - „Kniha je označena jako vrácená“ ⇒ „Kdo to zařídí?“
 
 - Akce – otázka
 
[Zdroj: ASWI přednášky, Brada]
[editovat] Nástroje objektové analýzy
- CRC (Class-Responsibility-Collaborators) karty
- mechanická technika (papírové karty, tužka, guma, stůl)
 - pro třídy vytvoříme kartičky, nahoru napíšeme jméno třídy, vlevo zodpovědnost třídy, vpravo spolupracující třídy
 - nevýhody – vazby mezi třídami nejsou znázorněny graficky, nepřehledné pro větší systémy (několik desítek tříd)
 
 - Diagram sekvencí (Sequence diagram)
- popis výměny zpráv
 - objekty reprezentují třídy, zprávy (výstižné fráze pro zachycení zodpovědnosti nebo jména metod při dostatku informací)
 - detaily (tj. třídy, metody, větvení, cykly) řešit, až když je jasno, tedy na jiné úrovni než v sekvenčním diagramu
 
 
- Diagram tříd (Class diagram)
- vychází z doménového modelu a rozšiřuje ho
 - na počátku je třída popsána jen názvem, zkontrolujeme, zda již není název použit, ponecháme ten název, který daný objekt popisuje nejlépe
 - ke třídě najdeme logické atributy = informace, která se nebude používat samostatně, ale je silně vázána s objektem (př. jméno, věk, adresa budou atributy nějaké osoby)
 - třídy lze rozdělit podle následujících streotypů:
- hraniční třídy (boundary class) – všechno, s čím aktéři přímo komunikují, můžeme je zjistit např z popisu užití
 - entitní třídy (entity class) – informace, kterou systém udržuje delší dobu, často odpovídají objektům reálného světa (př. klient, účet)
 - řídící třídy (control class) – chování v systému, třídy obsahující řídící logiku, používající nebo nastavující obsah entitních tříd
 
 
 
[editovat] Doménový model
- jen základní obrysy, terminologie uživatele a pojmy -- názvy tříd, vztahy mezi třídami (asociace, kardinality), nezavislé na implementaci
 - sledujeme podstatná jména v definici problému, věci a místa v aplikační doméně, pro každé vytvoříme předběžnou třídu (třída je zatím popsána pouze jménem); slovesa zaznamenáváme, aby časem mohla být operacemi
 - eliminujeme nepotřebné a chybné třídy (třídy, které nejsou pro aplikaci relevantní, vágně definované třídy, aj.)
 


