Sunteți pe pagina 1din 36

Curs 6 STR.

Modelare use case


Sisteme in timp real

Universitatea Politehnica Bucuresti - AIS

8 noiembrie 2013

Cuprins

Introducere Cazuri de utilizare Cazuri de testare Structura modelului use-case

Cuprins

Introducere Cazuri de utilizare Cazuri de testare Structura modelului use-case

Introducere

Motivatie
in multe organizatii, testarea unui program consuma mai mult de 30-50% din costurile de productie totusi, utilizatorii de obicei considera ca programul nu a fost testat corect/sucient inainte de livrare testarea trebuie sa inceapa cat mai devreme in ciclul de productie testarea trebuie facuta conform unei metodologii clare si standardizate Solutia: folosirea cazurilor de utilizare (use cases) pentru generarea de teste. Use case = o activitate ce descrie o secventa de actiuni realizate de un sistem pentru a produce un rezultat observabil si cu o anumita valoare pentru o persoana sau alt sistem ce foloseste aplicatia: informeaza clientul informeaza programatorul pune bazele documentatiei ce trebuie scrise permite tester-ului sa propuna strategii de testare
Curs 6 STR. Modelare use case 8 noiembrie 2013 1 / 21

Cuprins

Introducere Cazuri de utilizare Cazuri de testare Structura modelului use-case

Cazuri de utilizare

Cazuri de utilizare
Studiile de utilizare sunt bazate pe UML si pot reprezentate prin diagrame use-case ce contin
inregistrare cursuri universitate inregistrare cursuri universitate

use-cases actori linii de legatura intre actori si use-case-uri

inrolare pentru cursuri student selectie cursuri pentru predare sistem catalog

registratura

inchidere inregistrare

profesor

Exemplu: sistem de inregistrare pentru cursuri intr-o universitate

Curs 6 STR. Modelare use case

8 noiembrie 2013

2 / 21

Cazuri de utilizare

Descriere textuala a unui use-case


use-case nume descriere scurta secventa de evenimente descriere un nume descriptiv o scurta descriere a rolului si a scopului use-case-ului o descriere textuala a actiunilor sistemului pentru usecase (nu cum o anumita problema e rezolvata); descrierea trebuie sa e inteleasa de catre client o descriere textuala ce strange toate cerintele (inclusiv cele non-functionale) pentru use-case ce nu apar explicit in modelul use-case-ului dar care trebuie totusi sa e luate in calcul o descriere textuala a constrangerilor asupra sistemului la momentul te start al use-case-ului o descriere textuala ce deneste constrangeri asupra sistemului la terminarea use-case-ului

cerinte speciale

pre-conditii post-conditii

Curs 6 STR. Modelare use case

8 noiembrie 2013

3 / 21

Cazuri de utilizare

Descriere textuala a unui use-case


use-case nume descriere scurta secventa de evenimente descriere un nume descriptiv o scurta descriere a rolului si a scopului use-case-ului o descriere textuala a actiunilor sistemului pentru usecase (nu cum o anumita problema e rezolvata); descrierea trebuie sa e inteleasa de catre client o descriere textuala ce strange toate cerintele (inclusiv cele non-functionale) pentru use-case ce nu apar explicit in modelul use-case-ului dar care trebuie totusi sa e luate in calcul o descriere textuala a constrangerilor asupra sistemului la momentul te start al use-case-ului o descriere textuala ce deneste constrangeri asupra sistemului la terminarea use-case-ului

cerinte speciale

pre-conditii post-conditii

Curs 6 STR. Modelare use case

8 noiembrie 2013

3 / 21

Cazuri de utilizare

Secvente de evenimente

Cea mai importanta parte a unui use-case sunt secventle de evenimente: secventa nominala (corespunde cu activitatea normala a unui use-case) secvente alternative (acopera situatiile cand exista variatii fata de functionarea normala)

Metodologie: ecare pas trebuie sa explice ce face actorul si care este raspunsul sistemului secventele alternative trebuie sa specice cand diverg din secventa nominala si cum se incheie

Curs 6 STR. Modelare use case

8 noiembrie 2013

4 / 21

Cazuri de utilizare

Exemplu de secventa nominala de evenimente


N1 inregistrare porneste atunci cand Studentul acceseaza situl. Sistemul cere, iar Studentul completeaza, ID-ul si parola. N2 selectie creare orar Sistemul aseaza functiile disponibile pentru Student. Studentul selecteaza crearea unui orar. N3 obtinere informatii curs Sistemul extrage o lista de cursuri din Catalog si aseza lista Studentului. N4 selectie curs Studentul selecteaza 4 cursuri obligatorii si 2 optionale din lista de cursuri disponibile. N5 trimitere orar Studentul indica faptul ca orarul a fost completat. Pentru ecare curs selectat, Sistemul verica daca Studentul indeplineste conditiile de inscriere. N6 asare orar completat Sistemul aseaza orarul pentru Student si numarul de conrmare pentru orar.

Curs 6 STR. Modelare use case

8 noiembrie 2013

5 / 21

Cazuri de utilizare

Exemplu de secvente alternative de evenimente


A1 student neidenticat daca la pasul N1 Sistemul determina ca Studentul a introdus gresit Id-ul si/sau parola, se aseaza un mesaj de eroare A2 renuntare Studentul poate sa renunte in orice moment al use-case-ului. Studentul poate sa salveze un orar partial inainte de a renunta. Toate cursurile ce nu sunt marcate ca si inregistrat sunt marcate ca selectate in orar. Orarul e salvat in Sistem. Use-case-ul este terminat. A3 cerinte neindeplinite, curs plin, conicte de orar daca la pasul N5 Sistemul determina ca nu sunt indeplinite conditiile de participare pentru inrolarea la un curs, ca nu mai sunt locuri disponibile sau ca sunt conicte de orar, atunci nu se va permite inrolarea Studentului. Un mesaj ce solicita Studentului sa selecteze alt curs este asat. Use-case-ul continua la pasul N4 . A4 catalog de curs indisponibil Daca la pasul N3 Sistemul este cazut, se aseaza un mesaj de eroare si use-case-ul se termina. A5 inregistrare la curs inchisa Daca, atunci cand use-case-ul porneste se determina ca perioada de inregistrare s-a terminat, se aseaza un mesaj de eroare si use-case-ul se incheie.
Curs 6 STR. Modelare use case 8 noiembrie 2013 6 / 21

Cazuri de utilizare

Exemplu de secventa de evenimente pentru un use-case


Secventa nominala de evenimente: N1 inregistrare N2 selectie creare orar N3 obtinere informatii curs N4 selectie curs N5 trimitere orar N6 asare orar completat Secvente alternative de evenimente: A1 student neidenticat A2 renuntare A3 cerinte neindeplinite, curs plin, conicte de orar A4 catalog de curs indisponibil A5 inregistrare la curs inchisa
Curs 6 STR. Modelare use case

nal

A5

N1

nal

A2

N2

A1

N3

A4

nal

N4

N5

A3

N6 nal

8 noiembrie 2013

7 / 21

Cuprins

Introducere Cazuri de utilizare Cazuri de testare Structura modelului use-case

Cazuri de testare

Cazuri de testare
Un caz de testare (test-case ) e o colectie de intrari de test conditii de executie rezultate asteptate ce sunt alese pentru un obiectiv specic: testarea unui anumit scenariu de functionare sau pentru a verica daca o anumita cerinta este indeplinita. Relatia dintre test si use case: un test-case va verica buna implementare a unui use-case. Test-case-urile se genereaza astfel:
1 2

pentru ecare use-case se genereaza toate scenariile de utilizare posibile pentru ecare scenariu se identica cel putin un caz de testare si conditiile ce fac sa e executat pentru ecare test case se aleg datele cu care se va face testarea

Curs 6 STR. Modelare use case

8 noiembrie 2013

8 / 21

Cazuri de testare

Pas 1: Identicare de scenarii de functionare


Un scenariu de functionare (use-case scenario ) este o instanta a unui use-case. Scenariu scenariu 1 - logare corecta scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare nominal nominal nominal nominal nominal nominal A1 A2 A4 A5 A3 Calea urmata

Utilizatorii aplicatiei considera toate secventele posibile de evenimente (nominale si alternante) ce pot aparea in cursul rularii aplicatiei.

Curs 6 STR. Modelare use case

8 noiembrie 2013

9 / 21

Cazuri de testare

Pas 1: Identicare de scenarii de functionare (II)

nal

A5

N1

nal

A2

N2

A1

scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal

N4

N5

A3

N6 nal

Curs 6 STR. Modelare use case

8 noiembrie 2013

10 / 21

Cazuri de testare

Pas 1: Identicare de scenarii de functionare (II)

nal

A5

N1

nal

A2

N2

A1

scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A3 nal

N4

N5

A3

N6 nal

Curs 6 STR. Modelare use case

8 noiembrie 2013

10 / 21

Cazuri de testare

Pas 1: Identicare de scenarii de functionare (II)

nal

A5

N1

nal

A2

N2

A1

scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal

N4

N5

A3

N6 nal

Curs 6 STR. Modelare use case

8 noiembrie 2013

10 / 21

Cazuri de testare

Pas 1: Identicare de scenarii de functionare (II)

nal

A5

N1

nal

A2

N2

A1

scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal

N4

N5

A3

N6 nal

Curs 6 STR. Modelare use case

8 noiembrie 2013

10 / 21

Cazuri de testare

Pas 1: Identicare de scenarii de functionare (II)

nal

A5

N1

nal

A2

N2

A1

scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal

N4

N5

A3

N6 nal

Curs 6 STR. Modelare use case

8 noiembrie 2013

10 / 21

Cazuri de testare

Pas 1: Identicare de scenarii de functionare (II)

nal

A5

N1

nal

A2

N2

A1

scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal

N4

N5

A3

N6 nal

Curs 6 STR. Modelare use case

8 noiembrie 2013

10 / 21

Cazuri de testare

Pas 2: Identicare a cazurilor de testare


pentru ecare scenariu exista cel putin un caz de testare, uneori mai multe: in scenariul 6 eroarea de inregistrare poate sa provina din mai multe surse:
cerinte neindeplinite curs plin conicte de orar

extragem din descrierea use-case-ului si gasim conditiile sau informatiile necesare executarii unui anumit scenariu (ID, parola, cursurile selectate, etc) enumeram cazurile de test si notam cum vor utilizate informatiile introduse de actori in implementarea acestora. Clasicam aceste informatii in:

informatie valida I informatie invalida N/A informatie irelevanta

Curs 6 STR. Modelare use case

8 noiembrie 2013

11 / 21

Cazuri de testare

Pas 2: Identicare a cazurilor de testare (II)


# RC 1 scenariu /conditie S1 - logare reusita S2 - logare esuata S3 - utilizatorul renunta S4 - sistem cursuri indisponibil S5 - inregistrare inchisa S6 - inrolare esuata curs plin S6 - inrolare esuata cerinte neindeplinite S6 - inrolare esuata conict orar I I N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A ID parola cursuri selectate conditii initiale cursuri deschise orar deschis rezultat progamare si numar de conrmare asate mesaj de eroare: inapoi la logare apare ecranul de logare mesaj de eroare: inapoi la N2 mesaj de eroare: inapoi la N2 mesaj de eroare: inapoi la N3 mesaj de eroare: inapoi la N4

RC 2 RC 3 RC 4

RC 5 RC 6

N/A

N/A

N/A I

N/A

RC 7

RC 8

mesaj de eroare: inapoi la N4

Curs 6 STR. Modelare use case

8 noiembrie 2013

12 / 21

Cazuri de testare

Pas 3: Identicare a informatiilor pentru testate


Pentru ecare test case trebuie adaugate valori pentru intrarile bifate cu si I :
# RC 1 scenariu /conditie S1 - logare reusita S2 - logare esuata S3 - utilizatorul renunta S4 - sistem cursuri indisponibil S5 - inregistrare inchisa S6 - inrolare esuata curs plin S6 - inrolare esuata cerinte neindeplinite S6 - inrolare esuata conict orar ID abc parola abc123 cursuri selectate STR, PATR N/A N/A N/A conditii initiale Da cursuri deschise Da orar deschis Da rezultat progamare si numar de conrmare asate mesaj de eroare: inapoi la logare apare ecranul de logare mesaj de eroare: inapoi la N2 mesaj de eroare: inapoi la N2 mesaj de eroare: inapoi la N3 mesaj de eroare: inapoi la N4

RC 2 RC 3 RC 4

bcd abc abc

N/A abc123 abc123

N/A N/A N/A

N/A N/A N/A

N/A N/A N/A

RC 5 RC 6

abc abc

abc123 abc123

N/A STR, PATR STR, PATR

N/A Da

N/A STR plin

N/A Da

RC 7

abc

abc123

nu PATR

Da

Da

RC 8

abc

abc123

STR, PATR

Da

Da

conict mesaj de eroare: STR/PATR inapoi la N4

Curs 6 STR. Modelare use case

8 noiembrie 2013

13 / 21

Cuprins

Introducere Cazuri de utilizare Cazuri de testare Structura modelului use-case

Structura modelului use-case

Structura modelului use-case

Pentru modele complexe putem structura use-case-urile astfel incat: sa avem mai mult control asupra aplicatiei sa facem aplicatia mai usor de inteles sa refolosim structuri ce apar in mai multe use-case-uri

Putem deni 3 relatii fundamentale: incluziune extensie mostenire

Curs 6 STR. Modelare use case

8 noiembrie 2013

14 / 21

Structura modelului use-case

Ilustratie

client

client Internet

sistem prelucrare comenzi sistem prelucrare comenzi comanda telefon comanda Internet

cerere catalog extend comanda include livrare date client

Curs 6 STR. Modelare use case

8 noiembrie 2013

15 / 21

Structura modelului use-case

Relatia de incluziune

Un use-case baza va include un use-case in sensul ca va include (incapsula) un comportament ce nu e esential pentru intelegerea scopului sau primar, rezultatul nal este sucient.

util pentru a evita replicarea comportamentului use-case-urile nu isi acceseaza atributele pot exista instante unde use-case-ul inclus nu e apelat
use-case instanta use-case baza

use-case inclus

Curs 6 STR. Modelare use case

8 noiembrie 2013

16 / 21

Structura modelului use-case

Relatia de incluziune

Un use-case baza va include un use-case in sensul ca va include (incapsula) un comportament ce nu e esential pentru intelegerea scopului sau primar, rezultatul nal este sucient.

util pentru a evita replicarea comportamentului use-case-urile nu isi acceseaza atributele pot exista instante unde use-case-ul inclus nu e apelat

use-case instanta #2

use-case baza use-case instanta #1

use-case inclus

Curs 6 STR. Modelare use case

8 noiembrie 2013

16 / 21

Structura modelului use-case

Relatia de incluziune ilustratie

identicare client

include

include

include

retragere cash

depozitare cash

transfer fonduri

Curs 6 STR. Modelare use case

8 noiembrie 2013

17 / 21

Structura modelului use-case

Relatia de extensie

Un use-case extins va extinde un use-case baza in sensul ca va extinde functionalitatea acestuia: comportamentul primului use-case va inserat in cel de-al doilea use-case daca o conditie este vericata.

legatura se face prin punct(e) de extensie folosit pentru a modela secvente de evenimente ne-uzuale/optionale use-case baza este de sine-statator pot exista mai multe puncte de insertie; conditia de executie e analizata doar prima data
use-case extensie use-case instanta

use-case baza

punct de extensie

Curs 6 STR. Modelare use case

8 noiembrie 2013

18 / 21

Structura modelului use-case

Relatia de extensie

Un use-case extins va extinde un use-case baza in sensul ca va extinde functionalitatea acestuia: comportamentul primului use-case va inserat in cel de-al doilea use-case daca o conditie este vericata.

legatura se face prin punct(e) de extensie folosit pentru a modela secvente de evenimente ne-uzuale/optionale use-case baza este de sine-statator pot exista mai multe puncte de insertie; conditia de executie e analizata doar prima data
use-case instanta

use-case baza

puncte de extensie

use-case extensie

Curs 6 STR. Modelare use case

8 noiembrie 2013

18 / 21

Structura modelului use-case

Relatia de extensie ilustratie

apelare contact 1 extend extend display identitate contact 2

apel tip conferinta contact 3

Curs 6 STR. Modelare use case

8 noiembrie 2013

19 / 21

Structura modelului use-case

Relatia de mostenire

Un use-case copil va generaliza un use-case parinte in sensul ca va specica cum anume sunt specializate comportamentul si si caracteristicile descrise pentru parinte.

in cele mai multe cazuri parintele e abstract, dar nu mereu se foloseste atunci cand 2 sau mai multe use-case-uri au parti de structura comune incluziunea si mostenirea sunt asemanatoare dar la prima conteaza doar rezultatul nal iar la a doua conteaza modul de implementare

use-case parinte

use-case instanta

use-case copil

Curs 6 STR. Modelare use case

8 noiembrie 2013

20 / 21

Structura modelului use-case

Relatia de mostenire ilustratie

comanda

comanda telefon

comanda Internet

client
Curs 6 STR. Modelare use case

client Internet
8 noiembrie 2013 21 / 21

Structura modelului use-case

Relatia de mostenire ilustratie

comanda functionar

comanda telefon

comanda Internet

client
Curs 6 STR. Modelare use case

client Internet
8 noiembrie 2013 21 / 21