Objektovˇ e orientovan´ e technologie Cviˇ cen´ı 5 - Tvorba tˇr´ıdn´ıho diagramu
Daniela Szturcov´a
1
5 Tvorba tˇr´ıdn´ıho diagramu C´ıl cviˇ cen´ı Vyhledat tˇr´ıdy, jejich atributy a operace. Navrhnout vazby mezi tˇr´ıdami. Vytvoˇrit tˇr´ıdn´ı diagram.
5.1 Teoretick´ y z´ aklad Diagram tˇr´ıd zachycuje strukturu syst´emu, patˇr´ı mezi statick´e diagramy. Zn´azorˇ nuje tˇr´ıdy a jejich vztahy. Tˇr´ıdu ch´ apeme jako kategorii nebo skupinu vˇec´ı, kter´e maj´ı podobn´e vlastnosti (atributy) a vykazuj´ı stejn´e nebo podobn´e chov´an´ı (operace/metody). 5.1.1 Syntaxe diagramu tˇr´ıd Tˇr´ıdn´ı diagram lze vn´ımat jako graf sloˇzen´ y z uzl˚ u a hran. Uzly jsou reprezentov´any tˇr´ıdami a hrany pˇredstavuj´ı vztahy mezi nimi. Pouˇz´ıvan´e symboly a jejich v´ yznam jsou zachyceny na obr´ azku 1.
Obr´azek 1: Obr´ azek symbol˚ u aktivitn´ıho diagramu (vytvoˇreno v akademick´e licenci Visual Paradigm).
Tˇr´ıda se zachycuje pomoc´ı obd´eln´ıku, kter´ y m˚ uˇze b´ yt rozdˇelen do tˇr´ı ˇc´ast´ı. • N´ azev tˇr´ıdy (povinn´ a ˇca´st) m´a korespondovat s jej´ım u ´ˇcelem, • atributy (nepovinn´ a ˇc´ ast) charakterizuj´ı vlastnosti tˇr´ıdy (objekt˚ u),
2
• operace (nepovinn´ a ˇc´ ast), kde kaˇzd´a operace specifikuje zmˇenu stavu c´ılov´eho objektu nebo dotaz (ten vrac´ı n´avratovou hodnotu volaj´ıc´ımu objektu). Operace specifikuje v´ ysledek chov´an´ı volan´eho objektu, chov´an´ı jako takov´e je specifikov´ ano metodou (k´odem). Atributy jsou pops´ any sv´ ym n´azvem, d´ale m˚ uˇze b´ yt uveden datov´ y typ a viditelnost. U operac´ı uv´ ad´ıme n´ azev, pˇr´ıpadnˇe argumenty operace a n´avratov´e typy pro lepˇs´ı pochopen´ı modelovan´e struktury. Vztahy mezi tˇr´ıdami jsou specifikov´any nˇekolika zp˚ usoby, podle charakteru vztahu: • asociace – obecn´ y vztah mezi tˇr´ıdami, specifikuje vazbu mezi jejich instancemi (objekty tˇr´ıd propojen´ ych asociac´ı si mohou pos´ılat zpr´avy), • agregace – asociace, kter´a zachycuje vztah celek – ˇc´ast, komponenta m˚ uˇze existovat i bez celku, pˇr´ıpadnˇe se m˚ uˇze st´at souˇc´ast´ı jin´eho celku, • kompozice – silnˇejˇs´ı vazba neˇz agregace - zruˇsen´ım celku automaticky zanik´a i komponenta, komponenta patˇr´ı pr´avˇe do jednoho celku, • dˇediˇcnost (generalizace) – hierarchick´ y vztah tˇr´ıd, kdy potomek (subclass, podtyp) dˇed´ı atributy a operace sv´eho pˇredka (superclass, nadtyp), potomek m˚ uˇze m´ıt nav´ıc proti zdˇedˇen´ ym atribut˚ um a operac´ım sv´e vlastn´ı, zdˇedˇen´e pak mohou u potomka modifikov´any, • z´ avislost – vztah mezi tˇr´ıdami (obecnˇe ovˇsem mezi dvˇema prvky modelu syst´emu), kdy zmˇena jedn´e tˇr´ıdy (nez´avisl´e) ovlivn´ı druhou tˇr´ıdu (z´avislou), • asociaˇcn´ı tˇr´ıda – tˇr´ıda, kter´a m´a vztah nikoli k jin´e konkr´etn´ı tˇr´ıdˇe, ale k asociaci mezi tˇr´ıdami. Vztahy nav´ıc upˇresˇ nujeme pomoc´ı multiplicity (kardinality). Z´ apis 0..* ∗ 0..1 1..* 1..1 8..11 4,6,12,20 7..*
V´ yznam 0 a v´ıce 0 a v´ıce 0 nebo 1 1 a v´ıce pr´avˇe 1 8 a 11 4,6,12 nebo 20 7 a v´ıce
Vyhled´ av´ an´ı analytick´ ych tˇr´ıd K vyhled´ an´ı tˇr´ıd je moˇzn´e pouˇz´ıt r˚ uzn´e postupy, jako jsou napˇr´ıklad: • n´avrh tˇr´ıd na z´ akladˇe znalosti dom´eny, • uspoˇr´ adat interview se zadavatelem a uˇzivateli a zaznamenat jejich n´azory,
3
• pomoc´ı textov´e anal´ yzy z textov´ ych podklad˚ u nal´ezt kandid´aty na tˇr´ıdy, atributy a operace, • metodou brainstormingu analytick´eho t´ ymu a dom´enov´ ych expert˚ u vytvoˇrit karty CRC (Class-Responsibility-Collaboration, tˇr´ıda-zodpovˇednost-spolupr´ace).
5.2 Doporuˇ cen´ y postup Pouˇzijeme postup, kter´ y s pomoc´ı textov´e anal´ yzy hled´a kandid´aty tˇr´ıd, atribut˚ u a jejich operace z pohledu zodpovˇednosti kaˇzd´e tˇr´ıdy. 1. Textovou specifikaci syst´emu proch´az´ıme a slova splˇ nuj´ıc´ı vlastnost kandid´ata na tˇr´ıdu, atribut ˇci operaci oznaˇc´ıme barevnˇe. 2. Slouˇc´ıme k sobˇe pojmy, kter´e maj´ı stejn´ y v´ yznam (synonyma). 3. Kandid´ aty setˇr´ıd´ıme a vytvoˇr´ıme sadu pojm˚ u, kter´e spolu vytv´aˇrej´ı kostru tˇr´ıdy. 4. K prvotn´ımu n´ avrhu dopln´ıme atributy ˇci operace, kter´e vypl´ yvaj´ı z pˇredeˇsl´ ych modelovac´ıch ˇcinnost´ı (UC, sc´en´aˇre, ...). 5. Pˇreneseme elementy z pˇredchoz´ı pr´ace do grafick´eho editoru a vytvoˇr´ıme prvn´ı verzi tˇr´ıdn´ıho diagramu.
´ 5.3 Ukoly Vytv´ aˇren´ı diagramu 1. V textov´em editoru budeme zpracov´avat specifikaci syst´emu – postupnˇe proch´az´ıme text a slova splˇ nuj´ıc´ı vlastnost kandid´ata oznaˇc´ıme barevnˇe. Podstatn´e jm´eno jako kandid´ at na tˇr´ıdu – ˇcervenˇe. Podstatn´e jm´eno jako kandid´ at na atribut – modˇre. Sloveso jako kandid´ at na operaci – zelenˇe.
Obr´ azek 2: Uk´azka postupu textov´e anal´ yzy.
2. Synonyma v t´eto struˇcn´e specifikaci nejsou.
4
3. Slouˇc´ıme k sobˇe nalezen´e v´ yznamy, kter´e znamenaj´ı kandid´ata na tˇr´ıdu, pˇr´ıpadnˇe i s jeho atributy a operacemi vytvoˇr´ıme z´aklad pro tˇr´ıdu. Tˇr´ıda: Nab´ıdka Atributy: Operace: zobrazitNabidku Tˇr´ıda: Napoj Atributy: oznaceniNapoje, druhNapoje, cena Operace: 4. Dopln´ıme kandid´ aty o dalˇs´ı atributy ˇci operace. Z pˇredeˇsl´e dokumentace dopln´ıme dalˇs´ı adepty na tˇr´ıdy, vˇcetnˇe dˇr´ıve navrhnut´ ych odpovˇednost´ı. Tˇr´ıda: Nab´ıdka Atributy: Operace: zobrazitNabidku Tˇr´ıda: Napoj Atributy: oznaceniNapoje, druhNapoje, cenaNapoje Operace: vratCenu Spoluprace: ZasobnikNapoju Tˇr´ıda: ZasobnikNapoju Atributy: pocetNapoju Operace: jeDruhKDispozici, vhoditNapojVydejniku Spoluprace: Napoj, Nabidka Tˇr´ıda: Zakaznik Atributy: Operace: zvolitNapoj, vhoditMinci, odebratNapoj, odebratPreplatek Spoluprace: Napoj, Nabidka, Mince 5. Spust´ıme grafick´ y editor, zvol´ıme tvorbu tˇr´ıdn´ıho diagramu. Vytvoˇr´ıme tˇr´ıdy, kter´e jsme nadefinovali. 6. Mezi tˇr´ıdami vytvoˇr´ıme vazby a dopln´ıme multiplicitu, pˇr´ıpadnˇe oznaˇc´ıme vazby pomoc´ı n´ azv˚ u vztah˚ u ˇci pojmenov´an´ım rol´ı prvk˚ u. Podrobn´ y popis tvorby tˇr´ıdn´ıho diagramu v prostˇred´ı Visual Paradigm je um´ıstˇen na webov´ ych str´ ank´ ach http://www.visual-paradigm.com/support/documents/vpuserguide/ 94/2576/7190_creatingclas.html.
5
Obr´azek 3: Tˇr´ıdn´ı diagram pro n´ apojov´ y automat – uk´azka jednoho z moˇzn´ ych ˇreˇsen´ı struktury syst´emu.
Samostatn´ a pr´ ace 1. Dotvoˇrte tˇr´ıdn´ı diagram pro N´apojov´ y automat. • Doplˇ nte do prvn´ı verze diagramu tˇr´ıdy pro ProvozovateleAutomatu, Zasobovace(DoplnovaceNapoju), Pokladnika. Bude mezi nimi specifick´a vazba? • Z dokumentace pˇrevezmˇete dalˇs´ı adepty na tˇr´ıdy a doplˇ nte je do tˇr´ıdn´ıho diagramu vˇcetnˇe vztah˚ u. 2. Vytvoˇrte tˇr´ıdn´ı diagram pro syst´em Taxis.
6