Pozn. : tento súbor nebolo možné 100% konvertovať do html, preto niektoré obrázky sú poškodené
V rámci prototypovania sme sa
rozhodli navrhnúť a implementovať prototyp týchto vybraných častí
(podsystémov):
·
Test funkčnosti,
·
Analýza
podobnosti,
·
Evidencia,
·
Integrované
prostredie.
4.1. Návrh:
Test funkčnosti:
Prototyp je navrhovaný vzhľadom
na čo najväčšiu modulárnosť a rozšíriteľnosť. Snahou je čo najviac znížiť aj
závislosť jednotlivých modulov (funkčných jednotiek) medzi sebou a zároveň
zvýšiť závislosť vo funkčnej jednotke. Ďalej je potrebné čo najviac obmedziť
nadbytočnosť celého podsystému a obmedziť prístup k údajom jednotlivých
modulov, čím sa obmedzí výskyt chýb práve na konkrétny modul.
Každá funkčná jednotka
predstavuje logickú časť podsystému Testovanie. Preto sa podsystém delí na 5
funkčných jednotiek:
·
Preklad,
·
Spustenie,
·
Funkčnosť,
·
Riadenie,
·
Možnosti.
Takto sa obmedzil tok údajov aj
tok riadenia medzi jednotlivými jednotkami na minimum. Zároveň sa obmedzila
nadbytočnosť v niektorých funkčných častiach.
Preklad:
Pri prekladaní zdrojového súboru
prekladačom sa vytvárajú hlásenia o úspešnosti prekladu jednotlivých častí.
Počíta sa teda s tým, že každý použitý prekladač vytvára odlišné výstupné
hlásenia pre ten istý súbor. Ďalej platí, že pre dva rozdielne zdrojové súbory
vygeneruje prekladač dva rôzne výstupy. Ďalej ak chceme zachovať možnosť
rozšíriteľnosti o prípadné ďalšie prekladače, je potrebná taká údajová
štruktúra, ktorá má schopnosť uchovať si jazyk, príponu súboru pre konkrétny
programovací jazyk a cestu k prislúchajúcemu prekladaču. Zároveň je pridaná aj
možnosť spúšťať prekladač s požadovanými prepínačmi.
struct
{
TYP_SPRACOVAVANEHO_SUBORU;
// je to vlastne jazyk (napríklad JSI, C),
ale aj iný typ (napríklad OBJ)
PRIPONA_SUBORU;
// pre každý typ súboru môže byť rôzna
prípona (pre JSI: .asm, .s)
PRIKAZ_PRE_SPRACOVANIE;
//väčšinou cesta k prekladaču pre zdrojový
súbor, alebo linker
PARAMETRE_PRE_PRIKAZ;
//prepínače pre lepšie nastavenie
konkrétneho prekladača
};
Takto je možný výber prekladača
pre požadovaný typ súboru, alebo výber parametrov pre prekladač vzhľadom k požadovaným
vlastnostiam prekladu. Konkrétne požiadavky na nastavenia sú posielané modulu
Možnosti. Typ požadovanej vlastnosti je súčasťou požiadavky.
enum
{
POZIADAVKA_NA_PREKLADAC,
POZIADAVKA_NA_SUBOR,
POZIADAVKA_NA_PREPINACE,
...
};
Zároveň ak bude potrebné pridať
novú požiadavku do systému, stačí pridať položku identifikujúcu nový typ,
prípadne aj novú štruktúru zahrňujúcu miesto pre vlastnosti (ak existujúce
štruktúry nevyhovujú). Ďalej je nutné dopísať obsluhu pre túto požiadavku v
module pre nastavovanie možností.
Ako bolo spomenuté už na
začiatku, problém je v zbere údajov od rôznych prekladačov a dokonca aj pre ten
istý prekladač použitý na rôzne zdrojové súbory. Z uvedeného vyplýva, že
ideálnym prípadom by bolo, keby prekladače pri úspešnom preklade nevytvárali
žiadne hlásenia.
Keďže táto myšlienka je
jednoducho realizovateľná, je to prvoradá vec, ktorou sa začína spracovanie
výstupu z prekladača. Ak cheme podporovať ľubovoľný prekladač, musíme poznať
formát jeho výstupu a vytvoriť pre každý rozdielny formát výstupu vlastnú
spracovateľskú funkciu, ktorá podľa výstupu zistí, či preklad prebehol
bezchybne, alebo sa v preklade vyskytli nejaké chyby. Zároveň je vhodné (pri
neúspešnom preklade) ukladať chybové hlásenia do záznamového súboru.
V prototype sa ráta s podporou
pre prekladač JSI "tasm.exe" od firmy BORLAND. Pre ďalšie prekladače
je potrebné dopísať ich spracovateľské funkcie.
Veľmi jednoduchým a ľahko
implementovateľným je riešenie opierajúce sa o takzvané referenčné zadania, kde
sa výstupy generované prekladačom pre tento súbor porovnávajú s výstupmi z
prekladača pre požadovaný súbor. Toto riešenie však má aj nevýhody. Tieto
nevýhody sú v potenciálne odlišných výstupoch pre správne programy. Ako príklad
tu môže byť výstup pre súbor, ktorý je napísaný v JSI pre výsledný
"COM" súbor a pre "EXE" súbor, kde jeden z prekladov
vygeneruje o jedno hlásenie viac a tým by mohlo dôjsť k omylu pri určovaní
funkčnosti. Ďalšou možnou príčinou omylu by mohli byť aj takzvané varovné správy,
kedy príčina, ktorá tieto správy vygenerovala môže a nemusí mať vplyv na
funkčnosť programu. Preto sme sa rozhodli, že varovné správy budeme ignorovať.
Samozrejme je možné aj nastavenie možností pre dovolenie alebo zakázanie
varovných správ.
Spustenie:
Ak chceme využiť už existujúce
prostriedky na preklad zdrojových súborov, musíme ich dokázať spustiť z
kontextu tejto jednotky. Veľmi dobre vieme, že každý operačný systém poskytuje
tieto služby v rámci systémových volaní. Sú dve všeobecne známe volania. Buď sa
použije systémové volanie fork (UNIX), alebo CreateProcess (Win32).
Jednoduchšie a ľahšie realizovateľné by bolo použiť volanie fork, avšak
vzhľadom na to, že cieľovou platformou je Win32, musíme použiť volanie
CreateProcess.
Pri spúšťaní je treba uvažovať,
akým spôsobom sa bude vykonávať samotný zber výsledkov od programu.
Najjednoduchším riešením pre tento problém je presmerovanie výstupu z programu
do súboru priamo v príkaze pre operačný systém, avšak týmto spôsobom by sme
vlastne stratili akúkoľvek kontrolu nad výstupom. Ďalej by nebolo možné
spustenie viac ako jednej inštancie programu vzhľadom na možnosť prepísania
jedného výstupu výstupom z druhého programu. Preto sme zvolili prostriedok
poskytovaný operačným systémom, takzvané prepojenie odkazov, alebo rúru (pipe).
Takýmto spôsobom dosiahneme ako úplnú kontrolu nad všetkými údajmi
prichádzajúcimi z výstupu programu, tak aj možnosť ich okamžitého spracovania.
Zároveň dosiahneme aj možnosť kontroly nad prístupom rôznych procesov k tomuto
prostriedku. V praxi to znamená, že napríklad pri viacnásobnom požiadavku rôznych procesov na zápis do rúry, môžeme
pripustiť v jednom okamihu len jedného a to mi zaručuje konzistentnosť neskôr z
rúry načítavaných údajov. Nevýhodou tohto prístupu je vlastne samotné
zosynchronizovanie procesov, pretože sa používa iba jediný prostriedok a to má
za následok čakanie ostatných procesov na uvoľnenie tohto prostriedku procesom,
ktorý ho používa:
Možným riešením by v takomto
prípade mohla byť existencia viacerých rúr súčasne. Týmto riešením sa však v
prototype zaoberať nebudeme.
Funkčnosť:
Pri zisťovaní funkčnosti programu
je veľmi ťažké nájsť hranicu medzi funkčným, čiastočne funkčným a nefunkčným
programom. Preto je tu možné uplatniť percentuálne priblíženia k správnym
výsledkom. Napríklad ak požadujeme úplne totožný výstup pre kontrolovaný
program ako pre referenčný, uplatníme 100% zhodu. Ak postačuje napríklad zhodný
výsledok v deviatich okruhoch z desiatich, uplatníme 90% zhodu. V prototype
neimplementované.
V tomto module sa vykonáva
samotné porovnávanie výstupov pre referenčné a testované zadanie. Pri zisťovaní
zhody medzi výstupmi si treba uvedomiť, že nie každý výstup musí vyzerať úplne
rovnako. Ako prvou neuvažovanou odlišnosťou bude formátovanie výstupu. To
znamená, že žiadne formátovacie znaky nebudú do porovnávania uvažované, iba ak
o to bude požiadané (sú aj také typy programov). Ďalej môžu byť aj také typy
programov, kde nemusí záležať na poradí, v ktorých sa informácie vypisujú. V
takomto prípade sa bude hľadať iba jedinečný výskyt riadkov z referenčného
zadania v testovanom.
Riadenie:
V tejto funkčnej jednotke je
vytvorená samotná logická väzba jednotlivých modulov. Znamená to, že tu sa
vykonáva samotné rozdeľovanie úloh a zber údajov. Zároveň sa tu vyhodnocujú
výsledky z jednotlivých modulov a následne sa ošetrujú prípadné chybové stavy
podsystému. Riadenie rozlišuje dva spracovateľské režimy a to dávkový a
interaktívny. Pri dávkovom spracovaní sú všetky etapy spracovávania súboru
vykonávané automaticky. Pri interaktívnom spracovaní sa každá etapa vykonáva
osobitne. O ktorú etapu sa jedná je zrejmé z požiadavky pre riadenie.
enum
{
POZIADAVKA_PREKLAD,
POZIADAVKA_SPUSTENIE,
POZIADAVKA_FUNKCNOST,
...
};
Pri dávkovom móde spracovania sa
postupne vykonávajú jednotlivé etapy testovania. Najprv sa spustí preklad a
zistí sa správnosť programu. Potom sa program spustí s prípadnými testovacími
vstupmi. Výstup sa potom vyhodnotí po funkčnej stránke. Nakoniec sa vygenerujú
správy týkajúce sa stavu testovania. Pri interaktívnom móde sa vždy vykoná len
požadovaná akcia a následne sa vygeneruje výsledok tejto akcie.
Pri obidvoch módoch sú ako vstupy
uvažované zdrojové súbory. Cieľové súbory nie sú explicitne uvažované, to
znamená že je na použitom spracovávajúcom programe, aký cieľový súbor vytvorí.
Ako možnosť je tu povolené nastavenie cieľového súboru. Ako vstup nemusí byť
len jeden zdrojový súbor, ale môže sa špecifikovať vstup, ktorý bude obsahovať
takzvané vzory, ako napr. *, [abc] a podobne. Táto funkcia však v prototype nie
je uplatnená.
Možnosti:
Tento modul je vytvorený vzhľadom
na potreby nastavovania poskytovaných možností jednotlivými funkčnými
jednotkami. Každá funkčná jednotka si môže vytvoriť vlastné úložiská pre
nastavenia, avšak aby táto jednotka mohla tieto vlastnosti nastaviť, musí jej
byť umožnené tieto úložiská poznať. Ďalej je potrebné vytvoriť jednoduché
rozhranie, cez ktoré by sa tieto vlastnosti predávali z tohto modulu do
volajúceho. Na tento účel slúži štruktúra, ktorá môže obsahovať ľubovoľnú zo
štruktúr pre konkrétny modul. Zároveň však treba vedieť, o ktorú štruktúru ide,
takže treba pridať aj identifikátor vnorenej štruktúry.
struct
{
ID_VNORENEJ_STRUKTURY;
union
{
STRUKTURA_1,
...
STRUKTURA_N
};
};
Takýmto spôsobom dosiahneme možnosť
pridávať aj nové nastavenia pre existujúce alebo nové moduly. Nevýhodou
takéhoto prístupu je závislosť tohto modulu od ostatných, pretože v tomto
module sa spracovávajú požiadavky od ostatných modulov, kde je však potrebná
znalosť vnútornej štruktúry pre nastavenie konkrétnej vlastnosti. Takýmto
spôsobom sme síce odbremenili všetky ostatné moduly od vlastných nastavení,
avšak tým sme im aj znemožnili akúkoľvek kontrolu nad priebehom nastavovania,
pretože všetky operácie pre všetky moduly sú vykonávané tu. Výhodou môže byť
to, že takto sme dosiahli akési zoskupenie všetkých dátových štruktúr pod jeden
modul a tým sme vlastne uľahčili detekciu chyby práve na tento modul.
Princíp spočíva v tom, že
nastavovanie možností prebieha cez používateľa, prípadne konfiguračný súbor.
Tieto nastavenia však pozná a má k nim prístup iba tento modul, takže ak chce
nejaká funkčná jednotka začať prácu, najprv by si mala vypýtať jej aktuálne
nastavenia pre konkrétne vlastnosti. Takto je zaručená možnosť meniť nastavenia
počas behu programu a zároveň sa o nich dozvedieť v prislúchajúcich funkčných
jednotkách.
Analýza
podobnosti:
Po dôkladnej analýze problému a
špecifikácii porovnávania zadaní, pri ktorom sa snažíme nájsť a odhaliť podobné
riešenia, pristupujeme teraz k fáze vytvárania prototypu. Keďže sa jedná o
prototyp, je nutné hlavne vytvoriť určitý funkčný základ, na ktorom potom
postupne vybudujeme komplexné riešenie tejto časti systému.
Rozhodli sme sa vytvoriť
jednoduchú aplikáciu porovnávajúcu dva ľubovoľné zdrojové súbory jazyka
symbolických inštrukcií (JSI) s cieľom zhodnotiť podobnosť riešení. Pred
samotným porovnávaním je však nutné vykonať v oboch zdrojových programoch
úpravy potrebné k tomu, aby sme mohli kontrolovať už len samotné inštrukcie
JSI, čiže odstrániť nepotrebný obsah súboru a pripraviť zvyšok na testovanie
(predspracovanie). V tomto prípade sa jedná o:
·
odstránenie komentárov – zo zdrojových programov
odfiltrujeme všetky komentáre, aby sme dostali len samotné konštrukcie JSI;
týmto zabezpečíme, že komentáre nemusíme potom filtrovať v ďalších krokoch
porovnávania a najmä ľahko odhalíme identickosť riešení založených len na zmene
komentárov;
· odstránenie
"bielych" znakov – odfiltrovanie nadbytočných znakov space (medzera) a tab (tabulátor), ktoré môžu komplikovať ďalšie porovnávanie;
· odstránenie
nadbytočných riadkov – zdrojový program sa upraví tak, aby sa v jednom
riadku nachádzala jedna inštrukcia, prípadne rezervované slovo.
Predpokladáme, že
v konečnom riešení bude predspracovanie
zložitejšie vzhľadom na to, že kontrola zhodnosti bude komplikovanejšia a
bude si vyžadovať abstraktnejšiu reprezentáciu zdrojových programov.
Keď máme takto upravené zdrojové
programy, môžeme prejsť k samotnému porovnávaniu. Aplikácia ich porovnáva
nasledovnými spôsobmi:
· hrubé
porovnanie – vykonáva sa len vtedy, ak majú zdrojové programy rovnaký počet
programových riadkov; je to vlastne ich porovnanie znak po znaku, pričom
zhodnosť sa dosiahne, len ak sú naozaj zhodné, teda ak bol v jednom zmenený len
komentár, pridané riadky, prípadne nebolo zmenené vôbec nič;
· porovnanie
histogramom – v oboch programoch sa zistí počet jednotlivých znakov
(histogram) a vypočíta sa entrópia z rozdielu týchto histogramov; to znamená,
že výsledkom je miera podobnosti zdrojových programov; pri ich zhodnosti
dosiahne hodnotu blízku 100% (v dôsledku zaokrúhľovania nie presne 100%).
Tieto typy porovnávania
nepredstavujú veľmi spoľahlivé metódy hľadania identickosti v zadaniach, sú
použité kvôli jednoduchosti a rozsahu prototypu. Samozrejme konečné riešenie
bude poskytovať viac možností kontroly, bude obsahovať oveľa zložitejšie a
hlavne spoľahlivejšie metódy.
Evidencia:
Úložisko údajov:
V prototype je ako úložisko
použitá databáza jazyka MS Access, v ktorej sú definované tabuľky presne podľa
špecifikácie údajov. Obsahuje taktiež pravidlá pre dodržanie integrity údajov,
ktoré vlastne reprezentujú referencie medzi údajmi. Dôvodom pre určenie tohto
druhu databázy bola hlavne podmienka vytvorenia prototypu v čo najkratšom čase,
pretože termíny odovzdania sú veľmi krátke.
Keďže ako model databázy bol
použitý MS Access a ako vývojové prostredie sme zvolili MS Visual C++, na
implementáciu rozhrania s databázou bol použitý model DAO, ktorý je primárne
určený pre prácu s databázovými súbormi MS Access. Technika použitá v prototype
však nemusí byť použitá aj v konečnom produkte, pretože už v súčasnej dobe je
projekt vyvíjaný aj pomocou technológie ADO (ActiveX Data Objects).
Spracovanie:
Prototyp obsahuje tri časti,
ktoré zabezpečujú kompletnú evidenciu študentov, otázok a vypracovaných zadaní.
Časti určené pre evidenciu študentov a otázok sú štandardné databázové moduly s
funkciami pre pridávanie, mazanie a úpravu jednotlivých položiek databázy.
Všetky časti majú veľmi podobný vzhľad a takmer zhodné ovládanie. Pri zobrazení
obsahujú všetky časti zoznam všetkých viet tabuľky databázy, nad ktorou
prebiehajú užívateľom vyvolané akcie.
Na zobrazenie údajov je použitý
vlastný prvok odvodený od triedy Cwnd. Prvok je priamo navrhnutý pre prácu s
databázou. Obsahuje funkcie pre načítanie a zobrazenie údajov databázy.
Evidencia študentov:
Štandardné databázové funkcie -
pridať, upraviť, vymazať. Trieda odvodená od CFormView.
Evidencia úloh:
Štandardné databázové funkcie -
pridať, upraviť, vymazať. Trieda odvodená od CFormView.
Evidencia zadaní:
Trieda odvodená od CFormView.
Realizuje tieto funkcie:
·
Prijímanie pomocou elektronickej pošty – pre
tento postup bola navrhnutá trieda, ktorá zabezpečuje funkcie komunikácie s
POP3 serverom (bola navrhnutá na základe preštudovaných RFC dokumentov).
Protokol umožňuje odosielanie hlavičiek správ, čo umožňuje vytváranie si
zoznamov správ na serveri. Táto možnosť bola využitá aj pri automatickom
prijímaní zadaní.
·
Načítanie z média – pri tejto metóde je po
zadaní cesty prehľadaný zadaný adresár a kontroluje sa existencia adresárov s
identifikačnými číslami študentov, ktoré obsahujú súbor s vypracovaným zadaním.
·
Hodnotenie – je určené pre spúšťanie modulov
testovania, porovnávania a hodnotenia štýlu. Na základe výsledkov jednotlivých
testov môže cvičiaci ohodnotiť zadania určitým počtom bodov, ktorý sa zapíše do
databázy.
Integrované
prostredie:
Časti evidencie sú zastrešené
integrovaným prostredím, ktoré poskytuje základné možnosti prepínania sa medzi
evidenčnými časťami.
Prvok je zložený z dvoch tried,
jedna je odvodená od CSplitterWnd a slúži na rozdelenie okna aplikácie na dve
časti s tým, že v ľavej časti je zoznam zadaných modulov a v pravej časti sú
prepínané jednotlivé moduly.
Návrh obrazoviek:
Zadávanie hodnôt študenta: Zadávanie
hodnôt úlohy:
Konfigurácia:
4.2.
Používateľská príručka:
Test funkčnosti:
Prototyp tejto časti je
reprezentovaný samostatnou aplikáciou. Je implementovaná v prostredí API Win32,
je teda spustiteľná v OS Windows 9x/NT.
Spúšťa sa vykonateľným súborom
"test_prot.exe". Po spustení sa na obrazovke objaví okno, v ktorom je
vykreslených päť tlačidiel. Tieto tlačidlá slúžia ako skratky k funkciám, ktoré
aplikácia poskytuje. Niektoré z nich sú vo fáze prototypovania nefunkčné,
pretože funkcie, ktoré reprezentujú, budú implementované až vo fáze
implementácie celého systému.
Popis jednotlivých tlačidiel
modulov (funkcií):
Preklad:
Toto tlačidlo umožňuje využívať
služby modulu Preklad. Ak ešte nebol vybratý súbor, ktorý má byť testovaný, je
toto tlačidlo nepoužiteľné. Výber súboru je možný v module Možnosti. Po výbere
súboru treba stlačiť tlačidlo Preklad a počkať na ukončenie prekladu. Po
skončení prekladu sa vypíše správa o stave prekladu (úspech alebo neúspech). Ak
preklad prebehol bez chyby, spustí sa linkovanie (vytvorí sa spustiteľný
súbor). Aj po skončení linkovania sa vypíše výsledok. To znamená, že ak sa
podarilo vytvoriť spustiteľný súbor, vypíše sa úspech, inak sa vypíše hlásenie
o chybe. Po správnom vytvorení spustiteľného súboru je možné použiť službu
Spustenie, ktorá spustí preložený program.
Spustenie:
Tlačidlo poskytuje službu
spustenia programu z prostredia aplikácie. Ak spusteniu predchádzal preklad,
ako spustiteľný súbor sa použije prekladom vytvorený súbor. Je možné vybrať si
aj vlastný program a to cez modul Možnosti. Ďalej je možné program spustiť aj s
parametrami, ktoré sa tiež dajú nastaviť v module Možnosti. Po spustení
programu sa čaká na jeho ukončenie (v prototype nie je možné spustenie
viacerých programov naraz). Po ukončení programu sa vypíše správa o úspešnosti
spustenia programu.
Funkčnosť:
Toto tlačidlo slúži na testovanie
výstupu zo spusteného programu, takže nemá žiadny význam stláčať ho inokedy.
Zatiaľ nie je implementovaná žiadna metóda testovania funkčnosti, takže pri
existencii výstupných dát sa vždy vypíše úspech.
Riadenie:
Táto funkcia nie je v prototype
implementovaná.
Možnosti:
V tomto module sa dá aplikácia
prispôsobiť požiadavkám používateľa. Toto prispôsobovanie spočíva hlavne v
nastavovaní parametrov pre preklad, spúšťanie, testovanie funkčnosti a podobne.
Po stlačení tohto tlačidla sa objaví dialógové okno, z ktorého je možné vybrať
modul, ktorý bude prispôsobovaný. Po výbere modulu sa objaví ďalšie dialógové
okno, v ktorom je možné vybrať konkrétne nastavované vlastnosť a priradiť im
hodnoty.
Analýza
podobnosti:
Prototyp tejto časti je
reprezentovaný jednoduchou aplikáciou. Je implementovaná v prostredí API Win32,
je teda spustiteľná v OS Windows 9x/NT.
Pracuje so zdrojovými súbormi
jazyka symbolických inštrukcií. Je to jednoduchá dialógová aplikácia
s intuitívnym ovládaním a prehľadným výstupom. Samozrejme v konečnom riešení budú funkcie porovnávajúce
programy zakomponované do kompletného systému, ale pre prototyp sme zvolili
(kvôli väčšej prehľadnosti) samostatné riešenie.
Po štarte aplikácie (spustiteľný
súbor "asmproto.exe") sa používateľovi objaví nasledovné dialógové
okno:
sem môže
používateľ zadať meno súboru (aj s cestou), ktorý sa bude porovnávať
|
|
umožňuje nájsť
zdrojový súbor, ktorý sa bude porovnávať
|
|
vo výstupnom okne
sa objaví zdrojový text programu už po úpravách (predspracovaní)
|
|
Postup porovnávania zdrojových programov:
1.
Do vstupných okien zadáme mená súborov ktoré chceme porovnať;
pre jednoduchosť môžeme použiť tlačidlo Nájdi.
2.
Potom stlačíme tlačidlo Porovnaj a zadané programy sa
porovnajú.
3.
Vo výstupnom okne sa objavia výsledky porovnania.
4.
Stlačením tlačidla Zobraz si môžeme pozrieť zdrojové súbory.
5.
Aplikáciu možno ukončiť tlačidlom Koniec.
Výsledky porovnania:
Ako výsledok dostávame vo
výstupnom okne aplikácie:
·
meno prvého zdrojového súboru (celkový počet riadkov,
počet riadkov programového kódu),
·
meno druhého zdrojového súboru (celkový počet riadkov,
počet riadkov programového kódu),
·
ak sú súbory zhodné (po predspracovaní), vypíše sa
informácia o ich zhodnosti, inak je výsledkom hodnota porovnania histogramov
[%].
Evidencia:
Prototyp tejto časti je
reprezentovaný aplikáciou, ktorá sa po nainštalovaní spúšťa spustiteľným
súborom "soj.exe". Je implementovaná v prostredí API Win32, je teda
spustiteľná v OS Windows 9x/NT.
Integrované prostredie aplikácie
poskytuje používateľovi komfortné ovládanie jednotlivých modulov aplikácie.
Zoznam modulov aplikácie je zobrazený v ľavej časti okna. Z tohto zoznamu sa
jednoduchým stlačením ľavého tlačidla myši zobrazí v pravej časti okna
požadovaný modul. V súčasnosti sú implementované tri moduly. Modul evidencie
študentov, otázok a vypracovaných zadaní:
Jednotlivé moduly evidencie majú
zhodné základné ovládanie a zobrazenie údajov, majú zobrazené údaje vo forme
listovacieho zoznamu so štandardným ovládaním myšou alebo klávesnicou. Všetky
operácie, ktoré užívateľ vykonáva, sú prevádzané nad aktuálne vybraným
záznamom, ktorý je farebne odlíšený od ostatných.
Evidencia študentov:
Táto časť aplikácie slúži na
evidenciu základných údajov o študentoch a zabezpečuje základné operácie s
údajmi. Evidujú sa nasledovné údaje:
·
meno a priezvisko,
·
ročník a krúžok,
·
e-mailová adresa,
·
pomocné poznámky.
Pridanie študenta:
Zobrazí sa vstupný formulár pre
požadované údaje. Po vyplnení formuláru sa údaje zapíšu do databázy študentov.
Pri zápise sa kontroluje jedinečnosť identifikačného čísla nového študenta.
Oprava údajov študenta:
Zobrazí sa formulár zhodný so
zadávaním študenta, ktorý je naplnený súčasnými hodnotami. Hodnoty je možné
zmeniť a zapísať, alebo opustiť formulár bez uloženia zmien (Storno).
Vymazanie študenta:
Zobrazí sa okno potvrdenia. Po
kladnej odpovedi sa záznam nenávratne vymaže.
Evidencia úloh:
Táto časť aplikácie slúži na
evidenciu základných údajov o úlohách pre študentov. Zabezpečuje základné
operácie s údajmi. Eviduje sa:
·
názov úlohy,
·
dátum odovzdania,
·
bodové hodnotenie,
·
text úlohy a vzorového zadania,
·
očakávané konštrukcie použité v zadaní,
·
množina vstupov a výstupov pre testovanie zadaní.
Pridanie úlohy:
Zobrazí sa vstupný formulár pre
základné údaje o úlohe. Formulár neobsahuje priamo texty zadaní, tie sú
prístupné po stlačení príslušného tlačidla. Po jeho stlačení je text zobrazený
a je možné ho meniť. To isté platí aj o vzorovom zadaní, použitých
konštrukciách a množinách vstupov a výstupov. Po vyplnení formuláru sa údaje
zapíšu do databázy úloh. Pri zápise sa generuje jedinečné identifikačné číslo
pre novú úlohu.
Oprava úlohy:
Zobrazí sa formulár zhodný so
zadávaním novej úlohy, ktorý sa naplní súčasnými hodnotami. Hodnoty je možné
zmeniť a zapísať, alebo opustiť formulár bez uloženia zmien (Storno).
Vymazanie študenta:
Zobrazí sa okno potvrdenia. Po
kladnej odpovedi sa záznam z databázy nenávratne vymaže.
Evidencia zadaní:
Táto časť aplikácie slúži na
evidenciu vypracovaných zadaní študentov. Poskytuje nasledovné možnosti
spracovania zadaní:
Prijímanie pomocou elektronickej pošty:
Vždy sa zobrazí zoznam zadaní na
serveri elektronickej pošty, z ktorého je možné jednoducho si vybrať len
niektoré a ostatné ponechať na serveri. Nastavenia servera elektronickej pošty
sú preberané z konfigurácie aplikácie.
Načítanie z média:
Po zadaní cesty k zadaniam je
taktiež zobrazený zoznam zadaní, ale už len pre informačné účely. Zadania sú
rozoznávané podľa adresárovej štruktúry, kde každý študent musí mať vytvorený
adresár so svojím identifikačným číslom.
Hodnotenie:
Je určené na spúšťanie modulov
testovania, porovnávania a hodnotenia štýlu. Na základe výsledkov jednotlivých
testov cvičiaci môže ohodnotiť zadania určitým počtom bodov, ktorý sa zapíše do
databázy.
Konfigurácia:
Samostatná časť aplikácie, ktorá
slúži na nastavenie jednotlivých modulov aplikácie. Je založená na prepínaní
záložiek, kde každá záložka obsahuje konfiguračné údaje pre jeden modul.