Analytické vzory, Analytický diagram tried II PB007 Softwarové inženýrství I Stanislav Chren 24. 10. 2012 Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 1 / 16 Analytické vzory Analytický vzor je konceptuálny model, ktorý zachytáva abstrakciu nejakého problému v modelovanej obchodnej doméne. Použitie návrhových vzorov môže zvýšiť flexibilitu a znovupoužiteľnosť modelu. Pri modelovaní sa často opakujú podobné typy problémov, napr. ako modelovať organizačnú štruktúru firmy, príp. iné hierarchie. Preto existujú sady už hotových obecných vzorov. Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 2 / 16 Analytické vzory - Martin Fowler Martin Fowler: Analysis Patterns - Reusable Object Models http://books.google.cz/books?id=4V8pZmpwmBYC&pg dostupná v knižnici FI, MZK 9 súborov vzorov, každý pre jednu doménovú oblasť Príklady: Accountability, Observations and Measurements, Refering to Objects, Inventory and Accounting, Planning, Trading každý súbor obsahuje niekoľko vzorov, ktoré sa postupne vyvíjajú od jednoduchých konkrétnych po zložitejšie obecné. celkom 65 analytických vzorov a 21 pomocných Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 3 / 16 Analytické vzory - Accountability Party – základný vzor pre riešenie zodpovednosti Organization Hierarchies – jednoduchá organizačna štruktúra Organization Structure – zložitejšia organizačná štruktúra Accountibility – kombinácia Party a Organization Structure Accountibility Knowledge Level – typy zodpovedností a obmedzení Party Type Generalization – hierarchia typov účastníkov Hierarchic Accountibility – hierarchia zodpovedností Operating Scopes – rozsahy zodpovednosti, miesta apod. Post – zodpovednosti delegované na pracovné pozície namísto konkrétních osob Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 4 / 16 Analytické vzory - Accountability - Party Model adresáru: Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 5 / 16 Analytické vzory - Accountability - Party II Mnohé role, ktoré hrajú osoby, môžu zastávať aj organizačné jednotky. Party/Účastník je jednotné pomenovanie pre tieto role Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 6 / 16 Analytické vzory - Organization Hierarchies málo flexibilné - pre pridanie/odobratie org. jednotky je nutné meniť veľkú časť modelu malá znovupoužiteľnosť - rôzne firmy môžu mať rôznu organizačnú štruktúru Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 7 / 16 Analytické vzory - Organization Hierarchies II A čo v prípade, keď firma má rôzne typy oganizačných štruktúr (napr. pre predaj a výrobu), prípadne keď sa menia v čase? Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 8 / 16 Analytické vzory - Organization Hierarchies III Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 9 / 16 Analytické vzory - ďalšie zdroje http://martinfowler.com/articles.html Gamma, Helm, Johnson, Vlissides (”Gang of Four GoF): Design Patterns: Elements of Reusable Object-Oriented Software, 1991-1994 Buschmann, Meunier, Rohnert, Sommerland, Stal: Pattern – Oriented Software Architecture: A System of Patterns Ľubor Šešera, Aleš Mičovský, Juraj Červeň: Datové modelování v příkladech Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 10 / 16 Vzťahy medzi triedami Medzi základné vzťahy patrí: Generalizácia Asociácia Závislosť Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 11 / 16 Asociácia Asociácia je vzťah medzi triedami. reprezentuje dlhodobé vzťahy, t.j. medzi objektami danej triedy existuje nejaká referencia táto referencia je najčastejšie vyjadrená prítomnosťou atribútu daného typu vzťah 1:1 odpovedá odkazu atribútom vzťah 1:N odpovedá odkazu polom atribútov alebo jednej kolekcí vzťah M:N se rieši v návrhu smer asociácie (navigovateľnosť) udáva, ktorá trieda bude obsahovať daný atribút Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 12 / 16 Asociácia - Navigovateľnosť Firma aj Zamestnanec majú na seba priamu referenciu Firma obsahuje referenciu na kolekciu zamestnancov, ktorých zamestnáva. Zamestnanec u seba nemá atribút typu Firma. Firma nemá priamy odkaz na zamestnancov. Zamestnanec má atribút typu Firma. Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 13 / 16 Závisloť Závislosť (dependency) je vzťah medzi dvoma triedami (klient a poskytovateľ), kde zmena v poskytovateľovi môže vynútiť zmenu v klientovi. Inými slovami, klient nejakým spôsobom závisí na poskytovateľovi. Význam tejto závislosti môže byť špecifikovaný rôznymi stereotypmi. Najčastejšie sa používa stereotyp use . Vyjadruje, že niektorá z operácií klienta využíva objekt poskytovateľa ako vstupný argument alebo výstupnú hodnotu, prípadne s ňou pracuje vo svojej implementácií a zároveň ju neobsahuje v triede ako atribút. Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 14 / 16 Úlohy Dokončite a rozpracujte diagram tried z minulého cvičenia Diagram by mal obsahovať analytické triedy, ich atribúty, operácie a vzťahy (dedičnosť, asociácie, závislosti) Asociácie by mali mať určené pomenovanie, násobnosť a riaditeľnosť Doplňte triedy typu Správca/Manager/Katalóg, ktoré budú manipulovať so základnými triedami (udržovanie zoznamu objektov, vytváranie, mazanie, vyhľadávanie, ...). Presuňte príslušné zodpovednosti/operácie Aktualizujte diagram prípadov užitia. Pre každú triedu by mal existovať prípad užitia, ktorý vytvára jej inštancie, používa ju a maže. Preštudujte si zdroje o analytických vzoroch a zamyslite sa nad ich využitím vo vašom projekte Odovzdajte pdf report do odovzdávarne(Týden 06). Deadline: 3.11. 23:59 (Skupina 14) 29.10. 23:59 (Skupiny 15, 16) Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 15 / 16 Nastavenie reportu VP Softwarové inženýrství I (PB007) Analytické vzory, Diagram tried 24. 10. 2012 16 / 16