You are on page 1of 8

Laborator 1 UML Unified Modeling Language

Diagrama cazurilor de utilizare (Use Case Diagram)

Introducere
UML este un limbaj de modelare bazat pe notaii grafice folosit pentru a specifica, vizualiza, construi i documenta componentele unui program. UML este un limbaj cu ajutorul cruia se pot construi (descrie) modele. Un model surprinde un anumit aspect al unui program i acelai model poate fi descris la diferite nivele de abstractizare. Fiecrui model i corespunde o diagram. Tipurile de diagrame existente n UML sunt: Diagrama cazurilor de utilizare (Use Case Diagram) Diagrama de clase (Class Diagram) Diagrame care descriu comportamentul: Diagrame de interaciuni (Interactions Diagrams) - Diagrama de secven (Sequence Diagram) - Diagrama de colaborare (Collaboration Diagram) Diagrama de stri (State chart Diagram) Diagrama de activiti (Activity Diagram) Diagrama de componente (Component Diagram) Diagrama de plasare (Deployment Diagram)

Diagrame de implementare:

Fiecrei din cele trei mari faze din dezvoltarea un proiect software i corespunde una sau mai multe diagrame UML i anume: pentru faza de analiza se utilizeaz diagrama cazurilor de utilizare i diagrama de activiti; n faza de analiz se folosesc: diagrama de clase pentru precizarea structurii sistemului i diagramele de stri i interaciune pentru descrierea comportamentului acestuia; n faza de implementare se utilizeaz diagramele de implementare.

Diagrama cazurilor de utilizare (Use Case Diagram) Nici un program nu este izolat, el interacionnd cu oameni sau cu alte sisteme pentru ndeplinirea unui scop. O diagram use case este una din diagramele folosite n UML pentru a modela aspectele dinamice ale unui program alturi de diagrama de activiti, diagrama de stri, diagrama de secven i diagrama de colaborare. Elementele componente ale unei diagrame use case sunt: - use case-uri; - actori; - relaiile care se stabilesc ntre use case-uri, ntre actori i ntre use case-uri i actori. Use case-uri Un use case (caz de utilizare) reprezint cerine ale utilizatorilor. Este o descriere a unei mulimi de secvene de aciuni (incluznd variante) pe care un program le execut atunci cnd interacioneaz cu entitile din afara lui (actori) i care conduc la obinerea unui rezultat observabil i de folos actorului. Un use case descrie ce face un program sau subprogram, dar nu precizeaz nimic despre cum este realizat (implementat) o anumit funcionalitate. Fiecare use case are un nume prin care se deosebete de celelalte use case-uri. Acesta poate fi un ir arbitrar de caractere, ns de regul numele sunt scurte fraze verbale care denumesc un comportament ce exist n vocabularul sistemului ce trebuie modelat. Figura 1 prezint notaia grafic pentru use case.

Figura 1: Notaia grafic pentru use case Comportamentul unui use case poate fi specificat descriind un flux de evenimente ntr-un text suficient de clar ca s poat fi neles de cineva din exterior (de exemplu utilizatorul). Acest flux de evenimente trebuie s includ cum ncepe i se termin use case-ul atunci cnd acesta interacioneaz cu actori, ce obiecte sunt interschimbate, precum i fluxuri alternative ale acestui comportament. Aceste fluxuri de evenimente reprezint scenarii posibile de utilizare a sistemului. Identificarea use case-urilor se face pornind de la cerinele utilizatorului i analiznd descrierea problemei. Actori Un actor reprezint idealizarea unei peroane, proces sau obiect exterior care interacioneaz cu un sistem, subsistem sau o clas. Actorii sunt entiti exterioare sistemului. Ei pot fi utilizatori

(persoane), echipamente hardware sau alte programe. Fiecare actor are un nume care indic rolul pe care acesta l joac n interaciunea cu programul. Notaie grafic pentru un actor este ilustrat n figura 2.

nume

Figura 2: Notaia grafic pentru actor Exist dou moduri n care actorii pot interaciona cu un sistem: folosind sistemul, adic iniiaz execuia unor use case-uri; sunt folosii de ctre sistem, adic ofer funcionalitate pentru realizarea unor use case-uri. Fiecare actor trebuie s comunice cu cel puin un use case. Pentru identificarea actorilor ar trebui s rspundem la urmtoarele ntrebri: Relaii Dup cum am mai precizat, relaiile exprim interaciuni ntre use case-uri, ntre actori i ntre use case-uri i actori. Relaiile pot fi de mai multe tipuri: asociere, dependen i generalizare. Relaia de asociere se definete ntre actori i use case-uri, sau ntre use case-uri. Este folosit pentru a exprima interaciunea (comunicarea) ntre elementele pe care le unete. Relaia de asociere se reprezint grafic printr-o linie i este evideniat n exemplele din figurile 3 i 4. Cine folosete programul? De cine are nevoie programul pentru a-i ndeplini sarcinile? Cine este responsabil cu administrarea sistemului? Cu ce echipamente externe trebuie s comunice programul? Cu ce sisteme software externe trebuie s comunice programul? Cine are nevoie de rezultatele (rspunsurile) oferite de program?

Fig. 3. Exemplu de asociere ntre use case-uri

Fig. 4. Exemplu de asociere ntre actor i use case

Relaia de dependen se poate stabili numai ntre use case-uri. Acest tip de relaie modeleaz dou situaii: cazul n care un use case folosete funcionalitatea oferit de un alt use case - dependena de tip include; exist variante ale aceluiai use case dependena de tip extend. Dependena de tip include. Notaia grafic este dat n figura 5.

Fig. 5. Dependen de tip include n acest caz comportamentul use case-ului B este inclus n use case-ul A. B este de sine stttor, ns este necesar pentru a asigura funcionalitatea use case-ului de baz A. n exemplul din figura 6, use case-ul Stabileste grupul care lucreaza la campanie are o relaie de dependen de tip include cu use case-ul Gaseste campanie. Aceasta nseamn c atunci cnd actorul Manager campanie utilizeaz Stabileste grupul care lucreaza la campanie, comportamentul use case-ului Gaseste campanie va fi inclus pentru a putea selecta o campanie relevant.

Fig. 6. Diagram use case cu dependen de tip include Dependena de tip include se folosete i pentru a scoate n eviden un comportament comun (B poate fi inclus n mai multe use case-uri de baz vezi figura 7).

Fig. 7. Dependen de tip include n care un use case este inclus n mai multe use case-uri de baz

Dependena de tip extend. Notaie grafic se poate vedea n figura 8.

Fig. 8. Dependen de tip extend n acest caz comportamentul use case-ului B poate fi nglobat n use case-ul A. A i B sunt de sine stttoare. A controleaz dac B va fi executat sau nu (vezi exemplul din figura 9).

Fig.9. Exemplu de dependen de tip extend ntr-o dependen de tip extend pot aprea aa numitele punctele de extensie care specific locul n care use case-ul specializat (B) extinde use case-ul de baz (A). Pentru fiecare use case pot fi specificate mai multe puncte de extensie. Fiecare dintre aceste puncte trebuie s aib un nume. Aceste nume trebuie s fie unice, ns nu este obligatoriu ca ele s coincid cu numele use caseurilor specializate. De asemenea, trebuie precizat condiia de care depinde apelul use case-ului specializat. Acest tip de relaie se folosete pentru a modela alternative. n figurile 10.a i 10.b sunt prezentate diagrame use case cu dependene extend care au puncte de extensie.

(a)

(b) Fig. 10. Diagrame use case cu dependene de tip extend

Relaia de generalizare se stabilete ntre elemente de acelai tip (doi actori, sau doua use case-uri). Este similar relaiei de generalizare (motenire) care se stabilete ntre clase. Figura 11 ilustreaz notaia grafic pentru relaia de generalizare ntre use case-uri. Elementul derivat B motenete comportamentul i relaiile elementului de baz A. Use case-ul B este o specializare a use case-ului A. n cazul unei relaii de generalizare ntre use case-uri comportamentul poate fi modificat sau extins; use case-ul derivat B poate nlocui n anumite situaii use case-ul de baz A. Case-ul derivat B controleaz ce anume se execut i ce se modific din use case-ul de baz A.

use case derivat (specializat)

generalizare

use case de baz

Fig. 11. Notaia grafic pentru relaia de generalizare ntre use case-uri n figura 12 este prezentat un exemplu de relaie de generalizare ntre use case-uri.

Fig. 12. Exemplu de relaie de generalizare ntre use case-uri Dup cum am precizat mai sus, relaia de generalizare se poate aplica i ntre actori. n exemplul din figura 13 este prezentat o relaie de generalizare ntre actori.

Fig. 13. Relaie de generalizare ntre actori n exemplul din figura 14.a actorii A i B joac acelai rol R atunci cnd comunic cu use case-ul UC i joaca roluri diferite n interaciunea cu use case-ul UC n figura 14.b.

(a)

(b)

Fig. 14. Tipuri de roluri jucate de actori n interaciunea cu use case-ul n figura 15 este prezentat o diagram use case care utilizeaz toate tipurile de relaii definite anterior.

Fig. 15. Exemplu de diagrama use case Reamintim utilizrile diagramei use case: pentru a modela contextul unui sistem: determinarea granielor sistemului i a actorilor cu care acesta interacioneaz. pentru a modela cerinele unui sistem: ce trebuie s fac sistemul (dintr-un punct de vedere exterior sistemului) independent de cum trebuie s fac. Va rezulta specificarea comportamentului dorit. Sistemul apare ca o cutie neagr. Ceea ce se vede este cum reacioneaz el la aciunile din exterior.

Probleme propuse Pentru fiecare din problemele de mai jos s se identifice i s se analizeze cerinele utiliznd diagrame use case: 1. Automat cafea (alegere tip cafea, introducere moneda, eliberare rest, preluare produs, etc) 2. ATM (verificare PIN, vizualizare suma din contul personal, extragere, tiprire chitana etc.) 3. Ceas electronic (afiare ora curent / data curent, modificare or / dat, cronometru etc.)