SLOVENSKÁ TECHNICKÁ UNIVERZITA
Fakulta informatiky
a informačných technológií
TVORBA TESTOV
S VYUŽITÍM LATEXU
(Posudok)
Vypracovali: Bc. Lukáš Slížik
Študijný odbor: Informačné systémy
Kontakt: team1078@gmail.com
Školský rok: 2007/2008
Dátum: 5. júna 2007
Tento dokument predstavuje posudok k dokumentácií
a k samotnému systému Genex, ktorý bol vypracovaný tímom č. 5 (Foo)
v rámci predmetu Vývoj softvérového systému v tíme (názov celého
projektu znie Tvorba testov s využitím Latexu). Cieľ projektu spočíval
v zefektívnení výučby na našej fakulte.
Vyvíjaný systém je určený v prvom rade pre profesorov
a pedagógov, no svoje uplatnenie si nájde aj v autoškolách, či
prieskumných agentúrach. Tento fakt sa dá hodnotiť pozitívne, dalo by sa to
nazvať široké uplatnenie.
Testy sú dôležitou súčasťou overovania študentových vedomostí. Tvorbe
testov je preto nutné venovať patričnú pozornosť.
Dokumentácia k systému je rozdelená na tri logické časti: Analýza problémovej
oblasti, Špecifikácia požiadaviek a analýza systému a Návrh systému. Tieto tri
časti odrážajú zaužívaný postup pri vývoji softvéru.
Značná časť tejto kapitoly je venovaná analýze už existujúceho systému
TestGen. Autori však vôbec nespomínajú odkiaľ sa k tomuto systému dostali,
kto je jeho autorom a kedy vznikol. Tieto informácie by pre úplnosť nemali
chýbať. V tejto časti je takisto spomínaný logický model systému TestGen,
o ktorom sa autori vyjadrujú pozitívne, no nakoľko nie je uvedený alebo
aspoň popísaný, je táto informácia pre nezainteresovaného čitateľa irelevantná.
Prínosom pre autorov systému Genex bola nepochybne identifikácia rôznych typov
otázok, ktorú získali pri analýze systému TestGen (napr. single choice, multi
choice, true-false, rank-in-order, sore finger, fill in, numeric fill in,
sentence, essay).
Ďalej autori upriamili pozornosť vo svojej analýze na softvérový
systém Moodle, pretože bola zvažovaná možnosť prepojenia tohto systému so
svojím.
V poslednej podkapitole sa zamerali na analýzu existujúcich testov,
pretože jedna z požiadaviek na vytváraný systém spočívala v importe otázok z
existujúcich testov.
Časť analýzy je primerane spracovaná. Autori z nej dokázali vyťažiť maximum
v tom zmysle, že sa poučili z chýb svojich predchodcov (napr. použitý
databázový systém) a nemuseli sa venovať niečomu, čo už bolo vymyslené (napr.
typy otázok).
Táto kapitola je venovaná špecifikácií jednotlivých požiadaviek na vytváraný
systém. Tie sú rozdelené do troch základných kategórií podľa stupňa priority
(najvyššia, stredná, najnižšia). Toto rozdelenie hodnotím pozitívne, pretože
autorom to umožnilo zamerať sa na požiadavky s vyššou prioritou a pri časovom
deficite, ktorý vznikol, bolo jasné, ktoré požiadavky ich systém nebude riešiť
(napr. kontrola pravopisu a zasadací poriadok).
Uvedené požiadavky na funkcionalitu systému mohli byť aspoň stručne
popísané. Názov pri väčšine z nich hovorí aj o samotnej požiadavke,
no pri niektorých nie je jasný ich význam (napr.: najvyššia priorita -
zvýraznenie syntaxe).
V špecifikácii sa vyskytuje zopár nezrovnalostí, ktoré pre mňa zostali
po prečítaní nevysvetlené, napr. pri UC 1 Vytvor kategóriu, kategóriu bude
možné vytvoriť iba v inej kategórii, ktorá už existuje, ale čo ak sa
kategória nebude dať zaradiť do žiadnej z existujúcich? Nemala by byť podľa
správnosti možnosť pridať kategóriu, ktorá sa nepridá do niektorej
z kategórií? Ďalej sa v opise prípadov použitia nevyskytli obsahovo
nejaké závažné chyby.
Dovoľujem si tvrdiť, že sa v tejto časti asi najviac prejavila sila
celého tímu vytvárajúceho daný systém. Nezainteresovaný čitateľ získa jasnú
predstavu o tom, čo by mal systém zabezpečovať, a to aj vďaka štýlu
písania, ktorý autori používali. Celá špecifikácia je relevantná, všetky
uvedené informácie spĺňajú určitý význam, zbytočne neuvádzajú nepodstatné
údaje. Názornosť celej dokumentácie zvyšuje aj použitie rôznych diagramov,
ktoré sú dostatočne popísané.
Na začiatku tejto kapitoly (4.1 Výber technológií) sa autori venujú analýze
technológií a nástrojov, ktorých použitie zvažujú. Vhodnejšie by bolo, keby
bola táto časť uvedená v kapitole 2. Analýza problémovej oblasti. Uvedená
analýza je spravená podrobne a vyplýva z nej, ktoré technológie budú
použité pri implementácií. Pri jednotlivých technológiách mohli pre úplnosť
autori ešte uviesť aj hardvérové požiadavky a celú túto časť zhrnúť do
akéhosi celkového zhodnotenia.
V tejto kapitole oceňujem návrh logického modelu a aj
fyzického modelu, ktoré sú premyslené a dostatočne popísané. Na záver tejto
kapitoly sú uvedené akceptačné testy, ktoré navrhujú overenie funkcionality
systému voči špecifikácií.
Ide o jednu z najdôležitejších častí systému, pretože predstavuje základnú
funkcionalitu. Systém umožňuje dva spôsoby generovania testov, prvý, založený
na heuristike je vhodný pre pedagógov, ktorý nepotrebujú mať veľkú kontrolu nad
výsledným vygenerovaným testom, pretože jediné, čo im zostáva je navoliť si
priemernú zložitosť testu (resp. otázok) a systém sa postará o všetko potrebné.
Druhý zo spôsobov je pre používateľov, ktorý požadujú väčšiu kontrolu nad
generovaním daného testu, pretože tento spôsob im umožňuje nadefinovať si
presný počet otázok určitej zložitosti.
Pozitívne hodnotím možnosť voľby jedného zo spôsobov.
Pri implementácií systému bol použitý model MVC (Model – View -
Controller), ktorého použitie bolo navrhované už v zimnej časti, ešte pri
riešení prototypu. Priložený obrázok vhodne znázorňuje uvedenú architektúru
spolu s použitými technológiami.
V ďalšej časti dokumentácie sa nachádza opis jednotlivých technológií,
ktoré boli použité v prezentačnej, aplikačnej a dátovej vrstve.
Testovanie prebiehalo v dvoch fázach: Unit testovanie pomocou JUnit, neskôr
pomocou TestNG a Alfa testovanie, kde bola nová funkcionalita otestovaná iným
členom ako tým, ktorý túto funkcionalitu naimplementoval. Takýto postup sa bežne
využíva aj v praxi, pretože programátor má nízku motiváciu odhaliť chybu vo
svojom vlastnom kóde. Tím č. 5 uvádza, že pomocou alfa testovania odhalili
niekoľko závažnejších chýb, no zväčša nešlo o funkcionalitu, ale atribúty
kvality (dlhšia odozva a pod.)
V prvej fáze si tím č.5 uľahčil značnú časť práce podrobnou analýzou a
návrhom. Ich predchádzajúce skúsenosti s použitými technológiami boli pre nich
len výhodou. No aj napriek týmto tvrdeniam, nedokázali niektoré požiadavky zo
špecifikácie naimplementovať z časových dôvodov. Nakoľko boli požiadavky
rozdelené do troch kategórií podľa stupňa priority, bolo jasné, ktoré
požiadavky sa nebudú riešiť (nízka a stredná priorita – napr. kontrola
pravopisu, zasadací poriadok, optimalizácia pre veľký počet otázok).
V používateľskej príručke sa nachádza niekoľko nezrovnalostí, konkrétne je
uvádzaná informácia o tom, že systém sa spúšťa súborom genex.jar, neskôr je
uvádzaný súbor genex_prototype.jar, ale v skutočnosti je to súbor
Genex-0.0.2-SNAPSHOT.jar. Myslím, že tieto nezrovnalosti vznikli z toho dôvodu,
že systém bol v niekoľkých verziách a názov sa oproti príručke niekoľkokrát
menil.
Používanie systému bolo pre mňa dosť intuitívne, lenže k systému som sa
dostal až po preštudovaní dokumentácie, takže som presne vedel akú
funkcionalitu mám od systému očakávať a kde mám čo hľadať (bolo to spôsobené aj
faktom, že som sa zúčastnil prezentácie hotového systému). Myslím si, že
používanie systému môžu byť pre nezainteresovaného používateľa spočiatku mierne
mätúce, no je to z toho dôvodu, že systém ponúka množstvo funkcií. Musím však
zdôrazniť, že všetky funkcie sú opodstatnené a napĺňajú špecifikáciu. Pre
nezainteresovaného používateľa slúži používateľská príručka, v ktorej sú podrobným
spôsobom popísané všetky funkcie systému, aj s informáciou o tom, ako sa k nim
dostať (klávesové skratky, položky menu, ikony).
Systém ponúka pridávanie otázok do databázy jednoduchým spôsobom.
Používateľ musí len nastaviť 6 atribútov ku každej otázke (text otázky, typ
otázky, odpovede, zložitosť otázky, kľúčové slová, obrázky).
Používateľ má dve možnosti ako vytvoriť test; generovanie a manuálne
vytvorenie. Automatické generovanie spočíva v nadefinovaní si priemernej
zložitosti otázok, alebo pomocou presne určeného počtu otázok určitej
zložitosti. Manuálne vytvorenie ponúka možnosť manuálne vyskladať test
z existujúcich otázok.
Systém umožňuje exportovať vytvorené testy do formátu LATEX, tento export
funguje na základe definovaných šablón a skúsenejší používateľ má možnosť
si tieto šablóny upravovať podľa seba (veľkosť písma, rozloženie prvkov
v teste a pod.). Takáto modifikácia však vyžaduje od používateľa
určité znalosti systému LATEX.
Druhá možnosť exportovania spočíva v exportovaní vytvoreného testu do
systému Moodle.
Na záver používateľskej dokumentácie je uvedená časť tipy a triky, no
skúsenejšiemu používateľovi nedá nič nové. Vysvetľuje totižto používanie
klávesových skratiek, automatické dopĺňanie a pod. Jej zaradenie však vôbec
nehodnotím negatívne. Skúsený používateľ môže túto časť jednoducho preskočiť.
Systém implementuje navrhovanú funkcionalitu, neponúka používateľovi
množstvo zbytočných a nevyužiteľných možností, skrátka spĺňa definované
požiadavky s najvyššou prioritou. Požiadavky najnižšej priority boli
definované len ako prídavná funkcionalita a myslím si, že návrh je natoľko
flexibilný, že by pre tím č.5 nebol problém dané požiadavky doimplementovať.
Dokumentácia k systému, aj používateľská príručka sú písané prehľadne,
zrozumiteľne a štruktúrovane. Celkovo hodnotím systém stupňom 7 (viac ako
veľmi dobrý).