UML asocijacija vs. agregacija vs. kompozicija

UML asocijacija vs. agregacija vs. kompozicija

U UML dijagramima odnosi se koriste za povezivanje nekoliko stvari. To je veza između strukturnih, bihevioralnih ili grupiranja stvari. Slijede standardni UML odnosi navedeni u nastavku:

  • Udruga
  • Ovisnost
  • Generalizacija
  • Ostvarenje

Udruga

Odnos asocijacije je strukturni odnos u kojem su različiti objekti povezani unutar sustava. Pokazuje binarni odnos između objekata koji predstavljaju aktivnost. Prikazuje odnos između objekata, kao što je učitelj, može biti povezan s više učitelja.

Predstavljena je linijom između klasa iza koje slijedi strelica koja pokazuje smjer, a kada je strelica s obje strane, tada se naziva dvosmjerna asocijacija. Višestrukost asocijacije možemo odrediti dodavanjem ukrasa na liniji koja će označavati asocijaciju.

Primjer:

1) Jedan učitelj ima više učenika.

UML asocijacija vs. agregacija vs. kompozicija

2) Jedan učenik može se udružiti s mnogim učiteljima.

UML asocijacija vs. agregacija vs. kompozicija

Kompozicija i agregacija dva su podskupa asocijacije. U oba slučaja, objekt jedne klase je u vlasništvu objekta druge klase; jedina je razlika u tome što u sastavu dijete ne postoji neovisno o svom roditelju, dok u agregaciji dijete nije ovisno o svom roditelju, tj. samostalno. Skupina je poseban oblik udruživanja, a sastav je poseban oblik udruživanja.

UML asocijacija vs. agregacija vs. kompozicija

Agregacija

Agregacija je podskup asocijacija, zbirka je različitih stvari. Predstavlja ima odnos. Specifičnije je od asocijacije. Opisuje odnos dio-cjelina ili dio-odnos. To je binarna asocijacija, tj. uključuje samo dvije klase. To je vrsta odnosa u kojem je dijete neovisno o svom roditelju.

Na primjer:

Ovdje razmatramo primjer automobila i kotača. Auto se ne može kretati bez kotača. Ali kotač se može samostalno koristiti s biciklom, skuterom, biciklom ili bilo kojim drugim vozilom. Objekt kotač može postojati bez objekta automobila, što se dokazuje kao agregacijski odnos.

UML asocijacija vs. agregacija vs. kompozicija

Sastav

Kompozicija je dio agregacije i prikazuje odnos cjeline i dijela. Prikazuje ovisnost između kompozita (roditelj) i njegovih dijelova (djeca), što znači da ako se kompozit odbaci, brišu se i njegovi dijelovi. Postoji između sličnih objekata.

Kao što možete vidjeti iz donjeg primjera, odnos asocijacije kompozicije povezuje klasu Osoba s klasom Mozak, klasom Srce i klasom Noge. Ako je osoba uništena, mozak, srce i noge također će biti odbačeni.

UML asocijacija vs. agregacija vs. kompozicija

Udruživanje nasuprot agregaciji nasuprot sastavu

Udruga Agregacija Sastav
Odnos asocijacije prikazan je strelicom. Odnos agregacije predstavljen je ravnom linijom s praznim rombom na jednom kraju. Kompozicijski odnos predstavljen je ravnom linijom s crnim dijamantom na jednom kraju.
U UML-u može postojati između dvije ili više klasa. To je dio odnosa udruge. To je dio odnosa agregacije.
Uključuje povezanost jedan-na-jedan, jedan-na-više, više-na-jedan i mnogo-na-više između klasa. Pokazuje neku vrstu slabe veze. Pokazuje snažnu vrstu odnosa.
Može povezati još jedan objekt. U odnosu združivanja, pridruženi objekti postoje neovisno unutar opsega sustava. U odnosu kompozicije, pridruženi objekti ne mogu postojati neovisno unutar opsega sustava.
Pri tome su objekti međusobno povezani. Pri tome su povezani objekti neovisni jedni o drugima. Ovdje povezani objekti ovise jedan o drugome.
Može i ne mora utjecati na drugi pridruženi element ako se jedan element izbriše. Brisanje jednog elementa u odnosu združivanja ne utječe na druge povezane elemente. To utječe na drugi element ako se izbriše jedan od njegovih povezanih elemenata.
Primjer: mentor se može udružiti s više učenika ili se jedan učenik može udružiti s više nastavnika. Primjer: Automobilu je potreban kotač za pravilno funkcioniranje, ali možda mu nije potreban isti kotač. Može funkcionirati i s drugim kotačem. Primjer: Ako je datoteka smještena u mapu i ta je mapa izbrisana. Datoteka koja se nalazi unutar te mape također će se izbrisati u trenutku brisanja mape.