UML kapcsolattípusok: asszociáció, függőség, általánosítás

Mi az UML kapcsolat?

Kapcsolatok az UML-ben strukturális, viselkedési vagy csoportosító dolgok közötti kapcsolatot ábrázolják. Hivatkozásnak is nevezik, amely leírja, hogy két vagy több dolog hogyan viszonyulhat egymáshoz egy rendszer végrehajtása során. Az UML-kapcsolatok típusai: asszociáció, függőség, általánosítás és megvalósítás.

Tanulmányozzuk őket részletesen

Az UML osztálydiagram-kapcsolatok típusai

UML osztálydiagram kapcsolatok

Egyesület

Ez az UML modell elemeit összekötő hivatkozások halmaza. Azt is meghatározza, hogy hány objektum vesz részt ebben a relációban.

Függőség

Egy függőségi kapcsolatban, ahogy a neve is sugallja, két vagy több elem függ egymástól. Egy ilyen kapcsolatban, ha megváltoztatunk egy adott elemet, akkor valószínű, hogy az összes többi elemet is érinti a változás.

Általánosítás

Szülő-gyermek kapcsolatnak is nevezik. Az általánosításban az egyik elem egy másik általános komponens specializációja. Ez helyettesíthető vele. Leginkább az öröklődés ábrázolására használják.

Megvalósítás

Az UML megvalósítási kapcsolatában az egyik entitás olyan felelősséget jelöl, amelyet ő maga nem valósít meg, a másik entitás pedig, amely ezeket megvalósítja. Ez a kapcsolat leginkább abban az esetben található meg interfészek.

Egyesület

Ez egy strukturális kapcsolat, amely azt jelenti, hogy az objektumok összekapcsolhatók vagy társíthatók egy másik objektumhoz a rendszeren belül. A következő megkötések alkalmazhatók az asszociációs kapcsolatra.

  • {beleértett} – Az implicit megszorítások azt adják meg, hogy a kapcsolat nem nyilvánvaló; koncepción alapul.
  • {megrendelt} – A rendezett megszorítások azt határozzák meg, hogy a társítás egyik végén lévő objektumok meghatározott módon vannak.
  • {változékony} – A módosítható megszorítás azt határozza meg, hogy a rendszer különböző objektumai közötti kapcsolat a követelményeknek megfelelően hozzáadható, eltávolítható és módosítható.
  • {addOnly} – Meghatározza, hogy az új kapcsolatok olyan objektumból adhatók hozzá, amely a társítás másik végén található.
  • {fagyott} – Meghatározza, hogy amikor két objektum közé egy hivatkozást adunk, akkor az nem módosítható, amíg a befagyasztott kényszer aktív az adott hivatkozáson vagy kapcsolaton.

Létrehozhatunk olyan osztályt is, amelynek asszociációs tulajdonságai vannak; asszociációs osztálynak nevezik.

Reflexív asszociáció

A reflexív asszociáció az asszociációs kapcsolat egy altípusa az UML-ben. Reflexív asszociációban az azonos osztály példányai egymáshoz kapcsolódhatnak. Egy osztály példányát objektumnak is nevezik.

A reflexív asszociáció azt állítja, hogy egy hivatkozás vagy kapcsolat lehet ugyanannak az osztálynak az objektumain belül.

Nézzünk egy példát egy osztálygyümölcsre. A gyümölcsosztálynak két példánya van, például a mangó és az alma. A reflexív asszociáció azt állítja, hogy a mangó és az alma között kapcsolat lehet, mivel ugyanazon osztály példányai, például gyümölcsök.

Irányított egyesület

Ahogy a neve is sugallja, az irányított asszociáció az asszociációs osztályokon belüli áramlás irányához kapcsolódik.

Irányított társulásban az áramlás irányított. Az egyik osztályról a másikra való társítás csak egyetlen irányban folyik.

Nyílhegyes folytonos vonallal jelöljük.

Példa:

Azt mondhatjuk, hogy egy kiszolgáló és egy kliens között irányított asszociációs kapcsolat van. A szerver képes feldolgozni a kliens kéréseit. Ez az áramlás egyirányú, csak a kiszolgálótól a kliensig folyik. Ezért egy irányított asszociációs kapcsolat jelen lehet a rendszer szerverein és kliensein belül.

Függőség

Az UML-ben egy függőségi kapcsolat segítségével megállapítható, hogy egy adott rendszeren belül hogyan függenek egymástól a különféle dolgok. A függőség az UML különböző elemei közötti kapcsolatok leírására szolgál, amelyek egymástól függenek.

sztereotípiák

  • "kötni" – A kötés egy megszorítás, amely azt határozza meg, hogy a forrás inicializálhatja a sablont egy célhelyen a megadott paraméterek vagy értékek használatával.
  • "származik" – Azt jelenti, hogy egy forrásobjektum helye kiszámítható a célobjektumból.
  • "barát" – Meghatározza, hogy a forrás egyedi láthatósággal rendelkezik a célobjektumban.
  • "Például az" – Meghatározza, hogy a célosztályozó példánya a forrásobjektum.
  • "példányosítás" – Meghatározza, hogy a forrásobjektum képes-e létrehozni egy célobjektum példányait.
  • "finomítani" – Meghatározza, hogy a forrásobjektum kivételes absztrakcióval rendelkezik, mint a célobjektumoé.
  • "használat" – A csomagok UML-ben történő létrehozásakor használatos. A használati sztereotípia azt írja le, hogy a forráscsomag elemei a célcsomagon belül is jelen lehetnek. Leírja, hogy a forráscsomag a célcsomag egyes elemeit használja fel.
  • "helyettes" – meghatározza, hogy az ügyfél futásidőben helyettesíthető a szállítóval.
  • "hozzáférés" – Meghatározza, hogy a forráscsomag hozzáférjen a célcsomag elemeihez amelyet privát összeolvadásnak is neveznek.
  • "Importálás" – Meghatározza, hogy a cél a forráscsomag elemeit importálhatja, ahogyan azok a csomagban vannak meghatározva cél, amelyet nyilvános összevonásnak is neveznek.
  • "engedély" – meghatározza, hogy a forráselem hozzáférjen a szállítói elemhez, függetlenül a szállító deklarált láthatóságától.
  • "kiterjeszt" – Segít meghatározni, hogy a cél kiterjeszthesse a forráselem viselkedését.
  • "beleértve" – Lehetővé teszi annak a forráselemnek a megadását, amely egy másik elem viselkedését tartalmazza egy megadott helyen. (ugyanaz, mint egy függvényhívás c/c++-ban)
  • "válik" – Meghatározza, hogy a cél hasonló a forráshoz, különböző értékekkel és szerepekkel.
  • "hívás" – Meghatározza, hogy a forrás meghívhat egy célobjektum metódust.
  • "másolat" – Meghatározza, hogy a célobjektum független, egy forrásobjektum másolata.
  • „paraméter” – a a szállító az ügyfél műveleteinek paramétere.
  • "Küld" - az ügyfél olyan művelet, amely valamilyen meghatározatlan célt küld a szállítónak.

Sztereotípiák az államgépek között

  • "Küld" – Megadja, hogy a forrásművelet küldje el a céleseményt.

Általánosítás

Ez egy kapcsolat egy általános entitás és egy egyedi entitás között, amely jelen van a rendszerben.

Általánosítási kapcsolatban az objektumorientált koncepció ún öröklés megvalósítható. Általánosító kapcsolat létezik két objektum között, amelyeket entitásoknak vagy dolgoknak is neveznek. Az általánosítási kapcsolatban az egyik entitás szülő, a másikról pedig azt mondják, hogy gyerek. Ezek az entitások örökléssel ábrázolhatók.

Az öröklődés során bármely szülő gyermeke hozzáférhet, frissítheti vagy örökölheti a szülőobjektumban meghatározott funkciókat. Egy gyermekobjektum hozzáadhatja saját funkcionalitását, valamint örökölheti egy szülőobjektum szerkezetét és viselkedését.

Ez a fajta kapcsolat gyűjtőnéven általánosító kapcsolat.

Sztereotípiák és korlátaik

  • "végrehajtás" – Ez a sztereotípia arra szolgál, hogy az utód entitást a szülő entitás valósítsa meg úgy, hogy a szabályok megsértése nélkül örökli egy szülőobjektum szerkezetét és viselkedését.Megjegyzések Ez a sztereotípia, ha széles körben használják egyetlen öröklés.

Az általánosítási kapcsolat olyan megszorításokat tartalmaz, mint például a teljes vagy a hiányos, hogy ellenőrizze, hogy az összes alárendelt entitás benne van-e a kapcsolatban.

Megvalósítás

Az UML megvalósítási kapcsolatában az egyik entitás olyan felelősséget jelöl, amelyet ő maga nem valósít meg, a másik entitás pedig, amely ezeket megvalósítja. Ez a kapcsolat leginkább abban az esetben található meg interfészek.

A megvalósítás kétféleképpen ábrázolható:

  • Egy kanonikus forma
  • A elidált forma
Megvalósítás UML-ben
Megvalósítás UML-ben

A fenti diagramon a fiók üzleti szabályai megvalósítják az IRuleAgent felületet.

A megvalósítás típusai

  1. Kanonikus forma Az UML megvalósítási kapcsolatában a kanonikus formát a rendszeren keresztüli interfészek megvalósítására használják. Interfész sztereotípiát használ az interfész létrehozásához, és a megvalósítási kapcsolatot az adott interfész megvalósításához. Kanonikus formában a realizációs összefüggést a szaggatott irányított vonallal jelöljük, jókora nyitott nyílhegyen. A fenti ábrán az Iruleagent interfész egy Account Business Rules nevű objektum segítségével valósul meg.
  2. Elded forma Megvalósítás a UML osztálydiagram elidezett űrlap segítségével is megjeleníthető. Elidezett formában a felületet körrel jelölik, amelyet nyalóka jelölésnek is neveznek. Ez az interfész, ha a rendszeren belül bármit felhasznál, egy elidézett struktúrát hoz létre. A fenti ábrán az Iruleagent interfész egy elidezett formában van jelölve, amelyet az acctrule.dll valósít meg.

Összetétel

Ez nem egy szabványos UML kapcsolat, de különféle alkalmazásokban továbbra is használják.

Az összetett aggregáció az aggregációs reláció egy altípusa, amelynek jellemzői a következők:

  • ez egy kétirányú asszociáció az objektumok között.
  • Ez egy egész/rész kapcsolat.
  • Ha egy kompozitot törölnek, a hozzá tartozó összes többi rész törlődik.

Az összetett aggregációt bináris asszociációként írják le, amelyet kitöltött fekete gyémánt díszít az aggregátum (egész) végén.

Összetétel UML-ben

Összetétel UML-ben

A mappa egy olyan szerkezet, amely n számú fájlt tartalmaz. Egy mappa a benne lévő fájlok tárolására szolgál. Minden mappa tetszőleges számú fájlhoz társítható. Egy számítógépes rendszerben minden egyes fájl legalább egy mappa része a fájlszervezési rendszeren belül. Ugyanez a fájl egy másik mappa része is lehet, de ez nem kötelező. Amikor egy fájlt eltávolítanak a mappából, a mappa érintetlen marad, míg az adott fájlhoz kapcsolódó adatok megsemmisülnek. Ha törlési műveletet hajtanak végre a mappán, akkor az a mappában található összes fájlra is hatással lesz. A mappához tartozó összes fájl automatikusan megsemmisül, amint a mappát eltávolítják a rendszerből.

Az UML ilyen típusú kapcsolatait összetett aggregációs kapcsolatként ismerjük.

összesítése

An összesítés az UML-ben az asszociációs kapcsolat egy altípusa. Az aggregáció és az összetétel egyaránt az asszociációs kapcsolat típusa az UML-ben. Az aggregációs kapcsolat egyszerű szavakkal leírható: „egy osztály objektuma birtokolhatja vagy hozzáférhet egy másik osztály objektumaihoz”.

Aggregációs kapcsolatban a függő objektum akkor is a kapcsolat hatókörében marad, ha a forrásobjektum megsemmisül.

Nézzünk egy példát egy autóra és egy kerékre. Az autónak kerékre van szüksége a megfelelő működéshez, de a kerékhez nem mindig van szüksége autóra. Használható kerékpárral, kerékpárral vagy bármilyen más járművel, de nem egy adott autóval. Itt a kerék objektum az autótárgy nélkül is értelmes. Az ilyen típusú kapcsolatokat aggregációs relációnak nevezzük.

Összegzésként

  • Az UML-ben a kapcsolat lehetővé teszi, hogy egy dolog kapcsolódjon a rendszeren belüli többi dologhoz.
  • Az asszociációs, függőségi, általánosítási és megvalósítási kapcsolatokat az UML határozza meg.
  • A kompozíció kapcsolat arra is használható, hogy ábrázolja, hogy az objektum egyszerre csak egy kompozit része lehet.
  • Az asszociáció annak leírására szolgál, hogy egy objektum társítható egy másik objektumhoz.
  • A függőség azt jelenti, hogy az objektumok függhetnek egymástól.
  • A realizáció értelmes kapcsolat az osztályozók között.
  • Az általánosítást szülő-gyermek kapcsolatnak is nevezik.