Jim Arlow, Ila Neustadt. UML 2 a unifikovaný proces vývoje aplikací Objektově orientovaná analýza a návrh prakticky



Podobné dokumenty
Stručný obsah. Část I Úvod do jazyka UML a metodiky Unified Process 25. Část II Požadavky 71. Část III Analýza 135.

Principy UML. Clear View Training 2005 v2.2 1

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

Unifikovaný modelovací jazyk UML

Kočí, R.: Účelové pozemní komunikace a jejich právní ochrana Leges Praha, 2011

účetních informací státu při přenosu účetního záznamu,

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

programování formulářů Windows

7 Jazyk UML (Unified Modeling Language)

Obsah. Obsah. Úvod... 7

7 Jazyk UML (Unified Modeling Language)

UML. Unified Modeling Language. Součásti UML

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Pokyn D Sdělení Ministerstva financí k rozsahu dokumentace způsobu tvorby cen mezi spojenými osobami

Adobe Illustrator CS5

ípadová studie a procesní ízení Lukáš Strnad 2012 ZÁPADO ESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ KATEDRA TECHNOLOGIÍ A M ENÍ

Specialista pro vytvá řenívztahů Specialist for Creating Relations

Charakteristika kurzu BE4

OBJEKTOVÉ METODOLOGIE JEJICH UŽITÍ A VÝKLAD

Projekt je obvykle iniciován z d vodu dodržení sou asné i budoucí úrovn výroby,

Disciplinární řád. 1 Účel disciplinárního řádu

Česká republika Ministerstvo práce a sociálních věcí Na Poříčním právu 1, Praha 2. vyzývá

Aplika ní doložka KA R Ov ování výro ní zprávy

ŘÁD UPRAVUJÍCÍ POSTUP DO DALŠÍHO ROČNÍKU

NÁZEV ŠKOLY: Střední odborné učiliště, Domažlice, Prokopa Velikého 640. V/2 Inovace a zkvalitnění výuky prostřednictvím ICT

2C Tisk-ePROJEKTY

I. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb

Metodický pokyn k zařazení vzdělávací oblasti Výchova k volbě povolání do vzdělávacích programů pro základní vzdělávání čj.

Novinky verzí SKLADNÍK 4.24 a 4.25

EXTRAKT z české technické normy

FINAN NÍ ÍZENÍ A ROZHODOVÁNÍ PODNIKU

Poslanecká sněmovna 2013 VI. volební období... Návrh Zastupitelstva Moravskoslezského kraje. na vydání

Termíny zkoušek Komise Komise. subkomise 1 (obhaj.) :30 B subkomise 2 (obhaj.) :30 B8 120

Koncepce rozvoje Polytematického strukturovaného hesláře (PSH)

VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s. Fakulta ekonomických studií katedra řízení podniku. Předmět: ŘÍZENÍ LIDSKÝCH ZDROJŮ (B-RLZ)

Česká zemědělská univerzita v Praze Fakulta provozně ekonomická. Obor veřejná správa a regionální rozvoj. Diplomová práce

Dálkové p enosy ze za ízení aktivní protikorozní ochrany Severomoravské plynárenské, a.s.

NÚOV Kvalifikační potřeby trhu práce

Směrnice pro vedení, vypracování a zveřejňování bakalářských prací na Vysoké škole polytechnické Jihlava

Masarykova univerzita Právnická fakulta

Ovoce do škol Příručka pro žadatele

6. HODNOCENÍ ŽÁKŮ A AUTOEVALUACE ŠKOLY

Vzory pro HCI a GUI. Miloš Kudělka. Katedra informatiky PřF UP Olomouc

Katalog vzdělávání 2015

Obsah. Obsah. Předmluva...V O autorech... VII Obsah... IX Přehled použitých zkratek...xxi

V Černošicích dne Výzva k podání nabídky na veřejnou zakázku malého rozsahu s názvem: Nákup a pokládka koberců OŽÚ.

R O Z S U D E K J M É N E M R E P U B L I K Y

Řešení: Dejme tomu, že pan Alois to vezme popořadě od jara do zimy. Pro výběr fotky z jara má Alois dvanáct možností. Tady není co počítat.

KLÍČE KE KVALITĚ (METODIKA II)

Návrh individuálního národního projektu. Podpora procesů uznávání UNIV 2 systém

27/2016 Sb. VYHLÁŠKA ČÁST PRVNÍ ÚVODNÍ USTANOVENÍ ČÁST DRUHÁ

Meze použití dílčího hodnotícího kritéria kvalita plnění a problematika stanovování vah kritérií

OBCHODNÍ PRÁVO Vysoká škola ekonomie a managementu 2012

INTERNETOVÝ TRH S POHLEDÁVKAMI. Uživatelská příručka

městské části Praha 3 pro rok 2016 připravila

Regionální rady regionu soudržnosti Severovýchod pro období ukončování ROP Severovýchod

PŘIJÍMACÍ ŘÍZENÍ. Strana

TECHNICKÁ UNIVERZITA V LIBERCI

Sbírka zákonů ČR Předpis č. 27/2016 Sb.

Rámcový rezortní interní protikorupční program

DRAŽEBNÍ ŘÁD PRO DRAŽBU NEMOVITOSTÍ

SBÍRKA ZÁKONŮ. Ročník 2016 ČESKÁ REPUBLIKA. Částka 10 Rozeslána dne 28. ledna 2016 Cena Kč 210, O B S A H :

VI. Finanční gramotnost šablony klíčových aktivit

T A X N E W S NOVELA ZÁKONA O ÚČETNICTVÍ A ZMĚNA PROVÁDĚCÍ VYHLÁŠKY. Obsah čísla. Listopad Tax l Accounting l Payroll

Učebnice pro děti od 0 do 2 let a pro jejich rodiče

NAŘÍZENÍ RADY (ES) č. 1264/1999 ze dne 21. června 1999, kterým se mění nařízení (ES) č. 1164/94 o zřízení Fondu soudržnosti RADA EVROPSKÉ UNIE, s

Návrh IS - UML. Jaroslav Žáček

Český úřad zeměměřický a katastrální vydává podle 3 písm. d) zákona č. 359/1992 Sb., o zeměměřických a katastrálních orgánech, tyto pokyny:


NEJČASTĚJI KLADENÉ DOTAZY K PUBLICITĚ PROJEKTŮ OP LZZ

Regenerace zahrady MŠ Neděliště

POKYNY. k vyplnění přiznání k dani z příjmů fyzických osob za zdaňovací období (kalendářní rok) 2012

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux.

VÝSTUPY Z DOTAZNÍKU SPOKOJENOSTI. Setkání zpracovatelů projektů v rámci programu KLASTRY CzechInvest, Praha, Štěpánská

Aplikace počítačů v provozu vozidel 9

ÚVOD DO GEOGRAFICKÝCH INFORMA NÍCH SYSTÉM

Odpov di na dotazy uchaze k ve ejné zakázce. 25/

10340/16 mg/jh/lk 1 DG G 2B

Posilování sociálního dialogu v místním a regionálním správním sektoru. Diskusní dokument

3 nadbytek. 4 bez starostí

Návrh IS - UML. Jaroslav Žáček

Seriál: Management projektů 7. rámcového programu

ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ

Marketing. Modul 5 Marketingový plán

Jak na KOTLÍKOVÉ DOTACE? JEDNODUCHÝ RÁDCE PRO ZÁKAZNÍKY

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Výzva k podání nabídek (zadávací dokumentace)

Pomůcka pro zařazení způsobilých výdajů při vyplňování přílohy č. 1. Žádosti o finanční příspěvek (rozpočtu).

Fotogrammetrie a DPZ soustava cílů

6 Objektově-orientovaný vývoj programového vybavení

DUM 02 téma: Popisové pole na výrobním výkrese

ÚLOHA MPO V PROCESU INTEGROVANÉHO POVOLOVÁNÍ

Vydání občanského průkazu

WEBMAP Mapový server PŘÍRUČKA PRO WWW UŽIVATELE Hydrosoft Veleslavín, s.r.o., U Sadu 13, Praha 6

Brusel 8. června 2012 (OR. en) RADA EVROPSKÉ UNIE 10274/1/12 REV 1. Interinstitucionální spis: 2011/0195 (COD) LIMITE PECHE 179 CODEC 1405

Dotazník bezpe nosti a ochrany zdraví p i práci ve skandinávských zemích

ZADÁVACÍ DOKUMENTACE

Zadávání tiskových zakázek prostřednictvím JDF a Adobe Acrobat Professional

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

Transkript:

Jim Arlow, Ila Neustadt UML 2 a unifikovaný proces vývoje aplikací Objektově orientovaná analýza a návrh prakticky Computer Press, a.s. Brno 2011

UML 2 a unifikovaný proces vývoje aplikací Objektově orientovaná analýza a návrh prakticky Jim Arlow, Ila Neustadt Computer Press, a.s., 2011. Dotisk prvního vydání. Pře klad: Bogdan Kiszka Ja zy ko vá ko rek tu ra: Josef Novák Vnitřní úprava: Bogdan Kiszka Sazba: Kateřina Kiszková Rejstřík: Kateřina Kiszková Obál ka: Martin Sodomka Komentář na zadní straně obálky: Václav Kadlec Technická spolupráce: Jiří Matoušek, Petr Klíma, Pavel Kynický, Iva Vilímská, Zuzana Šindlerová Odpovědný redaktor: Václav Kadlec Technický redaktor: Jiří Matoušek Pro duk ce: Daniela Nečasová Authorized translation from the English language edition, entitled UML 2 AND THE UNIFIED PROCESS: PRACTICAL OBJECT-ORIENTED ANALYSIS AND DESIGN, 2nd Edition, 0321321278 by ARLOW, JIM, NEUSTADT, ILA, published by Pearson Education, Inc, publishing as Addison Wesley Professional, Copyright 2005 Pearson Education, Inc. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. CZECH language edition published by Computer Press, a.s., Copyright 2007. Auto ri zo va ný pře klad z ori gi nál ní ho an glic ké ho vy dá ní UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design. O ri gi nální co py right: Pearson Education, Inc./Jim Arlow, Ila Neustadt, 2005. Pře klad: Computer Press, a.s., 2007. Computer Press, a. s., Holandská 3, 639 00 Brno Objednávky knih: http://knihy.cpress.cz distribuce@cpress.cz tel.: 800 555 513 ISBN 978-80-251-1503-9 Prodejní kód: K1349 Vydalo nakladatelství Computer Press, a. s., jako svou 3002. publikaci. Computer Press, a.s. Všechna práva vyhrazena. Žádná část této publikace nesmí být kopírována a rozmnožována za účelem rozšiřování v jakékoli formě či jakýmkoli způsobem bez písemného souhlasu vydavatele.

Stručný obsah Část I Úvod do jazyka UML a metodiky Unified Process 25 Kapitola 1 Co je to vlastně UML?...27 Kapitola 2 Co je to Unified Process (UP)?...51 Část II Požadavky 71 Kapitola 3 Požadavky a jejich specifikace...73 Kapitola 4 Modelování případů užití...89 Kapitola 5 Pokročilé modelování případů užití... 115 Část III Analýza 135 Kapitola 6 Analýza...137 Kapitola 7 Třídy a objekty...143 Kapitola 8 Hledáme analytické třídy...171 Kapitola 9 Relace...189 Kapitola 10 Dědičnost a polymorfismus...215 Kapitola 11 Analytické balíčky...231 Kapitola 12 Realizace případů užití...245 Kapitola 13 Pokročilé realizace případů užití...275 Kapitola 14 Diagramy aktivit...285 Kapitola 15 Pokročilé diagramy aktivit...309 Část IV Návrh 327 Kapitola 16 Pracovní postup Návrh...329 Kapitola 17 Návrhové třídy...339 Kapitola 18 Upřesňování analytických relací...357 Kapitola 19 Rozhraní a komponenty...381 Kapitola 20 Realizace případů užití návrh...405 Kapitola 21 Stavové automaty...427 Kapitola 22 Pokročilé stavové diagramy...445

4 Stručný obsah Část V Implementace 459 Kapitola 23 Pracovní postup Implementace...461 Kapitola 24 Nasazení...467 Část VI Doplňkový materiál 479 Kapitola 25 Úvod do jazyka OCL...481 Příloha A: Ukázkový model případu užití...533 Příloha B: Specifikace v XML...541 Příloha C: Bibliografie...549 Příloha D: Stručný slovníček pojmů...551 Rejstřík...555

Obsah Poděkování...17 Předmluva...19 O této knize...19 Konvence...20 Jak íst tuto knihu...21 Cestovní mapa této knihy...22 Část I Úvod do jazyka UML a metodiky Unified Process 25 Kapitola 1 Co je to vlastně UML?...27 Kudy kam?...27 Co je to UML?...28 Zrození jazyka UML...29 MDA budoucnost jazyka UML...31 Pro unifikovaný?...33 Objekty a jazyk UML...33 Struktura jazyka UML...34 Stavební bloky jazyka UML...35 P edm ty (things)...35 Relace (relationships)...36 Diagramy...36 Obecná mechanika jazyka UML...39 Specifikace...39 Ornamenty (Adornments)...41 Podskupiny...41 Mechanismy rozši itelnosti...43 Architektura...46 emu jste se nau ili...48 Kapitola 2 Co je to Unified Process (UP)?...51 Kudy kam...51 Co je to UP?...53 Zrození metodiky UP...53 UP a RUP...56 Konkrétní aplikace metodiky UP v novém projektu...58 Axiomy metodiky UP...59

6 Obsah Metodika UP je založena na iterativním a p ír stkovém procesu...60 Pracovní postupy iterace...60 Základny iterací a p ír stky (inkrementy)...61 Struktura metodiky UP...61 Fáze podle metodiky UP...63 Souhrnné cíle fáze Zahájení...63 Primární zam ení fáze Zahájení...64 Milník: P edm t životního cyklu a rozsah systému...64 Cíle fáze Rozpracování...65 Primární zam ení fáze Rozpracování...65 Milník: Architektura jako vodítko pro systém v jeho budoucím život...65 Souhrnné cíle fáze Konstrukce...66 Primární zam ení fáze Konstrukce...66 Milník: Po áte ní provozní zp sobilost...67 Cíle fáze Zavedení...67 Primární zam ení fáze Zavedení...67 Milník: Nasazení produktu...68 emu jste se nau ili?...68 Část II Požadavky 71 Kapitola 3 Požadavky a jejich specifikace...73 Kudy kam?...73 Pracovní postup...74 Softwarové požadavky metamodel...75 Detail pracovního postupu Požadavky...76 Význam požadavk...78 Definice požadavk...78 Specifikace systémových požadavk...79 Správn formulované požadavky...79 Funk ní a nefunk ní požadavky...80 Uspo ádání požadavk...81 Atributy požadavk...81 Hledání požadavk...83 Získávání požadavk : Mít mapu ješt neznamená vládnout území!...84 Konzultace...85 Dotazníky...86 Dílna požadavk...86 emu jste se nau ili?...87 Kapitola 4 Modelování případů užití...89 Kudy kam?...89 Modelování p ípad užití...91

Obsah 7 Kapitola 5 Aktivita metodiky UP: najít aktéry a p ípady užití...91 Subjekt (Hranice systému)...92 Co jsou to akté i?...93 Co jsou to p ípady užití?...95 Slovní ek pojm...97 Aktivita metodiky Unified Process: Detail p ípadu užití...98 Specifikace p ípadu užití...99 Název p ípadu užití...100 ID p ípadu užití...101 Stru ný popis...101 Akté i...101 Vstupní a výstupní podmínky...101 Tok událostí...102 Modelování alternativních scéná...106 Sledování požadavk...110 Kdy modelovat p ípady užití...112 emu jste se nau ili?...112 Pokročilé modelování případů užití...115 Kudy kam?...115 Zobecn ní aktéra (actor generalization)...116 Zobecn ní p ípad užití...118 Relace «include»...121 Relace «extend»...123 Rozší ení p ípadu užití...125 Více vkládaných segment...126 Podmín ná rozší ení...126 Kdy použít pokro ilé funkce...127 Rady a tipy pro psaní p ípad užití...128 Tvo te co nejkratší a nejjednodušší p ípady užití...128 Soust e te se na co, nikoli na jak...129 Vyhýbejte se funk ní dekompozici...129 emu jste se nau ili...131 Část III Analýza 135 Kapitola 6 Kapitola 7 Analýza...137 Kudy kam?...137 Analýza...137 Artefakty analýzy metamodel...138 Detail pracovního postupu analýzy...139 Analytický model Osv d ené postupy...139 emu jste se nau ili?...141 Třídy a objekty...143 Kudy kam?...143

8 Obsah Co jsou to objekty?...144 Zapouzd ení...146 P edávání zpráv...147 Notace objekt v jazyce UML...148 Hodnoty atribut...149 Co jsou to t ídy?...149 T ídy a objekty...151 Tvorba instance...152 Notace t ídy v jazyce UML...152 Oddíl názvu...154 Oddíl atribut...154 Oddíl operací...158 Syntaxe stereotypu t ídy...162 Rozsah platnosti...163 Platnost instance a platnost t ídy...163 P ístup je ur en rozsahem platnosti...164 Tvorba a uvoln ní objekt...164 Konstruktory ukázková t ída BankovníÚ et...165 Destruktory ukázková t ída BankovníÚ et...166 emu jste se nau ili?...166 Kapitola 8 Hledáme analytické třídy...171 Kudy kam?...171 Aktivita metodiky UP: analýza p ípadu užití...172 Co jsou to analytické t ídy?...173 Anatomie analytické t ídy...174 Jak se pozná dobrá analytická t ída?...175 Co íká praxe o analytických t ídách...176 Hledáme t ídy...178 Hledáme t ídy na základ analýzy podstatných jmen a sloves...178 Hledáme t ídy pomocí metody štítk CRC...180 Hledáme t ídy pomocí stereotyp metodiky RUP...181 Hledáme t ídy z jiných zdroj...184 Tvorba první verze analytického modelu...185 emu jste se nau ili?...186 Kapitola 9 Relace...189 Kudy kam?...189 Co je to relace?...189 Co je to spojení?...190 Objektové diagramy...191 Cesty...193 Co je to asociace?...194 Syntaxe asociace...194 Násobnost (multiplicity)...195 Pr chodnost (navigability)...199

Obsah 9 Asociace a atributy...202 Asocia ní t ídy...203 Asociace s kvalifikátorem...205 Co je to závislost?...206 Závislosti v užívání (usage dependencies)...208 Abstrak ní závislosti...209 Závislosti na základ oprávn ní...211 emu jste se nau ili?...211 Kapitola 10 Dědičnost a polymorfismus...215 Kudy kam?...215 Zobecn ní (generalizace)...216 Zobecn ní t íd...216 D di nost t íd...217 P ekrývání...217 Abstraktní operace a t ídy...219 Stupn abstrakce...220 D d ní od více p edk...220 Polymorfismus...220 P íklad polymorfismu...221 Pokro ilé zobec ování...224 Zobec ující množiny...224 Odvozené metat ídy...227 emu jste se nau ili?...229 Kapitola 11 Analytické balíčky...231 Kudy kam?...231 Co je to balí ek?...231 Balí ky a jmenné prostory...234 Vno ené balí ky...234 Závislosti balí k...235 P echodnost...237 Zobec ování balí k...238 Architektonická analýza...238 Hledáme analytické balí ky...239 Cyklické závislosti balí k...241 emu jste se nau ili?...242 Kapitola 12 Realizace případů užití...245 Kudy kam?...245 Aktivita metodiky UP: Analýza p ípadu užití...246 Co jsou to realizace p ípad užití?...247 Realizace p ípadu užití prvky...248 Interakce...249 áry života...249

10 Obsah Kapitola 13 Kapitola 14 Zprávy...250 Synchronní, asynchronní a návratové zprávy...251 Tvorba a uvoln ní zpráv...252 Nalezené a ztracené zprávy...252 Diagramy interakce...253 Sekven ní diagramy...253 áry života a zprávy...254 Aktivace...256 Dokumentace sekven ních diagram...257 Invarianty a omezení stavu...258 Kombinované fragmenty a operátory...260 V tvení pomocí operátor opt a alt...262 Iterace s operátory loop a break...264 Komunika ní diagramy...267 Iterace...268 V tvení...270 emu jste se nau ili?...271 Pokročilé realizace případů užití...275 Kudy kam?...275 Výskyty interakcí...275 Argumenty...278 Brány...279 Body pokra ování...281 emu jste se nau ili?...283 Diagramy aktivit...285 Kudy kam?...285 Co jsou to diagramy aktivit?...286 Diagramy aktivit a metodika Unified Process...287 Aktivity...287 Sémantika aktivit...289 Oddíly aktivit...291 Ak ní uzly...293 Ak ní uzel: Volání...295 Ak ní uzel: P ijetí asové události...296 ídicí uzly...297 Po áte ní a koncové uzly...298 Uzly rozhodnutí a slou ení...298 Uzly rozv tvení a spojení soub žnost...299 Objektové uzly...301 Sémantika vyrovnávací pam ti objektového uzlu...302 Znázorn ní stav objekt...303 Parametry aktivit...303 Sponky (pins)...305 emu jste se nau ili...306

Obsah 11 Kapitola 15 Pokročilé diagramy aktivit...309 Kudy kam?...309 Spojky...311 P erušitelné oblasti aktivit...311 Ošet ení výjimek...312 P ídavné uzly...313 Odesílání signál a p ijímání událostí...314 Proud ní...317 Pokro ilé funkce toku objekt...318 Vstupní a výstupní efekty...318 Stereotyp «selection»...318 Stereotyp «transformation»...319 Multiplexní vysílání a p íjem...319 Množiny parametr...320 Uzel stereotypu «centralbuffer»...321 Stru né diagramy interakcí...322 emu jste se nau ili?...324 Část IV Návrh 327 Kapitola 16 Kapitola 17 Pracovní postup Návrh...329 Kudy kam?...329 Návrh pracovní postup...330 Artefakty návrhu metamodel...331 Relace stereotypu «trace»...332 Udržovat jeden nebo dva modely?...333 Detail návrhu...335 Aktivita podle metodiky UP: Architektonický návrh...336 emu jste se nau ili?...337 Návrhové třídy...339 Kudy kam?...339 Aktivita podle metodiky UP: Návrh t ídy...340 Co jsou to návrhové t ídy?...341 Anatomie návrhové t ídy...343 Správn formulované návrhové t ídy...344 Úplnost a dostate nost...344 Jednoduchost...345 Vysoká soudržnost...346 Minimalizace vazeb...346 D d ní...347 Agregace, nebo d d ní...347 D d ní od více p edk (multiple inheritance)...349 D d ní a realizace rozhraní...350 Šablony...350

12 Obsah Vno ené t ídy...353 emu jste se nau ili?...353 Kapitola 18 Upřesňování analytických relací...357 Kudy kam?...357 Návrhové relace...359 Agregace a kompozice...359 Sémantika agregace...360 Sémantika kompozice...362 Kompozice a atributy...363 Jak up esnit analytické relace...364 Asociace typu 1:1...364 Relace typu M:1...365 Asociace typu 1:N...366 Kolekce...366 Mapa...368 Konkretizované relace...369 Asociace typu M:N...370 Obousm rné asociace...370 T ídy asociací...371 Kompozice ve strukturovaných t ídách...372 Strukturované klasifikátory...372 Strukturované t ídy...373 emu jste se nau ili?...376 Kapitola 19 Rozhraní a komponenty...381 Kudy kam?...381 Aktivita podle metodiky UP: Návrh podsystému...382 Co je to rozhraní?...383 Zp ístupn ná a požadovaná rozhraní...384 Realizace rozhraní versus d d ní...386 Porty...390 Rozhraní a vývoj komponentového softwaru...391 Co je to komponenta?...392 Stereotypy komponent...394 Podsystémy...395 Hledáme rozhraní...395 Návrh pomocí rozhraní...396 Vzor fasáda...397 Fyzická architektura a vzor rozvrstvení...398 Výhody a nevýhody rozhraní...399 emu jste se nau ili?...400 Kapitola 20 Realizace případů užití návrh...405 Kudy kam?...405 Aktivita: Navrhnout p ípad užití...406

Obsah 13 Kapitola 21 Kapitola 22 Realizace p ípad užití návrh...407 Návrhové diagramy interakce...408 Modelování soub žnosti...410 Aktivní t ídy...410 Soub žnost v sekven ních diagramech...412 Soub žnost v komunika ních diagramech...414 Interakce podsystém...416 Diagramy asování...417 P íklady realizace p ípadu užití ve fázi návrhu...420 emu jste se nau ili?...425 Stavové automaty...427 Kudy kam?...427 Stavové automaty...428 Stavové automaty chování a stavové automaty protokolu..429 Stavové automaty a t ídy...429 Stavové automaty a metodika Unified Process...430 Diagramy stavových automat...431 Stavy...432 Syntaxe stavu...433 P echody mezi stavy...434 Spojování p echod p echodový pseudostav...435 V tvení p echod pseudostav volby...436 Události...437 Události volání...437 Signální události...438 Události zm ny...439 asové události...440 emu jste se nau ili?...441 Pokročilé stavové diagramy...445 Kudy kam?...445 Složené stavy...446 Jednoduché složené stavy...447 Ortogonální složené stavy...449 Stavy podautomat...452 Komunikace mezi stavovými podautomaty...453 Historie...455 M lká historie...455 Hluboká historie...456 emu jste se nau ili?...457

14 Obsah Část V Implementace 459 Kapitola 23 Pracovní postup Implementace...461 Kudy kam?...461 Pracovní postup Implementace...461 Artefakty implementace metamodel...463 Detail fáze Implementace...464 Artefakty...464 emu jste se nau ili?...465 Kapitola 24 Nasazení...467 Kudy kam?...467 Aktivita podle metodiky Unified Process: Architektonická implementace...467 Diagram nasazení...469 Uzly...470 Artefakty...472 Nasazení...476 emu jste se nau ili?...477 Část VI Doplňkový materiál 479 Kapitola 25 Úvod do jazyka OCL...481 Kudy kam?...481 Co je to jazyk OCL?...483 Pro vlastn jazyk OCL používat?...483 Syntaxe výraz v jazyce OCL...484 Obsah balí ku a názvy cest...486 Kontext výrazu...486 Typy výraz v jazyce OCL...487 T lo výrazu...489 Komentá e, klí ová slova a pravidla priority...489 Systém typ v jazyce OCL...490 Primitivní typy...492 Strukturovaný typ Tuple...494 Infixové operátory...495 Kolekce OCL...496 Itera ní operace...502 Navigace pomocí jazyka OCL...505 Navigace uvnit kontextové instance...506 Procházení asociací...506 Procházení n kolika asociací...508

Obsah 15 Typy výraz OCL pod lupou...509 inv:...509 pre:, post: a @pre...511 body:...512 init:...513 def:...513 Výrazy s klí ovým slovem let...515 Klí ové slovo derive:...515 Jazyk OCL v jiných typech diagram...516 Jazyk OCL v diagramech interakce...516 Jazyk OCL v diagramech aktivit...518 Jazyk OCL ve stavových automatech...519 Pokro ilá témata...521 Navigace mezi asocia ními t ídami...521 Navigace mezi kvalifikovanými asociacemi...522 Zd d né asociace...523 Výrazy typu OclMessage...525 emu jste se nau ili?...527 Příloha A Ukázkový model případu užití...533 Úvod...533 Model p ípadu užití...533 Ukázkové p ípady užití...533 Příloha B Specifikace v XML...541 Jazyk XML a šablony p ípad užití...541 SUMR...541 Příloha C Bibliografie...549 Příloha D Stručný slovníček pojmů...551 Rejstřík...555

Našim rodi m

Poděkování P edevším bychom cht li pod kovat Fabriziu Ferrandinovi, Wolfgangu Emmerichovi a našim p átel m ze spole nosti Zühlke Engineering, kte í nás povzbuzovali p i p íprav zaškolovacího kurzu pro práci s jazykem UML, jenž se stal základním kamenem této knihy. Sue a Davidovi Epstainovým d kujeme za nepostradatelnou pomoc b hem celého projektu. D kujeme rovn ž Andymu Polsovi, a už za posuzování jednotlivých p ípad užití, i za jeho programové inženýrství. Alison Birtwellové a jejím koleg m z nakladatelství Addison-Wesley d kujeme za vyšperkování textu. Rodin Neustadtových d kujeme za ohromnou trp livost. Za mírnou út chu a podporu d kujeme Alu Tomsovi. Ko kám Homérovi a Isis d kujeme za hodiny prospané na r zných verzích konceptu p ipravovaného rukopisu. Nakonec musíme ješt zmínit Tres Amigos : Gradyho Boocha, Jima Rumbaugha a Ivana Jacobsona za jejich práci na jazyku UML a standardu Unified Process, o nichž vlastn tato kniha je.

Předmluva O této knize Tato kniha si klade za cíl provést vás procesem objektov orientované analýzy a návrhu v jazyku UML (Unified Modeling Language, unifikovaný jazyk pro tvorbu diagram ) v souladu s metodikou Unified Process (UP, unifikovaný proces). Jazyk UML poskytuje syntaxi vizuálního modelování používanou p i objektov orientovaném návrhu, zatímco UP nabízí standardní osnovu pro proces tvorby softwarového vybavení, která je vodítkem p i vypracovávání objektov orientované analýzy a návrhu. Metodika Unified Process má mnoho r zných aspekt. V této knize vás seznámíme jen s t mi z nich, jež se bezprost edn týkají práce objektov orientovaných analytik a návrhá. Podrobnosti týkající se ostatních aspekt metodiky UP najdete v knize [Rumbaugh 1] nebo v dalších knihách uvedených v bibliografii. V této publikaci se seznámíte s jazykem UML a se souvisejícími analytickými a návrhovými technikami. Poznáte je do té míry, že budete schopni efektivn modelovat skute né projekty. Podle Stephena J. Mellora [Mellor 1] lze modelování v jazyce UML rozd lit na t i stupn : UML jako ná rt, rta nebo skica neformální zp sob využití jazyka UML, v n mž jsou diagramy na rtnuty jako pom cka k vizualizaci softwarového systému. M žete si to p edstavit jako situaci, kdy n co n komu kreslíte na ubrousek. Takové ná rtky nemají p íliš velkou hodnotu, ale jsou dobrými pomocníky p i úvodním vysv tlení základní myšlenky. Proto také nejsou archivovány a obvykle kon í v koši. K tvorb podobných neformálních ná rt se obvykle používají bílé tabule nebo kreslicí nástroje jako Visio nebo PowerPoint (www.microsoft.com). UML jako detailní plán mnohem formáln jší a hlavn p esn jší postup, v n mž je jazyk UML využíván k podrobné specifikaci softwarového systému. Tato fáze se podobá architektonickým plán m neboli strojovým návrh m. Model UML je aktivn uchováván a stává se d ležitou sou ástí celého projektu. Tento postup vyžaduje užití skute ných modelovacích nástroj, jako jsou nap íklad Rational Rose (www.rational.com) nebo MagicDraw UML (www.magicdraw.com). Spustitelný jazyk UML pomocí architektury MDA (Model Driven Architecture) lze modely UML použít jako programovací jazyk. Modely UML opat íte takovými detaily, jež umožní p eklad systému p ímo

20 Předmluva Konvence Takto jsou ozna eny odstavce, v nichž se vám snažíme sd lit d ležitou informaci, kterou byste nem li p ehlédnout. z modelu. Jde o nejformáln jší a nejp esn jší zp sob využití jazyka UML v praxi a z našeho pohledu jde o budoucnost softwarového vývoje. Chcete-li postupovat takto, musíte mít k dispozici modelovací nástroj UML s podporou architektury MDA, nap íklad ArcStyler (www.arcstyler.com). Problematika architektury MDA ale p ekra uje rámec této knihy, i když se jí krátce v nujeme v podkapitole 1.4. V této knize se na jazyk UML soust edíme jako na formu detailního plánu. Techniky, jež se b hem jejího tení nau íte, lze využít rovn ž i v p ípad, že chcete jazyk UML používat jako spustitelný jazyk. Nau íte-li se jazyk UML používat jako detailní plán, budete jej schopni p irozeným zp sobem využít také ke skicování neformálních ná rt. Snažili jsme se, aby náš výklad jazyka UML a metodiky Unified Proces byl co možná nejvíce p ímo arý, nekomplikovaný, jasný a srozumitelný. Abychom vám orientaci v knize maximáln usnadnili, vložili jsme do každé kapitoly osnovu v podob diagramu inností UML. Zmi ované diagramy vyjad ují po adí, v n mž byste jednotlivé oddíly m li íst. P íklad takového diagramu je uveden na obrázku 1. Obrázek 1: Ukázka diagramu aktivit V tšina zde uvád ných diagram jsou diagramy UML. Poznámky zobrazené šedou barvou však sou ástí syntaxe jazyka UML nejsou.

Předmluva 21 Jak číst tuto knihu Aby byl text co nejp ehledn jší a abyste mohli lépe sledovat to, co je v dané kapitole, podkapitole nebo oddílu nejd ležit jší, použili jsme pro ur ité typy sd lení odlišného formátu. Nap íklad: Takto jsou zobrazeny prvky jazyka UML a programové výpisy projednávaného kódu. Je tak mnoho knih a tak málo asu, abychom je mohli p e íst! Práv proto jsme naši knihu koncipovali tak, aby ji bylo možné p e íst n kolika r znými zp soby (mimo jiné od za átku do konce) a abyste si zp sob etby mohli vybrat sami. Metoda rychlého vyhledávání Tuto metodu zvolte, chcete-li o tématech projednávaných v celé knize nebo jen v ur ité kapitole získat celkový p ehled. Získáte tím souhrn ízení : Vyberte kapitolu, prostudujte diagram inností, abyste v d li, kam se p i etb dostanete, projd te jednotlivé obrázky a poznámky na okraji, p e t te oddíl emu jste se nau ili, vra te se k oddílu, který vás zajímá a p e t te jej. Zmi ovaný postup je velmi rychlým a efektivním zp sobem pro získávání díl ích informací, které tato kniha obsahuje. Pravd podobn budete velmi p íjemn p ekvapeni, kolik informací lze takto vyhledat! Metoda rychlého vyhledávání je nejefektivn jší, umíte-li na po átku hledání jasn formulovat, co chcete najít. Nap íklad: Chci pochopit, jak se používá modelování p ípad užití. Referenční příručka Chcete-li se nau it ur ité podmnožin jazyka UML nebo vybrané technice, využijte podrobný rejst ík a tabulku obsahu. Oba zmín né nástroje by vám m ly usnadnit rychlé a efektivní vyhledání požadované informace. Opakování Text této knihy lze procházet a opakovat dv ma r znými zp soby: Pot ebujete-li co nejrychleji a nejefektivn ji osv žit znalosti jazyka UML, t te souhrny emu jste se nau ili, umíst né na konci jednotlivých kapitol. Nebudete-li n emu rozum t, jednoduše se vra te k p íslušnému oddílu a prostudujte jej Máte-li více asu, m žete procházení jednotlivých kapitol omezit na studium diagram a postranních poznámek.

22 Předmluva Metoda povrchního čtení Máte-li volnou chvilku, otev ete knihu na náhodn vybrané stránce. P i tvorb této knihy jsme se snažili o to, aby na každé stránce bylo n co zajímavého. Bez ohledu na to, jak dob e se v jazyce UML orientujete, budete zajisté p ekvapeni, že stále existují v ci, kterým se m žete p iu it. Cestovní mapa této knihy Na obrázku 2 si m žete prohlédnout cestovní mapu této knihy. Nazna ili jsme v ní po adí, v n mž byste m li jednotlivé kapitoly íst. Diagram také nazna uje, ve kterých kapitolách jsou popisovány pokro ilé techniky, jejichž etbu m žete p i prvním pr chodu knihy p esko it.

Obrázek 2 Předmluva 23

Úvod do jazyka UML a metodiky Unified Process Á S T

Kapitola 1 Co je to vlastně UML? 11 1.1 Kudy kam? Obrázek 1.1

28 Část 1 Úvod do jazyka UML a metodiky Unified Process V této kapitole najdete stru ný p ehled historie a vyšší struktury jazyka UML. Zmíníme se o mnoha tématech, která rozpracujeme v následujících kapitolách. Za áte níci by m li za ít práv studiem historie a základ tohoto zajímavého jazyka. Pat íte-li mezi pokro ilejší uživatele jazyka UML, p ípadn pokud své znalosti historie jazyka UML nepot ebujete dále rozši ovat, p ejd te k oddílu 1.6, kde najdete výklad struktury jazyka UML. Výklad se v tví na ty i hlavní témata, která m žete íst v libovolném po adí. Oddíl 1.7 obsahuje informace o stavebních blocích jazyka UML, oddíl 1.8 pojednává o obecné mechanice v jazyku UML a oddíl 1.9 obsahuje výklad architektury jazyka UML (1.10). 1.2 Co je to UML? Jazyk UML (Unified Modeling Language, unifikovaný modelovací jazyk) je univerzální jazyk pro vizuální modelování systém. P estože je nej ast ji spojován s modelováním objektov orientovaných softwarových systém, má mnohem širší využití, což vyplývá z jeho zabudovaných rozši ovacích mechanism. Jazyk UML není metodika. Je to univerzální jazyk pro vizuální modelování. Metodikou je Unified Process. Jazyk UML byl navržen proto, aby spojil nejlepší existující postupy modelovacích technik a softwarového inženýrství. Jako takový je explicitn navržen takovým zp sobem, aby jej mohly implementovat všechny nástroje CASE (computer-aided software engineering). Zmín ná koncepce vychází z pochopení skute nosti, že se rozsáhlé softwarové systémy obvykle bez podpory nástroj CASE neobejdou. Diagramy vytvo ené v jazyku UML jsou srozumitelné pro lidi, ale navíc je mohou snadno interpretovat i programy CASE. Je nesmírn d ležité uv domit si, že jazyk UML nenabízí žádný druh metodiky modelování. P irozen, ur ité aspekty metodiky m žeme najít v každém z prvk, z nichž se model UML skládá. Samotný jazyk UML však poskytuje pouze vizuální syntaxi, kterou m žeme využít p i sestavování svých model. Unified Process již ovšem metodikou je. Sd luje nám, jaké pracovníky musíme využít, jaké innosti vykonat a jaké produkty vyrobit, aby se nám poda ilo sestavit model funk ního softwarového systému. Jazyk UML není vázán na žádnou specifickou metodiku nebo životní cyklus. Lze jej použít spole n se všemi existujícími metodami. Unified Process využívá jazyk UML jako vlastní syntaxi pro vizuální modelování. Z tohoto pohledu lze metodiku Unified Process považovat za up ednost ovanou metodu užití jazyka UML, protože je pro tento jazyk nejlépe adaptovaná. Jazyk UML však m že poskytovat (a také poskytuje) podporu vizuálního modelování i pro jiné metody. (Chcete-li se seznámit s p íkladem vyzrálé metodiky, která pro vizuální syntaxi rovn ž využívá jazyk

Kapitola 1 Co je to vlastně UML? 29 UML, navštivte adresu www.open.org.au, kde najdete domovské stránky metodiky OPEN (Object-oriented Process, Environment and Notation).) Zám rem jazyka UML a metodiky UP byla od jejich vzniku podpora nejlepších postup používaných v softwarovém inženýrství, vycházejících z ov ených zkušeností posledního desetiletí. K tomuto ú elu byly v jazyku UML a metodice UP unifikovány všechny p edchozí pokusy o tvorbu jazyk pro vizuální modelování a proces softwarového inženýrství do nej istšího ešení. 1.3 Zrození jazyka UML Do roku 1994 se sv t objektov orientovaných metod zmítal v chaosu. Existovalo n kolik soupe ících jazyk pro vizuální modelování a také n kolik metodik. A koli s sebou každá metodika p inesla n co nového a obvykle též novou notaci rozmanité inovace jen výjime n znamenaly i novou kvalitu. Všechny m ly své stoupence i protivníky. Vyjád eno v jazyku pro vizuální modelování (viz obrázek 1.2) více než polovinu tehdejšího trhu si mezi sebe rozd lily metody Booch (Booch) a OMT (Object Modeling Technique, Rumbaugh). Na stran metodik si jasn nejlépe vedla metodika Objectory (Jacobson). Mnoho autor prohlašovalo, že mají svou metodu. Ve skute nosti však m li pouze syntaxi pro vizuální modelování a kolekci více i mén užite ných aforism a pou ek. Obrázek 1.2 Jedním z prvních pokus o sjednocení byla metodika Fusion (Coleman, 1994). P estože byla pom rn hlasit medializována, nebyli do její p ípravy zapojeni auto i metod, které tvo ili pro podstatnou ást tehdejšího trhu (Booch, Jacobson a Rumbaugh). Metodika Fusion skon ila nenávratn v propadlišti d jin, kdy se auto i metod Booch a Rumbaugh spojili ve firm Rational Corporation, která pracovala na tvorb jazyka UML. Tato skute nost v té dob znepokojovala mnoho z nás, protože spole nost Rational najednou získala více než polovi ní podíl na trhu s metodikami.

30 Část 1 Úvod do jazyka UML a metodiky Unified Process Naše obavy však byly plané, protože se jazyk UML stal otev eným pr myslovým standardem. V roce 1996 navrhlo sdružení OMG (Object Management Group, spojení dodavatel, které vzniklo za ú elem definování a prosazování specifikací objekt CORBA) specifikaci RFP (Request For Proposal, postup vytvá ení standardu v síti Internet a zárove požadavek na ozna ení takto vzniklého standardu) pro objektov orientovaný jazyk pro vizuální modelování, v n mž jako standard navrhlo jazyk UML. V roce 1997 sdružení OMG jazyk UML p ijalo a první pr myslový standard objektov orientovaného jazyka pro vizuální modelování byl na sv t! Od té doby všechny jiné soupe ící metody postupn upadaly v zapomn ní a jazyk UML byl ve ejností bez námitek p ijat. V roce 2000 byl jazyk UML významn rozší en o sémantiku akcí. Ta slouží k popisu chování množiny primitivních akcí, jež lze implementovat pomocí specifických ak ních jazyk. Sémantika akcí ve spojení s ak ními jazyky umož uje podrobn jší specifikací prvk souvisejících s chováním model UML (nap íklad operací) p ímo v modelu UML. Jedná se o významný pokrok, nebo poskytuje možnost dokon it specifikaci UML výpo etn, což v kone ném d sledku umož uje modely UML spoušt t. P íkladem implementace jazyka UML s vestav ným ak ním jazykem s podporou sémantiky akcí je xuml spole nosti Kennedy Carter (ww.kc.com). B hem aktualizace této knihy pro 2. vydání byly v roce 2005 dokon eny práce na finalizaci specifikace jazyka UML 2.0. Popisovaný jazyk je nyní velmi vysp lým modelovacím jazykem. Od uvoln ní jeho první verze uplynulo tém sedm let a za tu dobu byla jeho hodnota potvrzena v tisících softwarových projekt na celém sv t. V jazyce UML 2 bylo zavedeno mnoho nových prvk vizuální syntaxe. N které z nich nahrazují (a objas ují) existující syntaxi verzí 1.x. Jiné jsou úpln nové a zt les ují novou sémantiku p idanou k jazyku. Jazyk UML vždy poskytoval mnoho r zných možností zobrazení modelovaných prvk, ale ne všechny modelovací nástroje umož ovaly tak pestrou formu vyjád ení modelu. V této knize se snažíme konzistentn používat nejb žn jší syntaktické varianty. Pokud ale dosp jeme k názoru, že jiná varianta poslouží p i b žném modelování lépe, neopomeneme tuto skute nost zd raznit. Ur ité syntaktické možnosti jsou velmi specializovány a budeme se o nich zmi ovat nanejvýš jen mimochodem. P estože v jazyce UML verze 2 najdete mnoho syntaktických odlišností v i p edchozím verzím, máme pro vás jednu velmi dobrou zprávu. Základní pravidla jsou vícemén stejná. Pro modelá e zvyklé na p edchozí verze jazyka by nem l být p echod na novou verzi UML nijak obtížný. Nejzásadn jší zm ny se týkají v podstat metamodelu a v tšina modelá je z ejm p ímo ani nepost ehne. Metamodel UML je modelem jazyka UML vyjád eným pomocí množiny jazyka UML. Ta p esn definuje syntaxi a sémantiku všech modelovaných prvk jazyka UML, s nimiž se v této

Kapitola 1 Co je to vlastně UML? 31 knize setkáte. Zmi ované zm ny metamodelu se v tšinou týkají zp esn ní specifikace jazyka UML a zajišt ní její konzistence. Grady Booch v jedné ze svých knih íká: Máte-li dobrý nápad, je m j! Tento výrok stru n vyjad uje filozofii jazyka UML p ejímá to nejlepší, co doposud vzniklo a integruje to do vašeho nápadu. Je to nejobecn jší forma znovupoužitelnosti. Jazyk UML spojuje mnoho nejlepších myšlenek p ejatých z prehistorických metod, p i emž zavrhuje n které svérázné úlety, které se v t chto metodách nacházely. 1.4 MDA budoucnost jazyka UML Budoucnost jazyka UML m že být definována skrze poslední iniciativu organizace OMG nazvanou MDA (Model Driven Architecture). P estože tato kniha není v nována problematice architektury MDA, pokusíme se vás s ní v této podkapitole alespo stru n seznámit. Více informací najdete na webových stránkách MDA organizace OMG (www.omg.org/mda) a v knize MDA Explained [Kleppe 1] a Model Driven Architecture [Frankel 1]. Architektura MDA definuje p edstavu vývoje softwaru na základ model. Podstatou zmi ované p edstavy je skute nost, že model ídí výrobu architektury spustitelného softwaru. Tak je tomu do ur ité míry už i dnes, ale architektura MDA nabízí takový stupe automatizace zmi ovaného procesu, s jakým se v sou asné dob setkáte jen z ídka. Podle MDA je software vyráb n jako sled transformací model provád ných v modelovacím nástroji kompatibilním s architekturou MDA. Abstraktní model nezávislý na po íta i (CIM, computer-independent model) je použit jako základ modelu PIM (modelu nezávislého na platform ; platform-independent model). Model PIM je následn transformován do modelu PSM (což je model závislý na konkrétní platform ; platformspecific model), jenž je nakonec transformován do finálního kódu. P edstava modelu v architektu e MDA je velmi obecná a kód je považován jen za velmi konkrétní druh modelu. Na obrázku 1.3 si m žete prohlédnout et zec transformací v architektu e MDA. Model nezávislý na po íta i (model CIM) je velmi obecný a zachycuje klí- ové požadavky na systém, jakož i oborový slovník související s ešeným problémem. Forma zachycení požadavk a slovníku je nezávislá na po íta ích. Je to model té ásti innosti, kterou chcete automatizovat. Tvorba zmi ovaného modelu je nepovinná, ale pokud se jej rozhodnete vytvo it, použijete ho jako základ tvorby modelu PIM (modelu nezávislého na platform ). Model PIM je model, který vyjad uje sémantiku innosti softwarového systému nezávisle na použité platform (EJB,.NET apod.). Je obvykle stejn obecný jako analytický model, s nímž se seznámíte pozd ji. Je však úpln jší. Musí být, protože obsahuje dosta ující základ vhodný k transformaci do modelu PSM (modelu ur eného pro konkrétní platformu), z n hož lze generovat výsledný kód. Ur it stojí za zmínku, že pojem ne-

32 Část 1 Úvod do jazyka UML a metodiky Unified Process závislý na platform nemá v podstat žádný význam, dokud neur íte platformu nebo platformy, na nichž chcete být nezávislí! R zné nástroje MDA podporují odlišné úrovn nezávislosti na platformách. Obrázek 1.3 Chceme-li vytvo it model PSM (model spojený s ur itou platformou), ozdobíme model PIM informacemi souvisejícími s použitou platformou. Výsledkem transformace je zdrojový kód generovaný z modelu PSM pro vybranou cílovou platformu. Z dostate n úplného modelu PSM je generován veškerý zdrojový kód a pomocné artefakty, jako jsou dokumentace, simula ní program, soubory sestavení a deskriptory nasazení. Aby k tomu ale mohlo dojít, musí být model UML výpo etn úplný sémantika všech operací musí být vyjád ena v ak ním jazyce. Již jsme se zmi ovali, že ur ité nástroje MDA jsou takovým jazykem vybaveny. Nap íklad nástroj iuml spole nosti Kennedy Carter (www.kc.com) nabízí jazyk ASL (Action Specification Language), jenž vyhovuje sémantice akcí jazyka UML 2. Ak ní jazyk je obecn jší než jazyky typu Java a C++ a používá se k tvorb výpo etn úplných model UML. Další nástroje MDA, t eba ArcStyler (ww.io-software.com), umož ují generování zhruba 70 90 % kódu a dalších artefakt. Ovšem t la operací je stejn t eba dokon it v cílovém jazyce (nap íklad v Jav ). Podle architektury MDA je zdrojový kód (nap íklad v Jav a v C#) pouze strojovým kódem, jenž je výsledkem p ekladu model UML. Tento kód je generován podle pot eby p ímo z modelu PSM. Jako takový má podle architektury MDA ve vývoji p irozen menší hodnotu než modely UML. Architektura MDA posouvá modely UML z jejich sou asné role p edch dc ru n vytvá eného kódu do pozice primárního mechanismu tvorby kódu.

Kapitola 1 Co je to vlastně UML? 33 Už v dob, kdy byl originál knihy odevzdáván do tisku, p idávalo možnosti MDA do svých produkt stále více výrobc. Všechny podrobnosti zjistíte na webu OMG MDA. Navíc existuje n kolik velmi slibných otev ených iniciativ MDA nap íklad Eclipse Modeling Framework (www.eclipse.org/emf) a AndroMDA (www.andromda.org). Tuto podkapitolu jsme pojali jen jako malé okénko do sv ta MDA. Zcela jist jsme nevy erpali všechna témata spojená s MDA, a proto všem tená- m návšt vu zmi ovaných odkaz, jež vám poskytnou mnohem více d ležitých informací, velmi doporu ujeme. 1.5 Proč unifikovaný? Unifikace jazyka UML nevychází pouze z historických m ítek. Jazyk UML se (zpravidla úsp šn ) snaží o unifikaci r zných domén. Vývojový cyklus. Jazyk UML nabízí vizuální syntaxi pro modelování b hem celého vývojového cyklu softwarového projektu požadavky na analýzu po ínaje a implementací kon e. Aplika ní domény. Jazyk UML byl vytvo en jako nástroj pro modelování ehokoliv systémy zasazenými do reálného asu po ínaje a podp rnými systémy rozhodování kon e. Implementa ní jazyky a platformy. Jazyk UML je nezávislý na jakémkoli programovacím jazyce a na jakékoli platform. P irozen, že má znamenitou podporu ist objektov orientovaných programovacích jazyk, jako jsou Smalltalk, Java, C# apod. Je ovšem velmi efektivní rovn ž pro hybridní objektov orientované jazyky, jako je C++, i pro jazyky založené na objektech, nap íklad Visual Basic. Používá se kupodivu rovn ž pro modelování projekt vedených v neobjektových jazycích, nap íklad v jazyce C. Vývojové procesy. P estože je metodika UP spolu s jeho variantami pravd podobn nejvíce up ednost ovanou metodikou vývoje objektov orientovaných systém, m že jazyk UML podporovat mnoho dalších osnov procesu tvorby softwarového vybavení (a také to d lá). Vlastní interní pojmy. Jazyk UML se o vnit ní jednotu a konzistenci snaží prost ednictvím malé množiny interních pojm. Je pravda, že v této oblasti není vždy úsp šný. Lze však íci, že každý další pokus je mnohem dokonalejší než jeho p edch dci. 1.6 Objekty a jazyk UML Základním p edpokladem jazyka UML je skute nost, že umož uje modelování softwaru, stejn jako dalších systém jako kolekce spolupracujících objekt. P estože tato p edstava zcela z ejm zapadá do modelu objektov orientovaných softwarových systém a programovacích jazyk, funguje stejn spolehliv v obchodních a podnikatelských procesech a dalších aplikacích.

34 Část 1 Úvod do jazyka UML a metodiky Unified Process Jazyk UML utvá í sv t jako systém vzájemn se ovliv ujících objekt. Objekt je soudržné seskupení dat a funkcí. Uve me dva aspekty modelu UML. Statická struktura. Popisuje, jednak jaké typy objekt jsou pro modelování daného systém d ležité, jednak jak spolu tyto objekty souvisejí. Dynamické chování. Popisuje životní cyklus zmi ovaných objekt a zp sob jejich vzájemné spolupráce s cílem dosáhnout požadované funkce navrhovaného systému. Oba výše zmín né aspekty jdou na své pouti ruku v ruce jako nerozlu ný pár. Žádný z nich není bez druhého úplný. Objekty (a t ídami) se budeme podrobn zabývat v 7. kapitole. Do té doby považujme objekty za soudržné seskupení dat s ur itým chováním. Objekty, jinak e eno, obsahují specifické informace a mohou vykonávat ur ité funkce. 1.7 Struktura jazyka UML Funkci jazyka UML jako jazyka vizuálního porozumíte nejlépe, podíváte-li se na jeho strukturu. Je znázorn na na obrázku 1.4 (jak se dovíte v následujících kapitolách, je to validní diagram UML). Struktura jazyka UML obsahuje tyto sou ásti: Stavební bloky. Jsou to základní prvky modelu, relace a diagramy. Spole né mechanismy. Obecné zp soby, jimiž v jazyku UML dosáhnete specifických cíl. Architektura. Pohled v jazyku UML na architekturu navrhovaného systému. Obrázek 1.4 Porozum ní struktu e jazyka UML je mimo jiné základem užite ného uspo ádání informací p edkládaných v této knize. Tento fakt zd raz uje rovn ž nep ehlédnutelnou skute nost, že jazyk UML je sám navrhovaným a sestavovaným systémem. Byl ve skute nosti modelován a navržen práv v jazyce UML! Tento návrh ozna ujeme za metamodel jazyka UML.

Kapitola 1 Co je to vlastně UML? 35 1.8 Stavební bloky jazyka UML Podle knihy The Unified Modeling Language User Guide (Pr vodce uživatele jazykem UML, Booch) je jazyk UML sestaven z pouhých t í stavebních blok : Z p edm t (things), což jsou samotné prvky modelu, vztah (relationships), jež jsou pojítkem mezi p edm ty (relace ur ují, jak spolu dva nebo více p edm t významov souvisí), a diagram (diagrams), což jsou pohledy na modely UML; ukazují kolekce p edm t, které vypráv jí p íb h o softwarovém systému a jsou naším zp sobem vizualizace toho, co systém bude d lat (analytické diagramy, analysis-level diagrams), a toho, jak to bude d lat (návrhové diagramy, design-level diagrams). Obrázek 1.5 V následujících t ech oddílech se zam íme p edevším na p edm ty, relace a diagramy. 1.9 Předměty (things) P edm ty jsou podstatnými jmény modelu UML. P edm ty (rovn ž v ci nebo abstrakce) d líme v jazyku UML na: Strukturní abstrakce (structural things), což jsou podstatná jména modelu UML, jako jsou t ídy, rozhraní, spolupráce, p ípad užití, aktivní t ída, komponenta, uzel; chování (behavioural things), což jsou slovesa modelu UML, nap. interakce, stav; seskupení (grouping things), což jsou balí ky používané k seskupování sémanticky (významov ) souvisejících prvk modelu do soudržných jednotek, poznámky (annotational things), anotace, které lze k modelu p ipojit s úmyslem zachytit informaci sestavenou jen k tomuto ú elu (což se velmi podobá zvýrazn ní žlutou tužkou tak, aby poznámka v okolním textu vynikala).

36 Část 1 Úvod do jazyka UML a metodiky Unified Process Jednotlivými p edm ty (abstrakcemi) a jejich úsp šnou aplikací v modelování UML se budeme podrobn ji zabývat ve druhé ásti knihy. 1.9.1 Relace (relationships) Relace umož uje ukázat na modelu, jaký je vztah mezi dv ma p edm ty. Znamenitou analogií role, kterou relace hrají v modelech UML, je rodina a vztahy mezi jejími jednotlivými leny. Relace umož ují zachytit významový (sémantický) vztah mezi p edm ty. Vztahují se na strukturní abstrakce a seskupování a jsou znázorn ny v tabulce 1.1. Nesmírn d ležitou sou ástí modelování v jazyku UML je porozum ní p esné sémantice r zných typ relací. Její výklad a d kladn jší prozkoumání však odložíme do dalších kapitol. Pro tuto chvíli si vysta íme s tabulkou 1.1, která nabízí stru ný p ehled. Tabulka 1.1 Typ relace Syntaxe UML zdroj cíl Stru ný popis Oddíl Závislost (Dependency) Zm na v ur itém p edm tu ovliv uje význam závislého p edm tu. 9.5 Asociace (Association) Popis množiny spojení mezi objekty. 9.4 Agregace (Aggregation) Cílový prvek je sou ástí zdrojového prvku 18.4 Kompozice (Composition) Siln jší forma agregace (má více omezení) 18.5 Ochranná nádoba (Containment) Zdrojový prvek obsahuje cílový prvek 11.4 Zobecn ní (Generalization) Jeden prvek je specializací jiného prvku a lze jej nahradit obecn jším (univerzáln jším) prvkem. 10.2 Realizace (Realization) Asociace mezi klasifikátory, kde jeden klasifikátor ur uje dohodu, jejíž uskute n ní zaru uje druhý klasifikátor 12.3 1.9.2 Diagramy Ve všech nástrojích CASE (nástroje pro tvorbu programového vybavení pomocí po íta e, Computer-Aided Software Engineering) založených na jazyku UML jsou každý nov vytvo ený p edm t nebo nov vytvo ená relace automaticky p idávány do vznikajícího modelu. Model je repositá em všech p edm t a relací vytvo ených k tomu, aby popisovaly požadované chování softwarového systému, který se snažíte navrhnout.

Kapitola 1 Co je to vlastně UML? 37 Diagramy jsou pouze pohledy na model. Diagramy jsou okna nebo pohledy na model. Diagram není model! V tom je veliký rozdíl, protože p edm ty a relace lze z diagramu odstranit; lze je odstranit dokonce ze všech diagram ale v modelu mohou stále existovat. Ve skute nosti v n m z stanou až do té doby, dokud nebudou explicitn vymazány z modelu. Velmi astou chybou za ínajících analytik a návrhá v jazyku UML je odstran ní p edm tu z diagram, ale jeho ponechání v modelu. Celkem existuje t ináct r zných typ diagram UML a všechny si je m žete prohlédnout na obrázku 1.6. Každý obdélník zastupuje jeden typ diagramu. Je-li text v obdélníku napsán kurzivou, zastupuje obdélník abstraktní kategorii typu diagramu. Existuje šest r zných typ strukturovaných diagram. B žný text ozna uje konkrétní diagram, který byste ve skute nosti mohli vytvo it. Obdélníky s šedým pozadím ozna ují konkrétní typy diagram, jež byly nov zavedeny až v jazyce UML 2. Zmi ovanou množinu diagram lze rozd lit na ty, které modelují statickou strukturu systému (takzvaný statický model), a na ty, které modelují dynamickou strukturu systému (dynamický model). Statický model zachycuje p edm ty a strukturní asociace mezi p edm ty. Dynamický model naproti tomu zachycuje zp sob, jímž na sebe jednotlivé p edm ty navzájem p sobí, aby bylo dosaženo požadovaného chování softwarového systému. Statickým a dynamickým model m se budeme v novat až od druhé ásti této knihy. Neexistuje žádné pevn stanovené po adí, v n mž byste m li své diagramy UML vytvá et. P esto se obvykle za íná diagramem p ípadu užití, který definuje rozsah platnosti navrhovaného systému. Ve skute nosti asto pracujete soub žn s n kolika r znými diagramy zárove. Každý z nich vybrušujete postupn kdykoli je odhalen další detail navrhovaného softwarového systému. Tak jsou diagramy nejen pohledem na model, ale rovn ž prvo adým a základním mechanismem pro zadávání nových informací do existujícího modelu. Obrázek 1.6

38 Část 1 Úvod do jazyka UML a metodiky Unified Process V jazyce UML 2 platí pro diagramy nová syntaktická pravidla. Jsou vyzna- ena na obrázku 1.7. Všechny diagramy mohou obsahovat ráme ek, oblast záhlaví a kontextovou oblast. Oblast záhlaví je nepravidelný p tiúhelník, jenž obsahuje druh diagramu (nepovinný údaj), jeho název a parametry (také nepovinn ). Obrázek 1.7 Stereotyp «kind» (druh) ur uje typ diagramu. M l by popisovat jeden z konkrétních typ diagram uvedených na obrázku 1.6. Ve specifikaci jazyka UML sice stojí, že popis druhu diagramu (stereotyp «kind») lze zkrátit, ale specifikace neuvádí seznam standardních zkratek. Druh diagramu budete explicitn uvád t jen z ídka, protože je obvykle patrný z vizuální syntaxe. Obrázek 1.8

Kapitola 1 Co je to vlastně UML? 39 Název (stereotyp «name») by m l popisovat sémantiku diagramu (nap íklad RegistraceP ednášky). Parametry (stereotyp «parameters») poskytují informace nezbytné pro jednotlivé prvky modelu znázorn né v diagramu. S p íklady užití stereotypu «parameters» se v této knize setkáte ješt nejednou. Diagram m že obsahovat implicitní (p edpokládaný, ale nevyjád ený) ráme ek. Je tomu tak nap íklad v situaci, kdy je ráme ek vyjád en oblastí diagramu v modelovacím nástroji. P íklad vidíte na obrázku 1.8. 1.10 Obecná mechanika jazyka UML Jazyk UML obsahuje ty i spole né mechanismy používané v celém jazyku konzistentn. Popisují ty i strategie cesty k modelování objekt, jež jsou opakovan používány v r zných kontextech v celém jazyce UML. Na zmín ném p íkladu je op t patrné, že jazyk UML má vskutku jednoduchou a elegantní strukturu (viz obrázek 1.9). Obrázek 1.9 1.10.1 Specifikace Specifikace jsou jádrem a podstatou modelu UML. Nabízejí sémantický základ modelu. Modely UML mají alespo dva rozm ry grafický, který umož uje vizualizovat model prost ednictvím diagram a symbol (ikon), a textový, jenž se skládá ze specifikací r zných prvk modelu. Specifikace jsou textovým popisem sémantiky jednotlivých prvk. Použijme p íklad. T ídu, jako je t eba BankovníÚ et, m žeme vyjád it jako schránku s n kolika p ihrádkami d lícími symbol na n kolik oddíl (viz obrázek 1.10). Tato podoba ovšem nesd luje nic o obchodní (podnikatelské) sémantice této t ídy. Sémantika prvk modelu je zachycena v jejich specifikacích. Bez nich bychom se mohli jenom domnívat, co p íslušné prvky modelu ve skute nosti zastupují.

40 Část 1 Úvod do jazyka UML a metodiky Unified Process Diagramy poskytují pohled do zákulisí. Množina specifikací je jádrem modelu a utvá í sémantický podklad, který udržuje celý model pohromad a dává mu smysl. R zné diagramy jsou r znými pohledy nebo obrazovými projekcemi tohoto podkladu. Sémantický podklad je zpravidla udržován pomocí nástroje CASE, jenž obsahuje funkce pro zadávání, prohlížení a úpravy specifikace jednotlivých prvk modelu. Jazyk UML má neoby ejnou dávku pružnosti a flexibility pro tvorbu model. V praxi mohou být modely: proškrtané, což znamená, že ur ité prvky jsou sice v podkladu obsaženy, ale v daném diagramu jsou ukryty nap íklad proto, aby byl pohled jednodušší, neúplné, což znamená, že ur ité prvky mohou v modelu chyb t úpln, nekonzistentní, což znamená, že model m že obsahovat protimluvy. Obrázek 1.10 Existence volných pravidel úplnosti a konzistence je nesmírn d ležitá, protože modely se postupn vyvíjejí a prod lávají mnoho zm n. P esto se klade d raz na tvorbu konzistentních model, které jsou natolik úplné, aby umož ovaly tvorbu softwarového systému. P i modelování v jazyku UML se obvykle za íná tvorbou grafického modelu, který umož uje vizualizaci systému. Pozd ji je k podkladu modelu p idávána sémantika. Má-li být ovšem model považován za užite ný nebo kompletní, musí být sémantika obsažena v podkladu modelu. Není-li, nemáte v ruce žádný model, pouze bezvýznamnou kolekci arami propojených tvere k a kroužk. Tuto b žnou chybu za ínajících analytik a návrhá m žeme s klidem nazvat smrt v zajetí diagram. Model je diagramy p ímo p epln n, postrádá však specifikaci.

Kapitola 1 Co je to vlastně UML? 41 1.10.2 Ornamenty (Adornments) Jednotlivé prvky modelu zdobíme v diagramech UML proto, abychom zd raznili i zvýraznili ur ité d ležité detaily. Velice p íjemnou vlastností jazyka UML je skute nost, že každý prvek modelu je vyjád en velmi jednoduchým symbolem, který lze obohatit adou ornament, je-li t eba prost ednictvím diagramu zobrazit více informací. Tvorbu velmi složitého modelu tedy m žete klidn za ít pomocí n kolika základních symbol s jedním nebo dv ma ornamenty. Pozd ji však m žete model vylepšit dalšími ornamenty. Takto m žete postupovat do té doby, dokud p íslušný prvek neobsahuje dostate ný po et podrobností. Uv domte si, že všechny diagramy UML jsou pouze pohledem na daný model. M li byste v nich proto ornamenty používat pouze v p ípad, kdy zvyšují srozumitelnost a itelnost diagramu, p ípadn tehdy, když zd raz- ují ur itou d ležitou funkci modelu. V diagramu obvykle není t eba zobrazovat všechny podrobnosti. Mnohem d ležit jší je, aby byl diagram srozumitelný, aby znázor oval p esn ty cíle, jichž chcete dosáhnout, a aby byl snadno itelný. Obrázek 1.11 1.10.3 Podskupiny Na obrázku 1.11 vidíte, že jako nejmenší symbol t ídy lze použít obdélník, v n mž je uveden název t ídy. Minimalistický pohled modelu lze ovšem snadno rozší it pomocí ornament. Text zobrazený šedou barvou vyjad uje volitelné, nepovinné ornamenty. Podskupiny (common divisions) popisují r zné zp soby vid ní sv ta. V jazyce UML rozlišujeme dv takové podskupiny: skupinu klasifikátor a instancí a skupinu rozhraní a implementací.