UML – Diagram tříd a objektů Řídící systémy s počítači II. Úvod Co je UML?  UML = Unified Modeling Language  jde o unifikovaný jazyk pro modelování  je objektově orientovaný  slouží k vytváření konstrukcí a vzájemných vazeb  je vhodný pro rozsáhlé systémy Úvod Třídy a objekty Třída :  je abstrakcí skupiny věcí, sdílejících společné vlastnosti  je vzorem pro všechny entity svého druhu  má své jméno, atributy a metody Objekt :  je realizací, instancí konkrétní třídy  má vlastní jméno, atributy a metody příslušející své třídě  jeho atributy nabývají konkrétních hodnot Diagram tříd Význam diagramu tříd Co je diagram tříd :  jde o zobrazení statické struktury systému prostřednictvím tříd a vztahů mezi nimi Využití :  analýza (konceptuální model)  návrh (návrh atributů a operací)  implementace (návrh a tvorba programového kódu) Diagram tříd Schéma třídy v diagramu tříd Třídu znázorňujeme obdélníkem, který je rozdělen na tři části :  do první zapisujeme její jméno  druhá slouží k zápisu atributů  třetí část je určena k zápisu metod Diagram tříd Dostupnost v diagramu tříd Určuje, zda a jak mohou ostatní elementy modelu využívat atributy a operace daného objektu. Typy dostupnosti : private (soukromý) ~ dostupný pouze pro danou třídu protected (chráněný) # dostupný pro danou třídu a její instance (dětské třídy nebo objekty) package (balíček) * dostupný jen pro objekty ve stejném balíčku public (veřejný) + dostupný zcela všem objektům Diagram tříd Vztahy mezi třídami Typy vztahů mezi třídami :  asociace  agregace  kompozice  generalizace  závislost  realizace Diagram tříd Asociace  obecný sémantický vztah mezi prvky modelu  třídy obvykle v dané asociaci hrají roli  může existovat více asociací mezi dvěma třídami  asociace může mít směr Diagram tříd Kvalifikované asociace  objekt jedné třídy si musí najít určitý objekt jiné třídy, aby splnil svoji roli v asociaci, kterou jsou spojeny  kvalifikovaná asociace umožňuje nalezení objektu dle jeho atributu, tzv. kvalifikátoru Diagram tříd Asociační třída  asociace mohou mít své vlastní atributy a metody, což vyjadřujeme pomocí asociačních tříd  asociační třídy mohou mít vazby s ostatními třídami asociační třída Diagram tříd Agregace  vyjadřuje vztah celku a jeho části  agregace je pouze jednosměrná  element může přežít svůj kontejner nebo se stát součástí jiného Diagram tříd Kompozice  silnější vazba než agregace  komponenta je součástí právě jednoho kontejneru  zrušením kontejneru automaticky zanikají obsažené komponenty  kompozice, stejně jako agregace, je pouze jednosměrná Diagram tříd Generalizace (dědičnost)  třída - potomek dědí atributy a metody třídy - předka  kromě toho může mít potomek i vlastní atributy a metody Diagram tříd Závislost  vztah nezávislého a závislého elementu  změna nezávislého elementu ovlivní závislý element  často používána pro znázornění situace, kdy metoda jedné třídy používá jinou třídu Diagram tříd Realizace  umožňuje vícenásobné využití metod bez nutnosti zavádění dědičnosti mezi třídami  třída může realizovat více než jedno rozhraní  rozhraní může být realizováno více než jednou třídou Diagram tříd Omezení vazeb  vztah „nebo“ (asociace, agregace) {nebo} {postupně}  omezení vztahu pomocí pravidla (asociace) Diagram tříd Násobnost vztahů  násobnost neboli multiplicita stanoví kolik entit vystupuje v daném vztahu  vyjadřuje počet instancí jedné třídy vztažený k jedné instanci druhé třídy  uplatňuje se u asociací a agregací zápis alt. zápis význam 0..* * několik 1..1 1 právě 1 M..N M až N M..* M a více K,L,M K, L nebo M Diagram tříd Příklady násobností Diagram objektů Význam diagramu objektů Co je diagram objektů :  popisuje objekty a jejich vztahy v konkrétním případě  instance vztahů jsou zde v podobě tzv. linků Využití :  jedná se o doplněk k diagramu tříd  pro vysvětlení detailních charakteristik modelu, které nelze dostatečně popsat na úrovni diagramu tříd Diagram objektů Příklad diagram tříddiagram objektů reflexivní asociace abstraktní třída Konec prezentace Děkujeme za pozornost.