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
Co je to UML Evoluce UML Diagram komponent Diagram odbavení Diagram tříd Aktivity diagram Stavový diagram Sekvenční diagram Diagram spolupráce Vyhodnocení Odkazy Osnova přednášky
Co je to UML
Co je to UML UML Unified Modeling Language Univerzální jazyk pro modelování Vznik 1994 léta Autoři: Rumbaugh, Booch a Jacobson Autoři nejvýznamnějších OO metodik 90let Koncentruje nejlepší praktiky předchozích metodik Je určen pro rozsáhlé průmyslové projekty UML není metodika! UML není jen pro programování! Je to hlavně jazyk pro popis systémů.
Co je to UML UML Unified Modeling Language Univerzální jazyk pro modelování Vznik 1994 léta Autoři: Rumbaugh, Booch a Jacobson Autoři nejvýznamnějších OO metodik 90let Koncentruje nejlepší praktiky předchozích metodik Je určen pro rozsáhlé průmyslové projekty Autoři působí ve firmě Rational Software, dnes IBM. Řízení standardu převzala organizace OMG. UML má své nedostatky a kritiky, přesto je standardem.
UML a metodiky Vznikají různé metodiky, které jako jazyk pro popis systémů používají UML. Unified Process Jacobson, Rumbough a Booch Základem OOSE Jacobsona RUP Rational Unified Process Vychází z UP a dále ho doplňuje Jedná se chráněný název firmy IBM po akvizici firmy Rational Software Tato metodika, jako klasická neagilní metodika je podrobena celé řadě kritik
UML úvod 7 Motivace: modelovací jazyk pro průmyslové projekty Cíl: Poskytnout uživatelovi jednoduchý visuální modelovací nástroj tak, aby uživatel mohl snadno vytvářet a vyměňovat si smysluplné modely. Poskytnout mechanizmus pro rozšiřování a specializaci modelu. Být nezávislí na programovacím jazyku a vývojovém procesu. Poskytnout formalismus pro pochopení modelovací jazyka. Podpořit rostoucí trh s objektově orientovanými technologiemi. Podpora vývojových koncepcí vyšší úrovně, jako jsou například collaborations, framewors, patterns a components. Integrovat nejlepší dosavadní zkušenosti. (c) 2004 Molhanec, M. 2.3.2008
Obsah UML UML Summary - dokument obsahující stručný úvod do cílů a zdrojů metodologie. UML Semantics - dokument definující sémantiku UML ze tří pohledů Abstraktní syntaxe Dobře navržených pravidel Sémantiky UML Notation Guide - dokument popisující grafickou notaci UML UML Extensions - dokumenty popisující extense základního modelu, současné době existují dvě následující UML Extension for Objectory Process for Software Engineering UML Extension for Business Modeling Object Constraint Language Specifikation - dokument popisující formální jazyk použitý v UML 8 (c) 2004 Molhanec, M. 2.3.2008
Zdroje UML (vybrané) Use-case diagramy podobné diagramům z OOSE (Jacobson). Diagramy tříd (Class diagrams) jsou spojením diagramů z OMT (grafický vzhled), Booche a dalších. Stavové diagramy jsou čerpány od Davida Harela s menšími modifikacemi Activity diagrams jsou čerpány od fy Oracle a Jima Odella. Sekvenční diagramy jsou inspirovány celou řadou před-oo metodologií. Implementační diagramy jsou od Booche. OCL (Object Constraint Language) je postaven na Syntropy a Catalysis. 9 (c) 2004 Molhanec, M. 2.3.2008
Historie UML 10 1994 Grady Booch a Jim Rumbaugh pracující ve firmě Rational Software počali spojovat své renomované metodiky 1995 verze 0.8 (c) 2004 Molhanec, M. 2.3.2008
Historie UML 11 1994 Grady Booch a Jim Rumbaugh pracující ve firmě rational Software počali spojovat své renomované metodiky 1995 verze 0.8 1995 se připojuje Ivar Jacobson a začíná připojování jeho renomované metodiky 1996 verze 0.9 (c) 2004 Molhanec, M. 2.3.2008
Historie UML 12 1994 Grady Booch a Jim Rumbaugh pracující ve firmě rational Software počali spojovat své renomované metodiky 1995 verze 0.8 1995 se připojuje Ivar Jacobson a začíná připojování jeho renomované metodiky 1996 verze 0.9 1996 strategické spojení s OMG (Object Management Group) a řadou dalších firem, např. IBM, HP, MS a dalších 1997 verze 1.0 a 1.1 (c) 2004 Molhanec, M. 2.3.2008
Historie UML 13 1994 Grady Booch a Jim Rumbaugh pracující ve firmě rational Software počali spojovat své renomované metodiky 1995 verze 0.8 1995 se připojuje Ivar Jacobson a začíná připojování jeho renomované metodiky 1996 verze 0.9 1996 strategické spojení s OMG (Object Management Group) a řadou dalších firem, např. IBM, HP, MS a dalších 1997 verze 1.0 a 1.1 1999 verze 1.3 The UML User Guide, The UML reference Guide 2001 verze 1.4 2003 verze 1.5 proces ISO standardizace! (c) 2004 Molhanec, M. 2.3.2008
Historie UML 14 1994 Grady Booch a Jim Rumbaugh pracující ve firmě rational Software počali spojovat své renomované metodiky 1995 verze 0.8 1995 se připojuje Ivar Jacobson a začíná připojování jeho renomované metodiky 1996 verze 0.9 1996 strategické spojení s OMG (Object Management Group) a řadou dalších firem, např. IBM, HP, MS a dalších 1997 verze 1.0 a 1.1 1999 verze 1.3 The UML User Guide, The UML reference Guide 2001 verze 1.4 2003 verze 1.5 proces ISO standardizace! 2004-2005 verze 2.0 reakce na kritiku, rozšíření, zjemnění, (c) 2004 Molhanec, M. 2.3.2008
Rodokmen UML 15 UML 2.0 (c) 2004 Molhanec, M. 2.3.2008
UML 2.0 Nová generace UML Nová struktura dokumentace Definice metamodelu UML Definice celé řady nových diagramů Definice různých rozšíření pro stávající diagramy Nebudeme v našem předmětu využívat!
UML - diagramy
Hlavní části UML Verze 1.x 18 Syntaxe a sémantika, rozšiřitelnost Model Management Class Diagram Use Case Sequence Collaboration Statechart Activity Component Deployment Diagramy OCL - Object Constraint Language Specification (c) 2004 Molhanec, M. 2.3.2008
UML diagramy Bude podrobněji Diagram Význam Určení Class Diagram Vztahy mezi třídami. Analýza, implementace. Use Case Požadavky uživatele. Požadavky. Sequence Časová souslednost. Návrh Collaboration Spolupráce mezi objekty Implementace Statechart Stavy objektů. Analýza. Activity Návaznost procesů. Analýza, návrh. Component Vztahy mezi moduly. Návrh, implementace. Deployment Způsob instalace. Odbavení. 19
Diagram komponent Účel Diagram komponent vyjadřuje architekturu a strukturu softwarového produktu. Vyjadřuje z jakých částí se produkt skládá a jaké jsou mezi těmito částmi vztahy. Užití V úvodní studii pro první vyjádření plánované struktury systému. Bez implementačních podrobností V implementaci pro dokumentaci uskutečněného řešení Včetně všech podrobností
Diagram komponent
Diagram odbavení Účel Diagram komponent vyjadřuje vztah a umístění realizovaného softwarového produktu k prostředí ve kterém bude pracovat. Vyjadřuje, jak a kde je náš produkt umístěn a v jakém je vztahu k ostatním částem systému ve kterém nebo s nímž bude provozován. Užití V dokumentaci administrátora pro instalaci a konfiguraci systému u jeho provozovatele.
Diagram odbavení
Diagram případů užití Účel Diagram případů užití vyjadřuje jednotlivá užití systému. Užití systému je vědomá činnost uživatele za účelem dosažení nějakého užitečného výsledku. Užití systému může být vícenásobná interakce uživatele se systémem. Diagram případů užití není jenom jinak kreslený dříve používaný kontextový diagram! Jedná se jiné paradigma! Užití V dokumentaci požadavků pro vyjádření business nebo IT funkční specifikace.
Diagram případů užití
Diagram tříd Účel Diagram tříd vyjadřuje z jakých tříd se systém skládá a jaké jsou mezi třídami vztahy. Dále vyjadřuje jaké má vlastnosti konkrétní třída. Základní typy vztahů Dědičnost Skládání Prostý vztah Užití V analýze pro popis se kterými daty aplikace pracuje Nahrazuje dříve používané ER diagramy V implementaci pro popis z kterým programových tříd se náš systém skládá Dokumentace OOP Zde pak pracujeme také s metodami a zprávami
Diagram tříd Účel Diagram tříd vyjadřuje z jakých tříd se systém skládá a jaké jsou mezi třídami vztahy. Dále vyjadřuje jaké má vlastnosti konkrétní třída. Základní typy vztahů Dědičnost jakého typu je daný objekt? Skládání Prostý vztah Užití V analýze pro popis se kterými daty aplikace pracuje Nahrazuje dříve používané ER diagramy V implementaci pro popis z kterým programových tříd se náš systém skládá Dokumentace OOP Zde pak pracujeme také s metodami a zprávami
Diagram tříd Účel Diagram tříd vyjadřuje z jakých tříd se systém skládá a jaké jsou mezi třídami vztahy. Dále vyjadřuje jaké má vlastnosti konkrétní třída. Základní typy vztahů Dědičnost Skládání z jakých částí se daný objekt skládá? Prostý vztah Užití V analýze pro popis se kterými daty aplikace pracuje Nahrazuje dříve používané ER diagramy V implementaci pro popis z kterým programových tříd se náš systém skládá Dokumentace OOP Zde pak pracujeme také s metodami a zprávami
Diagram tříd Účel Diagram tříd vyjadřuje z jakých tříd se systém skládá a jaké jsou mezi třídami vztahy. Dále vyjadřuje jaké má vlastnosti konkrétní třída. Základní typy vztahů Dědičnost Skládání Prostý vztah je nějaká souvislost mezi dvěma objekty? Užití V analýze pro popis se kterými daty aplikace pracuje Nahrazuje dříve používané ER diagramy V implementaci pro popis z kterým programových tříd se náš systém skládá Dokumentace OOP Zde pak pracujeme také s metodami a zprávami
Diagram tříd Účel Diagram tříd vyjadřuje z jakých tříd se systém skládá a jaké jsou mezi třídami vztahy. Dále vyjadřuje jaké má vlastnosti konkrétní třída. Základní typy vztahů Dědičnost Skládání Prostý vztah Užití ONTOLOGIE nám říká co je co! V analýze pro popis se kterými daty aplikace pracuje Nahrazuje dříve používané ER diagramy V implementaci pro popis z kterým programových tříd se náš systém skládá Dokumentace OOP Zde pak pracujeme také s metodami a zprávami
Diagram tříd Účel Diagram tříd vyjadřuje z jakých tříd se systém skládá a jaké jsou mezi třídami vztahy. Dále vyjadřuje jaké má vlastnosti konkrétní třída. Základní typy vztahů Dědičnost Skládání Prostý vztah Užití V analýze pro popis se kterými daty aplikace pracuje Nahrazuje dříve používané ER diagramy V implementaci pro popis z kterým programových tříd se náš systém skládá Dokumentace OOP Zde pak pracujeme také s metodami a zprávami
Diagram tříd Účel Diagram tříd vyjadřuje z jakých tříd se systém skládá a jaké jsou mezi třídami vztahy. Dále vyjadřuje jaké má vlastnosti konkrétní třída. Základní typy vztahů Dědičnost Skládání Prostý vztah Užití V analýze pro popis se kterými daty aplikace pracuje Nahrazuje dříve používané ER diagramy V implementaci pro popis z kterým programových tříd se náš systém skládá Dokumentace OOP Zde pak pracujeme také s metodami a zprávami
Diagram tříd
Diagram aktivity Účel Diagram vyjadřuje posloupnost procesů. Proces je nějaká určitá činnost, která má jeden počátek a jeden konec. Diagram aktivy může dále obsahovat rozhodovací bloky. Diagram aktivit dovoluje znázornit paralelismus procesů, podobně jako například Petri-Nets. Je podobný dříve užívanému tzv. vývojovému diagramu. Užití V oblasti požadavků pro popis business procesů V pro vyjádření činnosti jednotlivých případů užití. V implementaci pro dokumentaci algoritmu.
Diagram aktivity
Stavový diagram Účel Stavový diagram vyjadřuje stav nějakého objektu. Stav objektu lze také vyjádřit stavovými proměnnými. Není vhodné se snažit vyjádřit stav systému jako celku, pokud ho nemůže chápat jako jeden konkrétní objekt. Mezi stavy jsou přechody (aktivity), které jsou aktivovány podmínkami! Užití Nejčastěji v návrhu na podrobnější popis chování objektů.
Stavový diagram
Sekvenční diagram Účel Sekvenční diagram vyjadřuje komunikaci mezi objekty s ohledem na časovou posloupnost. Vhodný na vyjádření protokolů komunikaci, například login, výběr z bankomatu. Užití Nejčastěji v oblasti návrhu.
Sekvenční diagram
Diagram spolupráce Účel Diagram spolupráce vyjadřuje vztahy mezi třídami a objekty z hlediska zasílání zpráv mezi nimi. Užití Nejčastěji pro popis implementace objektově orientované aplikace.
Diagram spolupráce
Závěr
Závěr UML obsahuje velké množství metod (diagramů), které je možné využít pro popis softwarového systému ve všech fázích softwarového procesu, tj. v oblasti požadavků, analýzy, návrhu, implementace i odbavení. Důležité je rozumět co mají jednotlivé diagramy v různých fázích softwarového procesu vyjadřovat. Přesto si ukážeme, že ani takové velké množství metod (diagramů) není dostatečné pro tvorbu webových systémů. Webové metodiky přidávají další metody (diagramy). Navigační a prezentační. Přesto je možné stále UML používat díky jeho vlastní rozšiřitelnosti profily a stereotypy.
Odkazy
Odkazy UML na Wikipedii http://cs.wikipedia.org/wiki/uml http://en.wikipedia.org/wiki/unified_modeling_language