Návrhový diagram tried PB007 Softwarové inženýrství I Stanislav Chren 28. 11. 2012 Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 1 / 16 Návrhový diagram tried Diagram tried predstavuje statický pohľad na triedy, ich atribúty, operácie a vzťahy. Analytický diagram tried Modeluje obchodnú doménu systému - typy objektov a vzájomné vzťahy Snaha o zachovanie prehľadnosti a jednoduchosti bez zanášania implementačných detailov. Návrhový diagram tried Rozširuje analytický model tried o implementačné triedy a detaily. Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 2 / 16 Návrhové triedy Návrhová trieda je na rozdiel od analytickej triedy na takej úrovni abstrakcie, že je možné ju jednoducho implementovať. Môžu pochádzať z: Obchodnej domény - upresnením analytických tried (rozklad na viac tried, doplnenie implementačných detailov). Riešiteľskej domény - triedy vyžadované použitou technológiou (triedy pre prácu s GUI, DB, ...) Implementačné detaily zahŕňajú: Viditeľnosť a typ atribútov. Viditeľnosť, argumenty, typ návratovej hodnoty metód. Metódy, ktoré vznikli rozložením analytických operácií, konštruktory (deštruktory), get/set metódy, implementačné metódy. Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 3 / 16 Návrhová trieda - Príklad Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 4 / 16 Upresnenie analytických asociácií Upresnenie vybraných asociácií do relácií typu agregácia alebo kompozícia. Určenie pomenovania, navigovateľnosti a násobnosti asociácií. Rozklad obojsmerných asociácií. Revízia asociácií typu 1:1, 1:M, M:1. Rozklad asociácií M:N. Rozklad asociačných tried. Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 5 / 16 Agregácia Agregácia je vzťah typu celok-časť. Celok môže, ale aj nemusí existovať bez svojich súčastí Časti môžu existovať nezávisle na celku. Celok je v určitom zmysle neúplný ak niektoré časti chýbajú. Časť môže byť teoreticky zdielaná viacerými celkami. Agregácia je tranzitívna a asymetrická (bez cyklov). Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 6 / 16 Kompozícia Kompozícia je silnejšia forma agregácie V danom čase časť patrí vždy práve jednému celku (nemôžu existovať samostatne). Celok je zodpovedný za vytváranie a mazanie častí. Ak je celok zrušený, musí buď zrušiť všetky svoje časti, alebo presunúť za ne zodpovednosť inému objektu. Kompozícia je tranzitívna a asymetrická (bez cyklov). Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 7 / 16 Revízia asociácií 1:1 Analýza: Návrh: Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 8 / 16 Revízia asociácií M:1 Analýza: Návrh: Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 9 / 16 Revízia asociácií 1:M Analýza: Návrh: Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 10 / 16 Rozklad asociácií M:N Analýza: Návrh: Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 11 / 16 Rozklad asociačných tried Analýza: Návrh: Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 12 / 16 Rozklad objosmerných asociácií Analýza: Návrh: Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 13 / 16 Rozhranie Rozhranie(Interface) je špeciálna trieda, ktorá definuje množinu verejných služieb, atribútov a vzťahov, ale neobsahuje ich implementáciu. Používa sa na definíciu kontraktu. Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 14 / 16 Úlohy Rozpracujte analytický model tried do návrhového modelu tried. Určte viditeľnosť a typ všetkých atribútov. Pridajte metódy, ktoré vznikli rozkladom analytických operácií, implementačné a pomocné metódy (konšruktory, get/set metódy, ...), určte ich viditeľnosť, argumenty a návratové typy. Upresnite analytické asociácie (pomenovanie, násobnosť, navigovateľnosť, agregácia/kompozícia, rozklad obojsmerných asociácií, asociačných tried a asociácií M:N) Doplňte vzťahy závislosti. V prípade potreby pridajte pomocné implementačné triedy alebo rozhrania Odovzdajte pdf report do odovzdávarne(Týden 11). Deadline: 8.12. 23:59 (Skupina 14) 3.12. 23:59 (Skupiny 15, 16) Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 15 / 16 Nastavenie reportu VP Softwarové inženýrství I (PB007) Návrhový diagram tried 28. 11. 2012 16 / 16