1 Diagrame Use Case
1 Diagrame Use Case
A efectuat
Pîrlog Andrei
A verificat
Bunici Sergiu
Chişinău 2020
Laborator 1
Introducere
UML este un limbaj de modelare bazat pe notaţii grafice folosit pentru a specifica, vizualiza,
construi şi documenta componentele unui program. UML este un limbaj cu ajutorul căruia se pot
construi (descrie) modele. Un model surprinde un anumit aspect al unui program şi acelaşi model poate
fi descris la diferite nivele de abstractizare. Fiecărui model îi corespunde o diagramă. Tipurile de
diagrame existente în UML sunt:
Fiecărei 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 activităţi;
- în faza de analiză se folosesc: diagrama de clase pentru precizarea structurii sistemului şi
diagramele de stări şi interacţiune pentru descrierea comportamentului acestuia; - în faza de
implementare se utilizează diagramele de implementare.
Nici un program nu este izolat, el interacţionând 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 alături de diagrama de activităţi, diagrama de stări, diagrama de secvenţă şi
diagrama de colaborare.
Elementele componente ale unei diagrame use case sunt:
- use case-uri; - actori;
- relaţiile 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ă cerinţe ale utilizatorilor. Este o descriere a unei mulţimi
de secvenţe de acţiuni (incluzând variante) pe care un program le execută atunci când interacţionează cu
entităţile din afara lui (actori) şi care conduc la obţinerea 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ă funcţionalitate.
Fiecare use case are un nume prin care se deosebeşte 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ă notaţia 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 înţeles de cineva din exterior (de exemplu utilizatorul). Acest flux de
evenimente trebuie să includă cum începe şi se termină use case-ul atunci când acesta interacţionează 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 cerinţele utilizatorului şi analizând descrierea
problemei.
Actori
Un actor reprezintă idealizarea unei peroane, proces sau obiect exterior care interacţionează cu
un sistem, subsistem sau o clasă. Actorii sunt entităţi 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 interacţiunea cu programul.
Notaţie grafică pentru un actor este ilustrată în figura 2.
nume
Relaţii
După cum am mai precizat, relaţiile exprimă interacţiuni între use case-uri, între actori şi între
use case-uri şi actori. Relaţiile pot fi de mai multe tipuri: asociere, dependenţă şi generalizare.
Relaţia de asociere se defineşte între actori şi use case-uri, sau între use case-uri. Este folosită pentru a
exprima interacţiunea (comunicarea) între elementele pe care le uneşte. Relaţia de asociere se reprezintă
grafic printr-o linie şi este evidenţiată în exemplele din figurile 3 şi 4.
În acest caz comportamentul use case-ului B este inclus în use case-ul A. B este de sine stătător,
însă este necesar pentru a asigura funcţionalitatea use case-ului de bază A. În exemplul din figura 6, use
case-ul Stabileste grupul care lucreaza la campanie are o relaţie de dependenţă de
tip include cu use case-ul Gaseste campanie. Aceasta înseamnă că atunci când
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ă.
În acest caz comportamentul use case-ului B poate fi înglobat în use case-ul A. A şi B sunt de
sine stătătoare. 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 apărea aşa 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ă condiţia de care depinde apelul use case-ului specializat.
Acest tip de relaţie se foloseşte pentru a modela alternative. În figurile 10.a şi 10.b sunt prezentate
diagrame use case cu dependenţe extend care au puncte de extensie.
(a)
(b)
Relaţia de generalizare se stabileşte între elemente de acelaşi tip (doi actori, sau doua use case-uri). Este
similară relaţiei de generalizare (moştenire) care se stabileşte între clase. Figura 11 ilustrează notaţia
grafică pentru relaţia de generalizare între use case-uri. Elementul derivat B moşteneşte comportamentul
şi relaţiile elementului de bază A. Use case-ul B este o specializare a use case-ului A.
În cazul unei relaţii de generalizare între use case-uri comportamentul poate fi modificat sau
extins; use case-ul derivat B poate înlocui în anumite situaţii 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.
Fig. 11. Notaţia grafică pentru relaţia de generalizare între use case-uri
După cum am precizat mai sus, relaţia de generalizare se poate aplica şi între actori. În exemplul din
figura 13 este prezentată o relaţie de generalizare între actori.
În exemplul din figura 14.a actorii A şi B joacă acelaşi rol R atunci când comunică cu use case-ul
UC şi joaca roluri diferite în interacţiunea cu use case-ul UC în figura 14.b.
(a) (b)
În figura 15 este prezentată o diagramă use case care utilizează toate tipurile de relaţii definite anterior.
Fig. 15. Exemplu de diagrama use case