Asociația UML vs. agregare vs. Compoziție [EXEMPLU]

Relațiile din diagrama UML sunt folosite pentru a reprezenta o conexiune între diverse lucruri. O relație este o conexiune între lucruri cum ar fi lucrurile structurale, comportamentale sau de grupare în limbajul de modelare unificat.

Următoarele sunt diferitele tipuri de relații standard în UML,

  • Asociație
  • Dependenţă
  • Generalizare
  • Realizare

În afară de acestea, UML permite utilizarea de agregare și o relație de compoziție.

Asociația UML

Este o relație structurală care reprezintă obiecte care pot fi conectate sau asociate cu un alt obiect din interiorul sistemului. Următoarele constrângeri pot fi aplicate relației de asociere UML.

  • {implicit} – Constrângerile implicite specifică faptul că relația nu este manifestă; se bazează pe un concept.
  • {ordonat} – Constrângerile ordonate specifică faptul că setul de obiecte de la un capăt al unei asocieri sunt într-un mod specific.
  • {schimbabil} – Constrângerea modificabilă specifică faptul că conexiunea dintre diferite obiecte din sistem poate fi adăugată, eliminată și modificată conform cerințelor.
  • {addOnly} – Precizează că noile conexiuni pot fi adăugate dintr-un obiect care se află la celălalt capăt o asociație.
  • {îngheţat} – Specifică că atunci când o legătură este inserată între două obiecte, atunci aceasta nu poate fi modificată în timp ce constrângerea înghețată este activă pe legătura dată sau o conexiune.

De asemenea, putem crea o clasă care are proprietăți de asociere UML; se numește ca o clasă de asociere.

Asociația reflexivă

Asocierea reflexivă este un subtip de relație de asociere în UML. Într-o asociere reflexivă, instanțele aceleiași clase pot fi legate între ele. Se spune că o instanță a unei clase este, de asemenea, un obiect.

Asocierea reflexivă afirmă că o legătură sau o conexiune poate fi prezentă în cadrul obiectelor aceleiași clase.

Exemplu:

Să luăm în considerare un exemplu de fruct de clasă.

Clasa de fructe are două exemple, cum ar fi mango și măr. Asocierea reflexivă afirmă că o legătură între mango și măr poate fi prezentă, deoarece acestea sunt cazuri din aceeași clasă, cum ar fi fructele.

Asociația reflexivă
Asociația reflexivă

Asociatia Dirijata

După cum sugerează și numele, asocierea direcționată este legată de direcția fluxului în cadrul claselor de asociere.

Într-o asociere dirijată, fluxul este direcționat. Asocierea de la o clasă la alta clasă curge într-o singură direcție.

Se notează folosind o linie continuă cu un vârf de săgeată.

Exemplu de asociere UML:

Puteți spune că există o relație de asociere dirijată între un server și un client.

Un server poate procesa cererile unui client. Acest flux este unidirecțional, care circulă numai de la server la client. Prin urmare, o relație de asociere dirijată poate fi prezentă în cadrul serverelor și clienților unui sistem.

Asociatia Dirijata

Asociatia Dirijata

Compoziția UML

Nu este un standard Relația UML, dar este încă folosit în diverse aplicații.

Agregarea compusă este un subtip de relație de agregare cu caracteristici precum:

  • Este o asociere bidirecțională între obiecte.
  • Este o relație întreg/parte.
  • Dacă un compozit este șters, toate celelalte părți asociate cu acesta sunt șterse.

Agregarea compozită este descrisă ca o asociere binară decorată cu un diamant negru umplut la capătul agregat (întreg).

Compoziția UML

Dosarul poate conține multe fișiere, în timp ce fiecare fișier are exact un dosar părinte. Dacă un folder este șters, toate fișierele conținute sunt, de asemenea, eliminate.

Într-o agregare compozită, un obiect poate face parte dintr-un singur compozit la un moment dat.

Exemplu de compoziție UML:

De exemplu, într-un sistem de ferestre, un cadru aparține exact unei ferestre. Într-o agregare compozită, întregul sistem este responsabil pentru dispunerea părților sale, ceea ce înseamnă că compozitul trebuie să gestioneze crearea și distrugerea părților sale.

Compoziția UML

Compoziție

Agregare UML

O agregare este un subtip al unei relații de asociere în UML. Agregarea și compoziția sunt ambele tipuri de relații de asociere în UML. O relație de agregare poate fi descrisă în cuvinte simple ca „un obiect al unei clase poate deține sau accesa obiectele unei alte clase”.

Într-o relație de agregare, obiectul dependent rămâne în sfera unei relații chiar și atunci când obiectul sursă este distrus.

Exemplu de agregare UML:

Să luăm în considerare un exemplu de mașină și roată.

O mașină are nevoie de o roată pentru a funcționa corect, dar o roată nu are întotdeauna nevoie de o mașină. Poate fi folosit și cu bicicleta, bicicleta sau orice alte vehicule, dar nu cu o anumită mașină. Aici, obiectul roată are sens chiar și fără obiectul mașină. Un astfel de tip de relație se numește relație de agregare UML.

Relația de agregare UML

agregare

Asociația vs. agregare vs. Compoziţie

Asociație agregare Compoziție
Relația de asociere este indicată cu ajutorul unei săgeți. Relația de agregare este indicată folosind o linie dreaptă cu un vârf de săgeată gol la un capăt. Relația de compoziție este indicată folosind o linie dreaptă cu un vârf de săgeată umplut la oricare dintre capete.
Asocierea poate exista între două sau mai multe clase în UML. Agregarea este o parte a unei relații de asociere. Compoziția face parte dintr-o relație de asociere.
Între clasele de asociere pot exista asocieri unu-unu, unu-mulți, mai mulți-unu și mulți-mulți. Agregarea este considerată un tip slab de asociere. Compoziția este considerată un tip puternic de asociere.
Într-o relație de asociere, unul sau mai multe obiecte pot fi asociate între ele. Într-o relație de agregare, obiectele care sunt asociate între ele pot rămâne în sfera unui sistem unele fără altele. Într-o relație de compoziție, obiectele care sunt asociate unul cu celălalt nu pot rămâne în domeniul de aplicare unul fără celălalt.
Obiectele sunt legate între ele. Obiectele legate nu depind de celălalt obiect. Obiectele sunt foarte dependente unele de altele.
În Asociația UML, ștergerea unui element poate afecta sau nu un alt element asociat. În agregarea UML, ștergerea unui element nu afectează alt element asociat. În UML Composition, ștergerea unui element afectează un alt element asociat.
Exemplu:
Un profesor este asociat cu mai mulți elevi.
Or
un profesor oferă instrucțiuni elevilor.
Exemplu:
O mașină are nevoie de o roată, dar nu întotdeauna necesită aceeași roată. O mașină poate funcționa adecvat și cu o altă roată.
Exemplu:
Un fișier este plasat în dosar. Dacă cineva șterge folderul, atunci fișierul asociat cu acel folder dat este, de asemenea, șters.

Rezumat

  • O relație este o legătură între lucruri.
  • Asocierea, dependența, generalizarea și realizarea sunt diverse relațiile oferite de UML.
  • În afară de relațiile standard, compoziția și agregarea sunt utilizate în interiorul UML.
  • Agregarea și compoziția sunt ambele tipuri de relații de asociere în UML.
  • Compoziția UML este o relație bidirecțională care este denumită și relație binară.

Consultați articolul nostru despre Cele mai bune instrumente UML: - Click aici