Sunteți pe pagina 1din 3

2.8.

Agregarea

Asocierile şi conexiunile între obiecte pot fi descrise la nivel de clase prin relaţii de
agregare, care sunt echivalente asociaţiilor de tipul 1-1 sau 1-n între entităţi.
Agregarea este o relaţie PARTE A şi stabileşte relaţia dintre un obiect şi componentele
sale. Când vorbim despre un obiect (agregat sau compozit) ne gândim la numărul fix sau variabil
de alte (obiecte) componente. O clasă agregat este definită ca o clasă a cărei structură constă
dintr-unul sau mai multe obiecte mai simple.
Agregarea reprezintă relaţia între două clase specifice care au obiecte într-o clasă (clasă
ţintă) şi sunt compuse într-o altă clasă (o clasă sursă).
Exemple de clase agregate:
 Poligoane, ca liste de puncte conectate;
 Date, conţinând zile, luni şi ani;
 Companie, ca agregat de compartimente.
 Agregările pot fi clasificate în trei mari categorii:
 Agregate fixe - ce constau dintr-un număr fix de componente, având, deci
structură fixă (exemplu data);
 Agregate variabile ce constau dintr-un număr finit de elemente, dar variabil
(exemplu: stive, liste, cozi).
 Agregate recursive
Starea unui agregat de acest tip poate avea componente de acelaşi tip. Ca exemplu, avem
clasa articolelor care sunt publicate într-o revistă, o revistă poate referi alte reviste.
Aşa cum există o serie de relaţii ESTE, putem concluziona că există la fel de multe relaţii
PARTE A. Există diferite modalităţi de obţinere a acestui tip de relaţie şi vom discuta despre
toate acestea şi chiar mai mult, despre capcanele pe care le prezintă astfel încât agregarea reală să
nu fie confundată cu asocierea între entităţi independente.
Principalele tipuri de asocieri sunt:
 Componentă-întreg
 Material-obiect
 Porţiune-obiect
 Loc-arie
 Membru-mulţime
 Membru-parteneriat
Agregarea componentă-întreg defineşte o configuraţie a părţilor întregului. Aceasta este o
formă comună de agregare şi apare frecvent în aplicaţii (exemplu: un poligon constă dintr-o listă
ordonată de segmente, un proiect constă din activităţi etc.).
În toate aceste exemple, trebuie observat că elementele componente sunt într-o relaţie
funcţională sau structurală unele cu altele. Cu toate acestea, fiecare componentă este un obiect cu
responsabilităţi şi drepturi proprii.
Proprietăţile principale ale unei agregări componentă-întreg sunt:
Componentele sunt într-o relaţie structurală sau funcţională unele cu altele şi cu
obiectul la formarea cărui întreg participă;
Componentele pot fi eliminate din întreg.
Agregarea material-obiect este similară cu agregarea componentă-întreg cu excepţia
faptului că, în acest caz, părţile nu pot fi înlăturate fără afectarea integrităţii întregului. Spunem
că relaţia de agregare defineşte o configurare invariantă a părţilor în cadrul întregului (un număr
de revistă este compus din articole, o maşină este construită din oţel). Relaţia defineşte obiectele
care participă la formarea întregului. Întregul este, în general, diferit de părţile sale componente
iar acestea sunt diferite între ele.
Relaţia de agregare porţiune-obiect defineşte un obiect întreg în cadrul căruia elementele
componente sunt de acelaşi tip cu întregul (exemplu: un metru este parte a unui kilometru). În
cadrul acestui tip de relaţie fiecare participant poate fi eliminat fără a distruge integritatea
întregului.
Relaţia loc-arie este similară cu cea anterioară numai că elemente componente nu pot fi
înlăturate (exemplu: un vârf este parte dintr-un munte).
Relaţia membru-mulţime defineşte o colecţie de părţi care formează un întreg. Nu există
restricţii în ceea ce priveşte relaţiile funcţionale sau structurale dintre părţile componente. Singura
cerinţă la care trebuie să răspundă acest tip de relaţie este ca părţile componente să fie părţi ale
unor colecţii. În acest sens, agregarea membru-mulţime este foarte asemănătoare cu mulţimile de
seturi (un muncitor este parte a unui departament, un departament este parte a unei divizii).
Agregările de tip membru-parteneriat sunt asemănătoare cu membru-mulţime dar părţile
componente nu mai pot fi eliminate (Mihai şi Anca s-au căsătorit).
Agregarea poate fi confundată şi cu alte tipuri de relaţii. Această confuzie poate apare în
toate fazele ciclului de viaţă al unui produs software.
Alte tipuri de relaţii sunt:
Incluziunea topologică este o relaţie între un interval de timp, o delimitare spaţială şi
obiectul conţinut în cadrul său (petrolul se află în pompa de petrol, iulie este în vară). Această
relaţie este deseori confundată cu compunerea loc-arie (un număr este parte a unei reviste dar o
revistă nu conţine un număr).
Incluziunea de clasificare se bazează pe ideea că există un concept comun între două
obiecte. Este similară agregării membru-mulţime dar aceasta din urmă este determinată de o
conexiune spaţială, temporală sau socială.
Atributele unui obiect nu trebuie confundate cu agregarea (culoarea este o proprietate a
unui dreptunghi dar proprietăţile nu fac parte din dreptunghi. Acestea sunt de fapt aplicaţii de la
un dreptunghi la alte obiecte).
Ataşarea unui obiect la un altul nu implică agregarea. Această asociere specială apare
atunci când un obiect depinde într-un mod oarecare de un altul (pantofii sunt ataşaţi picioarelor,
dar nu sunt parte componentă a picioarelor).
Relaţiile de proprietate pot apărea atunci când utilizăm verbul ARE (Maria are mere).
O proprietate importantă este propagarea operaţiilor în agregări (translaţia unui poligon
implică translaţia tuturor componentelor acestuia). Propagarea nu este importantă numai în cazul
agregatelor ci şi în cazul oricărei reţele de obiecte în care se doreşte stabilirea dependinţelor. Este
important să realizăm că propagarea unei operaţii este corectă numai atunci când există acelaşi tip
de relaţii de agregare (Mihai lucrează pentru departamentul de informatică şi Mihai are patru
mâini. Oferind o creştere a salariului de 10%, rezultă că salariul lui Mihai creşte, dar nu implică
faptul că braţele lui Mihai sunt plătite cu aceeaşi rată de creştere!).
Graful de agregare sau graful de compoziţie permite capturarea relaţiilor şi astfel
modelarea complexă a obiectelor complexe. Fig.2.20. ilustrează un graf care permite înţelegerea
unei situaţii care a fost compusă din mesaje trimise şi primite. Agregarea este simbolizată printr-
un şi logic.

Loc de muncă
(0,n)
trimitere (1,100)
elemente
Mesaje Angajaţi

Fig.2.20. Graf de agregare

S-ar putea să vă placă și