1 PB007: Design Class Diagram Martin Macák 2 Design Class Diagram Návrhový Diagram Tried ̶ Oproti analytickému je detailnejší ̶ Riešime technické problémy ̶ Rozšírenie o implementačné detaily ̶ Advanced: Návrhové vzory (Software design patterns) 3 Ako má správna návrhová trieda vyzerať? Návrhový Diagram Tried ̶ Ide ju jednoducho implementovať ̶ Upresnenie analytickej triedy ̶ „Technicky“ dôležitá trieda (Service, Controller, DB Context, …) ̶ Má špecifikované viditeľnosti a typy ̶ Atribúty ̶ Argumenty ̶ Návratové hodnoty ̶ Konštruktor ̶ Vlastnosti (getter, setter) ̶ Metódy nutné pre implementáciu 4 Analytická VS. Návrhová trieda Návrhový Diagram Tried 5 Návrhový Diagram Tried – Príklad 6 Interface Rozhranie ̶ Definuje množinu verejných služieb ̶ Metód ̶ Atribútov ̶ Vzťahov ̶ Neobsahuje implementáciu ̶ Definícia kontraktu 7 Upresnenie asociácií ̶ Upresnenie na agregáciu alebo kompozíciu ̶ Pomenovanie, navigovateľnosť, násobnosť ̶ Rozklad obojsmerných asociácií ̶ Rozklad asociácií M:N a asociačných tried 8 Upresnenie asociácií – Agregácia ̶ Vzťah celok-časť ̶ Celok môže a nemusí existovať bez svojich častí ̶ Časti môžu existovať nezávisle na celku ̶ Celok je v určitom zmysle neúplný bez svojich častí ̶ Časť môže byť zdieľaná viacerými celkami 9 Upresnenie asociácií – Kompozícia ̶ Silnejšia forma agregácie ̶ Časť v danom čase patrí práve jednému celku ̶ Časť nedáva zmysel bez celku ̶ Celok je zodpovedný za životný cyklus časti ̶ Ak je celok zrušený, musí sa postarať o svoje časti (presunúť alebo zmazať) 10 Upresnenie asociácií – M:N ̶ Analytický ̶ Návrhový 11 Upresnenie asociácií – obojsmernosť ̶ Niekto ju musí riadiť (vlastniť) ̶ Aby sme zaručili konzistenciu 12 Úloha na tento týždeň ̶ Zapracujte spätnú väzbu ̶ Rozpracujte analytický diagram tried do návrhového diagramu tried ̶ Pridajte potrebné metódy, vlastnosti, … ̶ Upresnite asociácie ̶ Všetko otypujte ̶ Doplňte pomocné triedy ̶ POZOR! Nezmažte pôvodný analytický diagram tried ̶ Paste Model Element (nedávajte CTRL + V)