Unified Modeling Language, Practical UML: A Hands-On Introduction for Developers
Jazyk UML je jednotný grafický jazyk pro modelování. Umožňuje pomocí různých typů diagramů zachytit systém z různých pohledů a na různé úrovni abstrakce.
Jako stavební bloky se označují prvky, relace a diagramy. Prvky jsou samostatné elementy a dělí se na:
Relace lze dělit na:
Mechanismy používané v různých typech diagramů:
Zachycuje chování procesu nebo systému. Např. diagram aktivit, stavový diagram, diagram případů užití…
Zachycuje elementy nezávislé na čase. Např. diagram tříd, diagram vnitřní struktury, diagram komponent…
Umožňuje popsat chování systému z hlediska uživatele. Specifikuje typy uživatelů a jaké činnosti uživatelé vykonávají. Následuje popis jednotlivých prvků diagramu.
Reprezentuje prvek okolí systému, který komunikuje se systémem. Může buď předávat informace systému nebo je od něj přijímat. Aktér reprezentuje roli, kterou hraje člověk, hardwarové zařízení nebo externí systém ve vztahu k modelovanému systému. Role není funkcní místo v organizaci, ale je to role při používání systému. Jeden člověk může plnit více rolí a jednu roli může vykonávat více lidí. Primární aktér je osoba nebo systém, který má určitý úkol v systému. Pomocný aktér je další osoba nebo systém, který poskytuje službu potřebnou pro splnění úkolu primárního aktéra (např. tiskárna, webová služba, člověk).
Specifikuje část funkcionality systému, kterou využívá aktér a která plní určitý cíl. Měl by mít název, který vyjadřuje jeho cíl („Otevřít účet“). Vztah mezi aktérem a případem užití se označuje jako komunikační asociace a znázorňuje se čarou mezi oběma entitami. Pokud čára končí čipkou, pak šipka jde směrem od strany, která začíná interakci (aktér → případ užití). Mezi samotnými případy užití existují tři vztahy – include, extend a generalizace/specifikace.
Při vytváření modelu případů užití se mohou některé případy užití v různých částech navrhovaného systému opakovat. Příkladem může být přihlášení do systému nebo vyběr prvku ze seznamu. V těchto případech je lepší opakující se činnost vyjmout a do samostatného případu užití a odkázat se na ni v jiných případech užití pomocí vztahu include. Základní(„nadřazený“) případ užítí nemůže existovat samostatně bez případu include. Př.: Máme Studenta (aktér) a ten se chce registrovat na bakalářku. V Use Case je nakreslená možnost „Registrovat se na téma“ a ta má include vztah k „zobrazit vypsaná témata“. Jakmile student klikne na „registrovat se na témata“ zobrazí se mu automaticky vypsaná témata. Když se ale témata nevypíšou, tak se nikam nezaregistruje → závislost.
Tato vazba představuje rozšíření původního případu užití. K rozšíření dochází v tzv. bodě rozšíření a to jen když je splněna podmínka rozšíření. Př.: Vedoucí bakalářek vypisuje témata. Systém mu poskytuje možnost „Vytvořit jako kopii existujícího zadání“ (extend). Může tedy založit téma práce a navíc může využít extendu. Ale i bez něj to bude fungovat.
Umožňuje zachytit obecné a speciální chování. Složitý koncept, zhoršuje srozumitelnost modelu. Doporučuje se nepoužívat.
Představuje statický pohled na modelovaný systém. Zachycuje strukturu tříd v systému, nelze v něm vyjádřit interakce mezi třídami, ke kterým dochází v čase.
Jedná se o základní prvek diagramu tříd. Třída je abstrakcí objektů se stejnými vlastnostmi, stejným chováním a stejnýmí vztahy k ostatním objektům. Na úrovni analýzy třída představuje typ objektu a můžeme si ji představit jako množinu objektů stejného typu. Na úrovni návrhu softwarové aplikace a implementace si třídu můžeme představit jako šablonu, podle které se vytváří konkrétní objekty (instance). Třída, která vytváří instance, se nazývá konkrétní. Ne každá třída však vytváří své instance, potom hovoříme o abstraktní třídě, její název se v UML značí kurzivou. Popis třídy obsahuje její název, atributy a metody.
Třídy lze seskupovat do tzv. balíčků (packages).
Mezi třídami dochází také ke „spolupráci“. Takové vztahy modelujeme jako asociace