Projektová dokumentácia
Obsah
Analýza problému (existujúceho systému)
Kontextový diagram tokov údajov
Prvá úroveň diagramu tokov údajov
Opis entít diagramov tokov údajov
Prílohy
Úvod
Tento dokument obsahuje dokumentáciu k počiatočným fázam tvorby softvérového produktu, ide konkrétne o špecifikáciu požiadaviek, analýzu problému a požiadaviek a hrubý návrh riešenia.
Clieľom je vytvoriť plnohodnotný softvérový produkt s použitím postupov a pravidiel zodpovedajúcich softvérovému inžinierstvu. Dôraz je kladený na vykonanie všetkých etáp vývoja a vytvorenie všetkých potrebných výstupov vývoja. V tejto časti projektovej dokumentácie sú to etapy špecifikácie, analýzy a hrubého návrhu a vytvorenie dokumentácie k jednotlivým etapám.
Riešiteľský kolektív
Riešiteľský kolektív, ktorý sa podieľa na vývoji tohoto softvérového produktu pozostáva z nasledujúcich členov:
inžinier strojárstva
znalosti: C++
inžinier automatizácie
znalosti: C++
projekty: vnútrofiremný IS (AIAS s.r.o.), publikovanie časopisu na WWW (VW Monitor pre VW Bratislava), systém pre podporu výuky v prostredí WWW (RNDr. Valéria Šimáková);
znalosti: administrácia MS SQL Servera, databázové systémy, architektúra softvérových systémov, princípy softvérového inžinierstva, systémové programovanie, C++, MFC
projekty: systém evidencie obyvateľstva pre verejnú správu
znalosti: databázové systémy, architektúra softvérových systémov, princípy softvérového inžinierstva, systémové programovanie, C++, Visual Basic (MS Access)
projekty: systém pre podporu výuky v prostredí WWW (RNDr. Valéria Šimáková)
znalosti: databázové systémy, architektúra softvérových systémov, princípy softvérového inžinierstva, systémové programovanie, administrácia Sambar Servera, C++, PERL
Plán projektu
analýza existujúceho systému, špecifikácia,
celková analýza problému, hrubý návrh riešenia
implementácia prototyp vybraných častí a jeho prezentácia, odovzdanie dokumentácie
Úlohy členov riešiteľského kolektívu
Štefan Rajčan
Artúr Kováč
Ladislav Kečkéš
Michal Chorvatovič
Dušan Tamajka
Špecifikácia požiadaviek
Táto časť dokumentu obsahuje súhrn požiadaviek používateľov a ich špecifikáciu tak, ako sa nám ich podarilo získať od pracovníkov katedry a ako vyplynuli z analýzy počiatočných požiadaviek.
Úlohou je navrhnúť a implementovať katedrový rozvrh hodín, ktorý bude fungovať v rámci Katedrového Informačného Systému (KIS) s použitím dostupného softvéru (brať do úvahy, že na katedre je hlavný server s operačným systémom UNIX). Rozvrh by mal byť prístupný ako súčasť KIS-u a zároveň aj ako samostatný program.
V nasledujúcom texte používame takéto označenie zdrojov požiadaviek:
[1] - pôvodná špecifikácia zadania projektu,
[2] - informácie získané od pani ing. Bielekovej,
[3] - požiadavky vyplývajúce z analýzy problému.
Integrované prostredie rozvrhu hodín má umožniť:
Pričom treba umožniť používateľovi zapnutie kontrol aj jednotlivo a zobrazovať nastavenie zapnutia/vypnutia kontroly na obrazovke.
Tieto požiadavky sa budú ešte upresňovať, ale sú už viac-menej čo do rozsahu konečné. Budeme z nich vychádzať pri tvorbe systému. Takže všetky ďaľšie dodatočné požiadavky zo strany zadávateľa musia byť akceptované oboma stranami.
Zhotoviteľ si vyhradzuje právo aby v systéme bola zahrnutá funkčnosť presahujúca rámec týchto požiadaviek, avšak nie je viazaný tak urobiť.
Termíny vyhotovenia a sadzby spolu so sankciami súv dodatku k zmluve o dielo (katedrou jednostranne určené pravidlá hry pre tímové projekty).
Analýza
Analýza problému (existujúceho systému)
V súčasnosti na vypracovaní rozvrhu katedry pracujú traja pracovníci, dvaja na katedrovej a jeden na fakultnej úrovni. Vytváranie rozvrhu je aj preto možné rozdeliť na tri za sebou nasledujúce fázy:
Našou úlohou je uľahčiť prácu s rozvrhom v I. a III. fáze a pri prezeraní rozvrhu.
Fáza I
Pracovník katedry (pani Husárová) vytvorí návrh rozvrhu podľa daných kritérií. Forma vytvárania rozvrhu v tejto fáze je manuálna, tj. na papieri bez použitia výpočtovej techniky. Takto vytvorený rozvrh sa odovzdá pracovníkovi, ktorý spracováva rozvrh na fakultnej úrovni (pán Galan) v druhej fáze.
Fáza II
V tejto fáze sa vytvára celý rozvrh pre 1. a 2. ročník bakalárskeho štúdia a rozvrh pre predmety, ktoré sa vyučujú v miestnostiach, ktoré sú v správe fakulty (prednášky a pod.). Ďalej kompletizujú rozvrhy za ostatné ročníky vytvorené jednotlivými katedrami. Získané informácie sa vložia do existujúceho informačného systému a zisťujú sa konflikty v rámci celej fakulty (predovšetkým ide o konflikty v pridelení miestností). Vzniknuté konflikty a prípadné zmeny sa konzultujú telefonicky.
Fáza III
V tejto fáze sa prideľujú pedagógovia jednotlivým prednáškam a cvičeniam pomocou informačného systému už do hotového rozvrhu, ktorý vznikol v druhej fáze.
Fáza prezerania
Doteraz na prehliadanie rozvrhu bolo nutné reštartovať počítač bez sieťových ovládačov pre nedostatok voľnej pamäte počítača. Tento problém spôsobuje program, ktorý sa celý nahráva do konvenčnej pamäte počítača a nedokáže pracovať s rozšírenou pamäťou. Naviac beží len pod operačným systémom MS-DOS.
Analýza požiadaviek na systém Kedže sa kladie dôraz na príjemné používateľské rozhranie, treba ďalej počítať s grafickým používateľským rozhraním, ktoré je dnes už samozrejmosťou. Fáza I Systém by mal odstrániť pracné vytváranie rozvrhu na papieri. Systém by mal umožňovať: Treba zvážiť možnosť uľahčenia zadávania informácií do systému importovaním zo súborov (napr. využiť, že informácie o študentoch už sú v súboroch používaných katedrou pri zapisovaní predmetov). Vstupy vo fáze I: Výstupy vo fáze I: Fáza III V tejto fáze sa kompletizuje rozvrh pre všetky ročníky. Správca systému zadá z podkladov získaných vo fáze II do systému všetky tie informácie, ktoré ešte treba pre úplnosť rozvrhov. Vstupy vo fáze III: Výstupy vo fáze III: Fáza prezerania Vstupom tejto fázy už nie sú externé informácie, ale len informácie zo systému. Výstupom by mali byť voliteľné zostavy rozvrhov. Výstupné rozvrhy by malo byť možné prehliadať aktívne pomocou klientských programov, alebo vytlačiť buď na tlačiarni či do súboru. Pri prezeraní rozvrhu by mala byť možnosť zvoliť si pomocou filtrov, ktoré entity z rozvrhu budú zobrazené. Napr. prezeranie rozvrhu dvoch či viacerých krúžkov. Dôvodom môže byť potreba zladiť rozvrh študentov z viacerých krúžkov pre voliteľné predmety, ktoré si zapíšu naviac. Medzi ďaľšie možnosti by mali patriť: Hrubý návrh Táto časť dokumentu obsahuje hrubý návrh riešenia problému. Obsahuje špecifikáciu údajov v systéme, kontext systému, špecifikáciu funkcií systému a špecifikáciu správania systému k okoliu. Údajový slovník opis úložísk
úložisko |
atribút |
opis atribútu |
študent (obsahuje údaje o študentoch) |
ID |
jedinečné identifikátor študenta |
meno |
meno študenta |
|
priezvisko |
priezvisko študenta |
pedagóg (obsahuje údaje o pedagógoch) |
ID |
jedinečné identifikátor pedagóga |
meno |
meno pedagóga |
|
priezvisko |
priezvisko pedagóga |
|
titul |
titul pedagóga |
miestnosť (obsahuje údaje o miestnostiach) |
ID |
jedinečný identifikátor miestnosti |
názov |
názov miestnosti |
|
kapacita |
kapacita miestnosti |
|
vybavenie |
vybavenie miestnosti (obyčajné, meotar, počítače, laboratórium) |
predmet (obsahuje údaje o predmetoch) |
ID |
jedinečný identifikátor predmetu |
názov |
názov predmetu |
|
skratka |
skratka predmetu |
|
kapacita |
max. počet študentov prihlásených na predmet |
|
počet |
počet študentov prihlásených na predmet |
krúžok (obsahuje údaje o krúžkoch) |
ID |
jedinečný identifikátor krúžku |
číslo/názov |
číslo/názov krúžku |
|
kapacita |
max. počet študentov v krúžku |
|
počet |
momentálny počet študentov v krúžku |
ročník (obsahuje údaje o ročníkoch) |
ID |
jedinečný identifikátor ročníka |
číslo/názov |
číslo/názov ročníka |
zameranie (obsahuje údaje o zameraniach) |
ID |
jedinečný identifikátor zamerania |
názov |
názov zamerania |
Prozvrh (obsahuje údaje o jednotlivých položkách rozvrhu, tzn. kedy, v akej miestnosti, kto, aký krúžok resp. študenti majú výuku) |
ID |
jedinečný identifikátor políčka rozvrhu |
deň |
poradové číslo dňa v týždni |
|
hodina_z |
poradové číslo hodiny začiatku |
|
hodina_k |
poradové číslo hodiny konca |
|
ID_miestnosť |
identifikátor miestnosti |
|
ID_predmet_pedagóg |
identifikátor pedagóga a predmetu (do väzobnej tabuľky predmet_pedagóg) |
|
ID_ročník_krúžok/štud. |
identifikátor ročníka a krúžku (do väzobnej tabuľky predmet_pedagóg) alebo študentov (do väzobnej tabuľky prozrh_študent) v závislosti od hodnoty položky typ_priradenia |
|
typ_priradenia |
zohľadňuje, či je políčku rozvrhu priradený krúžok alebo zoznam študentov |
pomocné (väzobné) úložištia
predmet_pedagóg (obsahuje vzťahy medzi pedagógmi a predmetmi, tzn. kto vyučuje aký predmet) |
ID |
jedinečný identifikátor vzťahu |
ID_predmet |
identifikátor predmetu |
|
ID_pedagóg |
identifikátor pedagóga |
|
typ |
hodnota určuje, či je pedagóg cvičiacim alebo prednášateľom predmetu |
ročník_krúžok (obsahuje priradenia krúžkov do ročníkov) |
ID |
jedinečný identifikátor vzťahu |
ID_ročník_zameranie |
identifikátor ročníka a zamerania |
|
ID_krúžok |
identifikátor krúžku |
ročník_zameranie (obsahuje vzťahy medzi zameraniami a ročníkmi) |
ID |
jedinečný identifikátor vzťahu |
ID_ročník |
identifikátor ročníka |
|
ID_zameranie |
identifikátor zamerania |
krúžok_študent (obsahuje priradenia študentov do krúžkov) |
ID_krúžok |
identifikátor krúžku |
ID_študent |
identifikátor študenta |
Prozvrh_študent (obsahuje priradenia študentov jednotlivým políčkam rozvrhu; použité v prípade, že nie sú určené krúžky) |
ID_Prozvrh |
identifikátor políčka rozvrhu |
ID_študent |
identifikátor študenta |
pedagóg_obmedzenia (obsahuje priradenia obmedzení jednotlivým pedagógom, tzn. kedy jednotlivý pedagógovia nemôžu vyučovať) |
ID_pedagóg |
identifikátor pedagóga |
deň |
poradové číslo dňa v týždni |
|
hodina |
poradové číslo vyučovacej hodiny |
|
dôvod |
dôvod prečo pedagóg nemôže vykonávať výuku |
Vzťahy medzi úložištiami
Obrázok č.1 Vzťahy medzi úložišťami.
Kontextový diagram tokov údajov
Obrázok č.2 Kontextový diagram tokov údajov.
Prvá úroveň diagramu tokov údajov
Obrázok č.3 Prvá úroveň diagramu tokov údajov.
Opis entít diagramov tokov údajov
Externé entity
V systéme sú definované nasledujúce tri externé entity:
Entita, ktorá vkladá do systému informácie o predmetoch (ktoré vyučuje) a informácie o tom, kedy nechce (nemôže) vykonávať výuku (nazývané obmedzenia). Pričom tieto obmedzenia majú len informatívny význam, tzn. že nemajú rozhodojúci vplyv na tvorbu rozvrhu (ak to inak nejde, musí pedagóg učiť aj vtedy keď nechce). Zadáva do systému informácie o predmetoch.
Entita, ktorá používa systém na získanie požadovaného rozvrhu (rozvrhy krúžkov, miestností, pedagógov, a pod.). Táto entita nemôže pridávať alebo meniť údaje v úložištiach ani rozvrh.
Entita, ktorá napĺňa dátové úložištia (pedagógov, študentov, miestnosti, predmety, krúžky, ročníky) a vytvára rozvrh vkladaním požiadaviek (alebo údajov o rozvrhu). Systém na požiadanie zadávateľovi vhodným spôsobom oznamuje vznik kolízií v rozvrhu.
Funkcie systému
Systém bude mať (vo vzťahu k tvorbe a prezeraniu rozvrhu) štyri hlavné funkcie, nasleduje ich popis:
Touto funkciou sa zabezpečí naplnenie všetkých úložísk systému. Poskytne vhodné používateľské rozhranie pre vstup zadávaných údajov, ich kontrolu a efektívne uloženie v zodpovedajúcom úložisku. Umožní prehľadne zobraziť stav a aktuálne údaje v jednotlivých úložištiach. Pedagógom umožní pomocou jednoduchého používateľského rozhrania zadávať informácie o predmetoch, ktoré prednášajú (alebo cvičia).
Táto funkcia bude zabezpečovať tvorbu rozvrhu na základe vstupných údajov (požiadaviek). Poskytne prehľadné a efektívne používateľské rozhranie s ohľadom na čo najväčšie zjednodušenie a zrýchlenie procesu tvorby rozvrhu. Tento cieľ sa bude snažiť dosahovať poskytnutím (a vhodným sprístupnením) potrebných údajov z naplnených úložísk. Táto funkcia bude zároveň zabezpečovať kontrolu vytváraného rozvrhu vzhľadom na možnosť vzniku kolízií v rozvrhu. Kontrolu bude možno v opodstatnených prípadoch (niektorí cvičiaci môžu byť v dvoch miestnostiach naraz) nevykonávať. Výsledky kontroly bude vo vhodnej forme zobrazovať na obrazovke.
Táto funkcia bude zabezpečovať komunikáciu medzi používateľom a systémom pri prezeraní (tlačení) hotového rozvrhu. Vzhľadom na požiadavky bude obsluhovať používateľov rôznymi typmi používateľských rozhraní (grafický prehliadač, textový prehliadač, DOS, ...). Dovolí používateľovi zvoliť si požadované informácie, ktoré chce mať na výstupe. Vytvorený výstup zo systému bude zobrazovať v čo najvhodnejšom usporiadaní (vzhľadom na obmedzené možnosti textových rozhraní). Umožní používateľovi zvoliť si výstup na tlačiareň.
Táto funkcia umožní pedagógom pomocou jednoduchého používateľského rozhrania zadávať informácie o tom, v ktorých dňoch a hodinách nemôžu vyučovať (tzv. obmedzenia). Obmedzenia sa použijú na konrolovanie kolízií pri tvorbe rozvrhu.
Obrázok č.4 Diagram modelu údajov
Správanie systému
Komunikácia s okolím
Systém bude komunikovať s používateľom pomocou viacerých používateľských rozhraní, vzhľadom na požiadavku textového i grafického rozhrania boli zatiaľ navrhnuté nasledujúce možnosti:
Používateľské rozhranie budú tvoriť stránky v jazyku HTML, prípadne aplikácie v jazyku Java. Komunikáciu s používateľom budú zabezpečovať obrazovky vo forme formulárov, ktoré budú obsahovať zoznamy (pre prípad výberu zo zoznamu možností), textové polia (prípad zadávania dlhších textových správ), zaškrtávacie políčka a tlačítka (pre vykonanie požadovaných akcií), atď. Výstup rozvrhu na obrazovku bude zabezpečený pomocou vhodného usporiadania tabuliek.
Pre toto rozhranie platí to isté ako pri grafických prehliadačoch s nasledujúcimi obmedzeniami. HTML stránky budú tvorené tak, aby ich textový prehliadač dokázal úplne zobraziť, tzn. bude do maximálnej možnej miery využívať možnosti formulárov a tabuliek. Avšak pri zobrazovaní rozvrhu možno pristúpime k zobrazovaniu pomocou priameho formátovania textu, aby sme optimálne využili obmedzené možnosti (čo sa týka rozmerov) textového rozhrania.
Komunikáciu bude zabezpečovať jednoduché používateľské rozhranie. Pôjde o jednoduchý program, ktorý sprístupní požadovaný rozvrh zobrazením textového súboru, ktorý ho obsahuje. Používateľovi dovolí zvoliť si požadovaný ročník, krúžok alebo pedagóga.
Komunikáciu s Katedrovým Informačným Systémom (KIS) bude zabezpečovať odkaz z prostredia KIS-u, ktorý spustí používateľovi systém rozvrhov. Je tu možnosť upraviť systém rozvrhov tak, aby využíval úložištia používané KIS-om, odkiaľ by získaval potrebné informácie pre tvorbu a zobrazenie rozvrhov. Úložištia KIS-u by mohol prípadne dolpniť o vlastné špecifické úložištia.
Prístup používateľov
Prístup používateľov bude zabezpečovaný systémom hesiel, pričom budú existovať tri úrovne ochrany:
Najvyšší stupeň ochrany. Používateľ s týmto stupňom ochrany môže používať systém rozvrhov na zobrazenie požadovaného rozvrhu, prípadne jeho vytlačenie na tlačiarni. Nemôže tvoriť nový ani modifikovať existujúci rozvrh, takisto nemôže napĺňať úložištia, ktoré systém používa.
Stredný stupeň ochrany. Používateľ s týmto stupňom ochrany môže modifikovať určité úložištia v systéme (pedagógov a predmetov) a zadávať obmedzenia na výuku. Takisto môže systém používať rovnakým spôsobom ako pri prvej úrovni ochrany.
Bez ochrany. Používateľ s týmto stupňom ochrany môže vykonávať všetky činnosti, ktoré boli spomenuté pri predchádzajúcich stupňoch a okrem toho môže napĺňať všetky úložištia údajov, vytvárať a modifikovať rozvrh.
Tímový projekt
Školský rok 1998/99