![]() |
Metamodel: Dependencies between Packages |
Třída Artifact
![]() |
Metamodel: Artifact package |
Třídou Artifact specifikujeme fyzický kus informace, který je použit nebo vytvořen během libovolné fáze vývoje softwarového řešení. Obecně lze říct, že artefakt je nějaký soubor. Může to ovšem být i třeba databázové tabulka nebo e-mail.
Instance artefaktu je nasazena v instanci nějakého uzlu (třída Node, viz dále). Artefakty mohou být mezi sebou provázány kompoziční asociací.
Atribut fileName odkazuje na místo, kde je artefakt umístěn. Může to být jak lokální disk, tak např. nějaký server na internetu (pak se v názvu souboru použije URL).
UML standard definuje několik stereotypů, které můžete artefaktu přisoudit:
- «file»: Fyzický soubor na disku. Výchozí stereotyp pro níže uvedený (více viz kapitola věnovaná profilům).
- «document»: Obecný soubor, který není ani zdrojovým, ani spustitelným souborem.
- «executable»: Soubor, který lze spustit.
- «library»: Statická i dynamická knihovna.
- «script»: Skriptový soubor, který lze na v nějakém běhovém prostředí interpretovat.
- «source»: Zdrojový soubor, který lze přeložit do spustitelného tvaru.
Artefakt se zobrazuje tak, jak mu přisuzuje jeho předchůdce, tedy třída Classifier. Navíc lze do pravého horního rohu přidat symbol dokumentu. Název instance artefaktu nemusí být podtržen za předpokladu, že kontext čtenář diagramu zná (takže bych to raději vždy nechával podtržené).
![]() |
Příklad notace třídy Artifact |
Třída Manifestation
Manifest (třída Manifestation) je vztah mezi artefaktem (který manifest vlastní) a třídou Kernel::PackageableElement. Slovo „manifestation“ mj. znamená zhmotnění. Představte si to jako zhmotnění např. vámi vymodelovaného balíku s třídami do zdrojového souboru např. pro .NET platformu.
Notace: přerušovaná šipka s otevřeným koncem u prvku PackageableElement a uvedením klíčového slova «manifest».
![]() |
Příklad třídy Manifestation |
Třídy Node, Device, ExecutionEnviroment a CommunicationPath
![]() |
Metamodel: Node Concept |
Diagram nasazení je často chápán jako přechod od logického modelu k fyzickému. Logický prvek (např. třída) je ve fyzickém světě představován např. souborem. Tento soubor je pak ale nutné mít umístěn na nějakém fyzickém zařízení.
Třída Node představuje výpočetní prostředek (computational resource), kam lze artefakt umístit a kde jej lze případně spustit. Uzel může obsahovat další uzly (asociace nestedNode). Uzel se zobrazuje jako kvádr s názvem:
![]() |
Příklad notace třídy Node |
Uzel stejně tak může být propojen s jinými uzly pomocí třídy CommunicationPath (specializace třídy Association, žádnou novou notaci nepřidává), která znázorňuje výměnu signálů a zpráv mezi propojenými prvky. Komunikační cesta je typicky pojmenovaná dle fyzické propojenosti dvou uzlů (např. ethernetový kabel) nebo komunikačním protokolem (http, ftp, …). Stejně tak je možné použít násobnost (viz příklad níže).
Ačkoliv třídu Node lze použít přímo, UML definuje ještě dvě její specializace: třídy Device a ExecutionEnviroment. Zařízení (device) je kus šrotu, na kterém jsou manifesty umístěny. Může to být stolní počítač, telefon, server, myčka na nádobí a další. Prostředí pro běh naší aplikace (execution enviroment) představuje platformu, na které náš vyvinutý software běží (webový server, databáze, J2EE server a další). Notace je shodná s třídou Node, pouze je přidáno klíčové slovo «device» resp. «execution enviroment». Obě třídy mohou mít v sobě vnořené další uzly (vlastnost převzatá z třídy Node). U zařízení tak můžeme zakreslit dekompozici do požadované úrovně. V případě běhového prostředí to lze také, ale v praxi jsem to dosud použité neviděl (příklady samozřejmě na webu rostou).
Uvedený diagram se často pro lepší názornost zakresluje i jako instanční diagram:
Pro plné zobrazení nasazení vyvinutého řešení je vhodné použít ještě třídu DeploymentSpecification, ale ta je předmětem až třetí úrovně znalostí.
Žádné komentáře:
Okomentovat