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
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Dezvoltarea unei aplicat ii e-learning pentru [615490] (ID: 615490)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
