1. Tipuri de diagrame

  • Diagrame cazurilor de utilizare (use case diagram)
  • Diagrame de clase (class diagram)
  • Diagrame de comportament (behavior diagrams)

                <> Diagrame de stari (statechart diagram)

                <> Diagrame de activitati (activity diagram)

                <> Diagrame de interactiune (interaction diagram)

                          . Diagrame de secventa (sequence diagram)

                          . Diagrame de colaborare (collaboration diagram)

  • Diagrame de realizare (implementation diagrams)

            <> Diagrame de componente (component diagram)

            <> Diagrame de plasare (deployment diagram)

 - Fiecare din aceste diagrame detalizeaza si concretizeaza diferite reprezentari despre modelul unui sistem complex in termenii limbajului UML.

 

2. Diagrama cazurilor de utilizare (use case diagram)

          Modelarea vizuala in UML poate fi reprezentat xa un oarecare proces de lansare pe niveluri de la cel mai general si abstract model conceptual al sistemului initial catre modelul logic si mai apoi fizic, ce corespunde unui sistem de program. Pentru atingerea acestui scop de la inceput se creaza un model in forma de diagrama cazurilor de utilizare care descrie destinatia functionala a sistemului sau cu alte cuvinte descrie ceea ce sistemul va executa in procesul sau de functionare. Diagrama cazurilor de utilizare reprezinta un model initial conceptual al unui sistem in procesul de proiectare si exploatare.

Proiectarea unei diagrame a cazurilor de utilizare urmareste scopurile:

  • determinarea limitelor comune si a conextului domeniului de modelare la etapele initiale de proiectare a unui sistem
  • formularea cerintelor comune catre comportare functionala s sistemului proiecat
  • elaborarea modelului initial conceptual al unui sistem pentru detalierea de mai tirziu in forma modelelor logice si fizice
  • pregatirea documentatiei initiale pentru interactiunea elaboratorilor unui sistem cu clientii si utilizatorii.   

 

3. Cazul de  utilizare 

Cazul de utilizare se noteaza cu o elipsa in interiorul careia se contine denumirea prescurtata sau numele in forma de verb cu cuvinte explicative.

Scopul cazului de utilizare consta in determinarea aspectului terminal sau fragmentului de comportare a unei entitati fara desfasurarea structurii interne a acestei entitati.În calitate de aşa entitate poate fi un sistem iniţial sau un element al modelului care dispune de comportament propriu, precum este subsitemul sau clasa în modelul unui sistem.

 Exemple de cazuri de utilizare: verificarea starii contului curent al clientului, intocmirea comenzii la procurarea marfii, obtinerea informatiei suplimentare despre solvabilitatea clientului, reprezentarea formei grafice la ecranul monitorului.

 

4. Actori 

Actorul reprezinta orice entitate externa sistemului modelat, care colaboreaza cu sistemul si utilizeaza posibilitatile lui functionale pentru atingerea anumitor scopuri si pentru rezolvarea problemelor particulare. Se noteaza grafic printr-un <<omulet>> syb care se indica numele actorului.

Exemplu de actori: clientul unei banci, angajatul unei banci, vinzatorul unui magazin, managerul sectiei de vinzare, pasagerul unui avion, conducatorul auto, administratorul unui hotel, celularul si alte intitati, care au legatura cu modelul conceptual care corespunde domeniului de lucru.

 

5. Interfete

Interfata (interface) specifica parametrii modelului care sunt vizibili din afara fara indicarea structurii lor interne. Interfetele definesc o totalitate de operatii ce asigura serviciile necesare sau functionalitatea pentru actori. Este reprezentata printr-un cerculet mic linga care este indicat numele.

Simbolul grafic al unei interfete aparte in diagrama poate fi conectat cu cazul de utilizare ce il sustine cu o linie neintrerupta (continua). Linia neintrerupta indica ca cazul de utilizare legat cu interfata trebuie sa realizez toate operatiile necesare pentru aceasta interfata, sau poate si mai mult. Interfetele pot fi legate cu cazurilie de utilizare si cu o linie intrerupta cu o sageata, cea ce inseamna ca cazul de utilizare specifica numai acel serviciu, care este necesar pentru realizarea interfetei date.

Importanta interfetelor consta in faptul ca ele definesc noduri de jonctiune in sistemul proiectat, ce este necesar pentru organizarea lucrului colectiv asupra proiectului 

 

6. Legaturile in diagrama a cazurilor de utilizare

 - Intre componentele diagramei cazurilor de utilizare pot sa existe diferite legaturi care descriu colaborarea exemplarelor unor  actori si cazurilor de utilizare cu exemplarele altor actori si cazuri.

 - In UML sunt citeva tipuri standarte de relatii intre actori si cazuri de utilizare:

  • relatia de asociere (association relationship)
  • relatia de extindere (extend relationship)
  • relatia de generalizare (generalization relationship)
  • relatia de cuplare (include relationship)
  •  

7. Relatia de asociere

- Relatia de asociere este  o notiune fundamentala in UML si mai mult sau mai putin se utilizeaza la crearea tuturor modelelor grafice in forma diagramelor canonice.

 - Cu privire la diagrama cazurilor de utilizare relatia de asociere  specifica rolul deosebit al actorului in cazul de utilizare aparte. Aceasta relatie stabileste ce rol joaca actorul la colaborare cu exemplarul cazului de utilizare. Se noteaza cu o linie neitrerupta intre actor si cazul de utilizare (poate sa aiba numele si multiplicitatea)

 - Multiplicitatea asocierii se indica linga notatia componentului diagramei care este membru acestei asocieri. Multiplicitatea caracterizeaza cantitatea totala de exemplare concrete al unui comportament anumit care pot fi in calitate de elemente acestei asocieri. Cu privire la diagrama cazului de utilizare multiplicitatea are o notatie specifica in forma de una sau mai multe cifre si posibil simbolul special << * >>

 - Pentru diagrama cazurilor de utilizare mai raspindite sunt patru forme de inscriere a multiplicitatii relatiilor de asociere:

  • Numar intreg nenegativ (inclusiv 0) este destinat indicatiei multiplicitatii care este strict fixata pentru elementul corespunzator asocierii.
  • Doua numere intrege pozitive, separate cu doua puncte si scrise in forma: << primul_numar..al_doilea_numar>>. Aceasta notatie corespunde unui intervat de numere intregi (primul numar poate sa fie  = 0)
  • Doua simboluri separate cu doua puncte. Primul este un  numar pozitiv intreg sau 0, iar al doilea este simbolul special << * >> (* - numar arbitrar intreg pozitiv cu valoare necunoscuta initial)
  • Simbolul << * >>, care este prescurtarea inregistrarii intervalului <<0..*>> Cantitatea de exemplare ale acestui component poate fi oricare numar intreg pozitiv.

 - Daca multiplicitatea asocierii nu este indicata atunci implicit se ia valoarea egala cu 1.

 

8. Relatia de extindere

 - Defineste interconeziunea exemplarelor cazului de utilizare cu cazul general, proprietatile caruia sunt definite pe baza modului de uniune a exemplarelor de date.

 - Relatia de extindere indica acel fapt ca unul din cazurile de utilizare poate fi conectat la comportamentul sau care-va  comportament adaugator, definit pentru un alt caz de utilizare.

 

9. Relatia de generalizare

 - Este folosita pentru indicarea faptului ca care-va caz de utilizare A poate fi generalizat la cazul de utilizare B.

 - Intre actori aparte deasemenea poate exista relatia de genralizare

10. Relatia de tip include

 - Relatia de tip include in doua zcazuri de utlizare indica un comportament stabili pentru un caz de utilizare este inclus ca comportament compus in consecutivitatea comportamentului a altui caz de utilizare.


11. Exemplu de construire a diagramei cazurilor de utilizare.

Ex.: Vinderea marfurilor dupa catalog:

 - Actori: vinzator si cumparator

 - Fiecare actor interactioneaza cu sistemul si este utilizatorul lui ,adica ambii se adreseaza la serviciul respectiv "A perfecta comanda de cumparare a marfii"

 - Structura de baza poate include doi actori si un siongur caz de utilizare:

 - Etapa urmatoare in diagrama este "A perfecta comanda de cumparare a marfii" poate fi precizat pe baza introducerii a patru cazuri de utilizare adaugatoare. Actiunile adaugate desfasoara comportamentul cazului de utilizare initial si deaceia intre ele v-a exista relatia de tip include

 - Diagrama cazurilor de utilizare poate fi mai detaliata si concretizarea detaliilor pentru realizarea urmatoare: "Perfectarea comenzii de achizitionare a calculatorului"

 - Construirea diagramei cazurilor de utilizare este prima etapa a procesului analizei al OO si proiectarii, scopul caruia este de reprezentat totalitatea de cerei la comportamentul sistemului proiectat.

Specificarea de cereri la sistemul proiectat in forma de diagrama a cazurilor de utlizare reprezinta un model independet, care se numeste modelul cazurilor de utilizare in UML, si are un nume propriu standart sau stereotip "UseCaseModel"


12. Diagrama de clase (class diagram)

 - Locul central in APOO il ocupa elaborarea modelului logic al unui sistem in forma diagramei de clase.

 - Diagrama de clase se utilizeaza pentru reprezentarea structurii statice a unui model de sistem in terminologia claselor programarii OO. Diagrama de clase poate refl;ecta diferite legaturi intre entitatile domeniului de obj. si descriu structura lor interna si tipurile de relatii.

 - Diagrama de clase reprezinta un graf cu noduri care sunt legate prin diferite tipuri de relatii de structura.

Clasa (class)  in UML defineste totalitatea de obj. care au aceeasi structura, comportament si relatii cu obj. din alte clase:

Elementul obligatoriu in notatia clasei este numele ei. Varianta finala a diagramei contine descrierea completa a claselor care consta din cele trei sectiuni. Uneori se utilizeaza si a patra sectiune ce contine caracter informativ.

 - daca sectiunea atributelor si operatiilor clasei nu este completat, in notatia clasei ea se evidentiaza cu o linie orizontala pentru a deosebi clasa de alte elemente UML

a) - sunt indicate doar atributele clasei

b) - sunt indicate numai operatiile clasei

c) - suplimentar este indicata sectiunea a patra (informativa / de exceptii)


13. Numele  clasei

 - Trebuie sa fie unic in cadrul pachetului, care este descris ca o totalitate de diagrame de clase.

 - Se indica in prima sectiune de sus al dreptunghiului

 - Se scrie in centrul sectiunii, cu caracter bold si incepe cu majuscula.

 - Numele claselor formeaza dictionarul domeniului pentru APOO

 - Clasa poate sa nu aiba exemplare(obiecte), in asa caz devine abstracta si pentru notarea denumirii clasei se folosesc caracter italice.

 - Cind se indica la care pachet se refera clasa se utilizeaza un simbol special de divizare << :: >>. Sintaxa va fi: <Nume_pachet>::<Nume_clasa> (Banca::Cont)


14. Atributele clasei

- Se inscriu in a doua sectie a dreptunghiului clasei

 - Fiecare atribut de clasa ii corespunde rindul textului, care este format din specificatorul de vizibilitate a atributului, numelui lui si, posibil sensul final

<<specificatorul de vizibilitate>> <<numele atributului>> [multiplicitate]

 - Specificatorul de vizibilitate poate fi omis. (este tratat ca <<public>> sau <<privat>>(depinde de limbaj))

 - Numele atributului este unic

 - Multiplicitate ale atributului

  • [0..1] - multiplicitatea atributului poate fi 0 sau 1
  • [0..*] - multiplicitatea atributului poate fi >= 0 , se mai noteaza [*]
  • [1..*] - multiplicitatea atributului poate fi >= 1
  • [1..5] - multiplicitatea atributului primeste semnificatie intre 1 si 5
  • [1..3,5,7] - multiplicitatea atributului poate fi 1,2,3,5,7
  • [1..3,7.. 10] - multiplicitatea atributului poate fi 1,2,3,7,8,9,10
  • [1..3,7..*] - multiplicitatea atributului poate fi 1,2,3, si >= 7
  • Daca nu este specificata atunci multiplicitatea este 1

 - Tipul atributului uneori se specifica in dependenta de limbajul de programare

 - Sublinierea rindului atributului inseamna ca acesta poate avea o submultime de valori

 - Aliniat - proprietatea este utilizata pentru indicarea valorilor atributului, care nu poate fi schimbata in program

 - Absenta aliniatului - proprietatea este utilizata pentru indicarea valorilor atributului, care  poate fi schimbata in program


15. Operatiile

 - Operatiile (metodele) se scriu in a teia sectie a clasei.

 - Reprezinta un anumit serviciu, care prezinta fiecare exemplar al clasei dupa anumita cerinta.

 - Fiecare operatie a clasei corespunde unui rind aparte, compus din specificator de vizibilitate al operatiei, numele operatiei, expresiei de tipul valorii returnate, aliniat - proprietate a operatiei date.

 - Specificatori de vizibilitate:

  • <<+>> - public
  •  
  • <<#>> - protected
  •  
  • <<->> - private

16. Relatiile intre clase

  • de dependenta
  • de asociere
  • de generalizare
  • realizare

 - Fiecare din relatiile acestea are reprezentare grafica proprie pe diagrama, care reflecta interconexiunile intre obiectele claselor coresupunzatoare


17. Relatia de dependenta

 -  Relatia de dependenta se foloseste in situatia in care o schimbare a unui element al modelului pate cere dupa sine o schimbare in elementul dependent de elementul precedent al modelului.

Clasa_A este clientul dependentei; Clasa_B este sursa relatiei.

 - Cuvinte cheie care indica careva tipuri de relatii special (se pun impreuna cu sageata)

  • <<acces>>
  • <<bind>>
  • <<derive>>
  • <<import>>
  • <<refine>>

18. Relatia de asociere 

 - Corespund prezentei unei relatii intre clase

 - Se prezinta printr-o linie cu simboluri speciale adaugatoare, care caracterizeaza unele proprietati a asocierii concrete.

  -Simboluri adaugatoare pot fi : numele asocierii, dar si numele si multiplicitatea claselor - rolurile asocierii

 - Cel mai simplu caz al asocieri este  - asocerea binara. Ea conecteaza exact doua clase (poate conecta clasa cu sine)

In diagrama pentru asocierea binara poate fi indicata ordinea consecintei claselor cu ajutorul triunghiului format de sageata alaturi de numele asocierii date.Directia acestei sageti indica ordinea claselor


19. Relatia de agregare

 - Exista intre citeva clase in cazul cind o clasa reprezinta o careva entitate care include in sine in calitate de parti componente alte entitati

- Are sens fundamental in descrierea structurii sistemelor compuse - reprezinta interactiunile sistemelor de tip <<parte-intreg>> 

 - Reprezentarea grafica a relatiei de agregare este aratata cu linia neintrerupta, unul din capetele caruia reprezinta un romb nehasurat.Acest romb indica acea clasa, care reprezinta un intreg. Alte clase reprezinta pertile


20. Relatia de compozitie

 - Este un caz particular al unui caz de agregare

 - Se foloseste pentru o forma speciala a relatiei <<parte-intreg>>

 - Specificarea interactiunilor iontre ele consta: partile nu exista independent.

 - Grafic este reprezentata ca o linie neintrerupta la unul din capete cu un romb hasurat.


21. Relatia de generalizare

   - Este o relatie taxonometrica intre doua elemente de acelasi tip: elementul generalizat(parinte) si elementul specializat (descendetn)

 - Se foloseste pentru reprezentarea interactiunilor intre pachete, clase, cazurile de utilizare etc..

 - In diagrama relatia data desrie structura ierarhica al claselor si mostenirea proprietatilor si comportamentului lor.

 - Este reprezentata ca o linie continua cu sageata in forma de triunghi la unul din capete

 - Sageata arata clasa - generalizata, iar apsenta ei clasa-speciala(sub clasa)

 - Restrictiile (proprietatea marcata in forma de text):

  • {complete}
  • {disjoint}
  • {incomplete}
  • {overlapping}

22. Interfete 

- Sunt exemplarele diagramelor cazurilor de utilizare

 - In diagrame de clase interfetele pot fi precizate folosind un dreptughi de clasa cu cuvintul-chei si stereotip <<interfata>>


23. Obiectele

 - Obiect (object) este un exemplar special al clasei, care este creat in timpul executarii programului.

 - Are nume propriu si valoare concreta ale atributelor

 - Pentru reprezentarea grafica este utlizita dreptunghiul (ca la clase), Diferenta este ca la obj. se indica numele care este subliniat