Dezvoltarea unei aplicat ii e-learning pentru [615490]

Ministerul Educat ¸iei Nat ¸ionale s ¸i Cercet ˘arii S ¸tiint ¸ifice
Universitatea ”OVIDIUS” Constant ¸a
Facultatea de Matematic ˘a s ¸i Informatic ˘a
Specializarea Informatic ˘a
Dezvoltarea unei aplicat ¸ii e-learning pentru
chestionare auto
Lucrare de licent ¸ ˘a
Coordonator s ¸tiint ¸ific:
Conf. univ. dr. Crengut ¸a M ˘ad˘alina PUCHIANU
Absolvent: [anonimizat] ¸a
2017

Cuprins
Cuprins i
Lista Figurilor iii
Lista Tabelelor 1
1 Introducere 2
1.1 Structura lucr ˘arii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Definirea problemei 4
2.1 Descrierea problemei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Participant ¸i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Scenarii de baz ˘a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Analiza software a sistemului 6
3.1 Documentul de cerint ¸e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.1 Descrierea sistemului software . . . . . . . . . . . . . . . . . . . . 7
3.1.2 Actorii software . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 Cerint ¸e funct ¸ionale . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.4 Cerint ¸e nefunct ¸ionale . . . . . . . . . . . . . . . . . . . . . . . . . 9
i

Cuprins Cuprins
3.2 Modelul funct ¸ional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Identificarea cazurilor de utilizare . . . . . . . . . . . . . . . . . . 9
3.2.2 Descrierea cazurilor de utilizare . . . . . . . . . . . . . . . . . . . 10
3.2.3 Diagrama complet ˘a a cazurilor de utilizare . . . . . . . . . . . . . 16
3.3 Diagrame de secvent ¸e de sistem . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Diagrame de context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5 Diagrame de activit ˘at ¸i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6 Diagrama de clase a modelului de domeniu . . . . . . . . . . . . . . . . . 27
3.6.1 Identificarea claselor . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.6.2 Identificarea atributelor . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Proiectarea s ¸i implementarea aplicat ¸iei 30
4.1 Diagrame de interact ¸iuni . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Diagrame de clase software . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3 Proiectarea bazei de date . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Implementarea aplicat ¸iei . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5 Concluzii 43
5.1 Contribut ¸ii proprii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6 Anexe 44
6.1 Proiectarea unui Swing GUI ˆın NetBeans IDE . . . . . . . . . . . . . . . . 44
6.2 MySQL Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.3 Diagrame de activit ˘at ¸i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.4 Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare . . . . . . . . . . . . 56
Referint ¸e bibliografice 76
ii

Lista Figurilor
3.1 Diagrama cazurilor de utilizare software a sistemului E-ChestionareAuto . . . . 17
3.2 Diagrama de secvent ¸e de sistem a cazului de utilizare ” ˆInregistrare utilizator” . 18
3.3 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Autentificare” . . . . . 19
3.4 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Tratare parte teoretic ˘a” . 19
3.5 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Rezolvare chestionar auto” 20
3.6 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Vizualizare punctaj” . . 20
3.7 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Administrare cont uti-
lizator” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.8 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Modificare cont” . . . . 21
3.9 Diagrama de secvent ¸e de sistem a cazului de utilizare ”S ¸tergere cont” . . . . . 22
3.10 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Administrare subiect gril ˘a” 22
3.11 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Introducere subiect gril ˘a” 23
3.12 Diagrama de secvent ¸e de sistem a cazului de utilizare ”Modificare subiect gril ˘a” 23
3.13 Diagrama de secvent ¸e de sistem a cazului de utilizare ”S ¸tergere subiect gril ˘a” . 24
3.14 Diagrama de context V1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.15 Diagrama de context V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.16 Diagrama de activit ˘at ¸i a cazului de utilizare ” ˆInregistrare” . . . . . . . . . . . 26
3.17 Diagrama de activit ˘at ¸i a cazului de utilizare ”Autentificare” . . . . . . . . . . 27
3.18 Diagrama de clase a modelului de domeniu . . . . . . . . . . . . . . . . . . . 29
iii

Lista Figurilor Lista Figurilor
4.1 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Administrare
cont” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Vizualizare
punctaj” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Administrare
cont” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.4 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Vizualizare Punc-
taj” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.5 Diagrama de proiectare a bazei de date . . . . . . . . . . . . . . . . . . . . . . 35
6.1 Diagrama de activit ˘at ¸i a cazului de utilizare ”Administrare cont” . . . . . . . . 46
6.2 Diagrama de activit ˘at ¸i a cazului de utilizare ”Modificare cont” . . . . . . . . . 47
6.3 Diagrama de activit ˘at ¸i a cazului de utilizare ”S ¸tergere cont” . . . . . . . . . . 48
6.4 Diagrama de activit ˘at ¸i a cazului de utilizare ”Administrare gril ˘a” . . . . . . . . 49
6.5 Diagrama de activit ˘at ¸i a cazului de utilizare ”Introducere subiect gril ˘a” . . . . 50
6.6 Diagrama de activit ˘at ¸i a cazului de utilizare ”Modificare subiect gril ˘a” . . . . . 51
6.7 Diagrama de activit ˘at ¸i a cazului de utilizare ”S ¸tergere subiect gril ˘a” . . . . . . 52
6.8 Diagrama de activit ˘at ¸i a cazului de utilizare ”Tratare parte teoretic ˘a” . . . . . . 53
6.9 Diagrama de activit ˘at ¸i a cazului de utilizare ”Rezolvare chestionar auto” . . . . 54
6.10 Diagrama de activit ˘at ¸i a cazului de utilizare ”Vizualizare punctaj” . . . . . . . 55
6.11 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Modificare
cont” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.12 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”S ¸tergere cont” 58
6.13 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Administrare
gril˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.14 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Introducere
subiect gril ˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.15 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Modificare
subiect gril ˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.16 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”S ¸tergere subiect
gril˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
iv

Lista Figurilor Lista Figurilor
6.17 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Tratare parte
teoretic ˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.18 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Rezolvare
chestionar auto” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.19 Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Autentificare” 65
6.20 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ” ˆInregistrare uti-
lizator” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.21 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Administrare
gril˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.22 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Modificare cont” 68
6.23 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”S ¸tergere cont” . 69
6.24 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Introducere subiect
gril˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.25 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Modificare subiect
gril˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.26 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”S ¸tergere subiect
gril˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.27 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Tratare parte
teoretic ˘a” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.28 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Rezolvare ches-
tionar auto” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.29 Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Autentificare” . 75
v

Lista Tabelelor
3.1 Fluxul de baz ˘a al cazului de utilizare ” ˆInregistrare utilizator” . . . . . . . . 10
3.2 Fluxul de baz ˘a al cazului de utilizare ”Autentificare” . . . . . . . . . . . . 11
3.3 Fluxul de baz ˘a al cazului de utilizare ”Tratare parte teoretic ˘a” . . . . . . . . 12
3.4 Fluxul de baz ˘a al cazului de utilizare ”Rezolvare chestionar auto” . . . . . 12
3.5 Fluxul de baz ˘a al cazului de utilizare ”Vizualizare rezultate obt ¸inute” . . . . 13
3.6 Fluxul de baz ˘a al cazului de utilizare ”Administrare cont utilizator” . . . . 13
3.7 Fluxul de baz ˘a al cazului de utilizare ”Modificare cont” . . . . . . . . . . . 14
3.8 Fluxul de baz ˘a al cazului de utilizare ”S ¸tergere cont” . . . . . . . . . . . . 14
3.9 Fluxul de baz ˘a al cazului de utilizare ”Administrare subiect gril ˘a” . . . . . 15
3.10 Fluxul de baz ˘a al cazului de utilizare ”Introducere subiect gril ˘a” . . . . . . 15
3.11 Fluxul de baz ˘a al cazului de utilizare ”Modificare subiect gril ˘a ” . . . . . . 16
3.12 Fluxul de baz ˘a al cazului de utilizare ”S ¸tergere subiect gril ˘a” . . . . . . . . 16
1

Capitolul 1
Introducere
Lucrarea de fat ¸ ˘aˆıs ¸i propune s ˘a prezinte utilizarea unei platforme simple de e-learning, nu-
mit˘a eChestionareAuto, pentru viitori sau actuali cursant ¸i ai s ¸colilor de s ¸oferi, ˆın vederea
obt ¸inerii permisului de conducere. Se urm ˘ares ¸te at ˆat analiza s ¸i proiectarea unui astfel de
sistem, c ˆat s ¸i prezentarea tehnologiilor folosite s ¸i a modului lor de aplicare ˆın implementarea
platformei.
1.1 Structura lucr ˘arii
Lucrarea este structurat ˘aˆın s ¸ase capitole, ce vor fi prezentate ˆın continuare.
Capitolul al doilea prezint ˘a definirea problemei, participant ¸ii, dar s ¸i o scurt ˘a prezentare
a modului de lucru in aplicat ¸ia realizat ˘a.
Al treilea capitol prezint ˘a analiza software a sistemului descris. Aici vom g ˘asi docu-
mentul de cerint ¸e, actorii software s ¸i modelul funct ¸ional al sistemului, analiza s ¸i descrierea
cazurilor de utilizare, c ˆat s ¸i diagramele de secvent ¸e de sistem. Tot ˆın acest capitol se construies ¸te
s ¸i diagrama de clase a modelului de domeniu.
ˆIn capitolul patru are loc proiectarea s ¸i implementarea fiec ˘arui caz de utilizare, unde
se vor prezenta at ˆat diagramele de interact ¸iuni s ¸i diagrame de clase software obt ¸inute ˆın
proiectarea cazurilor de utilizare software, dar s ¸i proiectarea bazei de date. Adit ¸ional, capi-
tolul cont ¸ine s ¸i secvent ¸e ale codului aplicat ¸iei.
Concluziile stabilite ˆın urma analizei software, proiect ˘arii s ¸i implement ˘arii aplicat ¸iei,
cˆat s ¸i contribut ¸iile proprii ˆın dezvoltarea sistemului se g ˘asesc ˆın capitolul cinci.
Ultimul capitol al lucr ˘arii prezint ˘a o scurt ˘a descriere a tehnologiilor folosite, cum ar fi
NetBeans IDE Swing GUI s ¸i MySQL, precum s ¸i un scurt tutorial de creare a interfet ¸elor
grafice cu tehnologia Swing.
Lucrarea se ˆıncheie cu referint ¸ele bibliografice utilizate ˆın redactarea acesteia, precum
2

Introducere Structura lucr ˘arii
s ¸i la dezvoltarea sistemului descris ˆın prezenta lucrare.
3

Capitolul 2
Definirea problemei
2.1 Descrierea problemei
Obiectivul principal ˆındeplinit de sistemul E-ChestionareAuto este ˆınv˘at ¸area codului rutier ˆın
vigoare, c ˆat s ¸i verificarea cunos ¸tint ¸elor conduc ˘atorilor auto cu ajutorul testelor gril ˘a. Pentru
a fi utilizat, sistemul cere log-area utilizatorilor. Log-in-ul accept ˘a dou ˘a tipuri de utilizatori:
administrator s ¸i cursant (viitor s ¸ofer).
Dup˘a log-area utilizatorului ˆın aplicat ¸ie, acesta alege una din cele dou ˘a sect ¸iuni: parte
teoretic ˘a s ¸i sect ¸iunea practica, furnizate de aplicat ¸ie. Partea teoretic ˘a se refer ˘a laˆınv˘at ¸area
proactiv ˘a a legislat ¸iei s ¸i a codului rutier ˆın vigoare. Cursantul are posibilitatea de a printa
paginile ce cont ¸in toate capitolele din legislat ¸ia rutier ˘a.
Sect ¸iunea de parte practic ˘a sau Testarea cunos ¸tint ¸elor auto, dup ˘a cum este denumit ˘a,
se refer ˘a la aplicarea chestionarelor auto pentru simularea examenului teoretic ˆın vederea
dobˆandirii permisului auto. La ap ˘asarea butonului de Testare cunos ¸tint ¸e auto, cursantul
este ˆıntrebat de categoria de permis pentru care aplic ˘a acel chestionar (A, B, C, D, Tr).
Fiecare ˆıntrebare are 3 variante de r ˘aspuns (A, B, C) s ¸i trei opt ¸iuni: una ˆıi permite cur-
santului s ˘a r˘aspund ˘a mai t ˆarziu la acea ˆıntrebare, una pentru a s ¸terge r ˘aspunsul bifat, s ¸i a
treia pentru a confirma r ˘aspunsul bifat s ¸i pentru a trece la urm ˘atoarea ˆıntrebare. ˆIn cazul
ˆın care cursantul r ˘aspunde gres ¸it unei ˆıntreb ˘ari, acestuia i se ofer ˘a posibilitatea s ˘a vad ˘a s ¸i
r˘aspunsul corect. Fiecare chestionar cont ¸ine 26 de ˆıntreb ˘ari, iar pentru a fi declarat PRO-
MOV AT, cursantul trebuie s ˘a r˘aspund ˘a corect la cel put ¸in 22 de ˆıntreb ˘ari. ˆIn caz contrar,
acesta este declarat NEPROMOV AT. La finalul fiec ˘arei simul ˘ari de testare a cunos ¸tint ¸elor,
sistemul afis ¸eaz ˘a punctajul obt ¸inut de cursant s ¸i ˆıi ofer ˘a posibilitatea de a vedea r ˘aspunsurile
corecte la ˆıntreb ˘arile la care acesta a r ˘aspuns gres ¸it. Administratorul poate modifica datele
utilizatorilor sau poate chiar s ¸terge date despre aces ¸tia daca acest lucru este necesar. Pentru
aceste operat ¸ii el va caut ˘a utilizatorul introduc ˆand numele de utilizator sau o parte din acesta,
urmˆand s ˘a aleag ˘a din rezultatele c ˘aut˘arii utilizatorul ce urmeaz ˘a a fi modificat sau s ¸ters. In-
troducerea subiectelor grila poate fi f ˘acut˘a prin interfat ¸a grafic ˘a sau prin instruct ¸iuni MySQL
de tip INSERT. Subiectele sunt alese aleator de c ˘atre sistem care formeaz ˘a chestionare de
evaluare, ˆıns˘aˆın cadrul unui chestionar, o ˆıntrebare nu poate fi generata de mai multe ori.
4

Definirea problemei Participant ¸i
2.2 Participant ¸i
ˆIn cadrul unui sistem informatic, participant ¸ii sunt persoanele care influent ¸eaza sau sunt
influent ¸ate ˆın mod direct sau indirect de dezvoltarea s ¸i/sau utilizarea sistemului software.
Aces ¸tia pot fi:
.externi , precum viitorii cursant ¸i sau actuali ai s ¸colilor de s ¸oferi
.interni , cum ar fi, administratorul care se ocup ˘a de gestionarea corect ˘a a subiectelor
de tip gril ˘a s ¸i a conturilor de utilizator.
Dezvoltatorii aplicat ¸iei sunt s ¸i ei, de asemenea participant ¸i, deoarece aces ¸tia particip ˘a di-
rectˆın procesul software care va duce la construirea sistemului final. Pentru sistemul E-
ChestionareAuto, participant ¸ii sunt: analistul, proiectantul, programatorul sistemului, ad-
ministratorul, precum s ¸i cursantul.
2.3 Scenarii de baz ˘a
S˘a presupunem c ˘a Marinescu Ion dores ¸te sa obt ¸in ˘a permisul de conducere pentru o catego-
ria auto B. Pentru a promova examenul teoretic, acesta trebuie s ˘aˆınvet ¸e codul rutier s ¸i cu
ajutorul cunos ¸tint ¸elor dob ˆandite s ˘a completeze chestionare auto. Pentru realizarea acestui
lucru, Ion va trebui init ¸ial s ˘a seˆınregistreze ˆın sistem, iar dup ˘a aceea s ˘a se autentifice, pentru
a putea ˆınv˘at ¸a legislat ¸ia rutier ˘a, pentru a putea completa chestionare, dar s ¸i pentru a-s ¸i vedea
punctajul obt ¸inut ˆın cadrul unui chestionar. ˆIn cadrul unui chestionar auto, ˆınainte de com-
pletarea acestuia, utilizatorul va trebui s ˘aˆıs ¸i aleag ˘a categoria pentru care opteaz ˘a. Sistemul
genereaz ˘a aleator 26 de ˆıntreb ˘ari. La fiecare ˆıntrebare cursantul poate selecta unul, dou ˘a sau
cel mult trei r ˘aspunsuri ca fiind corecte. ˆIn cazul ˆın care acesta nu s ¸tie s ˘a r˘aspund ˘a la o
ˆıntrebare, poate opta pentru a r ˘aspunde mai t ˆarziu, ˆın acest caz, ˆıntrebarea schimbat ˘a se va
trimite la sf ˆars ¸itul chestionarului. Dac ˘a, din gres ¸eal ˘a, utilizatorul selecteaz ˘a un alt r ˘aspuns,
fat ¸˘a de cel pe care voia s ˘a-l bifeze, acestuia i se ofer ˘a opt ¸iunea de a s ¸terge r ˘aspunsul. Pentru
a trece la urm ˘atoarea ˆıntrebare, Ion va trebui s ˘a apese butonul de trimitere r ˘aspuns. Sis-
temul verfic ˘a dac ˘a r˘aspunsurile sunt corecte, ˆın caz contrar se afis ¸eaz ˘a s ¸i varianta de r ˘aspuns
corect ˘a s ¸i se continu ˘a cu urmatoarea ˆıntrebare. La fiecare subiect gres ¸it, sistemul va incre-
menta r ˘aspunsurile eronate, iar daca acestea sunt maxim patru, chestionarul se opres ¸te s ¸i se
afis ¸eaz ˘a un mesaj prin care cursantul este anunt ¸at ca nu a promovat examenul auto. Pentru
a promova, acesta are nevoie de minim 22 de r ˘aspunsuri corecte, la care se va r ˘aspunde ˆın
maxim 30 de minute. Dac ˘a timpul alocat se termin ˘a, chestionarul este oprit s ¸i se afis ¸eaz ˘a
mesaj de nepromovare. Administratorul sistemului are dreptul de a introduce noi subiecte
de tip gril ˘aˆın baza de date, ce vor cont ¸ine categoria auto, continutul ˆıntreb ˘arii s ¸i imag-
ine(dup ˘a caz), cele trei r ˘aspunsuri aferente ˆıntreb ˘arii s ¸i valoarea de adevar a r ˘aspunsurilor.
Pe lˆang˘a acest lucru, administratorul are dreptul s ¸i de a modifica sau s ¸terge subiecte de tip
gril˘a.ˆIn cazul conturilor de utilizator, acesta are posibilitatea de a vizualiza conturi, modifica
informat ¸iile unui cont, cum ar fi: nume de utilizator, parol ˘a, nume s ¸i prenume, dar s ¸i de a
s ¸terge conturi de utilizator.
5

Capitolul 3
Analiza software a sistemului
Analiza cerint ¸elor software reprezint ˘a o activitate ce st ˘a la baza dezvolt ˘arii oric ˘arui sistem
software. Unul din modele realizate ˆın timpul acestei activit ˘at ¸i este documentul de cerint ¸e
software. Obiectivele principale urm ˘arite sunt:
.ˆInt ¸elegerea problemelor curente ale utilizatorilor s ¸i ale beneficiarilor sistemului( ˆın
cazul nostru, sistemul E-ChestionareAuto);
.Asigurarea unei viziuni comune asupra problemelor s ¸i a viitoarelor solut ¸ii;
.Identificarea s ¸i str ˆangerea cerint ¸elor pentru viitorul produs de tip software s ¸i traducerea
cerint ¸elor clientului ˆın cerint ¸e de tip software, pe care dezvoltatorii software le vor
putea ˆınt ¸elege s ¸i integra ˆın produsul final [1].
3.1 Documentul de cerint ¸e
Documentul de cerint ¸e reprezint ˘a descrierea funct ¸ionalit ˘at ¸ilor s ¸i propriet ˘at ¸ilor sistemului
software, as ¸a cum este v ˘azut acesta de c ˘atre tot ¸i cei interesat ¸i ˆın funct ¸ionarea lor, aceste
persoane numindu-se participant ¸i. Documentul de cerint ¸e cuprinde 4 sect ¸iuni:
1.Descrierea sistemului software. Acesta cont ¸ine c ˆateva fraze ce constituie prezentarea
general ˘a a sistemului.
2.Actorii software. Descriu unul sau mai multe roluri pe care le joaca utilizatorii care
interact ¸ioneaz ˘a cu sistemul.
3.Cerint ¸e funct ¸ionale. Acestea specific ˘a ce va face sistemul. Ele sunt grupate pe baza
unor criterii logice legate de sistem. Modelul unei funct ¸ii trebuie s ˘a respecte urm ˘atorul
s ¸ablon: Sistemul trebuie s ˘a execute/ s ˘a verifice/ s ˘a afis ¸eze/ s ˘a furnizeze/ s ˘aˆınregistreze/
s˘a stocheze/ etc .
4.Cerint ¸e nefunct ¸ionale. Reprezint ˘a propriet ˘at ¸ile sau atributele de calitate ale sistemului.
De exemplu, atributele de calitate ale unui sistem pot fi robustet ¸e, timp de r ˘aspuns
maxim admisibil, platforma hardware/software impus ˘a, etc.[1].
6

Analiza software a sistemului Documentul de cerint ¸e
3.1.1 Descrierea sistemului software
Sistemul software ofer ˘a posibilitatea ˆınv˘at ¸˘arii codului rutier, test ˘arii cunos ¸tint ¸elor auto, pre-
cum s ¸i vizualizarea rezultatelor obt ¸inute. De asemenea, sistemul permite inserarea, memo-
rarea, modificarea s ¸i s ¸tergerea subiectelor gril ˘a, dar s ¸i modificarea s ¸i s ¸tergerea conturilor de
utilizator.
3.1.2 Actorii software
Actorii software pentru sistemul curent sunt: administrator s ¸i utilizator. Niciunul dintre
actorii software nu are cunos ¸tint ¸e despre limbajul de programare ˆın care este implementat ˘a
aplicat ¸ia s ¸i nici de preg ˘atire ˆın prealabil de folosire a acesteia.
3.1.3 Cerint ¸e funct ¸ionale
Modelul unei funct ¸ii trebuie s ˘a aib ˘a urm ˘atorul s ¸ablon: Sistemul trebuie s ˘a execute/ s ˘a veri-
fice/ s ˘a afis ¸eze/ s ˘a furnizeze/ s ˘aˆınregistreze/ s ˘a stocheze/ etc .
ˆIn continuare, prezent ˘am cerint ¸ele funct ¸ionale ale sistemului E-ChestionareAuto:
7

Analiza software a sistemului Documentul de cerint ¸e
F1ˆInregistrare utilizator
.F1.1 Afis ¸eaz ˘a formularul de ˆınregistrare
.F1.2 Permite introducerea datelor noului utilizator
.F1.3 Valideaz ˘a datele introduse
.F1.4 Memoreaz ˘a datele introduse de noul utilizator ˆın baza de date
F2 Autentificare utilizator
.F2.1 Afis ¸eaz ˘a formularul de autentificare
.F2.2 Permite introducerea datelor utilizatorului
.F2.3 Valideaz ˘a autentificarea
.F2.4 Afis ¸eaz ˘a trei opt ¸iuni: ”Legislat ¸ie rutier ˘a” , ”Chestionare auto” s ¸i ”Vizualizare
punctaj”.
F3 Tratarea p ˘art ¸ii teoretice
.F3.1 Afis ¸eaz ˘a capitolele legislat ¸iei rutiere
.F3.2 Permite alegerea unui capitol de legislat ¸ie rutier ˘a
.F3.3 Permite printarea capitolului de legislat ¸ie rutier ˘a
F4 Rezolvare chestionar auto
.F4.1 Permite alegerea unei categorii de autovehicule
.F4.2 Afis ¸eaz ˘a chestionarul auto
.F4.3 Permite utilizatorului s ˘a r˘aspund ˘a mai t ˆarziu
.F4.4 Permite utilizatorului s ¸tergerea r ˘aspunsului bifat
.F4.5 Permite utilizatorului confirmarea r ˘aspunsului bifat
.F4.6 Afis ¸eaz ˘a mesaj de eroare ˆın caz ca utilizatorul nu a promovat chestionarul auto s ¸i
afis ¸eaz ˘a punctajul obt ¸inut
.F4.7 Afis ¸eaz ˘a mesaj ˆın cazul ˆın care utilizatorul promoveaz ˘a chestionarul auto ˆımpreun ˘a
cu punctajul obt ¸inut
F5 Vizualizare rezultate obt ¸inute
.F5.1 Afis ¸eaz ˘a rezultate obt ¸inute
F6 Administrare cont utilizator
.F6.1 Permite vizualizarea contului
.F6.2 Permite modificarea contului
.F6.3 Memoreaz ˘a modificarea contului
.F6.4 Permite s ¸tergerea conturilor
.F6.5 Memoreaz ˘a s ¸tergerea contului
.F6.6 Afis ¸eaz ˘a un mesaj de confirmare a s ¸tergerii contului
F7 Administrare chestionar
.F7.1 Permite introducerea unei grile
.F7.2 Memoreaz ˘a grila nou-adaugata
.F7.3 Permite modificarea unei grile
.F7.4 Memoreaz ˘a modificarile
.F7.5 Permite s ¸tergerea unei grile
.F7.6 Afis ¸eaz ˘a un mesaj de confirmare a stergerii grilei
.F7.7 Memoreaz ˘a stergerea grilei.
8

Analiza software a sistemului Modelul funct ¸ional
3.1.4 Cerint ¸e nefunct ¸ionale
.C.N 1) Aplicat ¸ia trebuie s ˘a foloseasc ˘a fis ¸iere pentru a memora datele.
.C.N 2) Pentru utilizarea aplicat ¸iei, utilizatorul nu are nevoie s ˘a consulte manualul uti-
lizatorului.
.C.N 3) Aplicat ¸ia trebuie s ˘a verifice datele introduse de utilizatori.
.C.N 4) Aplicat ¸ia trebuie s ˘a ruleze pe orice sistem de operare de tip Windows.
3.2 Modelul funct ¸ional
Un model reprezint ˘a o descriere rezultat ˘aˆın urma aplic ˘arii unor mecanisme de abstractizare
asupra unui sistem sau a unui domeniu. Modelul funct ¸ional cont ¸ine descrierea cazurilor de
utilizare software, diagrama UML1[2] a cazurilor de utilizare s ¸i opt ¸ional, diagrame UML de
activit ˘at ¸i ale cazurilor de utilizare software. Obiectivul principal al construirii unui astfel de
model este de a ˆınt ¸elege mai bine sistemul studiat, precum s ¸i modul de funct ¸ionare [1].
3.2.1 Identificarea cazurilor de utilizare
Un caz de utilizare software reprezint ˘a comportamentul potent ¸ial al unui clasificator (sistem)
ˆın interact ¸iunea lui cu unul sau mai mult ¸i actori software. Orice caz de utilizare poate fi
descris textual, printr-un s ¸ablon[3]. Un caz de utilizare cont ¸ine:
.Nume : Numele cazului de utilizare software
.Descriere : Descrie comportamentul sistemului s ¸i interact ¸iunea lui cu actorii software
implicat ¸i pentru ˆındeplinirea unui obiectiv
.Actori software : Sunt enumerat ¸i actorii software implicat ¸i. Poate exista un actor
principal, care determin ˘aˆınceperea execut ¸iei unui caz de utilizare.
.Eveniment declans ¸ator : Se specific ˘a act ¸iunea realizat ˘a de actorul principal ce deter-
min˘aˆınceperea execut ˘arii cazului de utilizare descris.
.Precondit ¸ii : Descriu starea sistemului, ˆınainte de ˆınceperea execut ˘arii cazului de uti-
lizare
.Postcondit ¸ii : Descriu starea sistemului, dup ˘a executarea cazului de utilizare.
.Referint ¸e ˆıncrucis ¸ate : Sunt enumerate cerint ¸ele funct ¸ionale ˆındeplinite de sistem ˆın
acest caz de utilizare.
.Flux principal : Descrie interact ¸iunea dintre actori s ¸i sistem prin act ¸iunile f ˘acute de
fiecare participant.
.Fluxul alternativ[A1..] : Descrie act ¸iunile sistemului s ¸i ale actorilor ˆın anumite situat ¸ii.
Aici trebuie specificat daca se continu ˘a/termin ˘a cu un pas din fluxul principal sau al-
ternativ sau scriind ca fluxul principal se ˆıncheie. ˆIn situat ¸ii except ¸ionale pot exista s ¸i
fluxuri de eroare, acestea not ˆand-se [E1..][3].
Funct ¸iile sistemului sunt ˆındeplinite de cazurile de utilizare pe care sistemul ar trebui s ˘a le
1UML (Unified Modeling Language) = limbaj de modelare unificat
9

Analiza software a sistemului Modelul funct ¸ional
implementeze. Cazurile de utilizare ale sistemului software E-ChestionareAuto sunt:
1.ˆInregistrare
2. Autentificare
3. Tratare parte teoretic ˘a
4. Rezolvare chestionar auto
5. Vizualizare rezultate obt ¸inute
6. Administrare cont utilizator
7. Modificare cont utilizator
8. S ¸tergere cont utilizator
9. Administrare subiecte gril ˘a
10. Introducere subiecte gril ˘a
11. Modificare subiecte gril ˘a
12. S ¸tergere subiecte gril ˘a
3.2.2 Descrierea cazurilor de utilizare
Nume :ˆInregistrare
Descriere : Interact ¸iunea viitorului utilizator cu sistemul pentru a se ˆınregistra
Actori software : Viitor utilizator/Administrator
Eveniment declans ¸ator : Utilizatorul dores ¸te s ˘a seˆınregistreze ˆın sistem
Precondit ¸ii : Sistemul funct ¸ioneaz ˘a corect
Postcondit ¸ii : Sistemul a memorat datele din formularul de ˆınregistrare
Referint ¸e ˆıncrucis ¸ate : F1.1 — F1.4
Fluxul de baz ˘a:
Utilizator Sistem
1. Solicit ˘aˆınregistrarea ˆın sistem. 2. Afis ¸eaz ˘a formularul de ˆınregistrare.
3. Introduce s ¸i trimite datele. 4. Verific ˘a datele primite [A1].
5. Memoreaz ˘a datele pe suport persis-
tent.
6. Afis ¸eaz ˘a un mesaj de confirmare.
Tabelul 3.1 : Fluxul de baz ˘a al cazului de utilizare ” ˆInregistrare utilizator”
10

Analiza software a sistemului Modelul funct ¸ional
Flux alternativ:
A1 Datele sunt incorecte
1.Sistemul afis ¸eaz ˘a un mesaj de eroare.
2.Fluxul se ˆıntoarce la pasul 2 din fluxul de baz ˘a.
Nume : Autentificare
Descriere : Interact ¸iunea utilizatorului cu sistemul pentru a se autentifica
Actori software : Utilizator
Eveniment declans ¸ator : Utilizatorul cere s ˘a se autentifice ˆın sistem
Precondit ¸ii : Sistemul a memorat datele de ˆınregistrare ale utilizatorilor
Postcondit ¸ii : Sistemul a validat datele din formularul de autentificare
Referint ¸e ˆıncrucis ¸ate : F2.1 — F2.4
Fluxul de baz ˘a:
Utilizator Sistem
1. Solicit ˘a autentificarea ˆın sistem. 2. Afis ¸eaz ˘a formularul de autentifi-
care.
3. Introduce nume utilizator s ¸i parola
s ¸i trimite datele.4. Verific ˘a datele primite [A1].
5.Valideaz ˘a autentificarea.
6. Afis ¸eaz ˘a trei opt ¸iuni: Legislat ¸ie ru-
tiera , Chestionare auto s ¸i Vizualizare
punctaj
Tabelul 3.2 : Fluxul de baz ˘a al cazului de utilizare ”Autentificare”
Flux alternativ:
A1 Datele sunt incorecte
1.Sistemul afis ¸eaz ˘a un mesaj de eroare.
2.Fluxul se ˆıntoarce la pasul 2 din fluxul de baz ˘a.
Nume : Tratare parte teoretic ˘a
Descriere : Interact ¸iunea utilizatorului cu sistemul pentru accesarea p ˘art ¸ii teoretice
Actori software : Utilizator
Eveniment declans ¸ator : Utilizatorul alege afis ¸area capitolelor de legislat ¸ie rutier ˘a
Precondit ¸ii : : Sistemul a realizat autentificarea unui utilizator
Postcondit ¸ii : Sistemul a afis ¸at capitolele legislat ¸iei rutiere
Referint ¸e ˆıncrucis ¸ate : F3.1 — F3.3
Fluxul de baz ˘a:
11

Analiza software a sistemului Modelul funct ¸ional
Utilizator Sistem
1. Cere afis ¸area capitolelor de
legislat ¸ie rutier ˘a.2. Afis ¸eaz ˘a capitolele legislat ¸iei ru-
tiere.
3. Alege un capitol din legislat ¸ie. 4. Afiseaz ˘a continutul capitolului.
5. Cere printarea capitolului 6. Printeaz ˘a capitolul.
Tabelul 3.3 : Fluxul de baz ˘a al cazului de utilizare ”Tratare parte teoretic ˘a”
Nume : Rezolvare chestionar auto
Descriere : Interact ¸iunea utilizatorului cu sistemul pentru accesarea chestionarelor
Actori software : Utilizator
Eveniment declans ¸ator : Utilizatorul cere s ˘a parcurg ˘a chestionarele auto
Precondit ¸ii : Utilizatorul trebuie s ˘a se fi autentificat ˆın sistem.
Postcondit ¸ii : Sistemul a afis ¸at chestionarele auto s ¸i a memorat rezultatele obt ¸inute.
Referint ¸e ˆıncrucis ¸ate : F4.1 — F4.7
Fluxul de baz ˘a:
Cursant Sistem
1. Alege completarea unui chestionar
auto.2. Cere alegerea unei categorii de au-
tovehicule.
3.Bifeaz ˘a categoria pentru care dores ¸te
s˘a completeze chestionarul auto.4. Afis ¸eaz ˘a chestionarul auto.
5.Bifeaz ˘a unul sau mai multe
r˘aspunsuri valabile unei ˆıntreb ˘ari
din chestionar. [A4]
6. Confirm ˘a r˘aspuns. 7. Verific ˘a r˘aspunsurile utilizatorului
[A5]
8. Sistemul afis ¸eaz ˘a un mesaj s ¸i
punctajul obt ¸inut ˆın cazul ˆın care
utilizatorul promoveaz ˘a chestionarul
auto.[A3]
Tabelul 3.4 : Fluxul de baz ˘a al cazului de utilizare ”Rezolvare chestionar auto”
12

Analiza software a sistemului Modelul funct ¸ional
Flux alternativ:
A3 Utilizatorul nu a promovat chestionarul.
1.Sistemul afis ¸eaz ˘a un mesaj de eroare.
2.Fluxul principal se termin ˘a.
A4 Utilizatorul dores ¸te s ˘a r˘aspund ˘a mai t ˆarziu la o ˆıntrebare
1.Sistemul schimb ˘aˆıntrebarea respectiv ˘a cu o alta ˆıntrebare din acelas ¸i chestionar.
A5 Utilizatorul bifeaz ˘a r˘aspunsul gres ¸it
1.Sistemul debifeaz ˘a r˘aspunsul bifat de utilizator.
Nume : Vizualizare rezultate obt ¸inute
Descriere : Interact ¸iunea utilizatorului cu sistemul ˆın vederea vizualiz ˘arii punctajului obt ¸inut
la chestionarele auto anterioare
Actori software : Utilizator
Eveniment declans ¸ator : Utilizatorul dores ¸te s ˘a vizualizeze punctajul obt ¸inut ˆın urma re-
zolv˘arii chestionarelor auto
Precondit ¸ii : Utilizatorul trebuie s ˘a fi completat cel put ¸in un chestionar auto.
Postcondit ¸ii : Sistemul a ies ¸it cu succes din modul de vizualizare rezultate.
Referint ¸e ˆıncrucis ¸ate : F5.1
Fluxul de baz ˘a:
Utilizator Sistem
1. Solicit ˘a vizualizarea rezultatelor. 2. Afis ¸eaz ˘a rezultatele obt ¸inute ante-
rior.
Tabelul 3.5 : Fluxul de baz ˘a al cazului de utilizare ”Vizualizare rezultate obt ¸inute”
Nume : Administrare cont utilizator
Descriere : Interact ¸iunea cu sistemul pentru s ¸tergerea s ¸i modificarea conturilor
Actori software : Administrator
Eveniment declans ¸ator : Administratorul dores ¸te modificarea sau s ¸tergerea unor conturi
Precondit ¸ii : Sistemul a memorat datele ale cel put ¸in unui cont
Postcondit ¸ii : Sistemul memoreaz ˘a modific ˘arile efectuate de administrator
Referint ¸e ˆıncrucis ¸ate : F6.1 — F6.6
Fluxul de baz ˘a:
Administrator Sistem
1. Solicit ˘a administrarea conturilor 2. Afis ¸eaz ˘a 2 opt ¸iuni: Modificare cont
s ¸i S ¸tergere cont
3.Alege opt ¸iune. 4. ˆIn funct ¸ie de opt ¸iunea aleas ˘a,
se execut ˘a cazul Modificare cont sau
S ¸tergere cont.
Tabelul 3.6 : Fluxul de baz ˘a al cazului de utilizare ”Administrare cont utilizator”
13

Analiza software a sistemului Modelul funct ¸ional
Nume : Modificare cont
Descriere : Interact ¸iunea cu sistemul pentru modificarea conturilor
Actori software : Administrator
Eveniment declans ¸ator : Administratorul dores ¸te modificarea unor conturi
Precondit ¸ii :Sistemul a memorat datele ale cel put ¸in unui cont
Postcondit ¸ii : Sistemul memoreaz ˘a modific ˘arile efectuate de administrator
Referint ¸e ˆıncrucis ¸ate : F6.1 — F6.3.
Fluxul de baz ˘a:
Administrator Sistem
1. Solicit ˘a numele de utilizator al con-
tului ce urmeaz ˘a a fi modificat
2.Trimite numele de utilizator 3. Afiseaz ˘a un formular ce permite
modificarea contului.
4. Trimite datele noi 5. Cere confirmarea modific ˘arilor fa-
cute
6. Confirm ˘a modific ˘arile 7. Memoreaz ˘a modific ˘arile f ˘acute con-
tului de utilizator.
Tabelul 3.7 : Fluxul de baz ˘a al cazului de utilizare ”Modificare cont”
Nume : S ¸tergere cont
Descriere : Interact ¸iunea cu sistemul pentru s ¸tergerea conturilor
Actori software : Administrator
Eveniment declans ¸ator : Administratorul dores ¸te s ¸tergerea unui cont
Precondit ¸ii : Sistemul a memorat datele ale cel put ¸in unui cont
Postcondit ¸ii : Sistemul memoreaz ˘a modific ˘arile efectuate de administrator
Referint ¸e ˆıncrucis ¸ate : F6.4 — F6.6
Fluxul de baz ˘a:
Administrator Sistem
1. Solicit ˘a numele de utilizator al con-
tului ce urmeaz ˘a a fi s ¸ters
2. Trimite numele de utilizator. 3. Cere confirmarea s ¸tergerii
4. Confirm ˘a s ¸tergerea 5.Memoreaz ˘a modific ˘arile
Tabelul 3.8 : Fluxul de baz ˘a al cazului de utilizare ”S ¸tergere cont”
Nume : Administrare subiect gril ˘a
Descriere : Interact ¸iunea cu sistemul pentru introducerea, s ¸tergerea s ¸i modificarea subiectelor
gril˘a
Actori software : Administrator
Eveniment declans ¸ator : Administratorul dores ¸te introducerea, modificarea sau s ¸tergerea
unor grile
Precondit ¸ii : Sistemul a memorat cel put ¸in un chestionar
Postcondit ¸ii : Sistemul memoreaz ˘a modific ˘arile efectuate de administrator
Referint ¸e ˆıncrucis ¸ate : F7.1 — F7.6
Fluxul de baz ˘a:
14

Analiza software a sistemului Modelul funct ¸ional
Administrator Sistem
1.Cere administrarea grilelor. 2. Afis ¸eaz ˘a 3 opt ¸iuni: Introducere
subiect gril ˘a, Modificare subiect gril ˘a
s ¸i Stergere subiect gril ˘a
3. Alege o opt ¸iune. 4.ˆIn funct ¸ie de opt ¸iunea aleas ˘a, se
execut ˘a cazul de utilizareIntroducere
subiect gril ˘a, Modificare subiect gril ˘a
sau Stergere subiect gril ˘a
Tabelul 3.9 : Fluxul de baz ˘a al cazului de utilizare ”Administrare subiect gril ˘a”
Nume : Introducere subiect gril ˘a
Descriere : Interact ¸iunea cu sistemul pentru introducerea subiectelor gril ˘a
Actori software : Administrator
Eveniment declans ¸ator : Administratorul dores ¸te introducerea unor grile
Precondit ¸ii :Sistemul trebuie s ˘a funct ¸ioneze
Postcondit ¸ii : Sistemul memoreaz ˘a modific ˘arile efectuate de administrator
Referint ¸e ˆıncrucis ¸ate : F7.1 — F7.2
Fluxul de baz ˘a:
Administrator Sistem
1. Afiseaz ˘a un formular ce permite in-
troducerea subiectului gril ˘a
2. Trimite datele 3. Verific ˘a datele primite [A1].
4.Cere confirmarea memor ˘arii subiec-
tului.
5. Confirm ˘a memorarea 6. Memoreaz ˘a datele pe suport persis-
tent
Tabelul 3.10 : Fluxul de baz ˘a al cazului de utilizare ”Introducere subiect gril ˘a”
Flux alternativ:
A1 Datele sunt incorecte
1.Sistemul afis ¸eaz ˘a un mesaj de eroare.
2.Fluxul se ˆıntoarce la pasul 1 din fluxul de baz ˘a.
Nume : Modificare subiect gril ˘a
Descriere : Interact ¸iunea cu sistemul pentru modificarea subiectelor gril ˘a
Actori software : Administrator
Eveniment declans ¸ator : Administratorul dores ¸te modificarea unor grile
Precondit ¸ii : Sistemul trebuie s ˘a fi memorat cel put ¸in un chestionar
Postcondit ¸ii : Sistemul memoreaz ˘a modific ˘arile efectuate de administrator
Referint ¸e ˆıncrucis ¸ate : F7.3 — F7.4
Fluxul de baz ˘a:
15

Analiza software a sistemului Modelul funct ¸ional
Administrator Sistem
1. Afiseaz ˘a un formular ce permite
modificarea subiectului gril ˘a
2. Trimite datele. 3. Verific ˘a datele primite [A1].
4.Cere confirmarea modific ˘arilor fa-
cute.
5. Confirm ˘a modific ˘arile 6. Memoreaz ˘a datele pe suport persis-
tent
Tabelul 3.11 : Fluxul de baz ˘a al cazului de utilizare ”Modificare subiect gril ˘a ”
Flux alternativ:
A1 Datele sunt incorecte
1.Sistemul afis ¸eaz ˘a un mesaj de eroare.
2.Fluxul se ˆıntoarce la pasul 1 din fluxul de baz ˘a.
Nume : S ¸tergere subiect gril ˘a
Descriere : Interact ¸iunea cu sistemul pentru s ¸tergerea subiectelor gril ˘a
Actori software : Administrator
Eveniment declans ¸ator : Administratorul dores ¸te s ¸tergerea unor grile
Precondit ¸ii : Sistemul trebuie s ˘a fi memorat cel put ¸in un chestionar
Postcondit ¸ii : Sistemul memoreaz ˘a modific ˘arile efectuate de administrator
Referint ¸e ˆıncrucis ¸ate : F7.4 — F7.7
Fluxul de baz ˘a:
Administrator Sistem
1. Afis ¸eaz ˘a lista tuturor subiectelor
gril˘a
2. Alege subiectul ce urmeaz ˘a a fi s ¸ters 3. Cere confirmarea s ¸tergerii
4. Confirm ˘a s ¸tergerea 5. Memoreaz ˘a modific ˘arile facute
Tabelul 3.12 : Fluxul de baz ˘a al cazului de utilizare ”S ¸tergere subiect gril ˘a”
3.2.3 Diagrama complet ˘a a cazurilor de utilizare
Diagrama cazurilor de utilizare este folosit ˘a pentru reprezentarea funct ¸ionalit ˘at ¸ilor sistemu-
lui. Elementele care se g ˘asesc ˆıntr-o astfel de diagram ˘a sunt actorii, cazurile de utilizare soft-
ware s ¸i relat ¸iile dintre ele. Un actor reprezint ˘a o entitate extern ˘aa sistemului care interact ¸ioneaz ˘a
cu acesta. Un actor descrie un rol pe care un utilizator sau un alt sistem software ˆıl joac ˘aˆın
cadrul interactiunii cu sistemul curent.
Un caz de utilizare descrie un grup de funct ¸ii ale sistemului legate ˆıntre ele din punct
de vedere logic, pe care acesta le va pune la dispozit ¸ia altor sisteme sau actorilor software
cu care interact ¸ioneaz ˘a. Cazurile sunt reprezentate grafic sub forma unor elipse ce cont ¸in ˆın
16

Analiza software a sistemului Modelul funct ¸ional
interiorul lor numele lor. Numele cazurilor trebuie sa fie c ˆat mai sugestive pentru a evident ¸ia
funct ¸iile pe care acestea le ˆındeplinesc. De regul ˘a, numele unui caz trebuie s ˘aˆınceap ˘a cu
substantiv ce provine dintr-un verb. Actorul reprezint ˘a beneficiarul unei anumite funct ¸ii a
sistemului (recept ¸ioneaz ˘a un mesaj) sau poate efectua o anumit ˘a operat ¸ie asupra sistemului
(transmite un mesaj). Relat ¸iile de asociere descriu interact ¸iunile dintre actori s ¸i sistem [4].
Diagrama cazurilor de utilizare software a sistemului E-ChestionareAuto este reprezen-
tat˘a mai jos (vezi figura 3.1)
Figura 3.1 : Diagrama cazurilor de utilizare software a sistemului E-ChestionareAuto
17

Analiza software a sistemului Diagrame de secvent ¸e de sistem
3.3 Diagrame de secvent ¸e de sistem
O diagram ˘a de secvent ¸e de sistem descrie colaborarea dintre actorii software s ¸i sistem, prin
mesajele trimise ˆıntre aces ¸tia. Componentele diagramei de secvent ¸e sunt:
.Linia de viat ¸ ˘a: Reprezint ˘a perioada de existent ¸ ˘a a unui obiect
.Activarea: Reprezint ˘a perioada de execut ¸ie a unei operat ¸ii de c ˘atre un obiect sau de
alte obiecte cu care acesta colaboreaz ˘a
.Mesaj: Modeleaz ˘a un flux de informat ¸ie de la un obiect la alt obiect
O diagram ˘a de secvent ¸e de sistem este construit ˘a pentru un caz de utilizare software[1]. ˆIn
continuare, voi prezenta diagramele de secvent ¸e de sistem ale cazurilor de utilizare software
ale sistemului E-ChestionareAuto.
.ˆInregistrare utilizator
Figura 3.2 : Diagrama de secvent ¸e de sistem a cazului de utilizare ” ˆInregistrare utilizator”
18

Analiza software a sistemului Diagrame de secvent ¸e de sistem
.Autentificare
Figura 3.3 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Autentificare”
.Tratare parte teoretic ˘a
Figura 3.4 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Tratare parte teoretic ˘a”
19

Analiza software a sistemului Diagrame de secvent ¸e de sistem
.Rezolvare chestionar auto
Figura 3.5 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Rezolvare chestionar auto”
.Vizualizare punctaj
Figura 3.6 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Vizualizare punctaj”
20

Analiza software a sistemului Diagrame de secvent ¸e de sistem
.Administrare cont utilizator
Figura 3.7 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Administrare cont utilizator”
.Modificare cont
Figura 3.8 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Modificare cont”
21

Analiza software a sistemului Diagrame de secvent ¸e de sistem
.S ¸tergere cont
Figura 3.9 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”S ¸tergere cont”
.Admnistrare subiect gril ˘a
Figura 3.10 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Administrare subiect gril ˘a”
22

Analiza software a sistemului Diagrame de secvent ¸e de sistem
.Introducere subiect gril ˘a
Figura 3.11 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Introducere subiect gril ˘a”
.Modificare subiect gril ˘a
Figura 3.12 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”Modificare subiect gril ˘a”
23

Analiza software a sistemului Diagrame de context
.S ¸tergere subiect gril ˘a
Figura 3.13 : Diagrama de secvent ¸e de sistem a cazului de utilizare ”S ¸tergere subiect gril ˘a”
3.4 Diagrame de context
O diagram ˘a de context descrie actorii software, precum s ¸i leg ˘aturile acestora cu sistemul
analizat. Diagramele de context sunt construite din dou ˘a perspective:
.Din perspectiv ˘a funct ¸ional ˘a,ˆın care sistemul este v ˘azut ca un caz de utilizare software;
.Din perspectiv ˘a structural ˘a, unde sistemul este v ˘azut ca o clas ˘a, ale c ˘arei operat ¸ii
se numesc operat ¸ii de sistem s ¸i sunt deduse din mesajele descrise ˆın diagramele de
secvent ¸e[1].
.Diagrama de context din perspectiv ˘a funct ¸ional ˘a
Figura 3.14 : Diagrama de context V1
24

Analiza software a sistemului Diagrame de activit ˘at ¸i
.Diagrama de context din perspectiv ˘a structural ˘a
Figura 3.15 : Diagrama de context V2
3.5 Diagrame de activit ˘at ¸i
O diagram ˘a de activit ˘at ¸i este un graf de activit ˘at ¸i, care arat ˘a pas ¸ii de execut ¸ie ai unui calcul
sau ai unei secvent ¸e de activit ˘at ¸i, care produce rezultate observabile ˆın sistem. Diagrama
pune accentul pe fluxul de activit ˘at ¸i efectuate c ˆand executam un caz de utilizare, dar arat ˘a si
obiecte folosite, fie ca surse de ies ¸ire, dac ˘a sunt produse sau modificate ˆın timpul sau dup ˘a
execut ¸ia unei activit ˘at ¸i, fie ca resurse de intrare, dac ˘a sunt utilizate ˆın timpul activit ˘at ¸ii de care
sunt legate. Obiectele folosite ˆın diagram ˘a fac cont ¸in informat ¸ii importante ale sistemului
software[1].
ˆIn figurile 3.16 si 3.17 de mai jos putem vedea o exemplificare a diagramelor de ac-
25

Analiza software a sistemului Diagrame de activit ˘at ¸i
tivit˘at ¸i, restul diagramelor g ˘asindu-se ˆın Anex ˘a, la pagina 46, ˆın subcapitolul 6.3.
Figura 3.16 : Diagrama de activit ˘at ¸i a cazului de utilizare ” ˆInregistrare”
26

Analiza software a sistemului Diagrama de clase a modelului de domeniu
Figura 3.17 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Autentificare”
3.6 Diagrama de clase a modelului de domeniu
Modelul de domeniu cont ¸ine obiecte business ale organizat ¸iei sau ˆıntreprinderii ˆın care va
rula sistemul software aflat ˆın curs de dezvoltare. Obiectele business reprezint ˘a informat ¸iile
importante, de regul ˘a, persistente la nivelul sistemului de lucru. Domeniul problemei reprez-
inta o port ¸iune a lumii reale delimitat ˘a s ¸i analizat ˘a de c ˘atre analist[3].
27

Analiza software a sistemului Diagrama de clase a modelului de domeniu
3.6.1 Identificarea claselor
Clasa reprezint ˘a un descriptor pentru o mult ¸ime de obiecte cu aceleas ¸i atribute sau relat ¸ii
cu obiectele altor clase s ¸i aceeas ¸i semantic ˘a. Atributul reprezint ˘a o proprietate a obiectului
unei clase in lumea real ˘a. O clas ˘a cont ¸ine definit ¸iile operat ¸iilor s ¸i datelor ce caracterizeaz ˘a
obiectele clasei respective, astfel fiind un s ¸ablon de creare a obiectelor[1].
Clasele identificate in sistemul nostru sunt:
.Persoan ˘a
./Cursant:Persoan ˘a
.Categorie
.Punctaj
.CodRutier
.CapitolLegislatie
.DosarChestionare
.Chestionar
.SubiectGril ˘a
.R˘aspuns
.Examen
3.6.2 Identificarea atributelor
Atributele reprezint ˘a propriet ˘at ¸ile claselor pentru care fiecare obiect are o valoare, prin aces-
tea definindu-se starea obiectului respectiv[1]. Pentru fiecare obiect al claselor de mai sus au
fost identificate urm ˘atoarele atribute:
.Persoan ˘a : nume, prenume
./Cursant:Persoan ˘a: numeUtilizator, parol ˘a
.Categorie: numeCategorie
.Punctaj: maxPunctaj, minPunctaj
.CapitolLegislatie: denumire
.Chestionar: nrMaxIntrebari, intrebareCuRaspunsuri
.SubiectGril ˘a: intrebareCuRaspunsuri
.R˘aspuns: continutRaspuns, valoareAdevar
ˆIn figura de mai jos, este reprezentat ˘a diagrama de clase a modelului de domeniu:
28

Analiza software a sistemului Diagrama de clase a modelului de domeniu
Figura 3.18 : Diagrama de clase a modelului de domeniu
29

Capitolul 4
Proiectarea s ¸i implementarea
aplicat ¸iei
Proiectarea reprezint ˘a o activitate de baz ˘aˆın dezvoltarea sistemelor software. Ea const ˘aˆın
construirea unei solut ¸ii conceptuale, ce ˆındeplines ¸te cerint ¸ele identificate s ¸i descrise ˆın faza
de analiz ˘a. Pentru cres ¸terea reutilizarii codului s ¸i eficient ¸ei, se folosesc modele de proiectare,
care reprezint ˘a o abstractizare a unei solutii utilizate frecvent ˆın construirea arhitecturii soft-
ware .
Schimb ˘arile cantitative s ¸i calitative ˆın planul abord ˘arii sistemelor software au condus
la evolut ¸ia metodelor de proiectare. Cea mai important ˘a activitate a oricarei metode de
proiectare o constituie crearea diagramelor de interact ¸iune, care descriu modul prin care
colaboreaz ˘a obiectele pentru ˆındeplinirea cerint ¸elor funct ¸ionale si nefunct ¸ionale ale sistemu-
lui.
ˆIn plus fact ¸ ˘a de diagramele de interact ¸iuni, se construiesc s ¸i diagrame de clase in faza
de proiectare, care, ulterior, vor fi implementate.
ˆIn timpul proiect ˘arii se va t ¸ine cont de c ˆateva principii de proiectare a claselor, cum ar
fi, distribuirea responsabilitatilor claselor [1].
Exemple de modele de proiectare, ce pot fi utilizate ˆın stabilirea responsabilit ˘at ¸ilor
claselor software(GRASP):
30

Proiectarea s ¸i implementarea aplicat ¸iei Diagrame de interact ¸iuni
1. Creator: face parte din clasa modelelor GRASP si rezolv ˘a urmatoarea problem ˘a:
”Cine ar trebui sa fie responsabil cu crearea unui obiect al unei alte clase?” Raspunsul
este sa atribuim clasei B responsabilitatea cre ˘arii unui obiect al clasei A, dac ˘a una din
afirmat ¸iile urmatoare este adev ˘arat˘a:
.B agreg ˘a obiecte ale lui A
.B cont ¸ine obiecte ale lui A
.Bˆınregistreaz ˘a obiecte ale lui A
.B are date de init ¸ializare ce vor fi transmise lui A, c ˆand este creat
Dac˘a mai multe afirmat ¸ii sunt adev ˘arate, se prefer ˘a cazul ˆın care B agreg ˘a obiecte ale
lui A. Dac ˘a B este un creator al lui A, se p ˘astreaz ˘a cuplarea slab ˘a a claselor[1].
2. Expert: responsabilitatea ˆıi este atribuit ˘a clasei ce cont ¸ine informat ¸iile necesare ˆındeplinirii
ei.ˆIn acest mod, responsabilit ˘at ¸ile vor fi ˆımpart ¸ite folosind o descompunere funct ¸ional ˘a,
fiecare subresponsabilitate fiind atribuit ˘a clasei care det ¸ine cele mai multe informat ¸ii
pentru a o ˆındeplini.[1]
3. Cuplare slab ˘a:Cuplarea reprezint ˘a m˘asura leg ˘aturilor dintre elemente. Dac ˘a un ele-
ment nu este dependent de prea multe alte elemente, spunem ca exist ˘a cuplare slab ˘a.
Cu c ˆat numarul legaturilor dintre elemente este mai mare, cu at ˆat avem o cuplare mai
ˆınalt˘a, iar acest fapt poate produce probleme. O clas ˘a A este cuplat ˘a cu B, dac ˘a:
.A are un atribut de tip B.
.Unul din obiectele clasei A apeleaz ˘a servicii ale unui obiect din clasa B.
.A are o operat ¸ie ce refer ˘a un obiect al clasei B, etc[1].
4. Coeziune ˆınalt ˘a:Coeziunea este o m ˘asur˘a ce arat ˘a cˆat de corelate sunt intre ele re-
sponsabilit ˘at ¸ile unei clase. Coeziunea ˆınalt˘a se foloses ¸te cu scopul de a p ˘astra o com-
plexitate mai simpl ˘a a sistemului, prin legarea c ˆat mai multor responsabilit ˘at ¸iˆıntre ele.
Clasele ce au o coeziune joas ˘a prezint ˘a probleme, deoarece sunt greu de ˆınt ¸eles, de
reutilizat s ¸i de ˆıntret ¸inut[1].
5. Controller: reprezint ˘a un obiectul cu primirea s ¸i gestiunea unor evenimente ale sis-
temului. De regul ˘a, se asociaz ˘a cˆate un obiect controller pentru fiecare caz de utilizare
de complexitate moderat ˘a[1].
4.1 Diagrame de interact ¸iuni
Diagramele de interact ¸iuni arat ˘a ordinea ˆın timp a mesajelor trimise ˆıntre obiectele care par-
ticip˘a la executarea unui caz de utilizare.
Ele se construiesc pentru fiecare caz de utilizare software s ¸i folosesc unul sau mai multe
stiluri arhitecturale s ¸i cel put ¸in modele de proiectare de tip GRASP [3].
ˆIn figurile de mai jos, putem vedea diagramele de interact ¸iuni a doua cazuri de utilizare
software ale sistemului E-ChestionareAuto, restul fiind prezentate ˆın Anex ˘a, la pagina 56, ˆın
subcapitolul 6.4.
31

Proiectarea s ¸i implementarea aplicat ¸iei Diagrame de interact ¸iuni
Figura 4.1 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Administrare cont”
Figura 4.2 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Vizualizare punctaj”
32

Proiectarea s ¸i implementarea aplicat ¸iei Diagrame de clase software
4.2 Diagrame de clase software
ˆIn faza de proiectare se construiesc s ¸i diagramele de clase, care difer ˘aˆıntr-o anumit ˘a masur ˘a
de cele din modelul de domeniu, deoarece acestea sunt clase software s ¸i nu descrieri ale
conceptelor din lumea real ˘a. Aceste diagrame se realizeaz ˘a pentru fiecare caz de utilizare s ¸i
cont ¸in informat ¸ii despre:
.atribute s ¸i operat ¸ii
.dependent ¸e dintre clase
.metode
.asocieri dintre clase, etc. [3].
ˆIn figurile de mai jos, putem vedea diagramele de clase a dou ˘a cazuri de utilizare soft-
ware ale sistemului E-ChestionareAuto, restul fiind prezentate ˆın Anex ˘a, la pagina 56, ˆın
subcapitolul 6.4.
Figura 4.3 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Administrare cont”
33

Proiectarea s ¸i implementarea aplicat ¸iei Proiectarea bazei de date
Figura 4.4 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Vizualizare Punctaj”
4.3 Proiectarea bazei de date
Baza de date reprezint ˘a un instrument prin care se colecteaz ˘a s ¸i se organizeaz ˘a informat ¸iile.
Acestea pot stoca informat ¸ii ˆın una sau mai multe tabele, astfel ˆıncˆat s˘a nu apar ˘a redundant ¸e.
ˆIn faza de proiectare a unei baze de date se construies ¸te schema conceptual ˘a global ˘a pentru
SGBD-ul ales. [5].
Sistemul de gesiune al bazelor de date (SGBD) reprezint ˘a interfat ¸a dintre baza de date
s ¸i utilizatorii acesteia. Facilit ˘at ¸ile pe care un SGBD trebuie s ˘a le ofere sunt:
.Controlul accesului la date: o dat ˘a memorat ˘aˆın baza de date nu ar trebui s ˘a poat ˘a fi
accesat ˘a de absolut oricine s ¸i ˆın orice mod.
.Ment ¸inerea integrit ˘at ¸ii datelor: ˆıntre dou ˘a tranzact ¸ii1, cont ¸inutul bazei de date tre-
buie sa fie valid.
.Protect ¸ie ˆımpotriva distrugerilor accidentale ale datelor memorate: ˆın cazul unei
erori de tip hardware sau software, datele nu trebuie s ˘a sufere modific ˘ari.
.Acces simultan la date: activit ˘at ¸ile dintre doi sau mai mult ¸i utilizatori ai bazei de date
nu trebuie s ˘a conduc ˘a la pierderea integrit ˘at ¸ii datelor memorate [6].
O baz ˘a de date proiectat ˘a corect, ofer ˘a acces la informat ¸ii actualizate, precise. ˆIn fiecare
tabel ˘a este necesar ˘a includerea unei coloane, ce identific ˘aˆın mod unic fiecare r ˆand memorat.
De regul ˘a, se foloses ¸te o coloana de tip ˆIntreg s ¸i care reprezint ˘a id-ul randului respectiv.
Aceast ˘a informat ¸ie primes ¸te denumirea de cheie primar ˘a a tabelei s ¸i nu pot exista valori
duplicat[7].
ˆIn cazul ˆın care nu se cunosc toate datele unei baze de date, exist ˘a posibilitatea de a seta
valori nule pe anumite c ˆampuri. Dac ˘a se dores ¸te ca un anumit c ˆamp sa fie nevid, utilizatorul
poate impune o constr ˆangere de tip NOT NULL. Cheile str ˘aine reprezint ˘a principalul mod
prin care se pot lega ˆıntre ei tuplii din relat ¸ii diferite[6].
Sistemul E-ChestionareAuto utilizeaz ˘a o baz ˘a de date construit ˘aˆın MySql WorkBench
1Tranzact ¸ia reprezint ˘a o succesiune de operat ¸ii care trebuie executat ˘a atomic.
34

Proiectarea s ¸i implementarea aplicat ¸iei Proiectarea bazei de date
6.3 CE. Schema bazei de date a fost realizat ˘a cu ajutorul programului Dia Diagram Editor s ¸i
este prezentat ˘aˆın figura 4.5.
Figura 4.5 : Diagrama de proiectare a bazei de date
35

Proiectarea s ¸i implementarea aplicat ¸iei Implementarea aplicat ¸iei
4.4 Implementarea aplicat ¸iei
Pentru implementarea aplicat ¸iei, am folosit limbajul de programare Java, pe platforma Net-
Beans IDE 8.22, leg˘atura cu baza de date MySql realiz ˘andu-se prin intermediul conectorului
JDBC(Java Database Connectivity), care reprezint ˘a o interfat ¸ ˘a SQL3de acces la baza de
date.
JDBC este reprezentat ˘a printr-un set de clase s ¸i interfet ¸e scrise ˆın Java s ¸i furnizeaz ˘a
mecanisme standard pentru dezvoltatorii de aplicat ¸ii ce folosesc baze de date. Conexiunea
la baza de date reprezint ˘a contextul prin care sunt trimise secvent ¸e SQL s ¸i primite rezultate.
La nivelul unei aplicat ¸ii pot exista simultan mai multe conexiuni la baza de date[8].
Pentru a putea realiza conexiunea la baza de date, am implementat la nivel de cod, o
clas˘a ce indeplineste aceast ˘a necesitate:
public class Conectare {
private static Conectare conexiune;
private Connection con;
private Statement stmt;
private Conectare() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost:3306/licentaDB?
autoReconnect=true&useSSL=false";
String username = "drpciv", password = "drpciv";
con = DriverManager.getConnection(url, username, password);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch (SQLException s) {
System.out.println("eroare de SQL din conectare… " + s.
getMessage());
} catch (ClassNotFoundException ex) {
Logger.getLogger(Conectare.class.getName()).log(Level.SEVERE,
null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(Conectare.class.getName()).log(Level.SEVERE,
null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(Conectare.class.getName()).log(Level.SEVERE,
null, ex);
}
}
public static Conectare getConnection() {
if(conexiune == null) {
conexiune = new Conectare();
}
2IDE (Integrated Development Environment) = mediu de dezvoltare
3SQL (Structured Query Language) = Limbaj de interogare structurat
36

Proiectarea s ¸i implementarea aplicat ¸iei Implementarea aplicat ¸iei
return conexiune;
}
}
Aceast ˘a clas ˘a implementeaz ˘a modelul de proiectare Singleton.
Pentru a securiza conturile din baza de date, am ales s ˘a folosesc algoritmul de criptare
MD5 (Message Digest Algorithm 5), care este destul de r ˘aspandit ˆın domeniul securit ˘at ¸ii.
Clasa responsabil ˘a pentru criptarea parolelor conturilor este urm ˘atoarea:
public class Md5 {
public static String criptareMD5(String data){
try{
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] messageDigst = md.digest(data.getBytes());
BigInteger num = new BigInteger(1, messageDigst);
String hashtext = num.toString(16);
while (hashtext.length()< 32){
hashtext = "0" +hashtext;
}
return hashtext;
}catch(NoSuchAlgorithmException e){
throw new RuntimeException(e);
}
}
}
Pentru a putea implementa cazurile de utilizare software: Introducere subiect gril ˘a,
Modificare subiect gril ˘a s ¸i cel de S ¸tergere subiect gril ˘a, a fost necesar s ˘a avem clasele:
ˆIntrebare s ¸i R ˘aspuns. ˆIn continuare vom prezenta codul acestor clase, dar s ¸i al metodelor
care realizeaz ˘a funct ¸iile de mai sus.
public class Intrebare {
private int id;
private String descriere;
private int id_categorie;
private String imagine_intrebare;
public int getId() {
return id;
}
public void setId( int id) {
this.id = id;
}
public String getDescriere() {
return descriere;
}
public void setDescriere(String descriere) {
this.descriere = descriere;
}
37

Proiectarea s ¸i implementarea aplicat ¸iei Implementarea aplicat ¸iei
public int getId_categorie() {
return id_categorie;
}
public void setId_categorie( int id_categorie) {
this.id_categorie = id_categorie;
}
public String getImagine_intrebare() {
return imagine_intrebare;
}
public void setImagine_intrebare(String imagine_intrebare) {
this.imagine_intrebare = imagine_intrebare;
}
public Intrebare( int id, String descriere, int id_categorie, String
imagine_intrebare) {
this.id = id;
this.descriere = descriere;
this.id_categorie = id_categorie;
this.imagine_intrebare = imagine_intrebare;
}
public Intrebare(String descriere, int id_categorie, String
imagine_intrebare) {
this.descriere = descriere;
this.id_categorie = id_categorie;
this.imagine_intrebare = imagine_intrebare;
}
public Intrebare() {
}
public String toString() {
return "Intrebare{" + "id=" + id + ", descriere=" + descriere + ",
id_categorie=" + id_categorie + ", imagine_intrebare=" +
imagine_intrebare + ’}’;
}
}
public class Raspuns {
private int id;
private String continut_raspuns;
private int id_intrebare;
private boolean valoare_adevar;
public Raspuns( int id, String continut_raspuns, int id_intrebare,
boolean valoare_adevar) {
this.id = id;
this.continut_raspuns = continut_raspuns;
this.id_intrebare = id_intrebare;
38

Proiectarea s ¸i implementarea aplicat ¸iei Implementarea aplicat ¸iei
this.valoare_adevar = valoare_adevar;
}
public Raspuns(String continut_raspuns, int id_intrebare, boolean
valoare_adevar) {
this.continut_raspuns = continut_raspuns;
this.id_intrebare = id_intrebare;
this.valoare_adevar = valoare_adevar;
}
public Raspuns() {
}
public int getId() {
return id;
}
public void setId( int id) {
this.id = id;
}
public String getContinut_raspuns() {
return continut_raspuns;
}
public void setContinut_raspuns(String continut_raspuns) {
this.continut_raspuns = continut_raspuns;
}
public int getId_intrebare() {
return id_intrebare;
}
public void setId_intrebare( int id_intrebare) {
this.id_intrebare = id_intrebare;
}
public boolean isValoare_adevar() {
return valoare_adevar;
}
public void setValoare_adevar(boolean valoare_adevar) {
this.valoare_adevar = valoare_adevar;
}
public String toString() {
return "Raspuns{" + "id=" + id + ", continut_raspuns=" +
continut_raspuns + ", id_intrebare=" + id_intrebare + ",
valoare_adevar=" + valoare_adevar + ’}’;
}
}
39

Proiectarea s ¸i implementarea aplicat ¸iei Implementarea aplicat ¸iei
public static int salveaza(Connection con, Intrebare intrebare) {
int id = -1;
String Sql = "insert into intrebare (descriere, id_categorie,
imagine_intrebare)"
+ " values (?, ?, ?)";
try {
PreparedStatement pst = con.prepareStatement(Sql,
PreparedStatement.RETURN_GENERATED_KEYS);
pst.setString(1, intrebare.getDescriere());
pst.setInt(2, intrebare.getId_categorie());
pst.setString(3, intrebare.getImagine_intrebare());
pst.executeUpdate();
ResultSet rs = pst.getGeneratedKeys();
if(rs.next()) {
id = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}
return id;
}
public static boolean modificaIntrebare(Connection con, Intrebare
intrebare) {
int id = intrebare.getId();
boolean state = true;
String Sql = "UPDATE intrebare SET descriere=? ,id_categorie=? ,
imagine_intrebare=? WHERE id=?";
try {
PreparedStatement pst = con.prepareStatement(Sql);
pst.setString(1, intrebare.getDescriere());
pst.setInt(2, intrebare.getId_categorie());
pst.setString(3, intrebare.getImagine_intrebare());
pst.setInt(4, id);
System.out.println("Intrebare " + intrebare);
int numberOfUpdatedRows = pst.executeUpdate();
if(numberOfUpdatedRows == 0) {
System.out.println("Intrebarea nu a putut fi updatata" +
intrebare.getId());
state = false;
}
} catch (Exception e) {
e.printStackTrace();
state = false;
}
return state;
}
public static boolean stergeIntrebare(Connection con, int id) {
40

Proiectarea s ¸i implementarea aplicat ¸iei Implementarea aplicat ¸iei
// int id = intrebare.getId();
boolean state = true;
String Sql = "DELETE FROM intrebare WHERE id=?";
try {
PreparedStatement pst = con.prepareStatement(Sql);
pst.setInt(1, id);
int numberOfUpdatedRows = pst.executeUpdate();
if(numberOfUpdatedRows == 0) {
state = false;
}
} catch (Exception e) {
e.printStackTrace();
state = false;
}
return state;
}
Pentru a putea afis ¸a lista categoriilor ˆın momentul ˆın care dorim s ˘a ad˘augam sau s ˘a
modific ˘am o ˆıntrebare, a trebuit s ˘a folosesc o list ˘a, pe care s ˘a mi-o ˆıncarc cu ajutorul unei
instruct ¸iuni SELECT.
public static List<Categorie> getListaCategorii(Connection con){
List<Categorie> list = new ArrayList();
Statement st;
ResultSet rs;
try {
//Connection con = getConnection();
st = con.createStatement();
String queryCautare = "SELECT *FROM categorie";
rs = st.executeQuery(queryCautare);
Categorie categorie;
while (rs.next()) {
categorie = new Categorie(
rs.getInt("id"),
rs.getString("tip_categorie")
);
list.add(categorie);
}
} catch (Exception exc) {
System.out.println(exc.getMessage());
exc.printStackTrace();
return null;
}
return list;
}
Pentru a putea returna lista categoriilor pentru care cursantul aplic ˘a un chestionar, este
necesar ˘a o clas ˘a de tip Manager.
public class ManagerCategorie {
41

Proiectarea s ¸i implementarea aplicat ¸iei Implementarea aplicat ¸iei
public static List<Categorie> getListaCategorii(Connection con){
List<Categorie> list = new ArrayList();
Statement st;
ResultSet rs;
try {
//Connection con = getConnection();
st = con.createStatement();
String queryCautare = "SELECT *FROM categorie";
rs = st.executeQuery(queryCautare);
Categorie categorie;
while (rs.next()) {
categorie = new Categorie(
rs.getInt("id"),
rs.getString("tip_categorie")
);
list.add(categorie);
}
} catch (Exception exc) {
System.out.println(exc.getMessage());
exc.printStackTrace();
return null;
}
return list;
}
}
42

Capitolul 5
Concluzii
Aplicat ¸ia E-ChestionareAuto prezint ˘a o alt ˘a abordare ˆın privint ¸a ˆınv˘at ¸arii proactive pentru
examenul de obt ¸inere al permisului auto, indiferent de categorie, ˆın care avem ˆıntr-un sin-
gur pachet at ˆat legislat ¸ia rutier ˘a actualizat ˘a, cˆat s ¸i posibilitatea de a aplica toate cunos ¸tint ¸ele
dobandite ˆın urma lectur ˘arii acesteia ˆın cadrul chestionarelor auto. Pe l ˆanga acest fapt, uti-
lizatorul ˆıs ¸i poate t ¸ine evident ¸a progresului facut, prin funct ¸ia care ofer ˘a acces la punctajul
chestionarelor completate. De asemenea, centralizarea tuturor informat ¸iilor se realizeaz ˘a cu
ajutorul unei baze de date. Diagramele UML [2] din faza de analiz ˘a s ¸i proiectare au fost
realizate cu ajutorul programului Astah [9].
5.1 Contribut ¸ii proprii
Contribut ¸iile proprii ˆın dezvoltarea sistemului software E-ChestionareAuto constau ˆın:
.analiza software
.proiectarea aplicat ¸iei
.proiectarea bazei de date
.implementarea aplicat ¸iei.
43

Capitolul 6
Anexe
6.1 Proiectarea unui Swing GUI ˆın NetBeans IDE
NetBeans reprezint ˘a un proiect open-source fondat de Sun Microsystems ˆın iunie 2000, cu o
baz˘a foarte mare de utilizatori s ¸i cu o comunitate ˆın cres ¸tere. Pentru programatori, NetBeans
reprezint ˘a un mediu de dezvoltare prin care aces ¸tia scriu, compileaz ˘a, testeaz ˘a s ¸i depaneaz ˘a
programe. Platforma a fost scris ˘a init ¸ial ˆın Java, dar poate accepta orice limbaj de progra-
mare. NetBeans este un produs gratuit, f ˘ar˘a restrict ¸ii ˆın ceea ce prives ¸te modul de utilizare.
[10]
Pentru a crea o interfat ¸ ˘a grafic ˘a Swing GUI cu ajutorul NetBeans va trebui s ˘a urm ˘am
pas ¸ii de mai jos: Pentru ˆınceput va trebui s ˘a instal ˘am o versiune Java Development Kit (JDK)
asemanatoare cu versiunea de NetBeans.
1.Select ˘am File – New Project. Alternativ, putem da clic pe pictograma New Project din
bara de instrumente IDE.
2.ˆIn panoul Categorii, select ˘am Java s ¸i ˆın panoul Projects, select ˘am Java Application.
Facem clic pe Next.
3.ˆIn urm ˘atoarea fereastr ˘a specific ˘am numele proiectului s ¸i locat ¸ia.
4.Facem click pe Finish.
5.ˆIn panoul Projects, deschidem proiectul nou creat.
6.Facem click dreapta pe Source Packages – New – JFrame Form
7.Introducem numele ferestrei pe care dorim s ˘a o ad ˘aug˘amˆın proiect
8.Facem click pe Finish.
ˆIn acest mod a fost creat ˘a o fereastr ˘a Swing GUI, pe care o putem rula prin ap ˘asarea
tastelor SHIFT+ F6 sau fac ˆand click dreapta pe fereastr ˘a,ˆın panoul Projects s ¸i select ˆand Run
44

Anexe MySQL Workbench
File. Cu ajutorul paletei putem ad ˘auga controale ˆın fereastr ˘a s ¸i o putem proiecta as ¸a cum ne
dorim.
6.2 MySQL Workbench
MySQL Workbench reprezint ˘a un instrument vizual prin care dezvoltatorii de aplicat ¸ii proiecteaz ˘a
mai us ¸or bazele de date. A fost fondat de MySQL AB la data de 23 mai 1995, ca mai
apoi s ˘a fie dezvoltat de Oracle Corporation. Pe l ˆanga interfat ¸a grafic ˘a, pentru administrarea
bazelor de date se poate folosi s ¸i modul Linie de comand ˘a, prezent ˆın pachetul MySQL
Workbench. MySQL Workbench este disponibil ˆın dou ˘a edit ¸ii: Community Edition s ¸i Com-
mercial Edition, Community Edition fiind disponibil ˘a gratuit. Acesta ofer ˘a cinci tipuri de
funct ¸ionalit ˘at ¸i:
.Dezvoltare SQL: ofer˘a oportunitatea de a crea s ¸i gestiona conexiunile cu serverele
bazelor de date. ˆIn plus, ofer ˘a opt ¸iunea de a executa instruct ¸iuni SQL ˆın SQL Editor.
.Modelarea datelor: permite crearea de modele ale schemei bazei de date cu ajutorul
interfet ¸ei grafice. Tot aici se pot modifica tabele, coloane, se pot ad ˘auga constr ˆangeri,
index-uri, declans ¸atoare, etc.
.Administrare server: ofer˘a posibilitatea de a administra instant ¸ele serverului, de a
crea copii de rezerv ˘a, dar s ¸i de a inspecta starea de funct ¸ionare a serverului MySQL.
.Migrarea datelor: permite migrarea bazelor de date de tip MS SQL, MS Access,
SQLite, etc la baze de date de tip MySQL
.Suport MySQL Enterprise: ofer˘a suport pentru produsele companiei, cum ar fi
MySQL Firewall, MySQL Enterprise Backup s ¸i MySQL Audit. [11]
45

Anexe Diagrame de activit ˘at ¸i
6.3 Diagrame de activit ˘at ¸i
Figura 6.1 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Administrare cont”
46

Anexe Diagrame de activit ˘at ¸i
Figura 6.2 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Modificare cont”
47

Anexe Diagrame de activit ˘at ¸i
Figura 6.3 : Diagrama de activit ˘at ¸i a cazului de utilizare ”S ¸tergere cont”
48

Anexe Diagrame de activit ˘at ¸i
Figura 6.4 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Administrare gril ˘a”
49

Anexe Diagrame de activit ˘at ¸i
Figura 6.5 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Introducere subiect gril ˘a”
50

Anexe Diagrame de activit ˘at ¸i
Figura 6.6 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Modificare subiect gril ˘a”
51

Anexe Diagrame de activit ˘at ¸i
Figura 6.7 : Diagrama de activit ˘at ¸i a cazului de utilizare ”S ¸tergere subiect gril ˘a”
52

Anexe Diagrame de activit ˘at ¸i
Figura 6.8 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Tratare parte teoretic ˘a”
53

Anexe Diagrame de activit ˘at ¸i
Figura 6.9 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Rezolvare chestionar auto”
54

Anexe Diagrame de activit ˘at ¸i
Figura 6.10 : Diagrama de activit ˘at ¸i a cazului de utilizare ”Vizualizare punctaj”
55

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
6.4 Diagrame de secvent ¸e s ¸i de clase ˆın faza de
proiectare
56

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.11 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Modificare cont”
57

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.12 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”S ¸tergere cont”
58

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.13 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Administrare gril ˘a”
59

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.14 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Introducere subiect gril ˘a”
60

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.15 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Modificare subiect gril ˘a”
61

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.16 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”S ¸tergere subiect gril ˘a”
62

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.17 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Tratare parte teoretic ˘a”
63

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.18 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Rezolvare chestionar auto”
64

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.19 : Diagrama de secvent ¸e ˆın faza de proiectare a cazului de utilizare ”Autentificare”
65

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.20 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ” ˆInregistrare utilizator”
66

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.21 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Administrare gril ˘a”
67

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.22 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Modificare cont”
68

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.23 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”S ¸tergere cont”
69

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.24 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Introducere subiect gril ˘a”
70

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.25 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Modificare subiect gril ˘a”
71

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.26 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”S ¸tergere subiect gril ˘a”
72

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.27 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Tratare parte teoretic ˘a”
73

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.28 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Rezolvare chestionar auto”
74

Anexe Diagrame de secvent ¸e s ¸i de clase ˆın faza de proiectare
Figura 6.29 : Diagrama de clase ˆın faza de proiectare a cazului de utilizare ”Autentificare”
75

Referint ¸e bibliografice
[1] C.Puchianu. Ingineria sistemelor software, Note de curs . 2017.
[2] Uml , vizitat ˆın octombrie 2016. http://www.uml.org .
[3] ”D.M.Popovici (coordonator), Bogdan C.M., Rusu A., Chelai O., and Nicola A. ”.
Dezvoltarea aplicat ¸iilor software . Editura Prouniversitaria Bucuresti, V ol. 1, 2014.
[4] Diagrama cazurilor de utilizare, vizitat ˆın aprilie 2017. http://control.aut.
utcluj.ro/hmihai/doku.php?id=uml:uml_usecase .
[5] Not ¸iuni elementare despre bazele de date, vizitat ˆın iunie
2017. https://support.office.com/ro-ro/article/
Noiuni-elementare-despre-bazele-de-date-a849ac16-07c7-4a31-9948-3c8c94a7c204 .
[6] Christian Mancas. Modelarea s ¸i interogarea conceptual ˘a a datelor s ¸i cunos ¸tint ¸elor .
Editura Ovidius University Press, 2005.
[7] Not ¸iuni de baz ˘a despre proiectarea bazelor de date, vizitat ˆın iu-
nie 2017. https://support.office.com/ro-ro/article/
Noiuni-de-baz-despre-proiectarea-bazelor-de-date-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5 .
[8] Cristian Frasinaru. Curs practic de Java . Editura Matrixrom, 2005.
[9] Astah , vizitat ˆın octombrie 2016. http://astah.net .
[10] Ce este netbeans?, vizitat ˆın aprilie 2017. https://netbeans.org/index_ro.
html .
[11] Mysql workbench , vizitat ˆın iunie 2017. https://www.mysql.com/
products/workbench/l .
76

Similar Posts