Sunteți pe pagina 1din 16

Diagrame de clase

Clase

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


o o o o

proprieti similare (atribute), un comportament comun (operaii), relaii comune cu alte obiecte i o aceeai semantic. vedere.

De exemplu, "Persoana", "Firma", "proces" sunt clase de obiecte.

Semantica asociat unei clase corespunde unui punct de

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. In UML, o clas este reprezentat printr-un dreptunghi alcatuit din trei compartimente care conin: numele clasei, atributele, operaiile. Compartimentul atributelor i cel al operaiilor pot fi 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 informatiilor din clasa, lista de parametri a fiecarei operatii si tipul parametrilor.

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: Private ( - ) : accesibiltate numai din interiorul clasei Public (+) : accesibiltate la nivelul intregului sistem Protected (#) : accesibiltate in arborele de mostenire Package (~) : accesibiltate din interiorul pachetului care contine clasa

Membrii statici sunt subliniati.

Clasa detaliata Relaiile dintre clase sunt abstracii ale relaiilor existente ntre obiecte. Fiecrei familii de legturi ntre obiecte i corespunde o relaie ntre clasele obiectelor. Obiectele sunt instane ale claselor, Legturile ntre obiecte sunt instane ale relaiilor dintre clase.

Diagramele de clase redau structura statica a unui sistem software. Exista doua tipuri principale de relatii intre clase: o asociere si
o

generalizare.

Asocierea

Asocierea este o abstractie a unui set de legaturi existente intre obiecte. De exemplu, asocierea A lucra dintre clasele Persoana i Firma reprezint toate legturile posibile dintre obiecte ale clasei Persoana i obiecte ale clasei Firma: Extremitatea unei asocieri este numita rol.
o

Rolul exprim felul 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 Angajat al unei Firme, care este reprezentat printr-un Patron . Numele de rol sunt amplasate la cele dou extremiti ale asocierii: Patron Persoana

Firma

Angajat Nume de rol. Numele de rol sunt optionale. Numai numele asocierii este obligatoriu pentru o asociere. Dac ntre dou clase exist o singur asociere, numele asocierii este suficient pentru a preciza relaia. Numele de rol se folosesc de regul atunci cnd ntre dou clase exist mai multe asocieri. In loc de nume de rol se poate scrie un verb sau o fraza care contine un verb, pentru a explica semantica asocierii:

Firma

Este angajata Lucreaza cu

Persoana

Observatie: Executable UML impune specificarea numelor de rol. Ele sunt folosite in codul generat automat pentru implementarea asocierilor (VEZI generarea automata a codului pornind de la diagramele de clase). 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 Program Asociere ternar.

Limbaj

Multiplicitatea asocierilor Fiecare rol al unei asocieri poate purta o indicaie de multiplicitate care arat cte 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 muli angajai. 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 muli), 1..*.

Multiplicitatea unei asocieri exprim o constrngere valabil pe toat durata de existen a obiectelor claselor asociate. Multiplicitile nu trebuie s fie considerate n timpul regimurilor tranzitorii, de creare sau de distrugere a obiectelor.

EXEMPLU de diagrama de clase conceptuale: librarie, Student-curs Asocieri cu atribute Asocierile pot fi caracterizate prin atribute. In figura urmatoare, Nota este un atribut al asocierii existente ntre clasa Student i clasa Tema. Asocierea dintre clasa Student i clasa Tema este de tip N la N. Fiecare student realizeaz individual o tema dat iar nota obinut nu poate fi reprezentat nici ca atribut al studentului (cci un student efectueaz mai multe teme), nici ca atribut al temei (cci fiecare student primete o not pentru aceeai tema). Nota este un atribut al relaiei dintre clasa studenilor i clasa temelor.

O asociere cu atribute este numit asociere atributat. Ea poate fi reprezentat printr-o clas cu atribute i operaii proprii. O asemenea clas, numit uneori clas-associere, este ataat asocierii printr-o linie punctat:
A B

attribute operaii

VEZI EXEMPLU CURS ( Student-Curs-Nota, Angajat- Departament - Proiect)! Asocierile pot fi constrnse. O constrangere este o regula care trebuie sa fie implementata pentru ca asocierea sa fie valida. Constrngerile sunt scrise ntre acolade. De exemplu, instanele clasei B asociate unei instane a clasei A trebuie s fie ordonate:

O asociere poate lega o clas de ea nsi. O asemenea asociere este numit asociere reflexiv. Un exemplu de asociere reflexiv este cel
6

ilustrat n figura urmatoare. Fiecare persoana are doi prini i zero sau mai muli copii. Numirea rolurilor este n acest caz esenial pentru claritatea diagramei.

Asocierile 1 la mai muli i mai muli la mai muli pot fi calificate. Calificarea este specificat printr-o cheie ataat rolului clasei de plecare.

Cheie Fig. 2.27. Calificarea asocierilor

Fiecare instan a clasei A mpreun cu valoarea cheii identific un sub-ansamblu al instanelor clasei B, care particip la asociere. Exemplu: R Director Nume de fiier Fiier

Fig. 2.28. Identificarea unui fiier. Un director mpreun cu un nume de fiier desemneaz toate fisierele din director cu acelasi nume si diferite extensii.

Agregarea

Agregarea este o form particular de asociere care exprim o relatie "compus - componeni". O clasa are anumite parti, care insa au o existenta independenta. Agregarea este desemnat printr-un un mic romb amplasat alturi de clasa agregat:

Un document are mai multe paragrafe i fiecare paragraf este alctuit din mai multe fraze.

Fiecare main are un motor.

Agragatul nu poate exista fara una dintre componente Distrugerea agregatului nu conduce la distrugerea componentelor

Compunerea Compunerea este un caz particular de agregare. Exprima o agregare prin continere fizica.

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!

Relaia de compunere este semantic echivalent cu considerarea componenilor ca atribute ale clasei agregat:

Astfel, relatia de mai sus este echivalenta cu:

Generalizarea
Ierarhiile de clase sunt bazate pe noiunile de clasificare, generalizare i specializare.

Generalizarea const n factorizarea elementelor comune (atribute, operaii i constrngeri) ale unui ansamblu de clase ntr-o clas mai general, numit superclas. Clasele sunt ordonate ntr-o clasa mai general: ierarhie. Sgeata care simbolizeaz generalizarea ntre dou clase puncteaz ctre

In ierarhia din figura de mai sus, fiecare clas (exceptnd clasa rdcin) are o singur super-clas. Reprezentarea grafic corespunde unui arbore, numit i arborele de motenire. 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 motenire. Specializarea permite capturarea particularitilor unui ansamblu de obiecte, nereprezentate prin clasele existente. Noile caracteristici sunt definite ntr-o clas nou, sub-clas a uneia sau mai multor clase existente. Specializarea este o tehnic foarte eficient de extensie coerent a unui ansamblu de clase existente. Noile cerine sunt ncapsulate n sub-clase care extind funciile existente. De exemplu, dac ntr-o aplicaie apare necesar s se reprezinte "bicicleta" ca vehicul de transport, n plus fa de cele reprezentate n ierarhia de mai sus, atunci se va defini o clas nou, sub-clas a clasei "Vehicul terestru", n care vor fi definite particularitile bicicletei ca vehicul terestru. Fiecare sub-clas a unei ierarhii motenete atributele i operaiile definite n clasele aflate pe calea de la clasa radacin la subclasa respectiva, fiind cu att mai specializat cu ct se afl mai departe de radacin. Motenirea este o tehnic oferit de limbajele de programare pentru a construi o clas plecnd de la una sau mai multe clase, partajnd atribute, operaii i uneori constrangeri n interiorul unei ierarhii de clase. Clasele copil motenesc caracteristicile claselor printe. Atributele i operaiile

10

declarate n clasele printe sunt accesibile n clasele copil, ca i cum ar fi declarate local. Motenirea este o modalitate de a realiza clasificarea. Relaia de generalizare definit n UML este mai abstract dect relaia de motenire care exist n limbajele de programare obiect, cum ar fi C++. Ea este mai adecvat etapei de analiz (exista si intre cazuri de utilizare!). Decizia asupra modalitii de a realiza generalizarea se ia mai trziu, n etapa de proiectare. Prin clasificare i generalizare, universul problemei este divizat in pari independente care grupeaz obiectele prin afinitate. Modificarea unei pri antreneaz un minimum de modificri ale celorlalte, fapt pus n eviden de arborele de motenire: fiecare subarbore grupeaz obiectele care mpart caracteristicile rdcinii sale. De exemplu, adugarea de noi caracteristici la clasa Articol-de-lux (figura )nu afecteaz clasa mbrcminte i nici subclasele acesteia, dar extinde automat caracteristicile subclaselor clasei Articol-de-lux.

Uneori, anumite clase sunt create doar ca surse de motenire 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 proprietile electrice (de exemplu, tensiunea de alimentare, consumul i altele), comune calculatorului i articolelor electrocasnice.

11

Notatie:

Numele operatiilor abstracte (fara implementare) se scriu tot in italic.

Navigabilitate Navigabilitatea desemneaza necesitatea ca un obiect al unei clase sa acceseze un alt obiect navigand de-a lungul unei legaturi. Navigabilitatea se reprezinta printr-o sageata la capatul navigabil al asocierii. Obiectul de la capatul navigabil este accesibil unui obiect de la cealalata extremitate. Invers, nu. Urmatoarea diagrama de clase modeleaza o aplicatie care permite plati pe baza de ordine ale clientilor.

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. Asocierile fara navigabilitate sunt considerate bi-directionale. Navigabilitatea este un element optional. Se adauga pentru a imbunatati claritatea diagramei. 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.

Folosirea diagramelor de clase: 1) In modelarea conceptuala (analiza oriectata obiect) Clasele corespund conceptelor / obiectelor (entitatilor) din domeniul aplicatiei Nu exista neaparat o legatura directa cu clasele de obiecte utilizate in implementare si deci diagrama de clase nu face parte din modelul structural al sistemului - De regula, nu sunt definite operatiile din clase prin tipurile parametrilor si nici tipul atributelor.

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. 2) Pentru specificarea software Se pune accent pe interfata si nu pe implementare Adesea se foloseste cuvantul tip in legatura cu interfata unei clase: un tip poate fi implementat de mai multe clase si o clasa poate implementa mai multe tipuri 3) In proiectarea de detaliu si implementare
-

Diagramele contin clase de obiecte intr-un anumit limbaj de programare Diagramele fac parte din modelul structural al sistemului

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 nume = Vanzari

d2:Departament nume = A&C

p:Persoana nume=... IDangajat=1234 5 titlu=dir.vanzari

:Informatii: adresa=...

O diagrama de obiecte este o instanta a unei diagrame de clase sau partea statica a unei diagrame de interactiune.

O diagrama de interactiune adauga la o diagrama de obiecte mesajele care sunt schimbate intre obiecte.

16

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

  • Intrebari - Raspunsuri C# @work
    Intrebari - Raspunsuri C# @work
    Document30 pagini
    Intrebari - Raspunsuri C# @work
    andra.jora.92
    100% (1)
  • Lab 1
    Lab 1
    Document7 pagini
    Lab 1
    Augusta Bucataru
    Încă nu există evaluări
  • Proiect de An AMOO
    Proiect de An AMOO
    Document39 pagini
    Proiect de An AMOO
    Raducan Alina
    100% (1)
  • Pam Exam
    Pam Exam
    Document2 pagini
    Pam Exam
    Culea Constantin
    Încă nu există evaluări
  • Lab. 3
    Lab. 3
    Document5 pagini
    Lab. 3
    Cristina Florea
    Încă nu există evaluări
  • TS Lab 1
    TS Lab 1
    Document9 pagini
    TS Lab 1
    GG
    Încă nu există evaluări
  • SOMIPPRaspunsuri
    SOMIPPRaspunsuri
    Document82 pagini
    SOMIPPRaspunsuri
    Urmanschi Mihail
    Încă nu există evaluări
  • Lab 1 Somipp
    Lab 1 Somipp
    Document7 pagini
    Lab 1 Somipp
    TîmburŞtefan
    Încă nu există evaluări
  • Uml
    Uml
    Document13 pagini
    Uml
    Georgiana Dumitru
    Încă nu există evaluări
  • Pam Examen
    Pam Examen
    Document7 pagini
    Pam Examen
    Daniil
    Încă nu există evaluări
  • Lab3 AMOO - Diagrama de Secventa
    Lab3 AMOO - Diagrama de Secventa
    Document8 pagini
    Lab3 AMOO - Diagrama de Secventa
    Dan
    Încă nu există evaluări
  • Diagrama de Clase
    Diagrama de Clase
    Document12 pagini
    Diagrama de Clase
    simaioan
    Încă nu există evaluări
  • PS TS
    PS TS
    Document14 pagini
    PS TS
    Victor Turculet
    Încă nu există evaluări
  • Proiectarea Sistemelor Informatice (Proiect)
    Proiectarea Sistemelor Informatice (Proiect)
    Document7 pagini
    Proiectarea Sistemelor Informatice (Proiect)
    Isabella
    Încă nu există evaluări
  • PAm Examen-1
    PAm Examen-1
    Document12 pagini
    PAm Examen-1
    Eric Semeniuc
    Încă nu există evaluări
  • Lab4 BDC
    Lab4 BDC
    Document17 pagini
    Lab4 BDC
    Ivan
    Încă nu există evaluări
  • Examen La POO
    Examen La POO
    Document11 pagini
    Examen La POO
    Luca Dorina
    Încă nu există evaluări
  • Lab5 AMOO
    Lab5 AMOO
    Document12 pagini
    Lab5 AMOO
    Сергей Борта
    Încă nu există evaluări
  • Examen La POO
    Examen La POO
    Document30 pagini
    Examen La POO
    Anastasia Chicu
    Încă nu există evaluări
  • Lab4 AMOO
    Lab4 AMOO
    Document6 pagini
    Lab4 AMOO
    Сергей Борта
    Încă nu există evaluări
  • SecrieruAndrei Amoo Lab5
    SecrieruAndrei Amoo Lab5
    Document6 pagini
    SecrieruAndrei Amoo Lab5
    andy secrieru
    Încă nu există evaluări
  • Despre UML
    Despre UML
    Document51 pagini
    Despre UML
    Danu Botnari
    Încă nu există evaluări
  • Git Laborator 1
    Git Laborator 1
    Document1 pagină
    Git Laborator 1
    Daniil
    Încă nu există evaluări
  • SOMIPP
     SOMIPP
    Document6 pagini
    SOMIPP
    Damean Alexandra
    Încă nu există evaluări
  • Proiect de Curs BD Exemplu-Unlocked
    Proiect de Curs BD Exemplu-Unlocked
    Document60 pagini
    Proiect de Curs BD Exemplu-Unlocked
    Amarfii Sergiu
    Încă nu există evaluări
  • Amo 5
    Amo 5
    Document8 pagini
    Amo 5
    Fil Gorea
    Încă nu există evaluări
  • Lab 2 Pam
    Lab 2 Pam
    Document5 pagini
    Lab 2 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • Sintaxa UML
    Sintaxa UML
    Document23 pagini
    Sintaxa UML
    Doru Barbu
    Încă nu există evaluări
  • Lab7 AMOO
    Lab7 AMOO
    Document11 pagini
    Lab7 AMOO
    Сергей Борта
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document4 pagini
    Lab 3
    Rosca Doinita
    Încă nu există evaluări
  • AMOO Lab2.Use Case
    AMOO Lab2.Use Case
    Document5 pagini
    AMOO Lab2.Use Case
    Dorin Gribincea
    Încă nu există evaluări
  • SOMIPP Lab5
    SOMIPP Lab5
    Document4 pagini
    SOMIPP Lab5
    X3 KTO
    Încă nu există evaluări
  • Examen TIDPP
    Examen TIDPP
    Document3 pagini
    Examen TIDPP
    Rosca Doinita
    Încă nu există evaluări
  • TW Atestare
    TW Atestare
    Document4 pagini
    TW Atestare
    yamahahohnerc70
    Încă nu există evaluări
  • PSLab 3
    PSLab 3
    Document14 pagini
    PSLab 3
    Victor Turculet
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document22 pagini
    Lab 1
    Nicoletta Ciudin
    Încă nu există evaluări
  • Lab1 Git Ro
    Lab1 Git Ro
    Document17 pagini
    Lab1 Git Ro
    Rosca Doinita
    Încă nu există evaluări
  • Raport Cucu Eugen Lab.6
    Raport Cucu Eugen Lab.6
    Document9 pagini
    Raport Cucu Eugen Lab.6
    Cucu Eugen
    Încă nu există evaluări
  • Amoo 7
    Amoo 7
    Document4 pagini
    Amoo 7
    AlionaCrigan
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document7 pagini
    Lab 5
    Dorin Nicoara
    Încă nu există evaluări
  • Teste Poo
    Teste Poo
    Document23 pagini
    Teste Poo
    Ionut Vacariu
    Încă nu există evaluări
  • Amoo 2
    Amoo 2
    Document8 pagini
    Amoo 2
    AlionaCrigan
    Încă nu există evaluări
  • Laborator 2 POO
    Laborator 2 POO
    Document8 pagini
    Laborator 2 POO
    Mihali Ionel
    Încă nu există evaluări
  • Laboratorul 5
    Laboratorul 5
    Document7 pagini
    Laboratorul 5
    ion
    Încă nu există evaluări
  • AMOO Lab3
    AMOO Lab3
    Document6 pagini
    AMOO Lab3
    sergiu
    Încă nu există evaluări
  • Lab 7 Somipp
    Lab 7 Somipp
    Document5 pagini
    Lab 7 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Teorie Examen BD SQL
    Teorie Examen BD SQL
    Document2 pagini
    Teorie Examen BD SQL
    HaineOriginaleDeFirma
    Încă nu există evaluări
  • Laboratoare Poo
    Laboratoare Poo
    Document54 pagini
    Laboratoare Poo
    Benchea Bogdan
    Încă nu există evaluări
  • Raspunsuri AC
    Raspunsuri AC
    Document10 pagini
    Raspunsuri AC
    Anastasia
    Încă nu există evaluări
  • Vasilachi Igor Lab.6 BDC v1
    Vasilachi Igor Lab.6 BDC v1
    Document5 pagini
    Vasilachi Igor Lab.6 BDC v1
    VadimPlasiciuc
    Încă nu există evaluări
  • Lab.6 FC
    Lab.6 FC
    Document3 pagini
    Lab.6 FC
    Cristina Florea
    Încă nu există evaluări
  • PAM
    PAM
    Document3 pagini
    PAM
    nicu zuza
    Încă nu există evaluări
  • 2 UML Diagrame de Clase
    2 UML Diagrame de Clase
    Document16 pagini
    2 UML Diagrame de Clase
    Андрей Пырлог
    Încă nu există evaluări
  • Diagramele de Clase
    Diagramele de Clase
    Document10 pagini
    Diagramele de Clase
    Ana Commena
    Încă nu există evaluări
  • Analiza Orientata Obiect A Aplicatiilor Utilizand UML - WWW - Top-Referat
    Analiza Orientata Obiect A Aplicatiilor Utilizand UML - WWW - Top-Referat
    Document7 pagini
    Analiza Orientata Obiect A Aplicatiilor Utilizand UML - WWW - Top-Referat
    Roman Garabadjiu
    Încă nu există evaluări
  • Trei
    Trei
    Document26 pagini
    Trei
    Valeria Moraru
    Încă nu există evaluări
  • Seminar 3 - Diagrama Claselor
    Seminar 3 - Diagrama Claselor
    Document17 pagini
    Seminar 3 - Diagrama Claselor
    avalentina_3
    Încă nu există evaluări
  • Conspect Pe Scurt
    Conspect Pe Scurt
    Document10 pagini
    Conspect Pe Scurt
    Леся Гагауз
    Încă nu există evaluări
  • Seminar 4 - Diagrama de Obiecte de Publicat
    Seminar 4 - Diagrama de Obiecte de Publicat
    Document5 pagini
    Seminar 4 - Diagrama de Obiecte de Publicat
    avalentina_3
    Încă nu există evaluări
  • Lectia5 Mostenire
    Lectia5 Mostenire
    Document18 pagini
    Lectia5 Mostenire
    DimaMuchi
    Încă nu există evaluări