Documente Academic
Documente Profesional
Documente Cultură
4.1 UML Diagrame de Clase
4.1 UML Diagrame de Clase
Clase
O clasă de obiecte reprezintă un grup de obiecte care au:
o proprietăţi similare (atribute),
o un comportament comun (operaţii),
o relaţii comune cu alte obiecte şi
o o aceeaşi semantică.
De exemplu, "Persoana", "Firma", "proces" sunt clase de obiecte.
Semantica asociată unei clase corespunde unui punct de vedere.
Obiectele din lumea reală pot fi abstractizate în mod diferit. De exemplu,
un cal poate fi încadrat în clasa mijloacelor de transport terestre sau în
clasa animalelor.
1
Regulile de vizibilitate se aplica atat atributelor cat si operatiilor din clase si se
refera la domeniul de acces permis la un membru al unei clase. Fiecare nivel de
vizibilitate este reprezentat printr-un simbol:
Clasa detaliata
Relaţiile dintre clase sunt abstracţii ale relaţiilor existente între obiecte.
Fiecărei familii de legături între obiecte îi corespunde o relaţie între clasele
obiectelor.
Obiectele sunt instanţe ale claselor,
Legăturile între obiecte sunt instanţe ale relaţiilor dintre clase.
2
Diagramele de clase redau structura statica a unui sistem software.
Exista doua tipuri principale de relatii intre clase:
o asociere si
o generalizare.
Asocierea
3
Angajat
Nume de rol.
Aritatea asocierilor
Cea mai mare parte a asocierilor sunt binare - ele unesc două clase. Asocierile
de aritate superioară se reprezintă cu ajutorul unui romb, ca în figura de mai jos.
De exemplu, asocierea ilustrată în figura urmatoare exprimă faptul ca “Proiectele
sunt implementate prin Programe scrise în Limbaje de programare”.
Proiect Limbaj
Program
Asociere ternară.
4
Multiplicitatea asocierilor
Fiecare rol al unei asocieri poate purta o indicaţie de multiplicitate care arată câte
obiecte ale unei clase pot fi legate la un moment dat unui obiect al celeilalte
clase. De exemplu, o firma poate avea unul sau mai mulţi angajaţi. O persoana
poate lucra la o singura firma. Multiplicitatea poate fi "unu", "mai multe "(*) sau
un subansamblu de întregi pozitivi: 1, 0..1, M..N, * sau 0..* (de la zero la mai
mulţi), 1..*.
Asocieri cu atribute
5
O asociere cu atribute este numită asociere atributată. Ea poate fi
reprezentată printr-o clasă cu atribute şi operaţii proprii. O asemenea clasă,
numită uneori clasă-associere, este ataşată asocierii printr-o linie punctată:
A B
C D
attribute
operaţii
6
ilustrat în figura urmatoare. Fiecare persoana are doi părinţi şi zero sau
mai mulţi copii. Numirea rolurilor este în acest caz esenţială pentru
claritatea diagramei.
Asocierile 1 la mai mulţi şi mai mulţi la mai mulţi pot fi calificate. Calificarea
este specificată printr-o cheie ataşată rolului clasei de plecare.
A Cheie B
R
Director Fişier
Nume de fişier
Agregarea
7
Agregarea este o formă particulară de asociere care exprimă o relatie
"compus - componenţi".
Un document are mai multe paragrafe şi fiecare paragraf este alcătuit din mai
multe fraze.
Compunerea
8
Distrugerea obiectului agregat antreneaza distrugerea componentelor. De
exemplu, in agregarea masina- motor definita mai sus, motorul unei masini poate
fi inlocuit cu altul. Motorul unei masini poate fi pus in alta masina! Daca insa
reprezentam relatia masina – motor ca relatie de compunere-> fiecare masina
are un motor unic, care nu poate fi inlocuit si motorul nu poate fi pus in alta
masina!
Generalizarea
Ierarhiile de clase sunt bazate pe noţiunile de clasificare, generalizare şi
specializare.
Generalizarea constă în factorizarea elementelor comune (atribute,
operaţii şi constrângeri) ale unui ansamblu de clase într-o clasă mai
generală, numită superclasă. Clasele sunt ordonate într-o ierarhie.
Săgeata care simbolizează generalizarea între două clase punctează către
clasa mai generală:
9
In ierarhia din figura de mai sus, fiecare clasă (exceptând clasa rădăcină) are o
singură super-clasă. Reprezentarea grafică corespunde unui arbore, numit şi
arborele de moştenire. Clasele pot avea mai multe super-clase. In acest caz,
generalizarea este numită multiplă iar ierarhia de clase se reprezintă printr-un
graf , numit şi graful de moştenire.
10
declarate în clasele părinte sunt accesibile în clasele copil, ca şi cum ar fi
declarate local. Moştenirea este o modalitate de a realiza clasificarea.
Uneori, anumite clase sunt create doar ca surse de moştenire pentru alte clase;
ele sunt clase abstracte. De exemplu, clasa Articol este o clasa abstractă
daca nu caracterizează complet nici un obiect din universul problemei.
Clasa Articole-electrice a fost introdusă pentru a factoriza proprietăţile electrice
(de exemplu, tensiunea de alimentare, consumul şi altele), comune calculatorului
şi articolelor electrocasnice.
11
Notatie:
Navigabilitate
12
Sageata asociata asocierii se numeste navigabilitate. Ea indica directia in care
trebuie sa fie traversata sau interogata asocierea. De exemplu, un obiect
OrderDetail poate interoga obiectul Item asociat. Un obiect Item poate fi asociat
mai multor obiecte OrderDetail dar pentru el nu este necesar sa le cunoasca. Un
obiect Order este asociat cu mai multe obecte Payment, pe care trebuie sa le
cunoasca. Pentru un obiect Payment nu este necesar sa cunoasca obiectul
Order asociat.
Dependente si constrangeri
O dependenta este o relatie intre 2 clase in care modificarea uneia poate forta
modificarea celeilalte. Exemplu: CompanyDetails depinde de Company. Daca se
modifica Company trebuie sa se modifice si CompanyDetails.
13
O constrangere este o conditie pe care orice implementare a diagramei trebuie
sa o satisfaca. Este scrisa intre paranteze {}. Exemplu: Un obiect Section poate fi
parte dintr-un obiect CourseSchedule numai daca nu a fost anulat.
14
- Diagrama de clase poate fi folosita in modelarea conceptuala a unei baze de
date. In modelul fizic al BD clasele se implementeaza prin tabele ale bazei de
date.
15
Diagrame de obiecte
O diagrama de obiecte reda un set de obiecte si legaturile dintre ele la un
moment dat.
C: Companie
d1:Departament d2:Departament
nume = “Vanzari” nume = “A&C”
p:Persoana
nume=”...” :Informatii:
IDangajat=1234 adresa=...
5
titlu=”dir.vanzari”
16