Požiadavky na navrhovaný systém eXam

Z Kiwiki
Verzia z 22:18, 17. január 2020, ktorú vytvoril Juraj (diskusia | príspevky) (Vytvorená stránka „Kategória:Študentské práceKategória:Bakalárske práceKategória:InformatikaKategória:phpKategória:Informačný systém {{Praca_uvod|2|Inform…“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Skočit na navigaci Skočit na vyhledávání



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)

  1. Prihlási sa do AIS pomocou svojho účtu, ktorý má určité výsady oproti bežnému účtu študenta.
  2. Má možnosť odhlásiť sa, alebo ho systém odhlási sám po určitej dobe ne-aktivity.
  3. Vytvorí priečinok príslušného zadania v kategórii miesta odovzdania daného predmetu.
  4. Pridá popis zadania a príslušný text v ktorom je obsiahnuté čo od študenta v zadaní požaduje
  5. 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.
  6. 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.
  7. 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.
  8. Po odovzdaní zadania študentom má možnosť stiahnuť si prílohy a text vypracovaného zadania.
  9. Skopíruje text zdrojového kódu, vloží ho do kompilátora alebo vývojového prostredia daného programovacieho jazyka.
  10. 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.
  11. 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)

  1. 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.
  2. Má možnosť odhlásiť sa, alebo ho systém odhlási sám po určite dobe ne-aktivity.
  3. Môže si skontrolovať mail kde môže byť upozornený na otvorenie miesta odovzdania, pridelenie zadania, alebo rozpisov tém daného predmetu
  4. V prípade vypísania rozpisov tém vstúpi do sekcie rozpisy tém kde nájde katalóg vypísaných zadaní
  5. Môže si pozrieť detaily a informácie každého vypísaného zadania na ktoré má právo.
  6. Môže si vybrať a prihlásiť sa na zvolené zadanie.
  7. 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.
  8. 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.
  9. Počká kým vyučujúci opraví a skontroluje zadanie.
  10. 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.

  1. Vyučujúci určí termín zápočtu alebo skúšky v AIS.
  2. Študent sa na termín prihlási a v čase termínu príde do určenej miestnosti.
  3. Vyučujúci overí identitu a štatút prihlásených prítomných študentov na základe preukazu študenta alebo občianskeho preukazu.
  4. Študenti vypracujú zadanie na termíne, či už v elektronickej alebo papierovej podobe.
  5. V prípade papierovej podoby zadania musí vyučujúci manuálne prejsť a skontrolovať logiku každého odovzdaného zadania.
  6. 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ť.
  7. 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.

Tabuľka 2.1: Funkčné požiadavky systému
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
Tabuľka 2.2: Nefunkčné požiadavky systému
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

Tabuľka 2.3: Účastníci 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.

Tabuľka 2.4: Katalóg prípadov použitia
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.



Základná schéma práv aktérov
Základná schéma práv aktérov

[fig:UC_actors]

Schéma použitia pre správu obmedzenia prístupu
Schéma použitia pre správu obmedzenia prístupu

[fig:UC_allowedEntry]

Schéma použitia pre správu zadaní
Schéma použitia pre správu zadaní

[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.