Sunteți pe pagina 1din 15

Clase

O clas de obiecte reprezint un grup de obiecte care au:


o proprieti similare (atribute),
o un comportament comun (operaii),
o relaii comune cu alte obiecte i
o o aceeai semantic.
De exemplu, "Persoana", "Firma", "proces" sunt clase de obiecte.
Semantica asociat unei clase corespunde unui punct de vedere.
Obiectele din lumea real pot i abstractizate n mod dierit. De exemplu,
un cal poate i ncadrat n clasa mi!loacelor de transport terestre sau n
clasa animalelor.
"n #$%, o clas este reprezentat printr&un dreptung'i alcatuit din trei
compartimente care conin: numele clasei, atributele, operaiile. (ompartimentul
atributelor i cel al operaiilor pot i omise.
Clasele definite in etapa de Analiza a cerintelor contin numai numele
clasei si atributele (fara specificarea tipului fiecarui atribut), eventual unele
operatii.
Reprezentarea detaliata a unei clase,construita in etapa de proiectare de
detaliu, precizeaza vizibilitatea inormatiilor din clasa, lista de parametri a
iecarei operatii si tipul parametrilor.
1
)egulile de vizibilitate se aplica atat atributelor cat si operatiilor din clase si se
reera la domeniul de acces permis la un membru al unei clase. Fiecare nivel de
vizibilitate este reprezentat printr&un simbol:
& Private ( & ) : accesibiltate numai din interiorul clasei
& Public (*) : accesibiltate la nivelul intregului sistem
& Protected (+) : accesibiltate in arborele de mostenire
& Pac,age (-) : accesibiltate din interiorul pac'etului care contine clasa
$embrii statici sunt subliniati.
(lasa detaliata
)elaiile dintre clase sunt abstracii ale relaiilor existente .ntre obiecte.
Fiecrei amilii de legturi .ntre obiecte .i corespunde o relaie .ntre clasele
obiectelor.
Obiectele sunt instane ale claselor,
%egturile .ntre obiecte sunt instane ale relaiilor dintre clase.
2
Diagramele de clase redau structura statica a unui sistem sot/are.
0xista doua tipuri principale de relatii intre clase:
o asociere si
o generalizare.
Asocierea
1socierea este o abstractie a unui set de legaturi existente intre obiecte.
De exemplu, asocierea 21 lucra3 dintre clasele Persoana i Firma
reprezint toate legturile posibile dintre obiecte ale clasei Persoana i
obiecte ale clasei Firma:
0xtremitatea unei asocieri este numita rol.
o )olul exprim elul .n care o clas "vede" o alt clas .n cadrul unei
asocieri. De exemplu, .n asocierea dintre clasele Firma i
Persoana, orice obiect al clasei Persoana este un 21nga!at3 al unei
Firme, care este reprezentat printr&un 2Patron3 .
o 4umele de rol sunt amplasate la cele dou extremiti ale asocierii:
Firma Patron Persoana
3
Angajat

4ume de rol.
4umele de rol sunt optionale. 4umai numele asocierii este obligatoriu
pentru o asociere.
Dac .ntre dou clase exist o singur asociere, numele asocierii este suicient
pentru a preciza relaia. 4umele de rol se olosesc de regul atunci cnd ntre
dou clase exist mai multe asocieri. "n loc de nume de rol se poate scrie un verb
sau o raza care contine un verb, pentru a explica semantica asocierii:
Firma Este angajata Persoana
Lucreaza cu

Observatie: Executable UML impune speciicarea numelor de rol. 0le sunt
olosite in codul generat automat pentru implementarea asocierilor (506"
generarea automata a codului pornind de la diagramele de clase).
Aritatea asocierilor
(ea mai mare parte a asocierilor sunt binare & ele unesc dou clase. 1socierile
de aritate superioar se reprezint cu a!utorul unui romb, ca .n igura de mai !os.
De exemplu, asocierea ilustrat .n igura urmatoare exprim aptul ca 2Proiectele
sunt implementate prin Programe scrise n %imba!e de programare3.
Proiect Limbaj
Program
1sociere ternar.
4
Multiplicitatea asocierilor
Fiecare rol al unei asocieri poate purta o indicaie de multiplicitate care arat cte
obiecte ale unei clase pot i legate la un moment dat unui obiect al celeilalte
clase. De exemplu, o irma poate avea unul sau mai muli anga!ai. O persoana
poate lucra la o singura irma. $ultiplicitatea poate i "unu", "mai multe "(7) sau
un subansamblu de .ntregi pozitivi: 8, 9..8, $..4, 7 sau 9..7 (de la zero la mai
muli), 8..7.
$ultiplicitatea unei asocieri exprim o constrngere valabil pe toat durata
de existen a obiectelor claselor asociate. $ultiplicitile nu trebuie s ie
considerate n timpul regimurilor tranzitorii, de creare sau de distrugere a
obiectelor.
0:0$P%# de diagrama de clase conceptuale: librarie, Student&curs
Asocieri cu atribute
1socierile pot i caracterizate prin atribute. "n igura urmatoare, 24ota3 este un
atribut al asocierii existente .ntre clasa 2Student3 i clasa 2;ema3.
1socierea dintre clasa Student i clasa ;ema este de tip 4 la 4. Fiecare student
realizeaz individual o tema dat iar nota obinut nu poate i reprezentat nici ca
atribut al studentului (cci un student eectueaz mai multe teme), nici ca atribut
al temei (cci iecare student primete o not pentru aceeai tema). 4ota este un
atribut al relaiei dintre clasa studenilor i clasa temelor.
5
asociere cu atribute este numit asociere atributat . 0a poate i
reprezentat printr&o clas cu atribute i operaii proprii. O asemenea clas,
numit uneori clas &associere , este ataat asocierii printr&o linie punctat:
!E"# E$E%PL& '&() * )tu+ent,'urs,-ota. Angajat, /e0artament , Proiect12
1socierile pot i constrnse. O constrangere este o regula care trebuie sa
ie implementata pentru ca asocierea sa ie valida. (onstrngerile sunt
scrise ntre acolade. De exemplu, instanele clasei < asociate unei
instane a clasei 1 trebuie s ie ordonate:
O asociere poate lega o clas de ea .nsi. O asemenea asociere este
numit asociere relexiv . #n exemplu de asociere relexiv este cel
3
A
'
attribute
o0eraii
4
/
ilustrat n igura urmatoare. Fiecare persoana are doi prini i zero sau
mai muli copii. 4umirea rolurilor este .n acest caz esenial pentru
claritatea diagramei.
1socierile 8 la mai muli i mai muli la mai muli pot i caliicate. (aliicarea
este speciicat printr&o c'eie ataat rolului clasei de plecare.

Fig5 25265 'a7i8icarea asocieri7or
Fiecare instan a clasei 1 mpreun cu valoarea c'eii identiic un sub&ansamblu
al instanelor clasei <, care particip la asociere. 0xemplu:
(
Fig5 25295 #+enti8icarea unui 8iier5
#n director .mpreun cu un nume de iier desemneaz toate isierele din director
cu acelasi nume si dierite extensii.
Agregarea
6
A
':eie

4
/irector
-ume +e 8iier
Fiier
1gregarea este o orm particular de asociere care exprim o relatie
"compus & componeni".
O clasa are anumite parti, care insa au o existenta independenta.
1gregarea este desemnat printr&un un mic romb amplasat alturi de clasa
agregat:
#n document are mai multe paragrae i iecare paragra este alctuit din mai
multe raze.
Fiecare main are un motor.
; 1gragatul nu poate exista ara una dintre componente
; Distrugerea agregatului nu conduce la distrugerea componentelor

Compunerea
(ompunerea este un caz particular de agregare. 0xprima o agregare prin
continere izica.
9
Distrugerea obiectului agregat antreneaza distrugerea componentelor. De
exemplu, in agregarea masina& motor deinita mai sus, motorul unei masini poate
i inlocuit cu altul. $otorul unei masini poate i pus in alta masina= Daca insa
reprezentam relatia masina > motor ca relatie de compunere&? iecare masina
are un motor unic, care nu poate i inlocuit si motorul nu poate i pus in alta
masina=
)elaia de compunere este semantic ec'ivalent cu considerarea
componenilor ca atribute ale clasei agregat:
1stel, relatia de mai sus este ec'ivalenta cu:

Generalizarea
"erar'iile de clase sunt bazate pe noiunile de clasiicare, generalizare i
specializare.
@eneralizarea const .n actorizarea elementelor comune (atribute,
operaii i constrngeri) ale unui ansamblu de clase .ntr&o clas mai
general, numit superclas . (lasele sunt ordonate .ntr&o ierar'ie.
Sgeata care simbolizeaz generalizarea .ntre dou clase puncteaz ctre
clasa mai general:
<
"n ierar'ia din igura de mai sus, iecare clasA (exceptBnd clasa rAdAcinA) are o
singurA super&clasA. )eprezentarea graicA corespunde unui arbore, numit Ci
arborele de moCtenire. (lasele pot avea mai multe super&clase. "n acest caz,
generalizarea este numit multipl iar ierar'ia de clase se reprezintA printr&un
gra , numit Ci graul de moCtenire.

Specializarea permite capturarea particularitilor unui ansamblu de
obiecte, nereprezentate prin clasele existente. 4oile caracteristici sunt
deinite .ntr&o clas nou, sub&clas a uneia sau mai multor clase
existente. Specializarea este o te'nic oarte eicient de extensie
coerent a unui ansamblu de clase existente . 4oile cerin e sunt
.ncapsulate .n sub&clase care extind unc iile existente . De exemplu, dac
ntr&o aplicaie apare necesar s se reprezinte "bicicleta" ca ve'icul de
transport, n plus a de cele reprezentate n ierar'ia de mai sus, atunci
se va deini o clas nou, sub&clas a clasei "5e'icul terestru", n care vor
i deinite particularitile bicicletei ca ve'icul terestru. Fiecare sub&clasA a
unei ierar'ii moCteneCte atributele Ci operaDiile deinite .n clasele alate pe
calea de la clasa radacinA la subclasa respectiva, iind cu atBt mai
specializatA cu cBt se alA mai departe de radacinA.
Motenirea este o te'nic oerit de limba!ele de programare pentru a
construi o clas plecnd de la una sau mai multe clase, parta!nd atribute,
operaii i uneori constrangeri .n interiorul unei ierar'ii de clase. (lasele
copil motenesc caracteristicile claselor printe. 1tributele i operaiile
1=
declarate .n clasele printe sunt accesibile .n clasele copil, ca i cum ar i
declarate local. $otenirea este o modalitate de a realiza clasiicarea.
)elaia de generalizare deinit n #$% este mai abstract decBt relaia de
motenire care exist .n limba!ele de programare obiect, cum ar i (**. 0a
este mai adecvat etapei de analiz (exista si intre cazuri de utilizare=).
Decizia asupra modalitii de a realiza generalizarea se ia mai tBrziu, .n
etapa de proiectare.
Prin clasiicare Ci generalizare, universul problemei este divizat in pari
independente care grupeazA obiectele prin ainitate. $odiicarea unei pAr i
antreneazA un minimum de modiicAri ale celorlalte, apt pus .n evidenA de
arborele de motenire: iecare subarbore grupeazA obiectele care .mpart
caracteristicile rAdAcinii sale. De exemplu, adAugarea de noi caracteristici la
clasa 1rticol&de&lux (igura )nu aecteazA clasa .mbrAcAminte i nici subclasele
acesteia, dar extinde automat caracteristicile subclaselor clasei 1rticol&de&lux.
#neori, anumite clase sunt create doar ca surse de motenire pentru alte claseE
ele sunt clase abstracte. De exemplu, clasa 1rticol este o clasa abstractA
daca nu caracterizeazA complet nici un obiect din universul problemei.
(lasa 1rticole&electrice a ost introdusA pentru a actoriza proprietADile electrice
(de exemplu, tensiunea de alimentare, consumul Ci altele), comune calculatorului
Ci articolelor electrocasnice.
11
4otatie:
4umele operatiilor abstracte (ara implementare) se scriu tot in italic.
avi!abilitate
4avigabilitatea desemneaza necesitatea ca un obiect al unei clase sa acceseze
un alt obiect 2navigand3 de&a lungul unei legaturi. 4avigabilitatea se reprezinta
printr&o sageata la capatul 2navigabil3 al asocierii. Obiectul de la capatul navigabil
este accesibil unui obiect de la cealalata extremitate. "nvers, nu.
#rmatoarea diagrama de clase modeleaza o aplicatie care permite plati pe baza
de ordine ale clientilor.
12
Sageata asociata asocierii se numeste navigabilitate. 0a indica directia in care
trebuie sa ie traversata sau interogata asocierea. De exemplu, un obiect
OrderDetail poate interoga obiectul "tem asociat. #n obiect "tem poate i asociat
mai multor obiecte OrderDetail dar pentru el nu este necesar sa le cunoasca. #n
obiect Order este asociat cu mai multe obecte PaFment, pe care trebuie sa le
cunoasca. Pentru un obiect PaFment nu este necesar sa cunoasca obiectul
Order asociat.
1socierile ara navigabilitate sunt considerate bi&directionale. 4avigabilitatea este
un element optional. Se adauga pentru a imbunatati claritatea diagramei.
"ependente si constran!eri
O dependenta este o relatie intre G clase in care modiicarea uneia poate orta
modiicarea celeilalte. 0xemplu: (ompanFDetails depinde de (ompanF. Daca se
modiica (ompanF trebuie sa se modiice si (ompanFDetails.
13
O constrangere este o conditie pe care orice implementare a diagramei trebuie
sa o satisaca. 0ste scrisa intre paranteze HI. 0xemplu: #n obiect Section poate i
parte dintr&un obiect (ourseSc'edule numai daca nu a ost anulat.
14
15

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