Systém tvorby rozvrhu
![]() |
Trenčianska Univerzita Alexandra Dubčeka v Trenčíne
Fakulta Mechatroniky |
![]() |
Autor: | Milan Porubský |
Pedagogický vedúci: | Ing. Juraj Ďuďák |
Študijný odbor: | Mechatronika
|
Akademický rok |
2009/2010
|
1. | Popis systémov pre tvorbu rozvrhu |
2. | Návrh systému rozvrhu pre FM TnU AD |
3. | Administrátorské prostredie rozvrhu FM
|
Obsah
Abstrakt
Popis systémov pre tvorbu školského rozvrhu. Zoznam možností a parametrov týchto systémov. Prezentácia niektorých existujúcich systémov, ich klady a zápory. Opísanie postupu pri vytváraní online aplikácie pre tvorbu rozvrhu pre potreby FM TnU AD. Vytvorenie databázovej štruktúry. Zoznam grafických ovládacích prvkov administrátorského prostredia, popis dôležitých častí zdrojového kódu hotovej časti aplikácie. |
Abstract
Description of systems for creation of school timetable. List of possibilities and parameters of these systems. Presentation of some of existing systems, theirs pros and cons. Description of process of generating online application for creation of school timetable for needs of FM TnU AD. Forming of database structure. List of graphical controls of administration, description of important parts of source code of completed part of application. |
Úvod
Tvorba rozvrhu je úloha, ktorú musí riešiť každá škola bez ohľadu na stupeň alebo zameranie minimálne jeden krát za školský rok. S napredujúcim prenikaním informačných technológií do školstva a vyučovacieho procesu sa aj tento problém čím ďalej častejšie rieši pomocou počítača. Vznikajú preto aplikácie pre tvorbu a zobrazovanie. V mojej práci sa zaoberám práve takýmito aplikáciami, hlavne návrhom administrátorského prostredia, v ktorom sa rozvrh vytvára.
V prvej časti popíšem hlavné parametre programu, ktoré musí programátor navrhnúť ešte pred začatím programovania vlastnej aplikácie. Ukážem, aký je rozdiel medzi online a offline aplikáciou a medzi univerzálnym programom a riešením vytváraným na mieru. Taktiež poukážem na to, aké dôležité je premyslieť si správnu prezentáciu údajov v systéme a stanoviť si základnú bezpečnostnú politiku aplikácie. Následne popíšem tri existujúce riešenia systému pre tvorbu rozvrhu. V krátkosti zhrniem svoj subjektívny názor na tieto programy, ich výhody a nevýhody.
V druhej časti práce sa budem venovať práve vyvíjanej aplikácií pre potreby FM TnU AD. Popíšem prípravné práce, ktoré som musel vykonať pred začatím programovania a zdôvodním niektoré rozhodnutia týkajúce sa systému, ktoré som spravil. V práci je uvedený zoznam programovacích jazykov a prostriedkov, ktoré som použil a tiež podrobný popis návrhu databázovej štruktúry, ktorej som venoval značnú pozornosť. Správny návrh databázovej štruktúry totiž môže uľahčiť programovanie samotnej aplikácie. Následne sa zameriavam na grafickú stránku administrátorského prostredia, popíšem jednotlivé ovládacie prvky, ktoré sa na stránke nachádzajú, ich funkcie a možnosti. V poslednej časti práce sa venujem kľúčovým častiam zdrojového kódu aplikácie, ktoré sú v súčasnosti v systéme naprogramované. Ponúkam výpis kódu niektorých týchto častí spolu s popisom ich funkcie. Taktiež v krátkosti opisujem použitie a možnosti frameworkov, ktoré som sa rozhodol používať pre zjednodušenie a skvalitnenie kódu.
Keďže aplikácia zatiaľ nie je hotová, zoznam grafických ovládacích prvkov ani funkcií, ktoré bude aplikácia mať, nie je úplný. V závere však prikladám zoznam navrhovaných funkcií, ktoré by mala finálna verzia systému obsahovať.
Popis systémov pre tvorbu rozvrhu
Myšlienka použiť pri tvorbe rozvrhu počítač nie je nová. Existuje niekoľko aplikácií, ktoré majú za úlohu zjednodušiť vytváranie, správu a prezentovanie školského rozvrhu, či už cez internet, teda online, alebo bez internetu, teda offline. Každá má pri tom svoje klady ale aj zápory, ktoré v tejto kapitole rozoberiem najskôr všeobecne a následne popíšem a porovnám niekoľko existujúcich aplikácií.
Hlavné parametre systému
Pred začatím vlastného programovania aplikácie si treba stanoviť parametre, ktoré má daný program spĺňať. Ide predovšetkým o to, či má byť aplikácia online alebo offline a s tým súvisiaci výber programovacieho jazyka, či bude riešenie univerzálne alebo na mieru danej škole, treba premyslieť správnu prezentáciu údajov používateľovi a hlavne v prípade online aplikácie bezpečnosť.
Online vs. offline aplikácia
Výhody online oproti offline aplikácií sú zrejmé z možností internetu:
- možnosť pristupovať k aplikácií z akéhokoľvek počítača s prístupom na internet
- automatická aktualizácia údajov v užívateľskej časti rozvrhu pri zmenách v administrátorskej časti
- možnosť prepojenia systému s inými internetovými aplikáciami
- komfort a flexibilita internetových aplikácií
Jedinou nevýhodou môže byť zvýšené bezpečnostné riziko, ktoré plynie z možnosti prístupu k systému kýmkoľvek, teda administrátorom aj potenciálnym útočníkom. Toto riziko je však možné úspešne eliminovať vytvorením správnej bezpečnostnej politiky aplikácie a tiež vyhýbaním sa nebezpečných programovacích techník. Tejto problematike sa budem viac venovať v časti 1.1.5.
Výber programovacieho jazyka
Pri výbere programovacieho jazyka budú hrať hlavnú úlohu predovšetkým schopnosti a zvyky programátora. V prípade online aplikácie však treba vziať do úvahy tiež možnosti servera, na ktorom bude aplikácia spustená. Vzhľadom k veľkému počtu internetových prehliadačov a ich rozdielnych schopnostiam treba tiež myslieť na to, aby aplikácia fungovala minimálne vo všetkých majoritných internetových prehliadačoch rovnako.
Či už je aplikácia online alebo offline, treba tiež dbať na to, aby program bežal plynule bez sekania a dlhého načítavania, nemal priveľké hardwarové nároky a bol stabilný. Aj tieto faktory môžu ovplyvniť výber programovacieho jazyka.
Univerzálne riešenie vs. riešenie na mieru
Jedným z najdôležitejších kritérií systému pre tvorbu rozvrhu je, či bude systém vytvorený ako univerzálna aplikácia použiteľná na väčšine škôl alebo vytvorená presne podľa požiadaviek konkrétnej školy. Každá škola môže mať totiž rozdielne kritéria na systém pre tvorbu rozvrhu a je takmer nemožné uspokojiť ich všetky jedinou aplikáciou.
Najväčšie rozdiely sú hlavne medzi rôznymi stupňami škôl, napr.: väčšina základných škôl na rozdiel od vysokých škôl nemá školský rok rozdelený na semestre, rôzne typy a dĺžky vyučovacích hodín, iný rozvrh v párny a nepárny týždeň atď. No rozdiely sa nájdu aj medzi požiadavkami jednotlivých škôl v rámci rovnakého stupňa.
Ak sa teda rozhodneme, že náš systém bude univerzálny, musíme na tieto rozdiely pamätať a zahrnúť do aplikácie možnosti ako ich zohľadniť. Každý takýto rozdiel znamená pre aplikáciu ďalšiu položku v nastaveniach, prípadne ďalšie kliknutie myšou administrátora pri vytváraní rozvrhu. Všetky tieto nastavenia sa taktiež musia pred používaním aplikácie načítať, čo sa môže výrazne prejaviť na plynulosti celého programu, nehovoriac o tom, že tieto nastavenia musí používateľ zadať v ideálnom prípade raz, v horšom prípade vždy pred použitím aplikácie. Navyše je veľmi pravdepodobné, že sa nám nepodarí pokryť všetky možnosti, ktoré môžu nastať.
Nechcem tým povedať, že vytvorenie a používanie univerzálnej aplikácie pre tvorbu rozvrhu je nezmysel alebo že to nie je možné. Je to však oveľa náročnejšie jednak na zložitosť aplikácie i na jej obsluhu. Treba preto zvážiť, či je to vhodné pre náš prípad.
Prezentácia údajov
Správna prezentácia údajov je dôležitým faktorom každej aplikácie, obzvlášť ak má slúžiť väčšiemu počtu používateľov. Ovládanie by malo byť čo najviac inštinktívne a prehľadné, čo sa môže ukázať ako neľahká úloha, hlavne keď musíme zobraziť veľké množstvo údajov.
Pri administrácií rozvrhu musí mať používateľ na výber z množstva akcií: editáciu krúžkov, pridávanie a odoberanie predmetov, priraďovanie vyučujúceho k predmetu, a mnoho iných. Okrem toho potrebuje vidieť rôzne štatistiky a filtrovať množstvo údajov podľa viacerých kritérií. Preto je vhodné venovať návrhu administrátorského prostredia dostatok času, vybrať najlepšie rozloženie ovládacích prvkov a najprehľadnejšie usporiadanie prezentovaných údajov.
Bezpečnosť
Hlavne ak sa rozhodneme pre riešenie systému pre tvorbu rozvrhu formou online aplikácie, je treba venovať zvýšenú pozornosť bezpečnosti celého programu. Síce sa môže zdať, že takýto systém nie je pre útočníka nijak zaujímavý, jeho napadnutie by mohlo mať katastrofálne následky, hlavne ak by bol prepojený s ostatnými školskými aplikáciami.
Medzi základné bezpečnostné opatrenia patrí filtrovanie vstupných údajov pochádzajúcich od používateľa, nepoužívanie globálnych, ktoré by mohli pochádzať od neznámeho zdroja a typová kontrola premenných. Pri používaní databázy ako úložiska údajov na servery je obzvlášť nebezpečným typom útoku tzv. SQL injection – technika napadnutia databázovej vrstvy programu vsunutím kódu cez neošetrený vstup a vykonanie vlastnej SQL požiadavky.
Porovnanie existujúcich systémov pre tvorbu rozvrhu
V tejto kapitole popíšem a porovnám niektoré exitujúce systémy pre tvorbu rozvrhu. Niektoré som sám otestoval, k iným som sa bohužiaľ nedostal, a tak musím súdiť len podľa inštruktážneho videa, a pri vývoji jedného systému som sám pomáhal.
Rozvrh 4.1
Rozvrh 4.1 (Obr. 1.1) je offline aplikácia pre tvorbu rozvrhu od RNDr. Ľubomíra Červeného [1]. Je to univerzálny program vhodný hlavne pre základné a stredné školy. Medzi jeho hlavné klady patrí možnosť automatického generovania celého rozvrhu alebo jeho časti podľa zadaných parametrov. Nevýhody, ktoré pre tento program plynú z toho, že je to offline aplikácia, zmierňuje možnosť exportovať vytvorený rozvrh vo formáte HTML. Veľkým záporom je však obmedzená funkčnosť neregistrovanej verzie programu, v ktorej sa nedá vytvorený rozvrh uložiť.
Modul rozvrhu v systéme AIS
AIS [2] je komplexný informačný systém určený predovšetkým na riadenie všetkých troch stupňov vysokoškolského štúdia a podporu riadenia vedy a výskumu VŠ. Vyvíja ho Univerzita Pavla Jozefa Šafárika v Košiciach od roku 1997 a bol implementovaný na viacerých vysokých školách na Slovensku, vrátane našej Trenčianskej univerzity Alexandra Dubčeka. Má v sebe okrem iného implementovaný tiež modul pre správu rozvrhu (Obr. 1.2). Tento modul však zdedil z AISu všetky jeho nedostatky – pomalosť, zložitosť užívateľského prostredia, neprehľadnosť. Tieto zápory plynú z toho, že je systém tvorený ako maximálne univerzálny a tiež z nedostatočnej optimalizácie kódu programu.
Rozvrh EPI
Tento systém pre tvorbu rozvrhu (Obr. 1.3) je vytvorený priamo na mieru potrebám školy ako súčasť školského e-learningového portálu. Síce nedisponuje žiadnymi možnosťami nastavenia, ide o plynule fungujúcu online aplikáciu, ktorá používa ako programovací jazyk PHP na strane servera a HTML v kombinácií s JavaScriptom na strane klienta. Za nedostatok považujem hlavne formulár na pridávanie vyučovacej hodiny (Obr. 1.4), ktorý je podľa môjho názoru značne neprehľadný a komplikovaný.