Introducere în UML partea 2
Dacă în prima parte a acestui articol am vorbit despre diagrame şi modul de reprezentare al claselor, a venit acum rândul să vorbim despre modul în care se descriu relaţiile dintre clase.
În cadrul UML există 4 tipuri mari de relaţii: relaţii de generalizare, relaţii de asociere, relaţii de realizare şi relaţii de dependenţă.
1) Relaţii de generalizare
Acest tip de relaţii se referă la o structură ierarhică ce aplică principiul moştenirii. Cu alte cuvinte, moştenirea este o relaţie de generalizare care se reprezintă la modul următor: se trasează o linie cu săgeata îndreptată de la subclasă la clasa părinte, săgeata fiind închisă şi goală în interior.

relatie de moştenire
2) Relaţii de asociere
Sunt relaţiile în care o clasă se află în relaţie cu o altă clasă pe o durată mare de timp. Aceste relaţii se nasc în momentul în care o proprietate a unei clase ţine o referinţă către o instanţă a altei clase. Din această cauză, acest tip de relaţie este cel mai răspândit.

relaţie de asociere
Pentru descrierea relaţiei de asociere se folosete o linie simplă (figura 2-A). Pentru descrierea direcţiei de asociere se foloseşte o săgeată simplă, deschisă la bază. Dacă de exemplu, clasa Profesor conţine o instanţă a clasei Student, direcţia se trasează ca în figura 2-B. În cazul în care şi clasa Student ar fi avut o instanţă a clasei Profesor, ar fi rezultat o relaţie de asociere bidirecţională, linia de asociere având săgeţi la ambele capete.
În aceeaşi măsură se pot ţi specifica numărul de instanţe a unei clase având referinţe în cealaltă clasă, după cum se vede în figura 2-B. Numărul acestora se poate scrie ca un număr fix, se poate da ca un interval închis (ex. 1..10) sau ca asterisk (*), care înseamnă 0 sau mai multe.
În cadrul relaţiilor de asociere mai fac parte şi 2 tipuri speciale, agregare şi compoziţie.

relaţie de agregare/compoziţie
Asocierile de aregare descriu o situaţie în care o clasă păstrează o referinţă permanentă a altei clase. Însă unul din elemente poate exista şi în afara relaţiei respective – poate fi conţinut şi de alt obiect în acelaşi timp (figura 3-A). Relaţiile de agregare se reprezintă printr-o linie care începe cu un romb gol.
Asocierile de compoziţie sunt mai puternice decât cele de agregare. O parte nu poate exista în afara întregului. În cadrul unei astfel de relaţii obiectul conţinut poate avea referinţă doar în acea clasă. Relaţiile de acest tip sunt reprezentate de o linie care începe însă cu un romb umplut (figura 3-B).
3) Relaţii de realizare
Sunt relaţiile prin care unul dintre elemente „garantează” realizarea unor acţiuni prin intermediul celuilalt element. În cadrul UML, interfeţele sunt asociate acestui tip de relaţii. Reprezentarea se face prin trasarea unei săgeţi, asemănătoare celei din cadrul moştenirii, doar că linia este discontinuă (figura 4).

relatie de realizare - interfaţă
4) Relaţii de dependenţă
Relaţiile de dependenţă indică o relaţie semantică între două sau mai multe elemente, înă nu descriu o legătură permanentă între clase. O modificare într-unul din obiecte duce la ri semantice la celălalt obiect. Se reprezintă printr-o linie discontinuă având la capăt o săgeată deschisă (figura 5).
Cu acestea am încheiat discuţia referitoare la modul de reprezentare în UML al relaţiilor dintre clase. În ultima parte a acestui articol o să exemplific toate aceste noţiuni pe un exemplu concret, ca să vedem la ce ne ajută practic UML-ul.
Tags: uml
Add a Comment Trackback
