Sunteți pe pagina 1din 43

ACADEMIA DE STUDII ECONOMICE DIN MOLDOVA

FACULTATEA CIBERNETIC, STATISTIC I INFORMATIC


ECONOMIC
CATEDRA CIBERNETIC I INFORMATIC ECONOMIC

Mamei Andrian

DEZVOLTAREA UNUI SISTEM INFORMATIC DE EVALUARE A


CUNOSINTELOR
TEZ DE LICEN
Specialitatea 444.3 Informatic Aplicat

Admis la susinere

Autor:

ef catedr:

Student gr. INFa-111,

doctor habilitat: Bolun Ion

nvmnt cu frecven la zi

________________20__

Mamei Andrian
_____________
Conductor tiinific
lector superior universitar
Bercu Igor
_____________

Chiinu - 2014
1

Declaraia pe propria rspundere

Subsemnatul Mamei Andrian,


absolvent al facultii Cibernetic, Statistic i Informatic Economic al
Academiei de Studii Economice din Moldova, specialitatea Informatic Aplicat,
declar pe propria rspundere c teza de licen pe tema
a fost elaborat de mine i nu a mai fost prezentat niciodat la o alt facultate
sau instituie de nvmnt superior din tara sau din strintate.
De asemenea, declar c sursele utilizate n tez, inclusiv cele din Internet, sunt
indicate cu respectarea regulilor de evitare a plagiatului:
- fragmentele de text sunt reproduse ntocmai i sunt scrise n ghilimele, de innd
referina precis a sursei;
- redarea/reformularea n cuvinte proprii a textelor altor autori conine referina
precis;
- rezumarea ideilor altor autori conine referina precis a originalului.

Mamei Andrian
_____________

NET
BL
DAL
DLL
DTO
EF
JS
Lib
MSD

.NET Framework
-

Bussines Layer
Data Acces Layer

Abrevieri
folosite n
coninutul tezei

Dynamic Link Library


Data Transport Object
Entity Framework
Java Script
Library (Biblioteca)

Microsoft Development Network


MV

Model-View-Controller
VS

Visual Studio

Figurile i tabelele menionate n tez


Tabel 1.1 Tipologia informaiilor existente ntr-o ntreprindere
Tabelul 1.2 Compatibilitatea browserelor cu HTML5 i CSS3
Figura 1: Arhitectura MVC
Figura 1.2 Arhitectura Entity Framework
Figura: 2.1 Arhitectura Three-Tier
Figura 2.2 Arhitectura sistemului de evaluare a cunotinelor
Figura 2.3 Schema bazei de date
Figura 2.4 Algoritmul de evaluare al testului
Figura 3.1 Resursele disponibile n TFS prin intermediul Visual Studio
Figura 3.2 Visual studio online
Figura 3.3 Exemplu de interogare LINQ
Figura 3.4 Exemplu de schema minimizata (Membership)
Figura 3.5 Formatul fiierului Excel pentru imporatearea utilizatorilor.
Figura 3.6 Pagina importrii utilizatorilor n sistemul de evaluare a
cunotinelor
Figura 3.7 Exemplu de invitaie
Figura 3.8 Forma de logare n sistem
Figura 3.8 Prima pagina
Figura 3.9 Lista studenilor din panoul de control al administratorului
Figura 3.10 Forma de adugarea manuala a unui student
Figura 3.10 Forma de adugarea manuala a unui student
4

Cuprins
Introducere...................................................................................................................................6

I. NOIUNI GENERALE.....................................................................................7
1.1 Descrierea unitii social economice.....................................................................................7
1.1.1 Date generale...................................................................................................................7
1.1.2 Resurse Informaionale...................................................................................................9
1.1.3 Aspectul tipologic..........................................................................................................12
1.1.4 Aspectul obiectului de gestiune.....................................................................................12
1.1.5. Analiza relaiilor informaionale..................................................................................12
1.2 Esena sistemului de evaluare a cunotinelor.....................................................................13
1.3 Descrierea tehnologiilor utilizate la realizarea sistemului...................................................13
1.4 Cerinele ctre sistem...........................................................................................................18
1.4.1 Funcionale....................................................................................................................18
1.4.2 Non - funcionale...........................................................................................................19

II. Proiectarea Sistemului....................................................................................21


2.1 Formularea problemei..........................................................................................................21
2.1 Definirea intrrilor i ieirilor..............................................................................................23
2.2.1 Definirea intrrilor.........................................................................................................23
2.2.1 Definirea ieirilor..........................................................................................................26
2.3 Arhitectura sistemului de evaluare a cunotinelor..............................................................26
2.4 Proiectarea bazei de date......................................................................................................32
2.5 Proiectarea testului...............................................................................................................33

III. Realizarea sistemului.....................................................................................36


3.1 Crearea spaiului de lucru....................................................................................................36
3.2 Crearea modelul bazei de date.............................................................................................37
3.3 Crearea nregistrrii i autentificrii n sistem.....................................................................38
3.4 Crearea Listei de utilizatori..................................................................................................40
3.5 Crearea testelor....................................................................................................................42

Concluzie.............................................................................................................43
Bibliografie..........................................................................................................44

Introducere
Trim n secolul XXI - secolul informaional, o lume n care informa ia reprezint absolut
tot ce ne nconjoar, informaia este cunoatere, iar cunoaterea este putere. Natura a dat anse
egale tuturor vietilor, dar omul a fost cel care a reuit s valorifice informaia i s o duc mai
presus ca instinctul, n acest mod devenind fiina superioara posednd cuget i dominnd planeta.
Fiina uman a gsit rolul informaiei nelegnd ca aceasta capt valoare i utilitatea
numai atunci cnd aceasta are o nsemntate pentru cineva i este receptat de acel receptor,
adic mesajul este trimis i neles/prelucrat.
Pentru societatea contemporan informaia are o importana poate fi echivalat cu
importana apei pe pmnt. Lucram cu sumedenii de informaii mereu i nici nu ne dm seama c
lipsa ei ne-ar crea dificulti colosale, cred c mult mai grele dect le-ar fi fost oamenilor cu zeci
de ani n urm n cutarea acesteia. Ne-am deprins mereu s avem totul la ndemn, avem
nevoie s gsim o strad n ora deschidem http://maps.google.com, introducem strada
necesar i doar n cteva milisecunde avem i rezultatul la ecran, indicndu-ne loca ia, cum s
ajungem cu diferite tipuri de transport, i ct timp o s ne consume fiecare tip, sau rezolvnd o
problem la matematic sau fizic, avnd nevoie de o formul repede am cutat n carte sau
iari pe internet cel mai probabil i am gsit-o. Cu toate acestea, informa ia are i impact
negativ asupra omului, poate descuraja, nfricoa, antaja, dar i crea haos. Atunci cnd
informaia este abundent, apare riscul ca aceasta s nu fie veridic i de ncredere.
innd cont de toate acestea am hotrt s creez un sistem de testa a cuno tin elor
studenilor. Un sistem care v-a putea analiza cunotinele fiecruia n parte artnd ct de bine
este pregtit fiecare student pentru a trece ntr-o nou etap de acumulare de noi cuno tin e. Este
cunoscuta foarte bine problema absolvenilor din ziua de azi, problema care const n lipsa
locurilor de munc. Este foarte greu ca un student s se angajeze ndat dup absolvire ntr-o
companie. Aceasta se datoreaz faptului c studenii nu acumuleaz nivelul necesar de cunotine
pentru ca acestuia s-i fie ncredinat un post de lucru, sau cel puin angajatorii sunt convin i c
studenii nu sunt api de munc. Aceast problem poate fi rezolvat sau cel puin poate fi redus
numrul studenilor care aparin aceste-i categorii. Sistemul de evaluare a cunotinelor, fiind
foarte obiectiv, va impune studenii s se pregteasc mai bine pentru a finisa cursul.

I. NOIUNI GENERALE
1.1 Descrierea unitii social economice
1.1.1 Date generale
Code Factory este o companie dezvoltatoare de software , management de proiect , QA i
IT de consultanta , cu locaii n Europa i America de Sud, avnd clieni de pe tot globul .
Mai mult de 10 ani a fost furnizor de un serviciu complet de consultanta IT, software-ul
personalizat-a construit testat la standardele de asigurare a calitii riguros i ntreinere de clas
mondial , instruire i sprijin pentru a ajuta companiile s funcioneze eficient i pentru a ob ine
un avantaj competitiv prin inovare tehnic .
Lucreaz ndeaproape cu clientul pentru a nelege nevoile i provocrile afacerii lui.
Code Factory ofer expertiza de ncredere , calitate, la preuri extrem de competitive i crede
ntr-o abordare pe deplin transparent i de colaborare .
Dezvoltarea Code Factory i Centrul de Excelenta ( CoE ), sunt susinute de investiii
semnificative de infrastructur care prevd :

Reele Gigabit i fibre optice;


De stocare distribuit i back-up dispozitive;
Mai multe linii redundan i conectivitate delimitate;
De stat - of- the-art instrumente de dezvoltare hardware;
Cisco hardware de securitate de informaii;
Acces controlat , fizic i procedurile de control de securitate de personal .
Trei dintre birourile companiei sunt situate n Romnia, care, n ultimii cinci ani, au

prezentat n mod constant ca unele dintre primele 10 locaii de susinere din lume. Link-urile
companiei la universiti, n fiecare dintre aceste locaii ofer acces talentele de top care ajut
pentru a oferi dezvoltatori cu calificare nalt la un cost mai mic de munc . Cu mai multe loca ii
n Marea Britanie , Olanda , Republica Moldova i Chile are capacitatea de a executa proiecte la
nivel global.
Code Factory dispune de profesionalism i resurse destule pentru a oferi produsele cerute
de ctre client. Orice aplicaie este supravegheata n toate etapele ciclului de via, de colectarea
informaiei pn la implementare, testare i evaluare.
7

Compania dispune de profesioniti n aa domenii precum: JavaEE, C+, Microsoft .NET,


Objective C, Open Source, Mobile Java for Android and BlackBerry.
Code Factory ofer urmtoarele categorii de produse:

Software Development
Mobile App Aplicaii mobile pe toate platformele moderne (Android, Windows
Phone, iOS);
Web App Aplicaii Web n toate limbajele moderne existente (PHP, Java, ASP.NET,
ASP.NET MVC, ASP.NET Web Forms, ASP.NET Web Matrix);
Embedded App - Aplicaii software care se afl permanent ntr-un dispozitiv

industrial sau consumator;


Maintenance and Support
Suport aplicaie: de investigare incidentului, depanare, i de gestionare
ntreinere aplicare i controale preventive;
mbuntiri i modificri funcionale;
Monitorizarea i managementul performanei;
De recuperare n caz de dezastru accelerat;
Application management
mbuntirea calitii de aplicaii;
Creterea productivitii prin centralizarea celor mai bune practici de dezvoltare i
implementare;
Faciliteaz colaborarea i schimbul de informaii pn la sfritul reducerea timpului

i cheltuielilor prin accelerarea ciclului de dezvoltare;


V permite s monitorizeze fiecare etap a ciclului de via de aplicare;
De ntreinere n curs de desfurare, monitorizare constant i servicii de suport;
Modernization;
Solution Integration;

1.1.2 Resurse Informaionale


[1]
Resursele

informaionale

sunt

acele

resurse

care

furnizeaz

managementului

ntreprinderii informaii cu caracter important pentru gestionarea i direcionarea ntreprinderii


adaptnd-o la modificrile interne i externe. Sistemul Informaional al ntreprinderii este o
colecie de resurse(materiale, umane, financiare) avnd ca scop colectarea i prelucrarea datelor
pentru a obine i transmite date informaii necesare pentru planificarea i managementul
organizaiei. La baza sistemului informaional al organizaiei st un sistem informatic care are ca
scop colectarea, prelucrarea i transmiterea automata da datelor.
8

Tabel 1.1 Tipologia informaiilor existente ntr-o ntreprindere.


Criteriul

Categorii de

Caracteristici eseniale

informaii

beneficiarii informa iilor sunt managerii i executani din

de intrare

ntreprindere

n funcie de
destinaie

Din punct de
vedere al
gradului de
prelucrare

n funcie de

beneficiarii informaiilor aparin micro mediului ntreprinderii

de ieire

(clieni, furnizori etc.)


informaii care nu au suferit nici un proces de prelucrare i au un

primare

caracter analitic
informa ii care au suferit diverse faze de prelucrare

intermediare

informaional
informaii care au parcurs ntreg irul de prelucrri informaionale

finale

i au caracter sintetic i se adreseaz ndeosebi top-managerilor


informaii care se transmit de la niveluri ierarhice inferioare ctre

ascendente

cele superioare (de regul sub forma de rapoarte)


informaii care se transmit de la niveluri ierarhice superioare ctre

direcia de
descendente
circulaie
orizontale
n funcie de
provenien

exogene

cele inferioare (de regul sub forma de decizii)


informaii care se transmit ntre posturi aflate pe acelai nivel ierarhic
provin din afara firmei i sunt alctuite, n mod uzual, din acte

endogene

normative n vigoare (legi, ordonane de urgenta, hotrri de


guvern,
ordine
minitrilor),
instruc
iuni etc.
informa
iile provin
dinaleinteriorul
firmei,
cu referire
la toate
activit ile ntreprinderii (cercetare- dezvoltare, comerciale, de

iei, financiarcontabile, de D.
resurse
umane) Editura
[ Sursa: adaptat din Purcrea, produc
A, Niculescu,
C, Constantinescu,
Management",
Niculescu, Bucureti, 2000, i Nicolescu, O., Verboncu, I., "Management", Editura Economic,
Bucureti, 1999. ]
Din punct de vedere organizatoric, resursele informaionale includ in componenta lor
urmtoarele elemente:
Baza

informaional

presupune

totalitatea

datelor,

informaiilor,

circuitelor

informaionale, torentelor si fluxurilor informaionale cuprinse intre doua spatii informaionale:


cel naional si cel internaional.
Baza informaional const din: spaiu informaional internaional, baze de date, organizaii
i clieni internaionali, biblioteci electronice.
9

Din punct de vedere organizatoric baza informaional este alctuita din fluxuri de
informaii mai mult pe plan internaional, tranzacii, nregistrri n baze de date, sub aspectul
organizatoric se manifest mai nti de toate schimbul de date ntre client si companie, care
asigur atingerea obiectivelor stabilite de ctre ambele pri.
Baza tehnico-material a companiei include:

Suport tehnic:
Calculatoare;
Printere;
Servere;
Reele locale;
Suport logic
Sistem de pot electronica;
Programe aplicative;
Sisteme de gestiune a documentelor;
Sisteme de eviden a personalului;
Resursele umane reprezint o categorie de resurse economice care concentreaz

potenialul de munc ala ntreprinderii. Resursele umane pot fi apreciate din dou puncte de
vedere:
1) Cantitativ reprezentat de populaia activ disponibil, populaie n vrst de munc,
populaie apt de munc, etc (se calculeaz n mrimi relative i absolute).
2) Calitativ reprezentat de nivelul de instruire, capacitile profesionale, starea snt ii,
categoriile de vrste, etc.
Din punct de vedere al ntreprinderii resursa uman nu este altceva dect totalitatea
angajailor exprimai prin indicatorii, menionai mai sus, cantitativi i calitativi.
n cadrul companiei exist mai multe categorii de funcionari:
A) Muncitori clasa inferioar, sunt cei mai muli la numr, din ei fac parte: programatori,
testeri, contabil, etc.
B) Lideri reprezentai de conductorii de proiect, sau conductorii de echipe.
C) Personalul cu funcii executive reprezentai de manageri, administratorul de re ea,
directorul tehnic, directorul general.
Resurse financiare resursele financiare ale ntreprinderii sunt reprezentate de dou mari
categorii de capitaluri:
-

Capital propriu, reprezentat de autofinanare ce presupune utilizarea resurselor proprii,


vnzare de active, amortizarea capitalului, reinvestirea profitului propriu.
10

Capital strin, sau altfel spus surse atrase care sunt reprezentate de mprumuturi, credite
pe termen scurt, credite pe termen lung, mprumuturi, etc.
De asemenea la resursele financiare se atribuie i resursele care sunt destinate pentru

recrutarea personalului, pentru plasarea publicitii, pentru cutarea clienilor poten iali, precum
i informaia contabil despre bilan, profit, pierderi, etc.
Resurse legislative - normativ-presupune asigurarea cu legi, reglementari, standarde si
normative viznd domeniul informaional si informatic. Din aceast categorie fac parte:
-

legislaia (legea despre protecia datelor cu caracter personal);


reglementari in domeniu (certificare produse informatice);
standarde (caracteristici tehnice generale, suporturi de informaii, tehnologii de asigurare a

securitii informaionale);
normative (normative de programare, normative de stocare a datelor).

1.1.3 Aspectul tipologic


Din punct de vedere tipologic, informaia necesara pentru dezvoltarea activitii socioeconomice cuprinde:

informaia economic ( contabil, financiar, previziune, marketing);


informaia tehnico-tiinific(fapte tiinifice, concepte, teorii, ipoteze, bazele unor anumite

tiine[economia, politica], generale);


informaia tehnologic(technoware, humanware, infoware, orgaware);
informaia comercial

1.1.4 Aspectul obiectului de gestiune


Sub aspectul obiectului de gestiune, resursele informaionale reprezint urmtoarele tipuri
de informaii:

Produse n exterior i utilizate n companie: au rolul de a cunoa te eventualii clien i sau


parteneri de afaceri sau concureni, inteniile lor, precum i de a menine legtura cu clienii
att in cursul elaborrii produsului, ct i dup aceasta, un alt rol este de a ine mereu

evidena concurenilor i potenialilor clieni;


Produse n companie pentru uz intern are rolul de a facilita dar i de a duce eviden a
activitilor n companie;
11

Produse n companie cu destinaie n exterior: are rolul de a orienta i influen a alte


ntreprinderi, organisme superioare, cu care intr n relaii, n direcii care s reprezinte
interesele ntreprinderii respective;

1.1.5. Analiza relaiilor informaionale


Relaiile informaionale pe plan intern
Pe plan intern relaiile informaionale au loc prin spa iul informa ional comun, i de
telecomunicaii, n care are loc transferul de informaii ntre angajaii companiei.
Relaiile informaionale pe plan extern
Relaiile informaionale pe plan extern reprezint schimbul de informaii dintre compania
propriu-zis cu clienii dar i cu celelalte subdiviziuni ale companiei localizate n alte regiuni ale
lumii.
Code Factory a stabilit de asemenea parteneriat cu gigantul productor de software
Microsoft minimiznd astfel cheltuielile pentru obinerea softurilor specializate.

1.2 Esena sistemului de evaluare a cunotinelor


Implementarea unui sistem de evaluare a cunotinelor automatizat i performant n
instituiile de nvmnt ar permite o evaluare mai obiectiv i efectiv a studenilor la
susinerea testelor. De asemenea acest sistem cu uurin poate fi utilizat i n alte scopuri n
afar de testri i examene finale, acesta poate fi folosi i la admitere, oferind acces public unor
teste tinerii elevi care doresc s de devin studeni se pot concura pentru locurile universitare de
acas.
n comparaie cu testele obinuite, care n majoritatea cazurilor sunt aceleai de ani la rnd,
unde studentul cu uurin poate s gseasc rspunsurile de la alte grupe, sistemul automatizat
vine cu o soluie pentru aceast problem, fiind automatizat i avnd un blanc de ntrebri
pregtite va crea testul n timp real. Astfel testele vor fi diferite pentru fiecare student i testarea
propriu zis va fi mai efectiv.

12

1.3 Descrierea tehnologiilor utilizate la realizarea sistemului


Un sistem automatizat, care trebuie s lucreze rapid, s aib un nivel de securizare nalt i
s fie stabil att pe partea server ct i pe partea client trebuie sa fie realizat cu ajutorul unor
tehnologii moderne, verificate n timp i n eficacitate.
Pentru realizarea sistemului de evaluare a cunotinelor sunt mai multe opiuni: PHP, JAVA
sau ASP.NET MVC, ns doar una este cea mai buna, dup prerea mea aceast opiune este:
ASP.NET MVC.
ASP.NET MVC este un framework web - application, care are implementat la baza sa
structura MVC. Bazat pe fratele su mai mic, ASP.NET MVC permite, prin intermediul su,
crearea aplicaiilor web cu compoziia rolurilor: Model, View, Controller. Modelul MVC
definete aplicaii web care constau din 3 nivele logice: nivelul bussines (Model logic), nivelul
de prezentare (View logic), i modelul de control (Controller logic).
ASP.NET MVC este un framework de mrime mic i uor testabil coninnd i
funcionalitile ASP.NET. Ca exemplu de funcionaliti pot servi urmtoarele: Master Pages,
Membership i autentificare integrat, etc.
Structura arhitecturii MVC arat astfel:

Figura 1: Arhitectura MVC


[Sursa: http://i.msdn.microsoft.com/dynimg/IC263184.png]

13

MVC a devenit o arhitectur care a fost inclus n standarde i deja toi programatorii sunt
familiarizai cu ea. Unele aplicaii deja profit de beneficiile arhitecturii MVC, altele ns
continue s existe pe arhitectura mai veche: ASP.NET care este bazat pe Web Forms. Alte tipuri
de aplicaii folosesc arhitectur combinate din ambele.
Dup cum am menionat componentele arhitecturii MVC sunt:
-

Model. Modelul este o parte a aplicaiei care implementeaz logica aplicaiei. De multe ori
Modelul preia i funcia de pstrare a datelor n baza de date. De exemplu: un obiect de tip
Student este necesar de extras din baza de date, se efectueaz careva operaiuni cu el, apoi

se nscrie napoi n baza de date.


View. View (prezentatorul) este componenta care rspunde de interfaa aplicaiei. Deseori
interfaa este creat de ctre model. Exemplu: este nevoie s se redacteze un obiect de tip
Student, n acest caz, View-ul va rspunde de toate controalele necesare pentru aceasta:

TextBox, DropDown, DisplayText, etc, n care va nscrie i starea curent a obiectului.


Controller. Controlerul este componenta care prinde interaciunile utilizatorului, lucreaz cu
modelul i la sfrit alege Vew-ul care s-i trimit datele spre afiare.
Arhitectura MVC te ajut s creezi aplicaii care au toate aspectele separate( UI logic,

bussines logic, input logic), oferind n acelai timp o corelare perfect ntre aceste componente
pentru realizarea scopului propus. Aceast arhitectur specific c fiecare tip de logic trebuie s
fie separat. Logica afirii trebuie s fie implementat doar n View. Logica transportului
datelor trebuie s fie doar n controller. Bussines logica trebuie s fie implementat doar n
Model. Aceast separare ajut de a controla aplicaii complexe, deoarece cea oblig c focusarea
ntr-un moment dat de timp s fie doar pe un singur tip de logic. De exemplu putem s afim
ceva fr ca s avem nevoie de bussines logic (din Model).
De asemenea aceast arhitectur uureaz lucru paralel, adic n timp ce designerul
construiete interfa , programatorul poate s construiasc bussines logica aplicaiei i astfel
lucrul va merge mult mai eficient.
Ca sa evideniezi unele faciliti pe care le ofer ASP.NET MVC sunt:
-

Control integral asupra codului HTML.


Motoare multiple pentru prezentare (view engines).
URL-uri curate.
Uurin REST (Representational State Transfer), etc.

14

Un alt produs pe care l voi folosi pentru crearea sistemului este baza de date SQL Server.
SQL Server este o baz de date relaional, creat de ctre compania Microsoft, care este
un productor gigant de Software la nivel mondial. Funcia principal a bazei de date este de a
pstra i a oferi datele necare atunci cnd o alt aplicaie de pe acelai calculator sau poate chiar
de pe un server fcnd legtur cu ajutorul internetului.
Baza pentru SQL Server i are originea n Sybase SQL Server. SQL Server a reprezentat
pentru Microsoft produsul cu care a intrat pe piaa bazelor de date pentru ntreprinderi avnd mai
muli concureni dintre care: Oracle, IBM, Sybase. Microsoft , Sybase i Ashton-Tate s-au unit
pentru a crea i a scoate pe pia prima versiune a bazei de date pentru ntreprinderi numit Sql
Server 4.2 pentru Win OS/2. Ceva mai trziu Microsoft a negociat pentru a obine titlu de
exclusivitatea asupra tuturor versiunilor de SQL Server create pentru sistemele de operare
Microsoft.
Primul server de baz de date cu interfa grafic (GUI) a fost SQL Server 7.0, iar prima
variant comercial pentru arhitectura Intel a fost SQL Server 2000.
SQL Server folosete T-SQL (Transact-SQL - o variant SQL cu implementare de SQL-92,
standardul ISO pentru SQL , cu unele extensii). n primul rnd T-SQL adaug sintaxa adiional
pentru proceduri stocate i pentru tranzacii. Standardul SQL cere n componena sa ACID
( acronim pentru cele 4 condiii necesare la efectuarea oricrei tranzacii: atomicitate,
consisten, izolare, durabilitate. )
SQL Server este un sistem pentru organizaii i poate fi aplicat n cazul n care se necesit
baze de date voluminoase.

Pentru a uura lucrul cu bazele de date n codul aplicaiilor C# voi folosi noua tehnologie
creat de ctre Microsoft care se numete ADO.NET Entity Framework ( EF ).
Entity Framework este o tehnologie orientat pe obiect care ofer acces la date, este o
soluie ORM pentru .NET Framework de la Microsoft. Ofer posibilitatea de a se comporta cu
obiectele n acelai mod ca i LINQ, doar c n acest caz se va numi LINQ to Entities. Pentru a
face mai uura procesul de creare a aplicaiilor web se folosete ca i ADO.NET Data Services
precum i legtura cu Windows Comunication Fundation i Windows Presentation Fundation,
15

oferind posibilitatea crerii aplicaii cu mai multe nivele, realiznd unul din modelele MVC,
MVP, MVVM.

Figura 1.2 Arhitectura Entity Framework


[Surs: Din prezentarea Getting started with entity framework
creat de Lushanthan Sivaneasharajah Senior Software Engineer at IronOne
Technologies]
Entity Framework se instaleaz automat la crearea soluiei ASP.NET MVC.
De asemenea la crearea soluiei se mai instaleaz cteva librrii adiionale, care fac viaa
creatorului de aplicaii mai uoar, aceste pachete sunt:
-

jQuery (+ jQuery UI, jQuery Validation) un javascript framework popular care ofer o

mulime de faciliti la crearea interfeelor grafice;


Json.NET clase pentru lucrul cu date de tip JSON;
Knockoutjs o bibliotec javascript care este destinat pentru lucrul cu arhitectura Model

View ViewModel;
Microsoft.Net Framework 4 Http Client Libraries interfa de programare a Contextului

HTTP;
Microsoft ASP.NET MVC 4 clasele arhitecturii MVC;

16

Microsoft ASP.NET Universal Providers Core Libraries (Microsoft ASP.NET Universal


Providers for LocalDB) reprezint instrumente pentru suportul tuturor bazelor de date de

la SQL Server 2005 n sus precum i SQL Azure;


Microsoft ASP.NET Web API (Microsoft ASP.NET Web API Client Libraries, Microsoft
ASP.NET Web API Core Libraries, Microsoft ASP.NET Web API Web Host) pentru

crearea aplicaiilor REST, lucru cu XML, JSON, etc;


Microsoft ASP.NET Web Optimization Framework Optimizeaz transferul de date, spre

exemplu minimizeaz codul JSON;


Microsoft ASP.NET WebPages 2 bibliotecde clase pentru lucrul cu interfaa;
Microsoft jQuery Unobtrusive Ajax (Microsoft jQuery Unobtrusive Validation)

bibliotecjQuery pentru suportul validrilor AJAX;


Microsoft.Web.Infrastructure permite nregistrarea dinamic a mudulelor HTTP n timpul

execuiei;
Modernizr bibliotec javascript, care permite utilizarea HTML5 i CSS3 n browserele

mai vechi;
WebGrease permite optimizarea HTML i CSS;

1.4 Cerinele ctre sistem


Dei tehnologiile moderne sunt att de sofisticate nct nu se tie o limit a lor, un sistem
individual luat n parte nu trebuie s ias n afara unor bariere corect prestabilite de la nceput.
Cu alte cuvinte la sistem se pun careva cerine care trebuie respectate. Cerinele ctre sistemul de
evaluare a cunotinelor pot fi funcionale i non-funcionale.

1.4.1 Funcionale
Sistemul de evaluare a cunotinelor este alctuit din 3 module:
-

Modulul: Administrator;
Modulul: Profesor;
Modulul: Student;
Fiecare modul n parte i are drepturile - posibilitile sale care nu trebuie nclcate.
Deci:

Utilizatorii din categoria Student nu li se permite altceva dect :


17

o s susin teste
o s-i vizualizeze rezultatele proprii;
Utilizatorii din categoria Profesor au dreptul la:
o crearea testelor
o modificarea propriilor teste
o publicarea propriilor teste
o vizualizarea rezultatelor pe grupe sau studeni individual la testele a cror
autor este el(Profesorul) nsui;
Administratorul are acces la toate resursele n sistem, dar cu toate c este ce-a mai
autoritar categorie din sistem, acesta nu are posibilitatea de a terge sau edita ceea ce nu-i
aparine, maximum ce poate s fac cu resursele crora nu este autor i nu-i aparin este s
le blocheze, dar dup cum am menionat, acesta are acces la ele i poate observa orice
modificare n sistem;

1.4.2 Non - funcionale


Cerinele non funcionale sunt cerinele legate de partea tehnic i soft a sistemului.
Cerine hardware:
innd cont de faptul c sistemul va fi folosit n instituie de nvmnt unde numrul
studenilor e de rangul zecilor de mii se recomand ca n primul rnd baza de date s dispun, de
la nceput, de cel puin 2 Gb memorie pentru stocare. De asemenea va destul de mare i numrul
utilizatorilor autentificai n acelai timp n sistem, deci este nevoie i de un server cu un
procesor puternic i memorie operativ mai mare.
De exemplu, la data de 10/05/2014 un server cu parametri:
-

Unitatea de stocare: HDD RAID 60Gb;


Viteza de conectare: 10Mbs;
Procesor: Quad core i7 generation 2500MHz;
Memoria RAM: 4Gb;
Perioada contractului: 4 ani;
va costa doar 26.47$ lunar surs: http://somee.com.

Cerine software
Deoarece .NET Framework utilizat de mine la crearea sistemului de evaluare a
cunotinelor este versiunea 4.5.1, sistemul va putea fi instalat doar pe o main la care sistemul
18

de operare va fi de la Windows 7 i mai sus, Windows XP, care deja nici nu mai este suportat de
ctre Microsoft suport .NET Framework pn la versiunea 4.0.
O alt constrngere care de data aceasta este aplicat la baza de date, este creat de ctre
framework - ul Entity Framework 5/6 care este suportat de bazele de date SQL Server de la
versiunea 2005 i mai mari.
O alt constrngere este aplicat de ctre HTML5 i CSS3, acestea fiind nc noi nu sunt
suportate de ctre toate browserele, deci se recomand ca sa se instaleze browsere care merg n
pas cu tehnologiile noi, ca de exemplu:
Tabelul 1.2 Compatibilitatea browserelor cu HTML5 i CSS3
Nume browser
Chrome
Opera
Firefox
Safari
Internet Explorer

Nivel compatibilitate
505
496
467
397
376

Adresa site
https://www.google.com/intl/en/chrome/browser/
http://www.opera.com/
http://www.mozilla.org/
http://support.apple.com/kb/dl1531
http://windows.microsoft.com/ru-ru/internetexplorer/download-ie

n cazul dac avei instalat un alt browser i dorii s testai compatibilitatea lui cu
HTML5, atunci o putei face pe adresa: http://html5test.com/

19

II. Proiectarea Sistemului


2.1 Formularea problemei
SmartTester este un sistem informatic de evaluare a cunotinelor studenilor. Fiind
automatizat acesta permite evaluarea momentana a studentului, astfel economisind puterilor
profesorilor pentru a pregti un material mai bun pentru curs, dar i, avnd un algoritm bine
determinat la baza sa, reduce riscul de a evalua incorect un test, ceea ce e destul de des ntlnit
la factorul uman.
Sistemul de evaluare a cunotinelor este compus din 3 module: Administrator, Profesor i
Student. Fiecare categorie de utilizatori are menirea sa bine prestabilit: Administratorul este
cel rspunztor de structura grupelor, catedrelor, specialitilor i de asemenea este cel ce duce
controlul la nclcrile n sistem, Profesorii sunt cei rspunztori de teste, de crearea, i
publicarea lor pentru studeni, iar Studenii sunt cei pentru care sunt destinate testele, i a cror
cunotine vor fi evaluate i dup aceasta sistemul evalueaz fiecare student i nregistreaz
rezultatele n baza de date.
Testele n sistemul de evaluare al cunotinelor se vor crea n timp real, deci fiecare test va
fi diferit la fiecare student n parte. Acesta va avea un blanc pregtit de ntrebri care vor fi alese
aleatoriu.
Deoarece n ziua de azi Moldova este cuprins de un nivel de corupie att ridicat care este
susinut, dup prerea mea, ntr-o mare parte anume de studeni, am decis s ncerc s reduc
puin din acest nivel ducnd evidena la oricare activitate efectuat n sistem. Cu alte cuvinte,
oricare rezultat al testului, oricare ncercare va fi nregistrat n fiiere speciale destinate care vor
fi securizate i interzis accesul la modificare al lor.

20

Cerinele ctre utilizatorii sistemului de evaluare a cunotinelor


Fiecare categorie de utilizatori, pentru a respecta securitatea n sistem are un set de aciuni
prestabilite, acestea sunt:
Administratorul e mputernicit s:
1.
2.
3.
4.
5.
6.
7.

Creare grupe noi


Crearea cursuri noi
Invita profesori
Invita studeni in grupe
Seta cursuri unui profesor
Adaug grupe noi unui profesor la un curs posedat
Interzice profesorilor de a conduce un obiect
a. In cazul anularii cursului, se anuleaz si grupele conduse (doar la cursul

dat)
8. Interzice profesorilor de a conduce o grupa la cursul posedat
9. Descalifica profesori din sistem
a. In cazul descalificrii profesorului toate datele activitii acestuia se
pstreaz in sistem
b. In cazul descalificrii profesorului cursurile obligator vor trebui nlocuite
de alt profesor
10. Descalifica studeni din grupa
a. In cazul descalificrii studentului toate datele activitii acestuia se
pstreaz in sistem
11. Crearea teste pentru profesori
12. Vizualiza rezultatul oricrui test din sistem
13. Pot anula testele oricrui profesor
a. In cazul anularii testului, creatorul acestuia se informeaz printr-un mesaj
care va conine motivul si data anularii
b. In cazul anularii unui test va fi posibila si anularea tuturor rezultatelor
acestui test
c. In cazul anularii testului si anularii rezultatelor, ele nu vor fi terse, dar vor
fi marcate prin alta culoare
Profesorul e mputernicit s:
1. Crearea teste noi
2. Adaug ntrebri la testele proprii
3. Adaug rspunsuri la ntrebrile proprii
4. Editeze / tearg teste proprii
5. Editeze / tearg ntrebri proprii
6. Editeze / tearg rspunsuri proprii
7. S vizualizeze rezultatele testelor la nivel de grup
8. S vizualizeze rezultatele testelor la nivel de student
21

9. S-i editeze datele proprii


10. S anune administratorul despre o nclcare aprut pe site
Studentul e mputernicit s:
1. Susin teste disponibile
2. S vizualizeze rezultatele testelor care le-a susinut
3. S-i editeze datele proprii
4. S anune administratorul despre o nclcare aprut pe site

2.1 Definirea intrrilor i ieirilor


2.2.1 Definirea intrrilor
Sistemul de evaluare a cunotinelor studenilor percepe urmtoarele obiecte la intrare:

Id
Name

Departament
NUM ( 4 )
TEXT ( 50 )

Id
DepartamentId
Name

Specialization
NUM ( 4 )
NUM ( 4 )
TEXT( 50 )

Id
SpecializationId
Name
Admitted
Graduated

Group
NUM ( 4 )
NUM ( 4 )
TEXT( 50 )
DATETIME
DATETIME

Id
Name

Course
NUM ( 4 )
TEXT( 50 )

Id
Name

Role
NUM ( 4 )
TEXT( 50 )
User
22

Id
FirstName
LastName
Phone
Email
Password
RoleId
Created
Modified
IsActive

GUID
TEXT( 15 )
TEXT( 15 )
TEXT( 15 )
TEXT( 15 )
TEXT( 15 )
NUM ( 4 )
DATETIME
DATETIME
BOOLEAN

Id
UserId
DepartamentId
Created
Modified

Teacher
NUM ( 4 )
GUID
NUM ( 4 )
DATETIME
DATETIME

Id
UserId
GroupId

Student
NUM ( 4 )
GUID
NUM ( 4 )

Id
Name
Description

Course
NUM ( 4 )
TEXT ( 20 )
EXT ( 255 )

Id
TeacherId
CourseId

Teacher
NUM ( 4 )
NUM ( 4 )
NUM ( 4 )

Id
Guid
Sent
Accepted

Invitation
NUM ( 4 )
GUID
DATETIME
DATETIME

Id
Name
OwnerId
CourseId
Duration

Test
NUM ( 4 )
TEXT( 15 )
NUM ( 4 )
NUM( 4 )
NUM( 3 )
23

PublishDate
IsActive

DATETIME
BOOLEAN

Id
Text
Level
TestId
Duration
CreatedDate
ModifiedDate

Question
NUM ( 4 )
TEXT( 15 )
NUM ( 4 )
NUM( 4 )
NUM( 3 )
DATETIME
DATETIME

Id
Text
QuestionId
IsRight
CreatedDate
ModifiedDate

Answer
NUM ( 4 )
TEXT( 15 )
NUM ( 4 )
NUM( 4 )
DATETIME
DATETIME

Id
Titel
Content
OwnerId
Created
Modified

News
NUM ( 4 )
TEXT( 15 )
TEXT( 15 )
TEXT( 15 )
DATETIME
DATETIME

2.2.1 Definirea ieirilor


La ieirile sistemului de evaluare a cunotinelor avem aceleai obiecte ca i la intrare, ns
deja prelucrate, dar pe ling aceasta mai ai avem i obiecte noi care sunt create sistem, acestea
sunt rapoartele.

Id
TestId
StartDate

Id
QuestionId

Statistic Test
NUM ( 4 )
NUM ( 4 )
NUM ( 4 )
News
NUM ( 4 )
NUM ( 4 )
24

StatisticTestId

Id
AnswerId
StatisticQuestionId

NUM ( 4 )
News
NUM ( 4 )
NUM ( 4 )
NUM ( 4 )

2.3 Arhitectura sistemului de evaluare a cunotinelor


Rober Martin n lucrarea sa intitulat Agile Software Developement: Principles, Paterns
and Practices a propus nite principii de proiectare a sistemelor. El a propus aceste principii
pentru a evita o arhitectur proasta a sistemului. Dup opinia lui sunt trei caracteristici care
definesc o arhitectura proast:
-

Rigiditatea sistemului daca o modificarea a sistemului afecteaz multe locuri, atunci sistemul

este greu de modificat;


Fragilitatea este atunci cnd unor erorilor neateptate, la modificarea codului aplicaiei
Imobilitatea este atunci cnd aplicaia nu poate fi separat n mai multe pri pentru a putea fi
reutilizat o parte din ea.

Principiul 1. Principiul Singurei Responsabiliti


Enun: There should never be more than one reason for a class to change.
(Niciodat nu trebuie s existe mai mult de un motiv pentru a modifica o clas.)
Dac pentru a modifica o clas sunt gsite mai multe motive pentru a o modifica, nseamn
c clasa dat are mai multe responsabiliti. Acest principul ne spune ca o clas nu trebuie s aib
mai multe responsabiliti, deoarece fiecare modificare la nivelul interogrilor se reflect printr-o
modificare la nivelul uneia sau mai multe responsabiliti, ce se propag la nivelul superior.

Principiul 2: Principiul Deschis-nchis (Open-Close Principle)

25

Enun: Software entities (classes, modules, functions, etc.) should be open for extension,
but closed for modification.
(Entitile software (clasele, modulele, funciile etc.) trebuie s fie deschise n ceea ce
privete
extinderea, dar nchise n ceea ce privete modificarea.)
Atunci cnd o singur modificare la un program genereaz o serie de modificri n toate
module ntre care exist o dependen, putem spune cu certitudine c acel program a fost
proiectat incorect. Un astfel de program este fragil, rigid, impredictibil i nereutilizabil.
Principiul nchis-Deschis are drept scop tocmai evitarea unei astfel de erori. El spune c trebuie
proiectate module care nu se modific niciodat. Atunci cnd cerinele se modific trebuie extins
comportamentul modulelor software prin adugarea de cod nou i nu prin modificarea codului
existent care a fost deja testat i este funcional.
Modulele care respect acest principiu au dou proprieti importante:
-

Sunt deschise pentru extindere: adic, comportamentul modului poate fi extins; se poate
actualiza modulul astfel nct s nglobeze noi comportamente pe msur ce se modific
cerinele aplicaiei sau pentru a satisface nevoile unei alte aplicaii.

Sunt nchise pentru modificare: adic, codul surs al unui astfel de modul nu poate fi modificat

Principiul 3: Principiul Substituiei Liskov (Liskov Substitution Principle)


Enun: Functions that use pointers or references to base classes must be able to use
objects of derived classes without knowing it.
(Funciile care utilizeaz pointri sau referine la clase de baz trebuie s poat folosi
instane ale claselor derivate fr s i dea seama de acest lucru.)
Pentru a evidenia importana acestui principiu se va considera o funcie care nu respect
acest principiu. Acest lucru nseamn c funcia folosete o referin la o clas de baz, dar c
trebuie s tie care sunt toate clasele derivate din acea clas de baz. Aceast metoda n mod
evident ncalc principiul deschis-nchis ntruct funcia trebuie modificat de fiecare data cnd
este creat o nou clas derivat din clasa de baz.
Principiul 4: Principiul Segregrii Interfeei (Interface Segregation Principle)
26

Enun: Clients should not be forced to depend upon interfaces that they dont use.
(Clienii nu trebuie s depind de interfee pe care nu le folosesc)
Acest principiu scoate n eviden faptul c atunci cnd se definete o interfa trebuie avut
grij ca doar acele metode care sunt specifice interfeei s fie puse n interfa. Dac ntr-o
interfa sunt adugate metode care nu am ce cuta acolo, atunci clasele care implementeaz
interfaa vor trebui s implementeze i acele metode. De exemplu, dac se consider interfaa
Muncitor care are metoda IaMasa(), atunci toate clasele care implementeaz aceast interfaa vor
trebui s implementeze metoda IaMasa(). Ce se ntmpl ns dac muncitorul este un robot?
Interfeele care conin metode nespecifice se numesc interfee poluate sau grase.

Principiul 5: Principiul Inversrii Dependenei (Dependency Inversion Principle)


Enun:
A) High level modules should not depend upon low level modules. Both should depend
upon abstractions.
(Modulele de pe nivelurile ierarhice superioare nu trebuie s depind de modulele de pe
nivelurile ierarhice inferioare. Toate ar trebui s depind doar de module abstract.)
B) Abstractions should not depend upon details. Details should depend upon abstraction.
(Abstractizrile nu trebuie s depind de detalii. Detaliile trebuie s depind de
abstractizri.)
Acest principiu spune faptul c modulele de pe nivelul ierarhic superior trebuie s fie
decuplate de cele de pe nivelurile ierarhice inferioare, aceast decuplare realizndu-se prin
introducerea unui nivel de abstractizare ntre clasele care formeaz nivelul ierarhic superior i
cele care formeaz nivelurile ierarhice inferioare. n plus principiul spune i faptul c
abstractizarea nu trebuie s depind de detalii, ci detaliile trebuie sa depind de abstractizare.
Acest principiu este foarte important pentru reutilizarea componentelor software. De asemenea,
aplicarea corect a acestui principiu face ca ntreinerea codului s fie mult mai uor de realizat.
[3]
Un alt model de proiectare este Modelul Three-tier.
Modelul Three-tier (pe 3 nivele) reprezint un model de arhitectur client-server n
care interfaa cu utilizatorul , logica funcional, reinerea i accesarea datelor sunt dezvoltate i
administrate ca module independente , adesea pe platforme diferite.

27

Dei adesea conceptul de tier este acelai cu layer , ambele referindu-se la straturi, o
accepie comun este aceea c tier se refer la mecanismele logice care stau n spatele unei
soluii software, pe cnd un layer reprezint un mecanism fizic din cadrul unei infrastructuri de
sistem. n acest caz, termenul de Arhitectura Three-tier se refer la introducerea unui server sau
agent ntre partea de client i cea de server. Rolul acestuia difer n funcie de scopul structurii.
Acesta poate oferi servicii de traducere (adaptarea unei aplicaii native de pe un mainframe la un
mediu client-server), de limitare (monitorizarea i eventual reducerea numrului de cereri
efectuate asupra unui server), sau servicii de tip agent inteligent (asignarea unei cereri la un
numr de servere diferite i interpretarea rezultatelor prin transmiterea unui singur rspuns
clientului.
ntr-o arhitectur Three-Tier se gsesc 3 sau mai multe nivele care interacioneaz, fiecare

cu responsabilitile lui (Figura: 2.1)


Un model de tip Three-tier conine urmtoarele nivele :
Nivelul de prezentare (nivelul client) - acesta reprezint nivelul superior al aplicaiei. Nivelul de
prezentare afieaz informaii legate de servicii cum ar fi cutarea i achiziionarea de mrfuri
sau coninutul unui co de cumprturi online. Acest nivel comunic prin trimiterea de rezultate

ctre nivelul browser/client.


Nivelul logic (nivelul de mijloc) - acesta este extras din nivelul de prezentare i controleaz

funcionalitatea aplicaiei prin realizarea de procesri detaliate.


Nivelul de stocare a datelor - acesta const n serverele de baze de date. Informaia este stocat i
extras de aici. Acest nivel menine datele neutre i independente de serverul de aplicaie i de
regulile logice. Oferind datelor un nivel separat, se obin mbuntiri n performanta i scalabili
ae.

28

Figura: 2.1 Arhitectura Three-Tier


[Surs: http://profs.info.uaic.ro/~alaiba/mw/images/e/e4/BTFig1v2.png]
Conducndu-m dup principiile lui Martin adic de principiile SOLID, precum i dup
arhitectura Three-tier, am creat urmtoarea arhitectur a site-ului :

29

Figura 2.2 Arhitectura sistemului de evaluare a cunotinelor


Din imaginea de mai sus vedem c sistemul este compus din componentele:
Database reprezint baza de date, rolul ei este de a stoca datele i a le returna atunci
cnd este interogata.
Infrastructure reprezint o bibliotec care conine acele surse comune care sunt
necesare n celelalte componente ale sistemului. Anume Infrastructure reprezint Nivelul de
infrastructur(Infrastructure Layer) din arhitectura Tree-Tier.
DataGateway este biblioteca care reprezint nivelul de acces la baza de date, n ea se
mapeaz tabelele i funciile bazei de date, dac le are.
SmartTest este proiectul ASP.NET MVC care deine nc trei nivele Model (Bussines
layer), View (Presentation layer), Controller (controller este la fel un reprezentant al Presentation
layer, dar care lucreaz la un nivel mai jos i ace legtura cu View)

30

UserManagement este componenta care rspunde nemijlocit de autentificarea


utilizatorilor pe site i de sesiunile curente ale utilizatorilor deja autentificai. La accesarea
paginii de logare, SmartTest apeleaz imediat UserManagement, apoi dup ce acesta i permite
accesul controlul l preia din nou SmartTest.

2.4 Proiectarea bazei de date


A proiecta o baz de date nseamn a proiecta o schem logic care ar exclude posibilitatea
apariiilor unor anomalii n timpul funcionrii bazei de date, dar i ai spori performana de lucru
la exploatarea ei.
Anomaliile care pot aprea n timp ce se lucreaz cu baza de date sunt anomalii de tipul
actualizrii datelor. Acestea sunt legate de dependenele care au loc ntre atribute. Asemenea
abordare a anomaliilor ce in de actualizarea datelor face posibil caracterizarea dur a gradului
de perfeciune a schemei bazei de date i tot odat definete tehnici de proiectare a schemelor
bazei de date.
Normalizarea bazei de date se face prin aplicarea unui pachet de reguli predefinite ce in de
nite aranjri a datelor avnd ca scop simplificarea structurii complexe si de a le transforma n
structuri mai mici i mai stabile care vor face mai eficient procesarea i menionarea datelor n
baza de date.
Dup parcurgerea unor pai alicind o regul de fiecare dat datele se structureaz, iar cnd
regula este deja satisfcut putem spune c datele sunt normalizate sau datele sunt ntr-o form
normal.
Cu alte cuvinte normalizarea este o analiz formal si de grupare a datelor n structuri mai
mici i mai eficiente. De obicei proiectarea se ncepe de la nite relaii nenormalizate apoi
parcurgnd paii cu regulile propuse se obine o form final a bazei de date.
Forma normal 1: O entitate este n forma normal unu dac i numai dac orice atribut al
ei conine doar valori atomice.
Forma normal 2: O entitate se gsete n a doua form normal dac i numai dac se
gsete n prima form normal i n plus orice atribut care nu face parte din UID va depinde de
ntregul UID nu doar de o parte a acestuia.
Forma normal 3: O entitate se gsete n form normal trei dac i numai dac se
gsete n a doua form normal i nici un atribut al ei care nu este parte a UID-ului nu depinde
de un alt atribut non-UID.
Pentru sistemul dat este de ajuns ca baza de date s fie normalizat pn la 3FN.
31

Figura 2.3 Schema bazei de date

2.5 Proiectarea testului


Probabil cel mai important modul n sistemul de evaluare a cunotinelor este modulul de
susinere a testelor. Testele n sistemul de evaluare a cunotinelor vor fi te tip rating.
Prin rating am n vede c testul va fi construit pe nivele. Fiecare nivel va avea un anumit numr
de ntrebri. Studentul va putea trece la un nivel mai superior dac va rspunde ntrebrile de la
nivelul curent.
n figura 2.4 este descris schema logic a funcionrii testului.

32

Figura 2.4 Algoritmul de evaluare al testului

S presupunem c avem un test care are cte 10 ntrebri pentru fiecare nivel.

Iniial studentul care urmeaz s fie testat intr n test la nivelul 7.


Dac studentul rspunde la cel puin 80% din ntrebri corect, (8 / 10)
-atunci studentul trece la nivelul urmtor

( nivelul 8 )

> daca studentul rspunde greit la nivelul 8


- studentul primete nota 7 i iese din test
> altfel trece la nivelul 9

33

Dac studentul nu rspunde la 80% din ntrebri corect


- Atunci studentul trece la nivelul precedent (nivelul 6)
- Daca studentul rspunde la nota 6
> Atunci studentul primete nota 6 i finiseaz testul
- Dac studentul nu rspunde la nivelul 6
> Atunci are ultima ncercare la nivelul 5
- Dac nu rspunde la 80% din nivelul 5
* atunci studentul ncheie testul cu not negativ
* altfel primete nota 5

Aceasta este o metod de tip occidental care dup prerea mea pare a fi destul de eficient.
Am ales punctul de intrare anume nivelul 7, deoarece este un punct nici prea slab i nici prea
mare. Astfel cred ca acesta e comun i pentru cei mai buni i pentru cei mai puin buni, este un
punct de mijloc.
La finisarea testului, oricare nu ar fi rezultatul, el se nscrie n baza de date, i desigur i n
jurnalul de activiti.

34

III. Realizarea sistemului


3.1 Crearea spaiului de lucru
Odat ce proiectarea a fost finisat e timpul de creat spaiul de lucru pentru a putea ncepe
realizarea propriu zis a proiectului. Pentru a fi soluia n siguran i pentru a reduce riscul de
fraudare a datelor e bine ca soluia s fie creat ntr-un sistem de control al versiunilor.
Un sistem de control de versiune permite ca datele create s fie controlate cat se poate de
bine, cu alte cuvinte s fie posibil navigarea prin oricare schimbare fcut de la nceput pn la
momentul de fa. Pe lng faptul c un asemenea sistem permite controlul tuturor modificrilor
datelor pe server, acesta mai face posibil lucru n comun la un proiect a mai muli programatori,
acesta permite chiar i lucru momentan la aceleai resurse a mai muli programatori. Exemple de
astfel de sisteme sunt:
-

TFS Team Foundation Server este un product lansat de ctre Microsoft. Acesta este un pachet
complex de control al versiunii, dar e i destul de scump pentru o organizaie. Din fericire pentru

un grup de 5 programatori e gratuit, deci el i a fost alegerea mea.


SVN fondat n 2000 de ctre ColabNet, iar la momentul de fa hosting ofer gigantul Google,

mai corect Google Code (https://code.google.com/);


Mercurial fondat n 2005 de ctre Matt Mackall;
Pentru a crea soluia n sistemul de control a l versiunilor e necesar s creezi mai nti proiectul
online, apoi prin intermediul la VisualStudio, conectndu-te la serverul tfs, dispui deja de
controlul versiunii.

Figura 3.1 Resursele disponibile n TFS prin intermediul Visual Studio


35

Figura 3.2 Visual studio online

3.2 Crearea modelul bazei de date


Modelul bazei de date stabilete n ce mod sunt organizate procesate i pstrate datele n
baza de date.
Pentru suport a de date se folosete Microsft SQL Server 2012 Express. Acest server de
baze de date lucreaz cu modele relaionale.
Modele bazei de date n sistem au fost create cu ajutorul Entity Framework 6. Acesta
mapeaz baza de date i creeaz modele conform tabelelor din baz. Pe lng aceasta, entity
framework permite da a redacta sau de a crea modele noi, cu proprieti noi, cu constrngeri noi
care ajut la crearea unor interogri mult mai efective i mai performante dect am face-o direct
n baza de date. Entity framework folosete tehnologia LINQ, care permite scrierea
interogrilor ntr-o form mult mai compact i mai uor de citit de ctre programator.
IEnumerable<Student> students = Context.Students.Where(x => FirstName.Contains("Frun"));

Figura 3.3 Exemplu de interogare LINQ

36

Entity Framework permite Crearea mai multor scheme din baz, iar n schem s grupezi
tabelele dup necesitate. Astfel, se separ tipurile de date cu care se opereaz i se lucreaz cu o
parte din baza de date, n aa mod vizualiznd schema creat din tabele necesare i poi face o
viziune mult mai clar asupra problemei propuse.

Figura 3.4 Exemplu de schema minimizat (Membership)

3.3 Crearea nregistrrii i autentificrii n sistem


Sistemul de evaluare a cunotinelor, are nevoie de un nivel de securitate ct se poate de
nalt, deoarece de el depinde reuita studenilor din instituia de nvmnt, din acest motiv am
hotrt ca nregistrarea n sistem sa fie imposibil fr implicarea administratorului, deci
nregistrarea liber va fi nchis, dar asta nu nseamn c administratorul o s introduc fiecare
utilizator manual, pentru aceasta este prevzut importul utilizatorilor din fiier de tip Excel, care
va avea formatul afiat n figura 3.5.

Figura 3.5 Formatul fiierului Excel pentru imporatearea utilizatorilor.

Fiierul, primit de la grup cu lista ndeplinit, administratorul import contactele n


sistem (Figura 3.6), administratorul alege grupa i apas Save.
37

Figura 3.6 Pagina importrii utilizatorilor n sistemul de evaluare a cunotinelor

Dup ce a salvat invitaiile, fiecrui utilizator i se trimite o invitaie (Figura 3.7) pe adresa
de email specificat n fiierul Excel. Utilizatorul dac accept invitaia este redirecionat pe
pagina resetrii parolei de acces, i dup aceasta va folosi adresa de email indicat i parola
specificat pentru a beneficia de posibilitile sistemului.

Figura 3.7 Exemplu de invitaie

Pentru autentificare n sistem este creat un modul separat. Acesta cripteaz parolele cu
algoritmul renumit MD5. Cu toate c acest algoritm nu are un algoritm de decriptare,
specialitii in domeniu au gsit ci pentru a sparge i astfel de parole, ns tehnologia nu sta pe
loc, i au gsit o modalitate de a se securiza i mai bine. [4]
Pentru a securiza la maxim parolele au fost introduse n algoritmele de criptare MD5 aa
numita salt sare. Rolul acestui adaos este de a complica generarea codului MD5 ca s fie mai
greu de spart. Salt este un ir de caractere ntmpltoare care se folosete la inputul funciei
Hash mpreun cu sursele de datele. Se folosete pentru tergerea cmpului parolei, ceea ce
complic recuperarea grupei de parole iniiale. Reieind din condiiile date, sarea trebuie s fie
unic pentru fiecare parol din coleciile de hash salvate. Cu toate acestea acest hash nu se este
secret, ci se pstreaz alturi de hash-ul parolei n stare liber.
38

Figura 3.8 Forma de logare n sistem

Figura 3.8 Prima pagin

3.4 Crearea Listei de utilizatori


Conform cerinelor, Administratorul are posibilitatea de a vedea orice utilizator nregistrat
n sistem, are drepturi de a terge utilizatori sau de a crea manual utilizator nou, sau dup cum
s-a demonstrat, poate s invite mai muli utilizatori o dat folosind un fiier Excel completat
conform formatului specificat.

39

Figura 3.9 Lista studenilor din panoul de control al administratorului

Din imagine se observ c aici Administratorul are mai multe opiuni disponibile precum:
-

S adauge student nou (manual Figura 3.10);


S invite studeni;
S vizualizeze detalii despre studeni;
Sau s tearg studeni din sistem;

Reamintesc c fiecare aciune a fiecrui utilizator este monitorizat prin logarea fiecrei activiti
n fiiere speciale, inclusiv se duce evidena i a activitilor administratorului.

Figura 3.10 Forma de adugarea manual a unui student

40

3.5 Crearea testelor


Crearea testelor deja ine de activitatea profesorului. Acesta acceptnd invitaia i
nregistrndu-se n sistem pn la capt, poate trece nemijlocit la activitatea sa pentru care este
menit.
Nemijlocit, primul lucru pe care trebuie s-l fac profesorul este s-i creeze testele pentru
cursurile deinute.
Pentru ca profesorul s-i creeze un test, trebuie s acceseze meniul Teste din partea
stng. i va aprea lista de teste, pentru prima dat aceasta va fi goal. Mai sus de lista cu teste
Acceseaz butonul Adaug Test i n acelai moment i apare forma de creare a testului (Figura
311).

Figura 3.10 Forma de adugarea manual a unui student

Dup ce salveaz testul acesta trece necondiionat la adugarea ntrebrilor pentru test, apoi,
pentru fiecare ntrebare adaug rspunsuri. Dup ce profesorul are adugat mcar un test, acesta
o s vad n list n partea dreapt butonul Public. i apare forma de publicare a testului i
salveaz.
Dac testul a fost publicat, atunci el este disponibil pentru vizualizare i pentru susinere pe
pagina studenilor din grupele pentru care a fost publicat testul.
La finisarea termenului de publicare, testele nu mai sunt disponibile pentru vizualizare, n
statistica studenilor va rmne doar rezultatele proprii i att.

41

Concluzie
Scopul acestei teze de licen a fost proiectarea, analiza i elaborarea unui sistem te
evaluare a cunotinelor online. Pe parcursul lucrrii au fost evideniate principalele tehnici,
metode, noiuni cheie folosite n proiectarea i elaborarea acestui sistem de evaluare a
cunotinelor online.
Au fost evideniate principalele scopuri precum i principalele probleme care ntr-un mod
sau altul am ncercat s le rezolv prin intermediul acestui sistem.
Pe parcursul elaborrii sistemului de evaluare a cunotinelor online am ncercat s
automatizez majoritatea lucrurilor posibile pentru a economisi timp i sntate profesorului
pentru a conserva puterea pentru crearea unor cursuri mai bune, mai eficiente, i mai atractive
pentru studeni. Automatizarea evalurii de asemenea nseamn i o evaluare mai obiectiv i
mai eficient, reduce riscul de a evalua greit i un sistemul nu poate fi influenat n nici ntr-un
mod ca s schimbe nota meritat.
Pentru proiectarea i elaborarea acestui sistem am folosit de asemenea noile tehnologii de
proiectare, precum SCRUM i TREE-TIER ARCHITECTURE, ceea ce face sistemul sa fie
extensibil i destul de eficient n lucru.
De asemenea costurile pentru ntreinerea sistemului nu sunt att de ridicate lund n
considerare c securitatea i eficiena sunt n pas cu ziua de azi.
Toate acestea enumerate mai sus au fost realizate datorit tehnologiei avansate, proiectrii
eficiente, cu puin efort din partea mea, dar nu i n ultimul rnd datorit miestriei profesorilor
notri care au avut rbdare i ncredere n noi c o s ajungem acum la un nivel mult mai nalt
dect ne-au cunoscut ei de la nceput.

42

Bibliografie
[1] - http://biblioteca.regielive.ro/cursuri/economie/resursele-intreprinderii-alte-domenii3475.html ; Profesor: Marinica Dobrin ;
[2] Baze de date relaionale, Vitalie Cotelea;
[3]: http://www.aut.upt.ro/staff/diercan/data/PSSC/curs-03.pdf]
[4] - ru.wikipedia.org/wiki/_()
[5] - Pro Agile .NET Development with Scrum; ISBN: 978-1-4302-3533-0; Authors: Jerrel
Blankenship, Matthew Bussa, Scott Millett;
[6] Pro SQL Server 2012 Relational Database Design and Implementation; ISBN: 978-14302-3695-5; Authors: Louis Davidson, Jessica M. Moss;
[7] - Pro ASP.NET Web API Security; ISBN: 978-1-4302-5782-0; Authors:
Badrinarayanan Lakshmiraghavan;
[8] - Agile Software Engineering with Visual Studio, 2nd Edition; ISBN: 978-0-32168585-8; Authors: Sam Guckenheimer, Neno Loje;
[9] - ASP.NET MVC 4 Recipes; ISBN: 978-1-4302-4773-9; Author: John Ciliberti;
[10] - Applied ASP.NET 4 in Context; ISBN: 978-1-4302-3467-8; Author:

Adam

Freeman;
[11] - Programming Entity Framework, 2nd Edition; ISBN: 978-0-596-80726-9; Author:
Julia Lerman;
[12] [13] [14] [15] [16] -

43

S-ar putea să vă placă și