![]() |
Contents of Dependencies package |
Závislost (třída Dependency) je vztah, říkající, že jeden či více elementů (závislý prvek) pro svou specifikaci či implementaci vyžaduje jeden či více jiných elementů (vyžadovaný prvek). Současně to znamená, že změna ve vyžadovaném elementu může (tedy nemusí) vést k nutnosti provést změny i v závislém elementu.
![]() |
Názvosloví závislostí |
Bez vyžadovaného elementu je ten závislý neúplný.
Závislost je vhodná např. pro sledování závislostí mezi jednotlivými programovými jednotkami či k identifikaci nutnosti provést změny v závislých elementech, pokud je provedena změna ve vyžadovaných.
Notace
Přerušovaná čára s šipkou u vyžadovaného elementu. Volitelně lze používat stereotypy a/nebo název závislosti. Pokud je element závislý na více jiných elementech, lze vést jednu šipku, které se pak rozvětví na více (ke každému vyžadovanému elementu jedna).
Třída Abstraction
Třída Abstraction určuje vztah (závislost) mezi týmž konceptem, ale na různé úrovni abstrakce.
![]() |
Příklad: Abstrakce |
Mapování je kompozice výrazů (OpaqueExpression), které specifikují abstrakci mezi vyžadovaným prvkem a závislým prvkem. V některých případech (např. Derivation) jde obvykle o formální mapování jedním směrem, v jiných případech (např. Trace) je mapování neformální a obousměrné. Mapování je nepovinné.
Abstrakce má předdefinované stereotypy («derive», «refine», «trace»).
Pokud má abstrakce více než jeden závislý prvek, pak je vyžadovaný prvek mapován na více závislých prvků jako na skupinu (např. analytická třída X může být rozdělena na více tříd na úrovni návrhu).
Třída Realization
Závislost typu Realization je specifikací třídy Abstraction. Vyžadovaný prvek je specifikace, závislý prvek je implementace. Pojem implementace ovšem není ve standardu definován. Obecně ji chápejme jako implikaci vylepšení či rozšíření v daném kontextu.
Pozor v notaci na zakončení (hrot šipky), je jiné než u ostatních závislostí.
![]() |
Příklad: Realizace |
Třída Substitution
Závislost typu Substitution (záměna) určuje instance nezávislých elementů, které mohou být nahrazeny instancemi elementů jiných (např. pokud dvě instance různých tříd implementují stejné rozhraní).
![]() |
Příklad: Substituce |
Třída Usage
Jde o závislost, kdy jeden element vyžaduje jiný (či jiné) element(y) pro svou implementaci nebo pro vykonání operace. Tato závislost se používá při implementaci, nikoliv však v případě specifikace (tedy např. nelze použít pro rozhraní na rozdíl např. od normální závislosti).
![]() |
Příklad: Použití |
Třída Permission
Třída Permission byla v původním návrhu UML verze 2 jako potomek třídy Dependency, ale pak byla odstraněna. Bohužel ve zkoušce OCUP se na ni údajně mohou optat.
Závislost typu Permission říká, že závislý element může přistupovat k private položkám nezávislého elementu.
![]() |
Příklad: Povolení |
Žádné komentáře:
Okomentovat