PB007 5. cvičení Lucie Fabriková Fl MU, podzim 2012 26. 10. 2012 PB007 Důležité odkazy • slidy a další: https://is.muni.cz/auth/el/1433/podzim2012 /PB007/um/35424437/ro/osnova/06/ « interaktivní osnova (Týden 6: Analýza (I)): https://is.muni.cz/auth/el/1433/podzim2012 /PB007/um/35424437/ro/index.qwarp?prejit=2822977 PB007 Asociace - význam vazby Asociace - vztah mezi třídami • reprezentuje dlouhodobý vztah - tj. mezi objekty dané třídy existuje nějaká reference a vyjadřuje, s kolika objekty druhé třídy může být objekt první třídy v určitém (tj. libovolném) okamžiku v (této) asociaci (tj. ne za určitou dobu) • reference je nejčastěji vyjádřená přítomností atributu daného typu (vzhledem k existenci asociativní vazby se však v návrhovém diagramu tento atribut - „cizí klíč" -nepíše) • vztah 1:1 - odkaz pomocí atributu typu druhé třídy (u jedné z obou tříd) • vztah 1 :N - odkaz pomocí pole atributů anebo kolekce a vztah M:N - řešen v návrhu (asociativní třída) • směr asociace (navigovatelnost) vyjadřuje, která třída bude obsahovat daný atribut PB007 Asociace - navigovatelnost Firma aj Zamestnanec majú na seba priamu referendu f tm* ZxiraxtaiHtc •* Firma obsahuje referenciu na kolekciu zamestnancov, ktorých zamestnáva. Zamestnanec u seba nemá atribút typu Firma. PB007 Asociace - konvence pojmenování Company employs association name Person multiplicity navigability role names Company employer employee Person 1 , > PB007 Směr asociace ve VP To show the d-itecfon of an association, right click on it and select Presentation Options > Show Direction yoni the pop-up menu The direction arrow is shewn beside the association. Směr šipky lze změnit kliknutím PTM na asociaci Reverse Direction. = -o^ PB007 Násobnost vazeb \ Company employs many People Company employer employee Person 1 <^ Each Person works for one Company I • některá z operací klienta využívá objekt dodavatele jako vstupní argument, výstupní hodnotu, nebo s ní pracuje ve své implementaci a zároveň ji neobsahuje jako atribut • (je slabší formou asociace - silnější formou závislosti je jednosměrná asociace) PB007 Závislost House address ^ Address 1 1 - vyjadřuje, že třída House má atribut Address (třída Address však nemá atribut House - neví nic o této třídě) 4 □ ► 4 fiP ► 4 Asociativní třída vazby If we use an association class, then a particular Person can have only one Job with a particular Company Company Person Job salary:double If, however a particular jobs with the same Company, then we must use a reified association Company 1 Job 1 Person salary:doub!e PB007 Dědičnost A Canvas object has a collection of Shape objects where each Shape may be a Square or a Circle Canvas poiymorphic operations shapes 1 Shape draw( g : Graphics) getAreaQ: int getBoundingAreaQ: int abstract superclass Square draw( g : Graphics ] getAreaQ; int Circle draw( g : Graphics getArea(): int concrete subclasses PB007 Domácí úkol č. 4 • Upravte výsledek z minulého cvičení dle připomínek. • Vyhledejte dle specifikace analytické třídy základní atributy operace a spolupracovníky. • Zakreslete třídy do analytického diagramu tříd včetně dědičnosti a pojmenovaných asociací. a do středy 31.10. 2012, 20:00, odevzdávárna PB007 Týden 05 • ve formátu cisloSkupinky_classDiagram.pdf PB007