Objektově orientované technologie
Logická struktura systému Objektový diagram
Pavel Děrgel, Daniela Szturcová
Osnova
Modelování objektů – objektový diagram Struktura a vazby mezi objekty Dobré zvyky při tvorbě OD.
Objektový diagram
Znázorňuje objekty a jejich relace v určitém čase. Je to snímek systému, který zachycuje aktuální objekty a vazby v konkrétním okamžiku. Souvisí s diagramem tříd. Slouží k ověření přesnosti a správnosti diagramu tříd.
Objekt
Základ objektového diagramu. Reprezentuje konkrétní entitu, která existuje v reálném světě (není vždy podmínkou). Například nějaký konkrétní zákazník, adresa, představení apod. Neplést s třídou, která reprezentuje popis struktury entit reálného světa.
Zápis objektů název-objektu : NázevTřídy Název objektu slouží k identifikaci objektu. Název třídy slouží k jednoznačnému určení typu objektu (instance různých tříd mohou mít stejné názvy). Například: Karel Procházka může být instancí třídy Zaměstnanec nebo Zákazník. Třída rovněž definuje, jaké atributy objekt může mít. : Název třídy (anonymní objekt, bez názvu)
Zápis objektů
Zápis objektů
Objektový diagram v definici atributů neuvádí typ, viditelnost, ... Obsahuje název atributu a jeho hodnotu. Hodnota atributu může být i prázdná nebo může obsahovat několik hodnot (pole, jiný objekt, seznam, ...).
Vztahy mezi objekty
Účelem objektů je reprezentovat data nebo informace a vazby. V diagramu jsou nadefinovány všechny možné vazby mezi třídami (asociace). Vztahu mezi objekty se říká propojení (link). Propojení je instance asociace. Pokud dva objekty vstupují do vztahu, který je popsán asociací, říkáme, že jsou propojeny.
Příklad
Příklad Co vznikne vykreslením uvedených vztahů?
Rozkreslením pomocí objektového diagramu získáme genealogický strom.
Vztahy mezi objekty
Rozdíl mezi třídním a objektovým diagramem
Rozdíl mezi třídním a objektovým diagramem
Rozdíl mezi třídním a objektovým diagramem Diagram tříd
Diagram objektů
Diagram tříd má tři oblasti (název, atributy, operace)
Diagram objektů má dvě oblasti (název a atributy)
Oblast pro název obsahuje pouze název třídy
Oblast pro název objektu obsahuje identifikaci objektu a název třídy (idObjektu : NázevTřídy) nebo pouze název třídy (: Název třídy)
Třída definuje strukturu a typ atributů
Objekt definuje aktuální hodnoty atributů
Definice třídy zahrnuje operace
Objektový diagram operace nezahrnuje
Třídy jsou propojeny pomocí asociací, které obsahují název, role, násobnosti, omezení apod.
Vztah mezi objekty se nazývá spojení a může mít název nebo role (ale nezobrazuje násobnost). všechny spojení mezi objekty jsou 1:1
Použití objektového diagramu
Znázornění aktuálního stavu systému v konkrétním čase. Ověření správnosti diagramu tříd. Reverse engineering. Lepší pochopení budovaného systému.
Tipy pro tvorbu objektových diagramů
Objektový diagram zachycuje pouze statickou strukturu objektového systému (nesnažíme se tedy popisovat dynamické chování). Některé systémy mohou obsahovat stovky nebo tisíce objektů (není cílem popsat je všechny). Dobrý objektový diagram se zaměřuje na konkrétní oblast s cílem dobře ji popsat (je dobré zamyslet se, jaký smysl mají jednotlivé objektové diagramy).
Tipy pro tvorbu objektových diagramů (2)
Při kreslení OD se snažíme minimalizovat křížení linií (zvyšuje to přehlednost). Související objekty kreslíme blízko sebe. Ke zvýraznění důležitých informací (objektů) lze využít barvy nebo doplňující poznámky.
Příklad
Informační systém divadla Před každým představením je potřeba sepsat smlouvu na pronájem určitého počtu sedadel, která budou rezervována na přesně specifikovanou dobu.
Diagram tříd
Smlouva rezervuje určitý počet sedadel (nejméně jedno) Platnost smlouvy je omezena počátečním a koncovým datem Sedadla mají jednoznačný identifikátor
Test pomocí objektového diagramu
Zatím všechno vypadá celkem dobře
Otázka
Může existovat v divadle sedadlo, které není rezervováno žádnou smlouvou?
Odpověď
Sedadlo bez rezervace existovat může (musíme upravit diagram tříd).
změna násobnosti
Otázka
Může být jedno sedadlo rezervováno několika smlouvami najednou?
Odpověď
Ano, ale nesmí se překrývat datum Musíme opět upravit diagram tříd
Dodatečné požadavky příklad
Rozhovory s klientem odhalily další doplňkové požadavky
možnost rezervovat celé bloky sedadel najednou (např. 50 sedadel uprostřed v prvních řadách, nebo celou řadu apod. ) současný model umožňuje pouze rezervovat sedadla pokaždé jedno po druhém
Další úprava diagramu tříd
Tento model sice splňuje požadavky, ale nutí klienta, aby si vybral mezi rezervací sedadel nebo skupin
Vylepšení modelu
Další úvahou zjistíme, že rezervace sedadel nebo skupin sedadel má společné prvky:
sedadla i skupiny je možné rezervovat smlouvou oboje se nachází (jsou umístěny) v divadle oboje může být členem nějaké skupiny
Finální model
Shrnutí
Objektový model vychází z třídního diagramu. Zobrazuje „snímek“ systému v konkrétní čase. Může sloužit k uvedení příkladu, jak to vypadá ve skutečnosti. Dá se použít ke zdokonalení diagramu tříd. Návrh je iterativní proces (vzniká postupně) – to platí o všech diagramech.
Použité zdroje
Tom Pender.: UML Bible Grady Booch, James Rumbaugh, Ivar Jacobson.: The UML User Guide, 1998 Arlow, J.,Neustadt, I.: UML2 a unifikovaný proces vývoje aplikací, Computer Press, 2007 http://www.cs.vsb.cz/benes/vyuka/upr/texty/objekty/index.html
Děkuji za pozornost