1 PB007: Analysis Class Diagram Martin Macák 2 Diagram tried ̶ Statický pohľad na: ̶ triedy, ̶ vlastnosti, ̶ operácie, ̶ atribúty, ̶ vzťahy. 3 Analytický diagram tried ̶ Modeluje koncepty, nie kusy kódu ̶ Potrebujeme si rozvrhnúť doménu, ktorú riešime ̶ Upresniť terminológiu, vzťahy, náväznosti, … ̶ Advanced: Analytické vzory (Software analysis patterns) 4 Analytický diagram tried ̶ Neriešime implementačné detaily: ̶ N:M vztahy, ̶ typy, ̶ konštruktory, ̶ getre, setre, ̶ „systémové“ triedy, ktoré sú nutné k vývoju. 5 Ako má správna analytická trieda vyzerať? Analytický diagram tried ̶ Dobrý popisný názov ̶ Málo funkcií – cca 3-5 ̶ Neizolovaná – je súčásťou systému ̶ Málo väzieb na ostatné triedy – špagety nie ̶ Má vysokú „súdržnosť“ (cohesion) ̶ Operácie ktoré spolu súvisia dáme k sebe 6 Na čo si dať pozor / čo nerobiť Analytický diagram tried ̶ Veľa malých tried ̶ Málo veľkých tried ̶ Riadiace triedy ̶ „Správcovia“ ostatných tried ̶ Toto už sú implementačné detaily ̶ Modelovať to programátorsky ̶ Tam ešte nie sme ̶ Zložitá hierarchia dedičnosti ̶ Funktoidy ̶ Triedy reprezentujúce funkciu / procedúru ̶ Rozhrania 7 Analytický diagram tried – príklad 8 Vzťahy medzi triedami ̶ Asociácie ̶ Sémantický vzťah – vychádza z domény ̶ Dlhodobý vzťah (existuje referencia) ̶ Zastupuje atribút ̶ Obsahuje: názov, alebo názvy rolí, násobnosť, navigovatelnosť. ̶ Druhy asociácií ̶ 1:1 – atribút ̶ 1:N – kolekcia ̶ M:N – dekomponujeme až v návrhovom diagrame tried 9 Vzťahy medzi triedami ̶ Asociácie M:N ̶ V analytickom diagrame v pohode, rieši sa to až v návrhovom ̶ Ak ale potrebujeme niečo zaznamenať už teraz, rozpracujeme to ̶ Alebo použijeme asociačnú triedu 10 Vzťahy medzi triedami ̶ Násobná asociácia ̶ Viac rôznych vzťahov ̶ Reflexivná asociácia 11 Vzťahy medzi triedami ̶ Závislosť (dependency) ̶ „Slabá asociácia“ ̶ Reprezentuje vzťah medzi triedami, kde nefiguruje referencia ̶ Význam závislosti se upresňuje stereotypmi ̶ Najčastejší je «use», čo znamená, že niektoré z operácií využíva objekt jako argument alebo výstupnú hodnotu. 12 Postup pri tvorbe ̶ Identifikovať triedy, atribúty a operácie ̶ Určiť dedičnosť ̶ Zachytiť vzťahy pomocou asociácií ̶ Pomenovať, určiť násobnosť a navigovateľnosť asociácií ̶ Zachytiť závislosti ̶ Odladiť 13 Úloha na tento týždeň ̶ Zapracujte spätnú väzbu ̶ Podľa špecifikácie a Use Case diagramu vytvorte analytický diagram tried.