Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

CATEGORII DOCUMENTE





AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Diagrame de clase

java

+ Font mai mare | - Font mai mic







DOCUMENTE SIMILARE

Trimite pe Messenger
CREAREA DE OBIECTE TABLOU
Clase incluse
TESTAREA TASTELOR SHIFT, CONTROL SI ALT
Problematica Design Patterns in ABAP Objects
AWT
CICLURI ETICHETATE
APLICATII DE RETEA - JAVA
Programare bazata pe evenimente - Evenimente Swing
Operatori
EXPRESII SI OPERATORI

Diagrame de clase

 

Clase

Ø      O clasa de obiecte reprezinta un grup de obiecte care au:



o       proprietati similare (atribute),

o       un comportament comun (operatii),

o       relatii comune cu alte obiecte si

o       o aceeasi semantica.

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

Ø      Semantica asociata unei clase corespunde unui punct de  vedere. Obiectele din lumea reala pot fi abstractizate in mod diferit. De exemplu, un cal poate fi incadrat in clasa mijloacelor de transport terestre sau in clasa animalelor.

In UML, o clasa este reprezentata printr-un dreptunghi alcatuit din trei compartimente care contin: numele clasei, atributele, operatiile. Compartimentul atributelor si cel al operatiilor pot fi omise.

                        Nume clasa

                      Atribute

                      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.

 

Visibility and Scope

Clasa detaliata

Ø      Relatiile dintre clase sunt abstractii ale relatiilor existente intre obiecte. Fiecarei familii de legaturi intre obiecte ii corespunde o relatie intre clasele obiectelor.

Ø      Obiectele sunt instante ale claselor,

Ø      Legaturile intre obiecte sunt instante ale relatiilor dintre clase.


   Mihai:Persoana                                         IBM:Firma             


                                                                                                        legaturi

   Maria:Persoana                                    A&C:Firma                      

                                                                                                       


        Persoana                                                Firma

                                     A lucra  

                                                                                                       asocieri

                                    

       Universitate          A studia                       Student

                

            Legaturi si asocieri.

 

Ø      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 relatii existente intre obiecte. De exemplu, asocierea “A lucra” dintre clasele Persoana si Firma reprezinta  toate legaturile posibile dintre obiecte ale clasei Persoana si obiecte ale clasei Firma:

Ø      Extremitatea unei asocieri este numita rol.

o       Rolul exprima felul in care o clasa 'vede' o alta clasa in cadrul unei asocieri. De exemplu, in asocierea dintre clasele Firma si Persoana, orice obiect al clasei Persoana este un “Angajat” al unei Firme, care este reprezentata printr-un “Patron” .

o       Numele de rol sunt amplasate la cele doua extremitati ale asocierii:

        Firma          Patron                                                       Persoana

                                                                           Angajat

                                                            

                                      Nume de rol.

Ø      Numele de rol sunt optionale. Numai numele asocierii este obligatoriu pentru o asociere.

Daca intre doua clase exista o singura asociere, numele asocierii este suficient pentru a preciza relatia. Numele de rol se folosesc de regula atunci cand intre doua clase exista 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                                                   Persoana

                                                                      Lucreaza cu

                                                            

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 doua clase. Asocierile de aritate superioara se reprezinta cu ajutorul unui romb, ca in figura de mai jos. De exemplu, asocierea ilustrata in figura urmatoare exprima faptul ca “Proiectele sunt implementate prin Programe scrise in Limbaje de programare”.




               Proiect                                              Limbaj


                                      Program

       Asociere ternara.

 

 

 

Multiplicitatea asocierilor

Fiecare rol al unei asocieri poate purta o indicatie de multiplicitate care arata cate 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 multi angajati. O persoana poate lucra la o singura firma. Multiplicitatea poate fi  'unu', 'mai multe '(*) sau un subansamblu de intregi pozitivi: 1, 0..1, M..N, * sau 0..* (de la zero la mai multi), 1..*.

  Persoana

 

  Firma         

 
                   Patron                               1..*

               1                                 Angajat      

 Multiplicitatea asocierilor.

Ø      Multiplicitatea unei asocieri exprima o constrangere valabila pe toata durata de existenta a obiectelor claselor asociate. Multiplicitatile nu trebuie sa fie considerate in timpul regimurilor tranzitorii,  de creare sau de distrugere a obiectelor.

EXEMPLE:à

Asocieri cu atribute

Asocierile pot fi caracterizate prin atribute. In figura 2.23, “Nota” este un atribut al asocierii existente intre clasa “Student” si clasa “Tema”.
Asocierea dintre clasa Student si clasa Tema este de tip N la N. Fiecare student realizeaza individual o tema data iar nota obtinuta nu poate fi reprezentata nici ca atribut al studentului (caci un student efectueaza mai multe teme), nici ca atribut al temei (caci fiecare student primeste o nota pentru aceeasi tema). Nota este un atribut al relatiei dintre clasa studentilor si clasa temelor.

  Student

 

  Tema

 

 
                                    1..*   Realizare         1..*

                 

 

   Nota

 
                          

                               

                                    Asocieri cu atribute.

Ø      O asociere cu atribute este numita asociere atributata. Ea poate fi reprezentata printr-o clasa cu atribute si operatii proprii. O asemenea clasa, numita uneori clasa-associere, este atasata asocierii printr-o linie punctata:


VEZI EXEMPLU CURS (Angajat, Departament, Proiect)!

Ø      Asocierile pot fi constranse. O constrangere este o regula care trebuie sa fie implementata pentru ca asocierea sa fie valida. Constrangerile sunt scrise intre acolade. De exemplu, instantele clasei B asociate unei instante a clasei A trebuie sa fie ordonate:

                                                       0..*

    A

 

    B

 
                                                                                                 

Asociere constransa.

Ø      O asociere poate lega o clasa de ea insasi. O asemenea asociere este numita asociere reflexiva. Un exemplu  de asociere reflexiva este cel ilustrat in figura urmatoare. Fiecare persoana are zero, unu sau doi parinti si zero sau mai multi copii. Numirea rolurilor este in acest caz esentiala pentru claritatea diagramei.

                  Parinti

  Persoana

                            

 
                      2                                   Asociere reflexiva    

               0.. *   Copii

Ø      Asocierile 1 la mai multi si mai multi la mai multi pot fi calificate. Calificarea este specificata printr-o cheie atasata rolului clasei de plecare.




 

       A

 

 

      B

 


           Fig. 2.27. Calificarea asocierilor

Fiecare instanta a clasei A impreuna cu valoarea cheii identifica un sub-ansamblu al instantelor clasei B, care participa la asociere. Exemplu:

  Director

 

       Fisier

 

  Nume de fisier

 
R

      Fig. 2.28. Identificarea unui fisier.

Un director impreuna cu un nume de fisier desemneaza toate fisierele din director cu acelasi nume si diferite extensii.

 

Agregarea

Ø      Agregarea este o forma particulara de asociere care exprima un cuplaj mai strans intre clase. Una dintre clase joaca un rol mai important decat cealalta in relatie. Agregarea permite reprezentarea relatiilor de tip 'master-slave', 'client-server' si 'compus - componenti'. Agregarea este desemnata printr-un un mic romb amplasat alaturi de clasa agregat (figura 2.29):


                     Clase agregat.

Un document are mai multe paragrafe si fiecare paragraf este alcatuit din mai multe fraze. In cazul in care multiplicitatea agragatului are valoarea 1, distrugerea agregatului antreneaza distrugerea componentelor.

 

   Masina

 

     Motor

 
                    1       1

                   

Fiecare masina contine un motor.

Click To expand
 

Compunerea (Composition)

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

   Agregat

 

     Componente

 
                    0..*

 


             

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!


 

Ø      Relatia de compunere este semantic echivalenta cu considerarea componentilor ca atribute ale clasei agregat:

Astfel, relatia de mai sus este echivalenta cu:

 Masina

 Motor

 
                

                      


Ø      O asociere este de tip agregat atunci cand:

- obiectele unei  clase fac parte din obiectele unei alte clase;

- atributele unei clase se propaga in atributele unei alte clase;

- o actiune asupra obiectelor unei clase implica o actiune asupra obiectelor   unei alte clase;

- obiectele unei clase sunt subordonate obiectelor unei alte clase.

 

Generalizarea

Ierarhiile de clase sunt bazate pe notiunile de clasificare, generalizare si specializare.

Ø      Generalizarea consta in factorizarea elementelor comune (atribute, operatii si constrangeri) ale unui ansamblu de clase intr-o clasa mai generala, numita superclasa. Clasele sunt ordonate intr-o  ierarhie. Sageata care simbolizeaza generalizarea intre doua clase puncteaza catre clasa mai generala:


 Elicopter

 

         Vehicul

 

        Vehicul aerian

 

 Vehicul terestru

 
                                                      

   Avion

 

   Camion

 

  Masina

 
                                                                                                                                                                



                                                                                                                                     

                       O ierarhie de clase.

In ierarhia din figura de mai sus, fiecare clasa (exceptand clasa radacina) are o singura super-clasa. Reprezentarea grafica corespunde unui arbore, numit si arborele de mostenire. Clasele pot avea mai multe super-clase. In acest caz, generalizarea este numita multipla iar ierarhia de clase se reprezinta printr-un graf , numit si graful de mostenire.

 

Ø      Specializarea permite capturarea particularitatilor unui ansamblu de obiecte, nereprezentate prin clasele existente. Noile caracteristici sunt definite intr-o clasa noua, sub-clasa a uneia sau mai multor clase existente. Specializarea este o tehnica foarte eficienta de extensie coerenta a unui ansamblu de clase existente. Noile cerinte sunt incapsulate in sub-clase care extind functiile existente. De exemplu, daca intr-o aplicatie apare necesar sa se reprezinte 'bicicleta' ca vehicul de transport, in plus fata de cele reprezentate in ierarhia de mai sus, atunci se va defini o clasa noua, sub-clasa a clasei 'Vehicul terestru', in care vor fi definite particularitatile bicicletei ca vehicul terestru. Fiecare sub-clasa a unei ierarhii mosteneste atributele si operatiile definite in clasele aflate pe calea  de la clasa radacina la subclasa respectiva,  fiind cu atat mai specializata cu cat se afla mai departe de  radacina.

 

Ø      Mostenirea este o tehnica oferita de limbajele de programare pentru a construi o clasa plecand de la una sau mai multe clase, partajand atribute, operatii si uneori constrangeri in interiorul unei ierarhii de clase. Clasele copil mostenesc caracteristicile claselor parinte. Atributele si operatiile declarate in clasele parinte sunt accesibile in clasele copil, ca si cum ar fi declarate local. Mostenirea este o modalitate de a realiza clasificarea.

Ø      Relatia de generalizare definita in UML este mai abstracta decat relatia de mostenire care exista in limbajele de programare obiect, cum ar fi C++. Ea este mai adecvata etapei de analiza (exista si intre cazuri de utilizare!). Decizia asupra modalitatii de a realiza generalizarea se ia mai tarziu, in etapa de proiectare.

Prin clasificare si generalizare, universul problemei este divizat in parti independente  care grupeaza   obiectele  prin  afinitate.  Modificarea   unei   parti antreneaza  un minimum de modificari ale celorlalte, fapt pus  in evidenta  de  arborele de mostenire: fiecare  subarbore  grupeaza obiectele   care  impart  caracteristicile  radacinii  sale. De exemplu, adaugarea de noi caracteristici la clasa Articol-de-lux (figura  )nu afecteaza clasa imbracaminte si nici subclasele acesteia, dar extinde automat caracteristicile subclaselor clasei Articol-de-lux. 


Uneori, anumite clase sunt create doar ca surse  de mostenire pentru alte clase; ele sunt clase  abstracte. De  exemplu,  clasa Articol  este  o clasa abstracta daca nu  caracterizeaza  complet nici   un   obiect  din  universul  problemei. Clasa Articole-electrice a fost introdusa pentru a factoriza proprietatile electrice (de exemplu, tensiunea de alimentare, consumul si altele), comune calculatorului si articolelor electrocasnice.


                                

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.

Class diagram

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.

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.

- 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


      Diagrame de obiecte

O diagrama de obiecte reda un set de obiecte si legaturile dintre ele la un moment dat.

Ø      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.

Generarea automata a codului pornind de la diagramele de clase à CURS








Politica de confidentialitate

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 672
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2019 . All rights reserved

Distribuie URL

Adauga cod HTML in site