logo

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.

apache
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.