logo

Asociere UML vs. agregare vs. compoziție

În diagramele UML, relațiile sunt folosite pentru a lega mai multe lucruri. Este o conexiune între lucruri structurale, comportamentale sau de grupare. Următoarele sunt relațiile UML standard enumerate mai jos:

meniul de setări Android
  • Asociere
  • Dependenţă
  • Generalizare
  • Realizare

Asociere

Relația de asociere este o relație structurală în care diferite obiecte sunt legate în cadrul sistemului. Prezintă o relație binară între obiectele care reprezintă o activitate. Acesta descrie relația dintre obiecte, cum ar fi un profesor, care poate fi asociat cu mai mulți profesori.

Este reprezentată de o linie între clase urmată de o săgeată care navighează în direcția, iar când săgeata este pe ambele părți, se numește atunci asociere bidirecțională. Putem preciza multiplicitatea unei asocieri adăugând podoabele pe linia care va denota asocierea.

Exemplu:

1) Un singur profesor are mai mulți elevi.

Asociere UML vs. agregare vs. compoziție

2) Un singur elev se poate asocia cu mai mulți profesori.

Asociere UML vs. agregare vs. compoziție

Compoziția și agregarea sunt două subseturi de asociere. În ambele cazuri, obiectul unei clase este deținut de obiectul altei clase; singura diferență este că în compoziție, copilul nu există independent de părintele său, în timp ce în agregare, copilul nu este dependent de părintele său, adică de sine stătător. O agregare este o formă specială de asociere, iar compoziția este forma specială de agregare.

Asociere UML vs. agregare vs. compoziție

Agregare

Agregarea este un subset de asociere, este o colecție de lucruri diferite. Reprezintă că are o relație. Este mai specific decât o asociație. Descrie o parte a întregului sau o parte a relației. Este o asociere binară, adică implică doar două clase. Este un fel de relație în care copilul este independent de părintele său.

De exemplu:

Aici luăm în considerare o mașină și un exemplu de roată. O mașină nu se poate mișca fără roată. Dar roata poate fi folosită independent cu bicicleta, scuterul, bicicleta sau orice alt vehicul. Obiectul roată poate exista fără obiectul mașină, ceea ce se dovedește a fi o relație de agregare.

Asociere UML vs. agregare vs. compoziție

Compoziţie

Compoziția este o parte a agregării și descrie relația între părți. Acesta descrie dependența dintre un compozit (părinte) și părțile sale (copii), ceea ce înseamnă că, dacă compozitul este aruncat, la fel și părțile sale vor fi șterse. Există între obiecte asemănătoare.

După cum puteți vedea din exemplul de mai jos, relația de asociere compoziție conectează clasa Persoană cu clasa Creier, clasa Inimă și clasa Picioare. Dacă persoana este distrusă, creierul, inima și picioarele vor fi, de asemenea, eliminate.

format șir de caractere java
Asociere UML vs. agregare vs. compoziție

Asociere vs. agregare vs. compunere

Asociere Agregare Compoziţie
Relația de asociere este reprezentată cu ajutorul unei săgeți. Relația de agregare este reprezentată de o linie dreaptă cu un romb gol la un capăt. Relația de compoziție este reprezentată de o linie dreaptă cu un diamant negru la un capăt.
În UML, poate exista între două sau mai multe clase. Este o parte a relației de asociere. Este o parte a relației de agregare.
Încorporează asocierea unu-la-unu, unu-la-mulți, mulți-la-unu și mulți-la-mulți între clase. Prezintă un fel de relație slabă. Prezintă un tip puternic de relație.
Poate asocia încă un obiect împreună. Într-o relație de agregare, obiectele asociate există independent în domeniul de aplicare al sistemului. Într-o relație de compoziție, obiectele asociate nu pot exista independent în domeniul de aplicare al sistemului.
În aceasta, obiectele sunt legate între ele. În aceasta, obiectele legate sunt independente unele de altele. Aici obiectele legate sunt dependente unele de altele.
Poate afecta sau nu celălalt element asociat dacă un element este șters. Ștergerea unui element din relația de agregare nu afectează celelalte elemente asociate. Acesta afectează celălalt element dacă unul dintre elementele asociate acestuia este șters.
Exemplu: un tutore se poate asocia cu mai mulți studenți sau un student se poate asocia cu mai mulți profesori. Exemplu: O mașină are nevoie de o roată pentru a funcționa corect, dar este posibil să nu necesite aceeași roată. Poate funcționa și cu o altă roată. Exemplu: Dacă un fișier este plasat într-un folder și acesta este șters. Fișierul care se află în acel folder va fi, de asemenea, șters în momentul ștergerii folderului.