Documente Academic
Documente Profesional
Documente Cultură
Cristea BOBOILĂ *
EvalEdit reprezintă o aplicaţie tip Internet al cărei scop este evaluarea on-line şi
editarea testelor grilă existente pentru evaluare. Aplicaţia are rolul de a înlesni studiul pe
internet precum şi de a oferi posibilitatea de actualizare periodică în scopul unei evaluări
cât mai reale a cunoştintelor utilizatorilor. Rolul produsului software este nu numai de a crea
posibilitatea utilizatorilor de a-şi verifica cunoştinţele on-line dar şi de crea posibilitatea
acestora de evoluţie în timp permiţându-le o bună monitorizare a rezultatelor obţinute. Pe de
altă parte aplicaţia va oferi posibilitatea operatorilor/administratorului de a schimba
periodic testel egrilă pentru a permite o actualizare cât mai eficientă a sistemului de
evaluare.
Pentru realizarea acestui software educational - EvalEdit se folosesc PHP şi MySQL.
Am ales realizarea unei baze de date în MySQL, deoarece accesul şi lucrul cu bazele de date
este mai uşor comparativ cu alte platforme, ceea ce permite o reînnoire uşoară şi rapidă a
informaţiei expuse. Un alt motiv important pentru folosirea PHP şi MySQL este că acestea
sunt cross-platform, putând rula atât pe Windows cât şi pe Linux. PHP şi MySQL oferă
posibilitatea realizării unui site dinamic, printr-o interfaţare simplă şi accesibilă oricărui
utilizator. De asemenea, pentru realizarea produsului am folosit serverul HTTP Apache, care
se caracterizează prin siguranţă şi extensibilitate.
Cuvinte cheie: Internet, e-learning, educaţia la distanţă, software educaţional
1. Introducere
Scopul acestui document este prezentarea proiectării unui sistem conform
cu standardul IEEE STD-1016-1998, IEEE Recommended Practice for Software
Design Descriptions.
Sistemul a cărui proiectare se descrie prin acest articol reprezintă o
aplicaţie tip Internet (EvalEdit) al cărei scop este evaluarea on-line şi editarea
testelor grilă existente pentru evaluare. Acest sistem are rolul de a uşura studiul
pe internet precum şi de a oferi posibilitatea de a fi reactualizat periodic în
scopul unei evaluări cât mai reale a cunoştinţelor utilizatorilor. Rolul acestui
sistem este nu numai de a crea posibilitatea utilizatorilor de a-şi verifica
cunoştinţele on-line dar şi de crea posibilitatea de analiză a evoluţiei lor în timp,
permiţându-le o bună monitorizare a rezultatelor acestora de-a lungul timpului.
Pe de altă parte această aplicaţie va crea posibilitatea de a fi schimbate periodic
testele pentru a permite o actualizare cât mai eficientă a sistemului de evaluare.
Proiectul astfel realizat se adresează în primul rând programatorilor,
designerilor şi managerilor de proiect, dar şi utilizatorului obişnuit care este
beneficiarul acestei aplicaţii, publicul ţintă al acestui document.
Page 1 of 12
Vom utiliza în continuare următoarele definiţii, acronime şi abrevieri:
• site dinamic = site care oferă posibilitatea schimbării rapide a
informaţiilor expuse, furnizând utilizatorilor informatie noua şi posibilitatea de a
interactiona. Într-un site dinamic, elementele de interactivitate se pot adăuga
foarte uşor. De asemenea, având continutul separat de prezentare, într-o bază de
date, se pot crea uşor duplicate ale site-ului, cu format potrivit destinaţiei.
• cross-platform = aplicaţii care pot rula pe o varietate de sisteme de
operare (Linux, Windows, etc.)
2. Tehnologii folosite
Nume adaugaInfo
Tip Modul de Cod
Scop Scopul acestui modul este de a facilita adăugarea în
baza de date a numelui cursantului, a unui domeniu sau a
unui test.
Mod de Funcţiile acestui modul vor fi apelate la cerinţa
operare utilizatorului, prin interfaţa cu acesta. Toate aceste funcţii
vor accesa baza de date pentru a adăuga informaţiile
corespunzătoare. Identificarea obiectului de adăugat
(nume cursant, domeniu, sau test) se face pe baza unui
parametru.
Submodule editIntrebare, este subordonat modulului
adaugaInfo, având rolul de a prelua informaţii
corespunzătoare unei întrebări a testului (număr întrebare,
număr puncte alocat întrebării, variante de răspuns,
raspunsul corect) şi a le adăuga în baza de date.
Resurse MySQL, PHP
Page 2 of 12
3.1.2. Descriere modul identificTest
Nume identificTest
Tip Modul de Cod
Scop Acest modul permite alegerea unui domeniu şi a
unui test în vederea evaluării sau în vederea editării, pe
baza informaţiilor introduse de utilizator. Funcţionalitatea
acestuia este de bază pentru submodulele pe care le are în
subordine prin faptul că identifică testul ce se va accesa în
continuare.
Mod de Funcţiile acestui modul vor fi apelate la cerinţa
operare utilizatorului, prin interfaţa cu acesta. Toate aceste funcţii
vor accesa baza de date pentru a identifica domeniul şi
testul cerut de utilizator pentru evaluare.
Submodule extragTest, este subordonat modulului
identificTest, având rolul de a extrage din baza de date şi
afişa întrebările corespunzătoare testului curent.
cronometrareTimp, este subordonat modulului
identificTest, având rolul de a extrage din baza de date
timpul setat pentru evaluare şi a cronometra scurgerea
acestuia; când acesta expiră, se opreşte derularea testului.
editIntrebare, este subordonat nu numai
modulului adaugaInfo prezentat mai sus, dar şi modulului
identificTest, având rolul de a prelua informaţii
corespunzătoare unei întrebari a testului (număr întrebare,
număr puncte alocat întrebării, variante de răspuns,
răspunsul corect) şi a le adăuga în baza de date.
stergeIntrebare, are rolul de a prelua de la
utilizator numărul întrebării care se doreşte a fi ştearsă şi
a elimina înregistrarea corespunzătoare acesteia din baza
de date.
editTimp, are rolul de a prelua de la utilizator noul
timp de evaluare care este setat pentru testul curent, şi a
reactualiza valoarea sa din baza de date.
editPondere, are rolul de a prelua de la utilizator
numărul întrebării din test pentru care se doreşte editarea
ponderii şi de a reactualiza valoarea sa din baza de date.
Resurse MySQL, PHP
Page 3 of 12
3.1.3. Descriere modul eval
Nume eval
Tip Modul de Cod
Scop Acest modul permite evaluarea răspunsurilor
cursantului. Modulul eval permite calculul
răspunsurilor corecte, greşite, a numărului de puncte
obţinute, afişarea răspunsurilor cursantului în paralel
cu răspunsurile corecte şi cu punctele alocate fiecărei
întrebări.
Mod de operare Funcţiile acestui modul accesează baza de date
pentru a compara răspunsurile cursantului cu cele
înregistrate ca fiind corecte în baza de date, şi
calculează numărul de răspunsuri corecte, numărul
de răspunsuri greşite şi pe baza acestor valori
calculează în final numărul de puncte obţinute. De
asemenea, cunoaşterea răspunsurilor cursantului în
paralel cu a celor corecte la nivelul acestui modul,
permite adăugarea unei funcţii pentru afişarea în
paralel a acestora.
Submodule grafic, este subordonat modulului eval, şi
realizează, pe baza calculelor furnizate de acest
modul, afişarea unui grafic comparativ pentru
cursantul care a mai efectuat teste anterior şi care
astfel se află deja în baza de date.
Resurse MySQL, PHP
Page 4 of 12
3.2. Descrierea bazei de date
Page 5 of 12
3.2.2. Resurse
TABEL domenii
id_domeniu smallint(5) unsigned NOT NULL auto_increment,
domeniu text,
PRIMARY KEY (id_domeniu),
UNIQUE KEY id_domeniu (id_domeniu),
TABEL info_test
id_domeniu smallint(5) unsigned default NULL,
nume_test text,
nr_intrebari smallint(5) unsigned default NULL,
data timestamp(10) NOT NULL,
punctaj_total smallint(5) unsigned NOT NULL default '0'
TABEL cursant
id_cursant smallint(5) unsigned default NULL,
id_domeniu smallint(5) unsigned default NULL,
nume_test text,
nr_intrebare smallint(5) unsigned default NULL,
raspA smallint(5) unsigned NOT NULL default '0',
raspB smallint(5) unsigned NOT NULL default '0',
raspC smallint(5) unsigned NOT NULL default '0',
raspD smallint(5) unsigned NOT NULL default '0'
Page 6 of 12
TABEL cursant_evolutie
id_cursant smallint(5) unsigned default NULL,
id_domeniu smallint(5) unsigned default NULL,
nume_test text,
nr_intrebari smallint(5) unsigned NOT NULL default '0',
nr_corecte smallint(5) unsigned NOT NULL default '0',
data timestamp(12) NOT NULL,
nr_puncte smallint(5) unsigned NOT NULL default '0',
punctaj_total smallint(5) unsigned NOT NULL default '0'
TABEL nume_cursanti
id_cursant smallint(5) unsigned NOT NULL auto_increment,
cursant text,
PRIMARY KEY (id_cursant),
UNIQUE KEY id_cursant (id_cursant),
TABEL nume_teste
id_domeniu smallint(5) unsigned default NULL,
nume_test text
TABEL teste
id_domeniu smallint(5) unsigned default NULL,
nume_test text,
nr_intrebare smallint(5) unsigned default NULL,
enunt text,
raspA text,
raspB text,
raspC text,
raspD text,
rcorectA smallint(5) unsigned NOT NULL default '0',
Page 7 of 12
rcorectB smallint(5) unsigned NOT NULL default '0',
rcorectC smallint(5) unsigned NOT NULL default '0',
rcorectD smallint(5) unsigned NOT NULL default '0',
pondere smallint(5) unsigned default NULL
TABEL users
user_name text NOT NULL,
parola text NOT NULL
TABEL admin
admin_nume text NOT NULL,
admin_parola text NOT NULL
1. adaugaInfo;
2. identificTest;
3. eval;
4. login.
Page 8 of 12
Pentru modulul identificTest:
1. extragTest;
Acest submodul este subordonat modulului identificTest, deoarece
foloseşte informaţia furnizată de acesta referitoare la numele testului. Rolul său
este de a extrage din baza de date şi afişa întrebările corespunzătoare testului
curent.
2. cronometrareTimp;
Acest submodul este subordonat modulului identificTest, deoarece
foloseşte informaţia furnizată de acesta referitoare la numele testului, şi are rolul
de a extrage din baza de date timpul setat pentru evaluare şi a cronometra
scurgerea acestuia; când acesta expiră, se opreşte derularea testului.
3. editIntrebare;
Acest submodul este subordonat nu numai modulului adaugaInfo (cu rol
în secţiunea de adăugare de teste), dar şi modulului identificTest, deoarece
foloseşte informaţia furnizată de acesta referitoare la numele testului. Rolul său
este acelaşi ca mai sus: de a prelua informaţii corespunzătoare unei întrebări a
testului (număr întrebare, număr puncte alocat întrebării, variante de răspuns,
răspunsul corect) şi a le adauga în baza de date. Este folosit astfel şi în secţiunea
de modificare de teste, adăugând întrebări la un test deja existent.
4. stergeIntrebare;
Acest submodul este subordonat modulului identificTest, deoarece
foloseste informaţia furnizată de acesta referitoare la numele testului, şi are rolul
de a prelua de la utilizator numărul întrebării care se doreşte a fi ştearsă şi a
elimina înregistrarea corespunzătoare acesteia din baza de date.
5. editTimp;
Acest submodul este subordonat modulului identificTest, deoarece
foloseşte informaţia furnizată de acesta referitoare la numele testului. Rolul său
este de a prelua de la utilizator noul timp de evaluare care este setat pentru testul
curent, şi a reactualiza valoarea sa din baza de date.
6. editPondere;
Acest submodul este subordonat modulului identificTest, deoarece
foloseste informaţia furnizată de acesta referitoare la numele testului. În cadrul
său, este preluat de la utilizator numărul întrebării din test pentru care se doreşte
editarea ponderii şi se reactualizează valoarea sa din baza de date.
Page 9 of 12
Pentru modulul login: - nu există submodule.
5. Descriere interfeţe
5.1. Descriere interfaţă adaugaInfo
Page 10 of 12
cursantului în paralel cu răspunsurile corecte şi cu punctele alocate fiecărei
întrebări.
Modulul lucrează cu submodulul grafic, care afişează un grafic
comparativ pentru cursantul care a mai efectuat teste anterior şi care astfel se
află deja în baza de date.
6. Concluzii
Bibliografie
Page 11 of 12
[3] Braganholo,V., Davidson, S. and Heuser, C., On the updatability of XML views
over relational databases, in Proceedings of WEBDB 2003.
[4] Chandra, A.K., Merlin, P.M., Optimal implementation of conjunctive queries in
relational data bases, 9th Annual ACM Symposium on Theory of Computing, pp. 77 -
90, 1977.
[5] Codd, E.F., A Relational Data Model for Large Shared Data Banks, Comm. of
the ACM, 13 (6), 1970, pp. 377-387.
[6] Codd, E.F., Extending the Database Relational Model to Capture More
Meaning, ACM Transactions on Database Systems (TODS), v.4, pp: 397 - 434,
1979.
[7] MySQL 5.0 Community Server, Database Design and Maintenance. Web site
http://www.mysql.com/.
[8] McCarty, B., PHP 4, Trad. Mănăstireanu Mihai, Teora, Bucureşti, 2003.
[9] Paré, R.C., From ternary relationship to relational tables: a case against
common beliefs, ACM SIGMOD Record, v.31 n.2, June 2002.
[10] Silberschatz, A., Korth, H.F., Sudarshan, S., Database System Concepts, Fifth
Edition, McGraw-Hill, 2005.
[11] The Apache Software Foundation, APACHE Server Project, Web site
http://httpd.apache.org/, 2005.
[12] Ullman, J.D., Principles of Database and Knowledge Base Systems, Computer
Science Press, 1988.
[13] Winemiller, E., Roff, J.T., Hezman, B., Groom, R., Visual Basic 6. Baze de
date, Trad. Mănăstireanu Mihai, Teora, Bucureşti, 2001.
*
Lect., PhD, Mathematics and Informatics Department University of Craiova
Page 12 of 12