Požiadavky na navrhovaný systém eXam
1. | Analýza informačného systému pre podporu výuky programovania |
2. | Požiadavky na navrhovaný systém eXam |
3. | Implementácia systému eXam |
4. | Testovanie systému eXam
|
Obsah
V súčasnosti sa na škole nepoužíva žiadny informačný systém pre automatické vyhodnocovanie kódu študentov. Hodnotenie študentov a oprava programátorských úloh teda prebieha v manuálnej forme učiteľom, či už v papierovej alebo digitálnej forme.
Cieľom tejto analýzy požiadaviek je upresnenie požiadaviek systému očakávať a vytvorenie katalógu požiadaviek na systém.
Analýza procesov
Kontrola programátorských úloh (ďalej zadaní) študentov v škole má svoje postupy, ktoré sú zdĺhavé a zaberajú učiteľom veľa času. Najskôr je potrebné rozlíšiť, či sú dané zadania formou semestrálnych zadaní, zápočtovej písomky, alebo skúšky. Pri semestrálnych zadaniach aktuálne nie je potrebná osobná účasť študenta. Tieto tri časti semestra učeného predmetu možno rozdeliť na operácie, podľa ktorých bude systém navrhovaný.
Semestrálne zadania (pohľad zo strany vyučujúceho)
- Prihlási sa do AIS pomocou svojho účtu, ktorý má určité výsady oproti bežnému účtu študenta.
- Má možnosť odhlásiť sa, alebo ho systém odhlási sám po určitej dobe ne-aktivity.
- Vytvorí priečinok príslušného zadania v kategórii miesta odovzdania daného predmetu.
- Pridá popis zadania a príslušný text v ktorom je obsiahnuté čo od študenta v zadaní požaduje
- Upraví určité nastavenia semestrálneho zadania, akými sú: časové obmedzenie zadania, počet povolených riešiteľov zadania, počet príloh, typy povolených príloh,veľkostné obmedzenie.
- Má možnosť buď prideliť zadanie určitému študentovi, alebo ho môže pridať do sekcie predmetové témy v AIS, kde si môže študent na základe obmedzenia zadania a textu zvoliť, ktoré zadanie mu vyhovuje najviac.
- Má možnosť sledovať, kto sa na danú tému zadania prihlásil, odobrať študenta od témy, pridať študenta k téme a vidieť určité informácie o študentovi.
- Po odovzdaní zadania študentom má možnosť stiahnuť si prílohy a text vypracovaného zadania.
- Skopíruje text zdrojového kódu, vloží ho do kompilátora alebo vývojového prostredia daného programovacieho jazyka.
- Spustí kompiláciu programu a sleduje či program obsahuje všetky funkcie a náležitosti daného zadania, poprípade si skontroluje ako sa chovajú určité premenné v programe a program samotný spustením režimu debug.
- Po vyhodnotení zadania má možnosť študentovi udeliť príslušný počet bodov alebo zadanie vrátiť a predĺžiť dobu odovzdania zadania.
Semestrálne zadania (pohľad zo strany študenta)
- Prihlási sa do AIS buď s použitím svojho čísla ID, alebo prideleného loginu a hesla na svoj účet, ktorý má iné výsady a obmedzenia, keďže používateľ je študent.
- Má možnosť odhlásiť sa, alebo ho systém odhlási sám po určite dobe ne-aktivity.
- Môže si skontrolovať mail kde môže byť upozornený na otvorenie miesta odovzdania, pridelenie zadania, alebo rozpisov tém daného predmetu
- V prípade vypísania rozpisov tém vstúpi do sekcie rozpisy tém kde nájde katalóg vypísaných zadaní
- Môže si pozrieť detaily a informácie každého vypísaného zadania na ktoré má právo.
- Môže si vybrať a prihlásiť sa na zvolené zadanie.
- Zadanie rieši svojím spôsobom za použitia vybraného vývojového prostredia, avšak zadanie musí byť v programovacom jazyku určenom vyučujúcim predmetu.
- Odovzdá súbor zdrojového kódu a ostatné prílohy do sekcie miesta odovzdania v AIS kde má možnosť vloženia komentáru k odovzdanému zadaniu.
- Počká kým vyučujúci opraví a skontroluje zadanie.
- V prípade že vyučujúci vykoná určité rozhodnutie, napríklad pridelenie bodov alebo navrátenie zadania, študent bude o danej udalosti informovaný mailom v systéme.
Zápočet a skúška
Pri týchto častiach semestra je potrebná účasť študenta a vyučujúceho na škole. Keďže majú veľa operácii spoločných a líšia sa len formou alebo rozsahom zadania, je vhodné ich špecifikovať spolu.
- Vyučujúci určí termín zápočtu alebo skúšky v AIS.
- Študent sa na termín prihlási a v čase termínu príde do určenej miestnosti.
- Vyučujúci overí identitu a štatút prihlásených prítomných študentov na základe preukazu študenta alebo občianskeho preukazu.
- Študenti vypracujú zadanie na termíne, či už v elektronickej alebo papierovej podobe.
- V prípade papierovej podoby zadania musí vyučujúci manuálne prejsť a skontrolovať logiku každého odovzdaného zadania.
- V prípade elektronickej podoby si môže čiastočne pomôcť kompilátorom, no text zadania musí manuálne skopírovať a vyskúšať.
- Vyučujúci pridelí známku alebo body študentovi cez AIS
Požiadavky systému
Nasledujúca sekcia má za úlohu priblížiť, čo by daný systém na kontrolu programátorských úloh mal obsahovať z funkčného aj nefunkčného hľadiska. V nasledujúcom texte pod pojmom zadanie rozumieme riešenie programátorskej úlohy resp. algoritmu.
Funkčné požiadavky | Doplňujúce informácie | |
---|---|---|
R01 | Systém umožní registráciu študenta | Študent si zvolí login, alebo použije získané ID z AIS a zvolí si heslo |
R02 | Systém umožní registráciu učiteľa | Vytvorenie účtu systémovým administrátorom |
R03 | Systém umožní prihlásenie | Pomocou loginu a hesla |
R04 | Systém umožní obnovu hesla | |
R05 | Systém umožní správu používateľov | |
R06 | Systém umožní zobrazenie štatistík a grafov na titulnej stránke | |
R07 | Systém umožní zobrazenie informácii o vybraných akciách používateľa | |
R08 | Systém umožní odhlásenie používateľa | Manuálne alebo exspiráciou času |
R09 | Systém umožní učiteľovi zmeniť režim systému | Prepnutie režimu semester, zápočet, skúška |
R10 | Systém umožní učiteľovi pridať, mazať a editovať zadania | Obmedzenia programovacieho jazyka, času, používateľov |
R11 | Systém umožní učiteľovi pridanie obmedzení na zadanie | Obmedzenia programovacieho jazyka, času, používateľov |
R12 | Systém umožní pridanie príloh k zadaniu | Študentovi aj učiteľovi |
R13 | Systém umožní učiteľovi pridať, mazať a upravovať povolené entity na vstup do systému | Entita (učebňa) obsahuje zoznam povolených IP a MAC adries. |
R14 | Systém umožní študentovi odosielanie odovzdať zadanie | Po vypracovaní má možnosť odovzdať zadanie |
R15 | Systém umožní študentovi opravu odoslaného chybného zadania | Do daného časového limitu |
R16 | Systém umožní študentovi zobraziť detailne ktoré testy neprešli | Študent vie ktoré testy musí opraviť |
R17 | Systém umožní učiteľovi zobrazenie odovzdaných zadaní študentami | Vrátane príloh a testov ktoré neprešli |
R18 | Systém umožní učiteľovi zobraziť informácie o akciách všetkých študentov | |
R19 | Systém umožní zmenu hesla používateľom | V časti nastavenia |
Nefunkčné požiadavky | Doplňujúce informácie | |
---|---|---|
R20 | Systém bude bežať na operačnom systéme GNU/Linux | |
R21 | Systém bude zabezpečený softvérom Docker a Nette frameworkom | Izolovanie jednotlivých aplikácii systému kvôli bezpečnosti |
R22 | Systém bude prehľadne vypisovať chybové hlášky | |
R23 | Overenie identity študenta pri registrácii cez AIS. | Študent zadá svoje meno a systém mu ponúkne nájdených študentov na registráciu |
R24 | Systém bude implementovaný v jazyku PHP 7.2.7, | Verzia 7.2.7, framework Nette |
R25 | Systém bude overovať práva používateľov | Pri akciách |
R26 | Systém bude zobrazovať relevantnú ponuku na základe typu používateľa | Rozdelenie aplikácie na moduly |
R27 | Systém umožní kontrolu zadania ihneď po odoslaní | |
R28 | Systém bude ladiť zadania cez vhodný kompilátor | Spustenie kompilátora na základe zvoleného programovacieho jazyka |
R29 | Systém bude porovnávať výsledky parametrov z ladenia so správnymi parametrami zadania | Určenie správnosti testov |
R30 | Systém bude ukladať prílohy do koreňového priečinku systému | Uloženie najskôr do databázy a po prvom dopyte do priečinku. Kvôli rýchlosti spracovania požiadavku. |
R31 | Systém bude brániť kopírovaniu textu otvoreného zadania študentom | |
R32 | Systém bude mať odlišný dizajn podľa režimu a typu používateľa | |
R33 | Systém bude mať responzívny dizajn | |
R34 | Systém bude zaznamenávať údaje o akciách používateľov | Evidencia akcii ako prihlásenie,\\ riešenie zadania. Údaje ako IP, MAC adresy, čas apod. |
Funkčný model systému
V tejto kapitole je obsiahnutý návrh fungovania systému pre podporu výuky programovania. Pre zobrazenie fungovania sú použité diagramy v štandarde UML.
UML (Unified Modeling Language) je štandard pre modelovací jazyk využívaný na modelovanie :
- biznis procesov,
- analýzu, dizajn a implementáciu softvérovo-založených procesov.
Identifikácia účastníkov systému
Účastník | Popis účastníka | |
---|---|---|
A01 | Systémový administrátor | Používateľ, ktorý má ako jediný práva ku všetkým nastaveniam systému a môže pridávať vyučujúcich a spravovať ostatných používateľov |
A02 | Vyučujúci | Má práva na správu študentov, môže im udeľovať práva na určité zadania, spravovať zadania, meniť režim systému, spravovať povolené entity a určité nastavenia. |
A03 | Študent | Vytvorený overený účet študenta cez školský AIS. Používateľ má práva na zobrazenie štatistík, pridelených zadaní a na osobné nastavenia. |
Identifikácia prípadov použitia
V tejto časti sú v tabuľke definované možnosti prípadov použitia systému s detailnejším popisom funkcie. Na zobrazenie sú použité vybrané diagramy UML use case pre grafické priblíženie fungovania.
Prípad použitia | Opis prípadu použitia | |
---|---|---|
UC01 | Prihlásenie používateľa | Používateľ sa prihlási pomocou mena a hesla |
UC03 | Registrácia učiteľa | Učiteľa musí pridať systémový administrátor |
UC04 | Prihlásenie do systému | Používateľ sa prihlási pomocou mena a hesla |
UC05 | Zobrazenie úvodnej stránky | Obsah úvodnej stránky je iný na základe aktéra |
UC06 | Zobrazenie vypísaných zadaní | Pre všetkých používateľov. Študent má prístup k zobrazeniu len viditeľných zadaní |
UC07 | Pridanie zadania | Učiteľ môže pridať zadania |
UC08 | Editácia zadania | Učiteľ môže upraviť existujúce zadanie |
UC09 | Vymazanie zadania | Učiteľ môže vytvorené zadanie odstrániť zo systému |
UC10 | Zobrazenie zoznamu registrovaných používateľov | Systémový administrátor a učiteľ môžu zobraziť registrovaných študentov |
UC11 | Zobrazenie detailnejších informácii o používateľovi | Systémový administrátor a učiteľ môžu vidieť, kedy daný používateľ vykonal určité akcie a informácie o lokalite kde sa akcia vykonala. |
UC12 | Zobrazenie osobných informácii používateľa | Každý používateľ si môže pozrieť svoje osobné informácie o akciách apod. |
UC13 | Správa používateľov | Systémový administrátor môže pridať a odstrániť existujúcich používateľov, poprípade im zmeniť heslo. |
UC14 | Vyhľadávanie zadaní | Učiteľ aj žiak môžu vyhľadávať zadania na základe frázy |
UC15 | Vyhľadávanie používateľov | Systémový administrátor a učiteľ môžu vyhľadávať používateľov na základe mena a semestra. |
UC16 | Zmena režimu systému | Systémový administrátor a učiteľ môžu zmeniť režim systému na skúšku a zápočet alebo semester. |
UC17 | Pridanie skupiny povolených entít na prístup do systému | Systémový administrátor a učiteľ môžu pridať povolené entity na vstup do systému na základe ip adresy alebo mac adresy. |
UC18 | Odstránenie povolených entít | Systémový administrátor a učiteľ môžu odstrániť povolené entity na prístup do systému. |
UC19 | Editácia povolených entít | Systémový administrátor a učiteľ môžu upraviť údaje o pridanej entite. |
UC20 | Vyhľadanie povolenej entity | Systémový administrátor a učiteľ môžu vyhľadať pridané povolené entity na základe mena miestnosti apod. |
UC21 | Aktivovanie povolenej entity | Systémový administrátor a učiteľ môžu povolenú entitu aktivovať a filtrovať tak prístup do systému. |
UC23 | Zobrazenie informácii o odoslanom zadaní | Systém umožní študentovi zobraziť určité údaje ako správnosť zadania, čas odovzdania a ktorý parameter konkrétne neprešiel testom |
UC24 | Editácia odoslaného zadania | Systém umožní študentovi opraviť odoslané chybné zadanie, pokiaľ nevypršala doba riešenia. |
UC25 | Pridanie obmedzení na zadanie | Systémový administrátor a učiteľ môžu pridávať na zadania obmedzenia času, počtu a ID používateľov apod. |
UC26 | Odstránenie obmedzenia na zadanie | Systémový administrátor a učiteľ môžu odstrániť pridané obmedzenia na zadanie. |
UC27 | Editácia obmedzenia na zadanie | Systémový administrátor a učiteľ môžu upraviť obmedzenia zadania. |
UC28 | Odhlásenie používateľa | Používateľ sa môže odhlásiť buď manuálne, alebo mu vyprší relácia. |
[fig:UC_actors]
[fig:UC_allowedEntry]
[fig:UC_assingmentControl]
V diagramoch použitia je postava vyučujúci odvodená od systémového administrátora. Vyučujúci má v systéme podobné práva ako administrátor, ale obmedzenejšie. Učiteľ napríklad nie je schopný do systému pridávať nových správcov alebo učiteľov.