České vysoké učení technické v Praze Fakulta elektrotechnická
Diplomová práce
Informační systém pro speciální školu
Pavel Digaňa Vedoucí práce: Ing. Michal Voráček
Studijní obor: Elektrotechnika a informatika Obor: Výpočetní technika 2007 / 2008
II
Zadání Navrhněte a implementujte studijní informační systém určený pro Speciální školu v Přerově. Systém bude umožňovat vést celkovou agendu o žákovi (tj. prospěch, absence na jednotlivých hodinách, odstudované předměty atp.), udržovat potřebné informace o učitelích a předmětech, vytvářet rozvrh, zasílat zprávy uživatelům. Uživatelé budou komunikovat se systémem pomocí webového prohlížeče. Systém bude podporovat uživatelské role. Systém bude lokalizovatelný. Další požadované funkce systému budou dány výsledkem analýzy. Analytická dokumentace bude součástí práce. K implementaci použijte programovací jazyk Java spolu s vhodnými J2EE frameworky a vhodnou relační databází.
III
IV
Poděkování Na tomto místě bych chtěl poděkovat všem, kteří mě podporovali při psaní této diplomové práce. Především bych chtěl poděkovat vedoucímu diplomové práce Ing. Michalu Voráčkovi za jeho rady a připomínky. Poděkování patří také pedagogům ze ZŠ a MŠ Přerov, kteří mi pomohli praktickými radami a mým rodičům, kteří mě po celou dobu studia podporovali.
V
VI
Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém dokumentu. Nemám závažný důvod proti užití tohoto dokumentu ve smyslu § 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne 16.5.2008
……………………………..
VII
VIII
Abstract This thesis deals with the analysis requirements of school information system for Základní školu a Mateřskou školu Přerov, design and its own implementation. The final information system should be used by employees of the school and pupil’s parents, mainly to improve mutual communication across subjects involved into the system and in the efect make them the work easier and more effective.
Abstrakt Tato diplomová práce se zabývá analýzou požadavků na školní informační systém pro Základní školu a Mateřskou školu Přerov, návrhem a jeho vlastní implementací. Výsledný informační systém by měl sloužit pro zaměstnance školy a rodiče žáků, hlavně k zlepšení komunikace mezi subjekty zapojených do systému a ve výsledku by měl celý systém ulehčit a zefektivnit jejich práci.
IX
X
Obsah 1. Úvod ...................................................................................................................................... 1 1.1. Cíl práce.......................................................................................................................... 1 1.2. Odborný článek ............................................................................................................... 1 1.2.1. Vymezení a popis procesů na základní škole ........................................................... 2 1.2.2. Vymezení rozsahu a funkcí informačního systému ................................................... 3 1.2.3. Nefunkční požadavky ............................................................................................... 5 2. Analýza .................................................................................................................................. 6 2.1. Uživatelé ......................................................................................................................... 6 2.2. Diagramy případů užití .................................................................................................... 7 2.2.1. Akademický rok ........................................................................................................ 7 2.2.2. Předměty.................................................................................................................21 2.2.3. Studijní info..............................................................................................................25 2.2.4. Uživatelé .................................................................................................................33 2.2.5. Zprávy .....................................................................................................................38 2.3. Diagramy tříd..................................................................................................................41 2.3.1. Balíček Business .....................................................................................................41 2.3.2. Balíček Communication...........................................................................................42 2.3.3. Balíček Resources...................................................................................................42 2.3.4. Balíček Study ..........................................................................................................43 2.3.5. Balíček Subject........................................................................................................44 2.3.6. Balíček Users ..........................................................................................................45 2.4. Diagram aktivit ...............................................................................................................45 2.5. Vytvoření školního roku..................................................................................................46 2.6. Sekvenční diagramy.......................................................................................................46 2.6.1. Založení nového školního roku ................................................................................46 2.6.2. Vypsání předmětů pro akademický rok....................................................................47 2.6.3. Vytvořit úvazek pro učitele pro školní rok.................................................................48 2.6.4. Založení tříd pro akademický školní rok...................................................................48 2.6.5. Založení vyučovacích hodin ....................................................................................49 2.6.6. Tvorba rozvrhu ........................................................................................................50 2.7. Slovníček pojmů.............................................................................................................51 3. Návrh ....................................................................................................................................53 XI
3.1. Návrh architektury IS......................................................................................................53 3.2. Diagram nasazení (Deployment diagram) ......................................................................56 3.3. Diagram komponent .......................................................................................................57 3.4. Platform Specific Model (PSM).......................................................................................58 3.4.1. Balíček Business .....................................................................................................58 3.4.2. Balíček Communication...........................................................................................59 3.4.3. Balíček Resources...................................................................................................60 3.4.4. Balíček Study ..........................................................................................................60 3.4.5. Balíček Subject........................................................................................................61 3.4.6. Balíček Users ..........................................................................................................62 3.5. Model uložení dat ...........................................................................................................63 3.6. Menu..............................................................................................................................66 4. Use Ability testy ....................................................................................................................70 4.1. Účastnící testů ...............................................................................................................70 4.2. Definice úkolů.................................................................................................................70 4.2.1. Úkol 1 ......................................................................................................................70 4.2.2. Úkol 2 ......................................................................................................................71 4.2.3. Úkol 3 ......................................................................................................................71 4.2.4. Úkol 4 ......................................................................................................................71 4.2.5. Úkol 5 ......................................................................................................................72 4.2.6. Úkol 6 ......................................................................................................................72 4.2.7. Úkol 7 ......................................................................................................................72 4.3. Záznam řešení ...............................................................................................................72 4.3.1. Úkol 1 ......................................................................................................................72 4.3.2. Úkol 2 ......................................................................................................................73 4.3.3. Úkol 3 ......................................................................................................................75 4.3.4. Úkol 4 ......................................................................................................................76 4.3.5. Úkol 5 a 6 ................................................................................................................78 4.3.6. Úkol 7 ......................................................................................................................79 4.4. Seznam problémů a návrh řešení...................................................................................80 4.4.1. Úkol 1 ......................................................................................................................80 4.4.2. Úkol 2 ......................................................................................................................81 4.4.3. Úkol 3 ......................................................................................................................81 4.4.4. Úkol 4 ......................................................................................................................81
XII
4.4.5. Úkol 5 a 6 ................................................................................................................82 4.4.6. Úkol 7 ......................................................................................................................82 5. Závěr.....................................................................................................................................83 6. Literatura...............................................................................................................................84 7. Přílohy...................................................................................................................................85 7.1. Příloha DVD ...................................................................................................................85 7.1.1. Obsah DVD .............................................................................................................85 7.1.2. Spuštění aplikace pod VMWare...............................................................................85 7.2. Screenshoty aplikace .....................................................................................................86 7.2.1. Přihlašovací stránka ................................................................................................86 7.2.2. Menu po přihlášení pod rolí Director ........................................................................87 7.2.3. Seznam vypsaných předmětů pro školní rok ...........................................................87 7.2.4. Rozvrh žáka ............................................................................................................88 7.2.5. Zapisování absence učitelem ..................................................................................89 7.2.6. Přeřazení žáka do jiné třídy .....................................................................................90 7.2.7. Vytvoření nové zprávy .............................................................................................90 7.2.8. Příklad anglické lokalizace na detailu přijaté zprávy ................................................91 7.2.9. Zobrazení prospěchu žáka ......................................................................................91 7.2.10. Vytvoření nového žáka přes roli UserManager ......................................................92
XIII
XIV
Seznam obrázků Obrázek 1: Diagram uživatelských rolí ....................................................................................... 6 Obrázek 2: UC Akademický rok ................................................................................................. 7 Obrázek 3: UC Předměty ..........................................................................................................21 Obrázek 4: UC Studijní info.......................................................................................................25 Obrázek 5: UC Uživatelé...........................................................................................................33 Obrázek 6: UC Zprávy ..............................................................................................................38 Obrázek 7: Diagram tříd - Business ..........................................................................................42 Obrázek 8: Diagram tříd – Communication ...............................................................................42 Obrázek 9: Diagram tříd – Resources .......................................................................................43 Obrázek 10: Diagram tříd - Study..............................................................................................44 Obrázek 11: Diagram tříd - Subject ...........................................................................................45 Obrázek 12: Diagram tříd - Users..............................................................................................45 Obrázek 13: AD - Vytvoření školního roku ................................................................................46 Obrázek 14: Sekvenční diagram - Založení nového školního roku. ...........................................47 Obrázek 15: Sekvenční diagram – Vypsání předmětů pro akademický rok ...............................47 Obrázek 16: Sekvenční diagram - Vytvořit úvazek pro učitele pro školní rok.............................48 Obrázek 17: Sekvenční diagram - Založení tříd pro akademický školní rok...............................49 Obrázek 18: Sekvenční diagram - Založení vyučovacích hodin ................................................50 Obrázek 19: Sekvenční diagram - Tvorba rozvrhu ....................................................................51 Obrázek 20: Příklad realizace vazeb mezi třídami IS ................................................................55 Obrázek 21: Diagram nasazení.................................................................................................56 Obrázek 22: Diagram komponent .............................................................................................57 Obrázek 23: Balíček tříd Business ............................................................................................59 Obrázek 24: Balíček tříd Communication ..................................................................................59 Obrázek 25: Balíček tříd Resources..........................................................................................60 Obrázek 26: Balíček tříd Study..................................................................................................61 Obrázek 27: Balíček tříd Subject...............................................................................................62 Obrázek 28: Balíček tříd Users .................................................................................................63 Obrázek 29: Model uložení dat, část 1. .....................................................................................64 Obrázek 30: Model uložení dat, část 2. .....................................................................................65 Obrázek 31: Model uložení dat, část 3. .....................................................................................66 Obrázek 32: Menu role Director a Vice director.........................................................................67
XV
Obrázek 33: Menu role Teacher................................................................................................68 Obrázek 34: Menu role Pupil.....................................................................................................68 Obrázek 35: Menu role UserManager .......................................................................................69 Obrázek 36: Screenshot - přihlašovací stránka .........................................................................86 Obrázek 37: Screenshot - menu po přihlášení pod rolí Director ................................................87 Obrázek 38: Screenshot - seznam vypsaných předmětů pro školní rok ....................................87 Obrázek 39: Screenshot - rozvrh žáka ......................................................................................88 Obrázek 40: Screenshot - zapisování absence učitelem ...........................................................89 Obrázek 41: Screenshot - přeřazení žáka do jiné třídy..............................................................90 Obrázek 42: Screenshot - vytvoření nové zprávy ......................................................................90 Obrázek 43: Screenshot - příklad anglické lokalizace na detailu přijaté zprávy .........................91 Obrázek 44: Screenshot - zobrazení prospěchu žáka ...............................................................91 Obrázek 45: Screenshot - vytvoření nového žáka přes roli UserManager .................................92
XVI
Úvod
1. Úvod Informační systém pro základní školy je specializací obecného informačního systému. Informační systém slouží pro ukládání, zpracování a poskytování informací a dat. Informační systém má za úkol zjednodušit a zefektivnit práci uživatelů, kteří s ním pracují. Obecný informační systém nemusí být založen na využití prostředků výpočetní techniky, ale je možno jej vnímat pouze jako způsob zaznamenávání a evidence informací. Příkladem mohou být papírové kartotéky všeho druhu, např. v knihovnách, a nebo kartotéky obsahující záznamy katastrálních území apod. Výpočetní technika je pouze prostředkem k zefektivnění práce s tímto systémem. V této práci budeme informační systém, dále IS, vnímat jako softwarový produkt. Hlavním důvodem využívání IS ve školství, je snadná dostupnost mnoha informací o žákovi, zlepšení komunikace učitel-rodič a tím možného docílení zlepšení prospěchu žáka. Další důležitou funkcí tohoto systému je snadná dostupnost historických dat.
1.1. Cíl práce Cílem této diplomové práce je analýza požadavků, návrh analytických tříd, výběr vhodných frameworků pro implementaci, provedení Use ability testů na prototypu a následná implementace. Návrh vychází z reálných požadavků školy Základní škola a Mateřská škola Přerov, Malá Dlážka 4, 750 00 Přerov. V první fázi projektu, kterému se věnuje tato diplomová práce, byl kladen důraz na vytvoření obecného jádra, který je znovupoužitelný na většině základních škol, popř. některých středních škol. Hlavním cílem bylo vytvořit moderní a lehce rozšiřitelný systém, jež obsahuje obecnou agendu společnou pro většinu škol a přitom již obsahuje střípky nového školního vzdělávacího programu nastaveném Ministerstvem školství, mládeže a tělovýchovy. V dalších fázích projektu se počítá s přidáváním dalších komponent do systému jako rozšíření Školního vzdělávacího programu, rozšíření agendy učitelů (suplování, žádosti o dovolenou apod.), správa budovy a jejího majetku.
1.2. Odborný článek Tato kapitola vymezuje rozsah a funkce informačního systému, dále IS, pro základní školy a popisuje procesy na škole. Rozsah a funkce IS nejsou popisovány detailně ve smyslu přesné analýzy a konkrétních scénářů, ale jedná se o popis ideové koncepce systému a zmapování představ zadavatele a aktuální situace.
1
Úvod
1.2.1. Vymezení a popis procesů na základní škole Součástí školy jsou: Základní škola praktická, Základní škola speciální, Školní družina, Základní škola a Mateřská škola při zdravotnickém zařízení. Základní škola praktická poskytuje vzdělávání žákům, u kterých byly zjištěny speciálně vzdělávací potřeby na základě psychologického vyšetření školským poradenským zařízením (Pedagogicko-psychologická poradna) a jejich závažnost je důvodem k zařazení do speciálního vzdělávání. Bližší informace o vzdělávání dětí, žáků a studentů se speciálními vzdělávacími potřebami upřesňuje vyhláška č. 73/2005 Sb. Žáci jsou vzděláváni podle vzdělávacího programu č.j. 22 980/97-22 – Zvláštní škola ze dne 20.6.1997. Procesy v základní škole praktické jsou nastavené jako v klasické základní škole. Hlavní rozdíl je v objemu vyučované látky za školní docházku. Pro splnění povinné školní docházky je potřeba absolvovat 9 let. Základní škola má ředitele, jednoho nebo více zástupců ředitele, různý počet učitelů, administrativní pracovníky a údržbáře. Každá škola má jednu a nebo více budov, ve kterých se nacházejí učebny, kabinety, sborovny, popřípadě tělocvična a šatny. K místnostem může být přiřazen inventář jako stoly, židle apod. Ředitel nebo zástupce ředitele vytváří každoročně školní rozvrh, což obnáší definici tříd a přiřazení žáků do těchto tříd, určení třídního učitele, který se stará o docházku žáků a eviduje omluvenou a neomluvenou absenci. Jestliže žák ví o nepřítomnosti předem, je povinen ji oznámit dopředu. Každé pololetí jsou vytvořeny z těchto nepřítomností souhrnné výstupy, které se zapisují na vysvědčení. Jednotlivé předměty se v týdnu vyučují většinou vícekrát, jsou rozděleny do tzv. vyučovacích hodin, které mají přiřazen čas vyučování a učebnu. Počet vyučovaných hodin za týden a za předmět se nazývá dotace hodin předmětu. Podle Školního vzdělávacího programu ZŠ a MŠ Přerov, dále ŠVP, každá vzdělávací oblast má svou charakteristiku, která se skládá ze tří hlavních větví Obecné údaje, Kompetence a Výchova. Tyto větve se dále dělí: Obecné údaje – Název, Obecný popis. Kompetence – Kompetence k učení, Kompetence k řešení problémů, Komunikativní kompetence, Kompetence sociální a personální, Kompetence občanské, Kompetence pracovní. Výchova – Osobnostní a sociální výchova, Výchova demokratického občana, Výchova v myšlení v evropských globálních souvislostech, Multikulturní výchova, Enviromentální výchova, Mediální výchova. Každá charakteristika je pokryta předměty za celou školní docházku. Žáci jsou za své dosažené znalosti hodnoceni stupnicí známek od 1 do 5. Učitelé rozlišují za jaký typ hodnocení známku získal. Do dalšího ročníku žák postupuje v případě, že jeho znalosti
2
Úvod
odpovídají předepsané míře, která je hodnocena dosaženými známkami za pololetí školního roku. Žák může přestoupit na jinou základní školu a nebo ze závažných důvodů přerušit docházku.
Základní škola speciální je ustanovena jako desetiletá škola organizačně dělená do 4 stupňů. Mnoho dětí je také vzděláváno individuálně a mají vypracován individuální vzdělávací
program.
Děti
s
těžkým
mentálním
postižením
jsou
vzdělávány
podle
Rehabilitačního vzdělávacího programu pomocné školy č.j. 15 988/2003-24, ostatní žáci základní školy speciální jsou vzděláváni podle Vzdělávacího programu č.j.24 035/97-22 Školní družina slouží jako doplněk školní docházky, supluje částečně rodinné prostředí, zejména dětem, které pocházejí z rodin sociálně znevýhodněných a dysfunkčních. Úkolem Školní družiny je především zájmová činnost, rozvoj citových a osobnostních vztahů a návyk na soužití v kolektivu. Mateřská škola při zdravotnickém zařízení se stará o vzdělávání dětí, jejichž současný zdravotní stav jim nedovoluje navštěvovat kmenovou školu. Děti jsou zde vzdělávány individuálně s ohledem na vzdělávací program kmenové školy, zdravotní stav a jejich znalosti a potřeby.
1.2.2. Vymezení rozsahu a funkcí informačního systému V první fázi projektu je potřeba navrhnout a implementovat informační systém pro Základní školu praktickou, dále IS. Pokud dále v textu bude zmíněný pojem Základní škola, je na mysli Základní škola praktická. IS musí být dostupný z internetu přes webový prohlížeč. IS musí splňovat webové standardy podle komunity http://www.w3.org/. Přihlašování do systému bude pomocí unikátního uživatelského jména a vygenerovaného silného hesla – různá kombinace velkých a malých písmen a číslic, nesmí být shodné s uživatelským jménem. IS bude obsahovat uživatelské role – ředitel, zástupce ředitele, učitel, žák, uživatelský administrátor. Pro zlepšení komunikace mezi zaměstnanci je požadováno, aby každý uživatel s přístupem do systému měl právo posílat zprávy ostatním uživatelům, tudíž je potřeba vytvořit interní komunikační kanál podobný emailu. Uživatel smí vytvořit zprávu a také na ni být schopen
3
Úvod
odpovědět i s citací zprávy původní. Nejsou zde žádné omezení týkající se komunikace mezi různými rolemi. Role ředitel a zástupce ředitele jsou ekvivalentní, zástupce musí být schopen v nepřítomností ředitele zastávat všechny jeho funkce. Ředitel, resp. zástupce ředitele, vytváří rozvrh pro celý školní rok a v průběhu roku upravuje. Vypisuje týdenní úvazky učitelů pro daný školní rok. Vytváří školní třídy, které budou existovat ve školním roce, přiřazuje těmto třídám třídní učitele a docházející žáky.
Každý rok se určuje jaké předměty a jaké hodiny jsou
vyučovány a k těmto předmětům, resp. vyučovacím hodinám, jsou přiřazováni učitelé, jež je učí. Rozlišujeme předměty na povinné a nepovinné v rámci školní docházky. Do povinných dochází všichni žáci určené třídy a do nepovinných se žáci sami přihlašují. Ředitel musí mít možnost připravit rozvrh, aniž by k němu měli přístup ostatní uživatelé a určuje sám čas, kdy jej zpřístupní i ostatním. U předmětu je nutné evidovat tyto atributy – Název, Povinnost, Rok školní docházky a popis. Každý předmět je přiřazen charakteristice. Ředitel a Uživatelský administrátor zakládají nové zaměstnance a žáky a také jim ruší již existující účty a zamezují přístupu. S každým novým zaměstnancem čí žákem je automaticky vytvořen uživatelský účet v IS a tento účet je po založení ihned aktivní. V případě zapomenutého hesla do IS, Ředitel a Uživatelský administrátor musí být schopen vygenerovat nové heslo. K zamezení zbytečné administrativy učitel smí vygenerovat heslo pro žáky, pro něž je třídním učitelem. Takto vygenerované heslo a nebo nový uživatelský účet je zaslán na email uživatele, který jej vygeneroval či vytvořil. Toto heslo je pak v papírové podobě předáno uživateli. U každého uživatele je potřeba vést osobní údaje: jméno, příjmení, bydliště, datum a místo narození, národnost, občanství, zdravotní pojišťovna. U zaměstnance dále: počet dětí, vzdělání, platová třída a stupeň, datum zdravotní prohlídky. U žáka dále: rok školní docházky, studijní stav, datum zápisu do 1. třídy a školy, typ postižení, nemoci a číslo závěrečného vysvědčení. Učitel má přístup jak k aktuálním, tak k historickým rozvrhům všech žáků i učitelů za roky, kdy měl vypsán úvazek. Třídní učitel omlouvá a zapisuje nepřítomnost žáků. V IS existují 4 druhy nepřítomnosti – nepřítomný, plánovaná nepřítomnost, omluvená nepřítomnost, neomluvená nepřítomnost. Žák si může pouze naplánovat absenci do budoucnosti, ale nesmí rušit plánované absence v minulosti. Učitel zapisuje bez omezení a má přístup k souhrnné sestavě nepřítomností za každé pololetí ve školním roce.
4
Úvod
Učitelům IS poskytuje seznam vyučovaných předmětů, u kterých si každý učitel zvlášť určí druhy známek, např. zkoušení, čtvrtletní práce apod. Známky jsou vždy vztaženy k pololetí daného školního roku. U každé známky je potřeba vést – datum obdržení, kdo zapsal, druh známky a poznámka. Žák po přihlášení do systému musí mít přístup k jeho celkové nepřítomnosti, prospěchu ze všech studovaných i odstudovaných předmětů, k osobnímu rozvrhu. Každý uživatel musí mít přístup ke svému osobnímu profilu pro případnou kontrolu vedených informací.
1.2.3. Nefunkční požadavky Do nefunkčních požadavků uvádím požadavky, které přímo nesouvisí s nabízenými službami, ale přesto nějakým způsobem s vlastním systémem souvisejí. N1: Systém bude provozován na linuxovém serveru. N2: Systém bude dostupný přes webový prohlížeč z internetu N3: Systém bude odpovídat standardům W3.org N4: Systém bude lehce rozšiřitelný o další komponenty.
5
Analýza
2. Analýza Analýza vychází z reálných požadavků pro školní informační systém. Je postavena na Odborném článku a byla upřesněna díky rozhovorům se zadavatelem a koncovými uživateli.
2.1. Uživatelé composite structure Uživ atelé
User
Employee
Director
Pupil
Zastupuje
Teacher
UserManager
Vice Director
Obrázek 1: Diagram uživatelských rolí
Každý přihlášený uživatel má přiřazenu jednu uživatelskou roli, podle které se určuje k jakým funkcím má přístup. Tyto funkce vyplývají z diagramu případů užití. Do systému je zavedeno 5 následujících rolí: Role Director je uživatelská role určená pro ředitele.školy. Vice Director je určena pro zástupce ředitele a tato role má nastaveny stejná práva a má přístup ke stejným volbám jako ředitel školy, aby byl bezezbytku zastupitelný. Role Teacher se zavádí pro učitele. Role UserManager odpovídá uživatelskému administrátorovi a je určená pro administrativní pracovníky školy. Role Pupil je pro rodiče žáka, resp. pro samotného žáka, pokud je plnoletý.
6
Analýza
2.2. Diagramy případů užití Každý případ užití je popsán scénáři až na úroveň formuláře. Každý z těchto formulářů má svůj unikátní identifikátor v systému.
2.2.1. Akademický rok uc Akademický rok Informač ní systém
Tv orba rozv rhů Rozv rhy učitelů «extend»
Seznam a založení nov ého školního roku
Rozv rh uživ atele
«include» «extend»
«include»
Vypsání předmětů pro akademický rok
«include»
Pupil
Vytv oření akademického roku
(from Users)
«include»
Rozv rhy žáků
Přidat žáka do třídy
«include» «include»
«include» Seznam a založení v yučov acích hodin
Teacher (from Users)
Založení a editace třídy pro akademický rok
Vytv ořit úv azek učitele pro školní rok «extend»
«extend» Seznam tříd pro školní rok Employee Director «extend»
(from Users)
Seznam žáků v e třídě
Smazání třídy
«extend»
Osobní rozv rh
Změnit třídu žáka
User (from Users)
Obrázek 2: UC Akademický rok
7
(from Users)
Analýza
Osobní rozvrh Každý učitel a žák zapsaný do školního roku má osobní rozvrh. Pokud je učitel zapsaný do školního roku, má záznam v třídě InscribeInSchoolYear. Žák má rozvrh, pokud je zapsaný ve třídě vypsané pro daný školní rok. Uživatelům se zobrazí v seznamu školních roků jen ty roky, kde měli osobní rozvrh.
Tok událostí
Formulář 009 - Hlavní cesta 1. Uživatel zvolí z menu zobrazení osobního rozvrhu. 2. Systém nabídne uživateli osobní rozvrh pro aktuální školní rok.
Formulář 009 - Změna školního roku - Hlavní cesta 1. Uživatel změní školní rok a změnu potvrdí tlačítkem 'Změnit školní rok'. 2. Systém nabídne uživateli osobní rozvrh pro vybraný školní rok.
Přidat žáka do třídy K vybrané třídě je potřeba přiřadit žáky. Na formuláři pro přiřazení žáka do třídy se zobrazí seznam žáků, kteří ještě nemají přiřazenou třídu v daném roce a jejich SessionState je různý od FINISHED_STUDY. Tok událostí
Formulář 029 - Hlavní cesta 1. Uživatel zvolil na formuláři Seznam žáků pro třídu (Formulář 028) volbu Přiřadit nového žáka. 2. Systém nabídl seznam všech žáků, kteří nemají přiřazenu třídu v daném školním roce a jejichž SessionState je různý od FINISHED_STUDY. 3. Uživatel zvolí žáka, kterého chce přiřadit do třídy. 4. Systém přiřadí žáka do třídy a zvýší rok školní docházky o 1.
8
Analýza
Rozvrh uživatele Pokud je zvolen uživatel, který je učitel a uživatel je přihlášen pod rolí director, uživateli se zobrazí na rozvrhu volby pro editaci rozvrhu: Vložit hodinu, Odstranit hodinu. Pro ostatní případy se zobrazí pouze rozvrh uživatele. Tok událostí
Formulář 040 - Hlavní cesta 1. Uživatel zvolil ze seznamu Rozvrhy žáků (Formulář 038) nebo Rozvrhy učitelů (Formulář 039) uživatele, pro kterého chce rozvrh zobrazit. 2. Přihlášený uživatel v roli Director a uživatel přichází z rozvrhu učitelů: Systém zobrazí Rozvrh učitele spolu s tlačítky pro editaci rozvrhu. Více viz. UC Tvorba rozvrhů. 2A. Přihlášený uživatel nemá roli Director: Uživateli se zobrazí rozvrh vybraného uživatele.
Rozvrhy učitelů Uživatel si může zobrazit rozvrh jiného uživatele bez omezení. Aplikace omezuje jen zobrazení v různých školních rocích. Naplnění seznamu pro školní rok: Role Director - všechny školní roky Role Teacher - všechny školní roky, kde má osobní rozvrh Role Pupil - aktuální školní rok Tok událostí
Formulář 039 - Hlavní cesta 1. Uživatel zvolil z menu Rozvrhy učitelů. 2. Systém nabídl seznam učitelů zapsaných pro daný školní rok. 3. Uživatel vybral učitele, pro kterého chce zobrazit rozvrh. 4. Systém přešel na Rozvrh učitele (Formulář 040).
9
Analýza
Tok událostí
Formulář 039 - Změna školního roku - Hlavní cesta 1. Uživatel změní školní rok a změnu potvrdí tlačítkem 'Změnit školní rok'. 2. Systém nabídne seznam učitelů pro vybraný školní rok.
Naplnění seznamu pro školní rok: Role Director - všechny školní roky Role Teacher - všechny školní roky, kde má osobní rozvrh Role Pupil - aktuální školní rok
Rozvrhy žáků Uživatel si může zobrazit rozvrh jiného uživatele bez omezení. Aplikace omezuje jen zobrazení v různých školních rocích. Naplnění seznamu pro školní rok: Role Director - všechny školní roky Role Teacher - všechny školní roky, kde má osobní rozvrh Role pupil - aktuální školní rok Tok událostí
Formulář 038 - Hlavní cesta 1. Uživatel zvolil z menu Rozvrhy žáků. 2. Systém nabídl seznam žáků zapsaných pro daný školní rok. 3. Uživatel vybral žáka, pro kterého chce zobrazit rozvrh. 4. Systém přešel na Rozvrh žáka (Formulář 040).
Formulář 038 - Změna školního roku - Alternativní cesta 1. Uživatel změní školní rok a změnu potvrdí tlačítkem 'Změnit školní rok'. 2. Systém nabídne seznam žáků pro vybraný školní rok.
10
Analýza
Tok událostí
Naplnění seznamu pro školní rok: Role Director - všechny školní roky Role Teacher - všechny školní roky, kde má osobní rozvrh Role pupil - aktuální školní rok
Seznam a založení nového školního roku Založí se školní rok a k němu se vytvoří příslušná pololetí, 1. a 2. pololetí. Typ pololetí se bere z číselníku SchoolYearType . Při zakládání je školní rok nepublikovaný, publikování se děje až po vytvoření rozvrhu. Tok událostí
Formulář 012 - Hlavní cesta 1. Uživatel z menu zvolí Seznam školních roků. 2. Systém nabídne Seznam školních roků seřazených sestupně. 3. Uživatel může odpublikovat dosud nepublikované školní roky.
Formulář 012 - Publikace - Alternativní cesta 1. Uživatel zvolil publikaci školního. roku. 2. Systém se zeptá na potvrzení volby. 3. Uživatel potvrdí a systém nastaví atribut publicated na true.
Formulář 013 - Hlavní cesta 1. Uživatel zvolí změnu Vytvoření nového školního roku. A1. Uživatel zvolí Vytvoření školního roku ze seznamu školních roků. 2. Systém nabídne položky pro vytvoření školního roku. 3. Uživatel vyplní začátek a konec školního roku a formulář odešle. 4. Systém potvrdí úspěšné uložení.
11
Analýza
Seznam a založení vyučovacích hodin Ve vyučovací hodině fyzicky přiřazujeme učitele na předmět a určujeme pro jakou třídu je předmět vyučován a určujeme zda je hodina povinná pro celou třídu. Jestliže je hodina povinná, musí být určena třída.
Tok událostí
Formulář 035 - Hlavní cesta 1. Uživatel vybere z menu Vyučovací hodiny. 2. Systém nabídne uživateli seznam vyučovacích hodin.
Formulář 035 - Změna školního roku - Alternativní cesta 1. Uživatel změnil aktuální školní rok. 2. Systém nabídne seznam vyučovacích hodin pro školní rok.
Formulář 035 - Smazání vyučovací hodiny - Alternativní cesta 1. Uživatel vybere ze seznamu vyučovacích hodin, hodinu, kterou chce smazat. 2. Pokud je tato hodina v rozvrhu, tzn. má záznam v LessonTime, systém hodinu nesmaže, ale upozorní uživatele. 2A. Pokud hodina není v rozvrhu. Systém hodinu smaže.
Formulář 036 - Vytvoření vyučovací hodiny. - Hlavní cesta 1. Uživatel zvolí ze Seznamu vyučovacích hodin (Formulář 035) volbu 'Vytvořit novou vyučovací hodinu'. 2. Systém nabídne uživateli formulář na vytvoření nové vyučovací hodiny. - Předmět - povinné - Seznam vypsaných předmětů pro školní rok. - Učitel - povinné - Seznam učitelů s úvazkem. - Povinný ve třídě - Určuje zda je povinný pro všechny žáky ve třídě. - Třída - Pokud je povinný ve třídě, také povinné. Jinak není povinné.
12
Analýza
Tok událostí
3. Uživatel vyplní a odešle. 4. Systém uloží a zobrazí hlášku o správném uložení
Formulář 037 - Úprava vyučovací hodiny - Hlavní cesta 1. Uživatel zvolí ze Seznamu vyučovacích hodin (Formulář 035) hodinu, kterou chce upravit. 2. Systém nabídne uživateli formulář na úpravu vyučovací hodiny. - Předmět - povinné - Seznam vypsaných předmětů pro školní rok. - Učitel - povinné - Seznam učitelů s úvazkem. - Povinný ve třídě - Určuje zda je povinný pro všechny žáky ve třídě. - Třída - Pokud je povinný ve třídě, také povinné. Jinak není povinné. 3. Uživatel vyplní a odešle. 4. Systém uloží a zobrazí hlášku o správném uložení.
Seznam tříd pro školní rok Seznam tříd vypsaných pro daný školní rok. Každá třída má přiřazeného třídního učitele a počet hodin, které se v této třídě učí. Na seznamu se zobrazuje počet přiřazených žáků ve třídě. Tok událostí
Formulář 025 - Hlavní cesta 1. Uživatel zvolil z menu Školní třídy. 2. Systém nabídne seznam tříd pro vybraný školní rok.
Formulář 025 - Změna školního roku - Hlavní cesta 1. Uživatel změnil aktuální školní rok 2. Systém nabídne seznam tříd pro změněný školní rok.
Seznam žáků ve třídě Seznam žáků přiřazených do třídy. 13
Analýza
Tok událostí
Formulář 028 - Hlavní cesta 1. Uživatel zvolí ze seznamu tříd(Formulář 025) třídu, pro kterou chce zobrazit seznam žáků. 2. Systém zobrazí seznam žáků ve vybrané třídě(Formulář 028).
Smazání třídy Ze seznamu tříd je možné vybranou třídu smazat. Před smazáním se provede kontrola, zda do dané třídy nejsou přiřazeni někteří žáci. Tok událostí
Formulář 025 - Smazání třídy - Hlavní cesta 1. Uživatel zvolil z menu Školní třídy. 2. Systém nabídne seznam tříd pro vybraný školní rok. 3. Uživatel zvolí třídu, kterou chce smazat. 4. Do třídy nejsou přiřazeni žádní žáci. Systém třídu smaže. 4A. Do třídy jsou přiřazeni žáci. Systém nahlásí, že není možno třídu smazat.
Tvorba rozvrhů Založením vyučovacích hodin je vytvořena definice počtu hodin, které se mají zapsat do rozvrhu. Tvorba rozvrhu je už jen fyzické rozmístnění hodin do určitých hodin a místností. Ředitel může měnit pouze aktuální rozvrh a rozvrhy budoucí. Tok událostí
Formulář 010 - Hlavní cesta 1. Uživatel zvolil z menu Školní rozvrh. 2. Systém nabídne uživateli rozvrh: - pondělí-pátek - hodiny rozvržené podle systémového parametru SCHEDULE_PATTERN - v každém políčku rozvrhu se nachází tlačítko pro vložení nové hodiny
14
Analýza
Tok událostí
Formulář 010 - Změna školního roku - Alternativní cesta 1. Uživatel změnil aktuální školní rok. 2. Systém nabídne rozvrh pro vybraný školní rok.
Formulář 010 - Vložení nové hodiny do rozvrhu - Alternativní cesta 1. Uživatel klikne na tlačítko vložit v buňce rozvrhu. 2. Systém otevře popup okno s výběrem dané hodiny (Formulář 011). 3. Uživatel vybere hodinu a stiskne tlačítko Přidat hodinu do rozvrhu. 4. Systém změny uloží a zavře popup okno. Reloadne se výchozí stránka se školním rozvrhem.
Pozn.: Práce s popup oknem je popsána v Scénář 'Formulář 011 - Přidání nové hodiny' .
Formulář 010 - Smazání hodiny v rozvrhu - Alternativní cesta 1. Uživatel vybere v rozvrhu hodinu, kterou chce smazat, poklepáním na ikonku 'Odstranit hodinu'. 2. Systém se uživatele zeptá, zda chce hodinu opravdu odstranit. 3. Uživatel potvrdí odstranění. 4. Systém hodinu smaže a reloaduje rozvrh.
Formulář 011 - Přidání nové hodiny - Hlavní cesta 1. Uživateli se zobrazí okno po stisknutí tlačítka rozvrhu 'Vložit novou hodinu'. 2. Systém zobrazí detail vybraného časového úseku, seznam dostupných učeben, seznam nevložených hodin do rozvrhu. 3. Uživatel zvolí ze seznamu nevložených hodin do rozvrhu a stiskne na tlačítko
15
Analýza
Tok událostí
'Vyber'. 4. Systém přenese vybranou hodinu do detailu vybraného časového úseku. 5. Uživatel může vybrat jinou hodinu ze seznamu nevložených hodin. 5A1. Uživatel může zrušit již vybranou hodinu stisknutím na tlačítka smazat. 5A2 Uživatel vybere místnost a stiskne tlačítko 'Přidat hodinu do rozvrhu'. 6. Systém změny uloží a zavře okno. 7. Zavřením okna se reloaduje rodičovská stránka (stránka, ze které bylo popup okno otevřeno).
Vypsání předmětů pro akademický rok Vypsání předmětů pro školní rok a určení dotaci hodin.Systém nabídne seznam všech předmětů z tabulky Subject. Každý takto zapsaný předmět se bude v daném školním roce vyučovat. Uživatel může smazat takto zapsaný předmět. Tok událostí
Formulář 014 - Hlavní cesta 1. Uživatel zvolil z menu Vypsat předmět. 2. Systém nabídne seznam již zapsaných předmětů pro aktuální školní rok.
Formulář 014 - Smazání vypsaného předmětu - Alternativní cesta 1. Uživatel vybere ze seznamu vypsaných předmětů, který chce smazat. 2. Systém předmět smaže. 2A. Systém uživateli nedovolí smazat předmět, pokud existují vypsané hodiny pro tento vypsaný předmět.
Formulář 014 - Změna školního roku - Alternativní cesta 1. Uživatel změnil aktuální školní rok.
16
Analýza
Tok událostí
2. Systém nabídne seznam zapsaných předmětů pro školní rok.
Formulář 015 - Hlavní cesta 1. Uživatel zvolil ze seznamu vypsaných předmětů (Formulář 014) - Vypsat nový předmět. 2. Systém nabídne seznam všech předmětů z tabulky Subject, které ještě nebyly vypsány pro daný školní rok. 3. Uživatel vybere předmět, který chce vypsat pro školní rok. 4. Systém přejde na Formulář 016.
Formulář 016 - Hlavní cesta 1. Uživateli se zobrazí detail vybraného předmětu. 2. Uživatel zapíše dotaci hodin pro školní rok a volbu odešle. 3. Systém oznámí úspěšné zapsaní a přejde na seznam zapsaných předmětů (Formulář 014).
Vytvořit úvazek učitele pro školní rok Každý učitel musí mít pro rok, ve kterém bude vyučovat vypsán úvazek. Aby mohl být učitel určen jako třídní učitel, musí mít aktivní úvazek. Velikost tohoto úvazku je určující pro tvorbu rozvrhu, může učit tolik hodin, pro jaký má vytvořený úvazek. Tok událostí
Formulář 031 - Hlavní cesta 1. Uživatel zvolí z menu 'Úvazek učitelů'. 2. Systém nabídne seznam učitelů, kteří mají pro vybraný školní rok vytvořen úvazek
Formulář 031 - Změna školního roku - Alternativní cesta 1. Uživatel změnil aktuální školní rok. 2. Systém nabídne seznam zapsaných předmětů pro školní rok.
17
Analýza
Tok událostí
Formulář 031 - Smazání úvazku učitele - Alternativní cesta 1. Uživatel vybere ze seznamu učitele, pro kterého chce smazat úvazek. 2. Systém úvazek smaže. 2A. Systém nedovolí smazat v úvazek, pokud je učitel v tomto školním roce učen jako třídní učitel a nebo již vyučuje některou hodinu.
Formulář 032 - Vytvoření úvazku - Hlavní cesta 1. Uživatel zvolí volbu 'Vytvořit nový úvazek' ze Seznamu úvazků (Formulář 031). 2. Systém nabídne seznam učitelů, kteří jsou aktivní a nemají ještě úvazek v daném školním roce (Formulář 033). 3. Uživatel vybere učitele, kterému chce vytvořit úvazek. 4. Systém zobrazí detail úvazku učitele. - Jméno a příjmení učitele - Týdenní úvazek - může nabývat hodnot <1,100> 5. Uživatel klikne na tlačítko pro vytvoření úvazku a vypíše hlášku o úspěšném vytvoření. 6. Systém úvazek uloží a přejde na Seznam učitelů bez úvazku (Formulář 033).
Formulář 033 - Seznam učitelů bez úvazků pro školní. rok - Hlavní cesta 1. Uživatel zvolí volbu 'Vytvořit nový úvazek' ze Seznamu úvazků (Formulář 031). 2. Systém nabídne seznam učitelů, kteří jsou aktivní a nemají ještě úvazek v daném školním roce (Formulář 033).
Formulář 034 - Úprava úvazku učitele - Hlavní cesta 1. Uživatel vybere učitele ze Seznamu učitelů (Formulář 031), kterému chce úvazek upravit.
18
Analýza
Tok událostí
2. Systém zobrazí detail úvazku učitele: - Jméno a příjmení učitele - Týdenní úvazek - může nabývat hodnot <1,100> Nepovolí snížit úvazek pod hodnotu počtu hodin, které má učitel zapsán v rozvrhu. 3. Uživatel klikne na tlačítko pro uložení úvazku a vypíše hlášku o úspěšném uložení. 4. Systém úvazek uloží a přejde na Seznam úvazků učitelů (Formulář 031).
Založení a editace třídy pro akademický rok Pro každý školní rok je možné vytvořit třídu. Přiřadit třídního učitele a určit dotaci hodin pro danou třídu. Jedná se o minimální počet hodin, které musí každý žák, přiřazený do třídy absolvovat. Tok událostí
Formulář 026 - Hlavní cesta 1. Uživatel zvolí "Vytvořit novou třídu" ze seznamu tříd (Formulář 025). 2. Systém nabídne uživateli formulář pro vytvoření. 3. Uživatel vyplní a uloží: - Název - Třídní učitel. Seznam učitelů, kteří mají vytvořen úvazek pro daný školní rok a již nedělají třídního učitele pro tento rok. - Dotace hodin - Rok školní docházky 1-9 4. Systém třídu uloží a přejde na seznam tříd. (Formulář 025)
Formulář 027 - Editace třídy - Hlavní cesta 1. Uživatel vybere ze Seznamu tříd(Formulář 025) třídu, kterou chce upravit. 2. Systém zobrazí detail třídy. 3. Uživatel provede změny a změny uloží.
19
Analýza
Tok událostí
Formulář 027 - Smazání třídy - Alternativní cesta 1. Uživatel vybere ze seznamu tříd(Formulář 025) třídu, kterou chce upravit. 2. Systém zobrazí detail třídy. 3. Uživatel zvolí smazání třídy. 4. Systém provede kontrolu do dané třídy není přiřazen žák. Pokud existuje žák, který spadá pod třídu, systém oznámí chybu, že se nepodařilo danou třídu smazat, protože existuje žák, který je do třídy přiřazen. Pokud takový neexistuje, systém třídu smaže.
Změnit třídu žáka Uživatel musí být schopen změnit třídu žáka/přeřadit žáka v daném školním roce. Tok událostí
Formulář 030 - Hlavní cesta 1. Uživatel vybere žáka ze Seznamu žáků ve třídě(Formulář 028), kterému chce změnit třídu. 2. Systém nabídne formulář pro změnu třídy - Seznam všech dostupných tříd ve školním roce. 3. Uživatel vybere novou třídu a změnu uloží a přejde na seznam žáků původní třídy ze které žák přišel. 3A. 3. Uživatel vybere novou třídu a změnu uloží a přejde na seznam žáků nové třídy.
20
Analýza
2.2.2. Předměty uc Předměty Informační systém
Seznam předmětů
Editace předmětu «extend»
«extend»
Vytv ořit nov ý předmět
Director
Editace charakteristiky předmětu
Teacher (from Users)
(from Users)
«extend»
Seznam charakteristiky předmětů
«extend»
Vytv ořit nov ou charakteristiku
Obrázek 3: UC Předměty
Vytvořit novou charakteristiku Director musí být schopen vytvořit novou charakteristiku Tok událostí
Formulář 018 - Hlavní cesta 1. Uživatel zvolil volbu 'Vytvořit novou charakteristiku' ze Seznamu charakteristik (Formulář 017). 2. Systém nabídne formulář pro vyplnění nové charakteristiky. 3. Uživatel formulář vyplní a změny odešle. 4. Systém provede validaci povinných položek a data uloží, popř. vyhodí chybovou hlášku. V případě úspěchu, systém přejde na seznam charakteristik (Formulář 017).
21
Analýza
Editace charakteristiky předmětu Uživatel musí být schopen upravovat již vytvořenou charakteristiku předmětu Tok událostí
Formulář 019 - Hlavní cesta 1. Uživatel zvolil charakteristiku, kterou chce upravit ze seznamu Charakteristik předmětů (Formulář 017). 2. Systém nabídl uživateli detail charakteristiky pro úpravu. 3. Uživatel provedl a uložil změny. 4. Systém provede validaci povinných položek a data uloží, popř. vyhodí chybovou hlášku. V případě úspěchu, systém přejde na seznam charakteristik (Formulář 017).
Seznam charakteristiky předmětů Školní vzdělávací plán. Pro každý předmět je souhrnná charakteristika předmětu, která postihuje všech 9 let školní docházky pro daný předmět. Tok událostí
Formulář 017 - Hlavní cesta 1. Uživatel zvolil z menu ŠVP - Seznam charakteristiky předmětů. 2. Systém nabídl uživateli seznam všech charakteristik na dané škole.
Formulář 017 - Smazání charakteristiky - Alternativní cesta 1. Uživatel pod rolí Director vybere ze seznamu charakteristik předmětů, charakteristiku, kterou chce smazat. 2. Systém charakteristiku předmětu smaže. 2A. Systém uživateli nedovolí smazat charakteristiku předmětu, pokud existují už předměty pro tuto charakteristiku.
Formulář 020 - Zobrazení detailu charakteristiky - Alternativní cesta 1. Uživatel zvolil ze seznamu charakteristik detail požadované charakteristiky (Formulář 017).
22
Analýza
Tok událostí
2. Systém nabídl uživateli detail charakteristiky.
Vytvořit nový předmět Director musí být schopen vytvořit nový předmět. Vždy k předmětu přiřadí charakteristiku. Tok událostí
Formulář 022 - Hlavní cesta 1. Uživatel zvolil volbu 'Vytvořit nový předmět' ze Seznamu předmětů (Formulář 021). 2. Systém nabídne formulář pro vyplnění nového předmětu. 3. Uživatel formulář vyplní a změny odešle. 4. Systém provede validaci povinných položek a data uloží, popř. vyhodí chybovou hlášku. V případě úspěchu, systém přejde na seznam předmětů (Formulář 021).
Editace předmětu Uživatel musí být schopen upravovat již vytvořené předměty Tok událostí
Formulář 024 - Hlavní cesta 1. Uživatel zvolil předmět, který chce upravit ze seznamu předmětů (Formulář 021). 2. Systém nabídl uživateli detail předmětu pro úpravu. 3. Uživatel provedl a uložil změny. 4. Systém provede validaci povinných položek a data uloží, popř. vyhodí chybovou hlášku. V případě úspěchu, systém přejde na seznam předmětů (Formulář 021).
Seznam předmětů Seznam předmětů, které se na dané škole vyučují. Každý předmět musí být vypsán pod určitou charakteristikou podle ŠVP. Např. Charakteristika Matematika - předměty Matematika 1. až Matematika 9.
23
Analýza
Tok událostí
Formulář 021 - Hlavní cesta 1. Uživatel vybere z menu Seznam předmětů. 2. Systém zobrazí seznam všech předmětů.
Formulář 021 - Smazání předmětu - Alternativní cesta 1. Uživatel pod rolí Director vybere ze Seznamu předmětů předmět, který chce smazat. 2. Systém předmětu smaže. 2A. Systém uživateli nedovolí smazat předmět, pokud již byl tento předmět v minulosti vypsán.
Formulář 023 - Zobrazení detailu předmětu - Alternativní cesta 1. Uživatel zvolil ze Seznamu předmětů detail požadovaného předmětu (Formulář 021). 2. Systém nabídl uživateli detail předmětu.
24
Analýza
2.2.3. Studijní info uc Studij ní info Informační systém
Prohlížení a zápis absence žákem
Vytv oření a editace typy známky předmětu
Zápis známky z předmětu
Pupil (from Users)
Známky žáků v rámci předmětu Prospěch žáka
Celkov á absence žáka Teacher
Director Seznam v yučov aných předmětů
(from Users)
(from Users)
Prohlížení a zápis absence zaměstnancem UserManager (from Users)
Obrázek 4: UC Studijní info
Celková absence žáka Pohled na absenci žáka rozdělený na typ absence za obě pololetí ve školním roce. Tok událostí
Formulář 045 - Hlavní cesta 1. Uživatel v roli Pupil zvolí z menu Studijní info - Celková absence. 1A. Uživatel v roli Teacher, Director, UserManager zvolí přejde na Celkovou absenci stisknutím tlačítka na formuláři pro Prohlížení a zapsání absence zaměstnancem" (Formulář 044). 2. Systém nabídne zobrazení celkové absence za školní rok rozdělený do dvou
25
Analýza
Tok událostí
pololetí. Na formuláři se zobrazí součet za tyto druhy absencí: - Počet hodin zapsané absence - Počet hodin plánované absence - Počet omluvených hodin - Počet neomluvených hodin
Formulář 045 - Změna školního roku - Alternativní cesta 1. Uživatel zvolí ze seznamu požadovaný školní rok. 2. Systém zobrazí celkovou absenci pro vybraný školní rok.
Prohlížení a zápis absence zaměstnancem Zaměstnanec, resp. učitel, prohlíží a zapisuje absence žáka. Učiteli se zobrazí rozvrh žáka, ve kterém může učitel pro každý týden určit ke každé hodině absenci těchto typů: - přítomný - žák nemá absenci a účastnil se vyučování - zapsané - žák nebyl na hodině a absence je zapsaná, povětšinou se zapisuje na začátku hodiny, když se kontroluje docházka. - plánované - plánovaná absence do budoucnosti - omluvené - absence, kterou žák omluvil - neomluvené - absence, kterou žák neomluvil Učitel může libovolně měnit typ absence. Učitel může libovolně procházet absence v minulosti Tok událostí
Formulář 044 - Hlavní cesta 1. Uživatel zvolil z menu Studijní info - Moje třída. 2. Systém zobrazí uživateli rozvrh na aktuální týden. 3. Uživatel stisknutím tlačítka vybere typ absence, který chce zapsat - přítomný, zapsané, plánované, omluvené, neomluvené.
26
Analýza
Tok událostí
4. Sytém zvýrazní vybraný typ absence. 5. Uživatel vybere hodinu v rozvrhu a stisknutím tlačítka na hodinu zapíše absenci. 6. Systém zapíše absenci a nebo změní na jiný typ. 7. Uživatel krok opakuje krok 3 až do vyplnění požadované absence.
Formulář 044 - Změna školního roku a týdne - Alternativní cesta 1. Uživatel zvolil z menu Studijní info - Absence. 2. Systém zobrazí uživateli rozvrh na aktuální týden. 3. Uživatel se rozhodne změnit aktuální školní rok. Uživatel vybere požadovaný rok a stiskem tlačítka 'Změnit školní rok', tuto volbu odešle. 4. Systém zobrazí rozvrh pro vybraný školní rok a týden. 3A. Uživatel se rozhodne změnit týden ve školním roce. Uživatel vybere ze seznamu požadovaný týden v roce a stiskem tlačítka 'Změnit týden' tuto volbu odešle. 4A. Systém zobrazí rozvrh pro vybraný týden a školní rok.
Prohlížení a zápis absence žákem Uživatel s rolí Pupil smí prohlížet své absence na hodinách a plánovat nové absence do budoucnosti, popř. rušit absence, které jsou naplánovány v budoucnosti. Jakékoli záznamy v minulosti nesmí měnit. Tuhle možnost má pouze učitel. Tok událostí
Formulář 044 - Hlavní cesta 1. Uživatel zvolil z menu Studijní info - Absence. 2. Systém zobrazí uživateli rozvrh na aktuální týden. 3. Uživatel stisknutím tlačítka na hodinu v rozvrhu vybere hodinu plánované absence. 4. Systém zkontroluje zda je daná hodina v budoucnosti. Pokud ano, povolí naplánování absence, pokud ne, uživateli se zobrazí hláška o neúspěšném naplánování absence.
27
Analýza
Tok událostí
5. Uživatel krok opakuje krok 3 až do naplánování jeho celkové absence.
Formulář 044 - Změna školního roku a týdne - Alternativní cesta 1. Uživatel zvolil z menu Studijní info - Absence. 2. Systém zobrazí uživateli rozvrh na aktuální týden. 3. Uživatel se rozhodne změnit aktuální školní rok. Uživatel vybere požadovaný rok a stiskem tlačítka 'Změnit školní rok', tuto volbu odešle. 4. Systém zobrazí rozvrh pro vybraný školní rok a týden. 3A. Uživatel se rozhodne změnit týden ve školním roce. Uživatel vybere ze seznamu požadovaný týden v roce a stiskem tlačítka 'Změnit týden' tuto volbu odešle. 4A. Systém zobrazí rozvrh pro vybraný týden a školní rok.
Prospěch žáka Pohled na známky žáka za všechny jeho studované předměty rozdělené do typů známek pro předmět. Tok událostí
Formulář 052 - Hlavní cesta 1. Uživatel v roli Director a Teacher zvolí ze Seznamu žáků (Formulář 006) žáka, pro kterého chce zobrazit prospěch. 1B. Uživatel v roli Pupil zvolí z menu Studijní info - Prospěch. 2. Systém zobrazí seznam všech známek seřazených do typů známek a typy seřazené podle předmětů. Nad každou známkou je v tooltipu zobrazení času zapsání známky, kdo zapsal známku a text popisu. Př.: Předmět: Matematika Desetiminutovka 1, 2, 1
28
Analýza
Tok událostí
Zkoušení 2, 3 Předmět: Český jazyk Zkoušení 2, 5
Formulář 052 - Změna pololetí - Alternativní cesta 1. Uživatel zvolí ze seznamu všech pololetí žáka. 2. Systém zobrazí známky pro vybrané pololetí
Seznam vyučovaných předmětů Seznam předmětů, které učitel učí pro vybraný školní rok. Seznam existuje z důvodu toho, aby učitel mohl provádět operace nad předměty, které učí. - zobrazení seznamu žáků docházející na předmět - zobrazení a zápis známek žáků - definice druhů známek pro předmět. Tok událostí
Formulář 046 - Hlavní cesta 1. Uživatel zvolí z menu Studijní agenda - Zápis známek. 2. Systém zobrazí uživateli seznam předmětů pro daný školní rok.
Formulář 046 - Změna školního roku - Alternativní cesta 1. Uživatel zvolí ze seznamu požadovaný školní rok. 2. Systém zobrazí seznam předmětů pro vybraný školní rok.
Vytvoření a editace typy známky předmětu Každý učitel si může k jeho vyučovanému předmětu určit typ známky k rozlišení z čeho žák známku získal. Např.: zkoušení, desetiminutovka, čtvrtletní práce apod. Vytvoření alespoň jednoho typu je povinné, každá zapsaná známka musí být přiřazena k určitému typu. 29
Analýza
Tok událostí
Formulář 048 - Hlavní cesta 1. Uživatel stiskl ikonku seznam typů známek na seznamu vyučovaných předmětů (Formulář 046) . 2. Systém zobrazil seznam již vytvořených typů známek k předmětu.
Formulář 048 - Smazání typu známky - Alternativní cesta 1. Uživatel si vybere typ známky, který chce smazat a stiskne tlačítko smazat. 2. Systém zobrazí okno z potvrzením zda chceme opravdu typ známky smazat. 3. Uživatel zvolí ano. 4. Systém provede kontrolu, zda k typu známky již nejsou přiřazeny známky. Pokud nejsou, typ je smazán a zobrazena zpráva o úspěšném smazání, jinak se typ nesmaže a systém zobrazí chybovou hlášku. 3A. Uživatel zvolí ne. 4A. Systém okno zavře.
Formulář 049 - Vytvoření druhu známky - Hlavní cesta 1. Uživatel stiskem tlačítka 'Vytvořit druh známky' ze seznamu typů známek pro předmět (Formulář 048) přejde na formulář pro vytvoření nového typu. 2. Systém zobrazí detail typu známky. - Název - Popis 3. Uživatel vyplní formulář a stiskem tlačítka 'Vytvořit druh známky' vytvoří nový typ známky. 4. Systém typ vytvoří a přejde na stránku Seznamu typů známek pro předmět (Formulář 048)
Formulář 050 - Editace typu známky - Hlavní cesta
30
Analýza
Tok událostí
1. Uživatel zvolil ze seznamu typů známek pro předmět (Formulář 048), typ známky, kterou chce editovat. 2. Systém zobrazí detail typu známky: - Název - Popis 3. Uživatel provede změny a stiskem tlačítka uložit změny uloží změněné údaje. 4. Systém změny uloží a přejde na stránku Seznamu typů známek pro předmět (Formulář 048).
Zápis známky z předmětu Uživatel si prvně zobrazí předmět, ze kterého chce zapsat známku, vybere žáka ze seznamu žáků docházející na hodinu, žáka vybere a známku zapíše. Tok událostí
Formulář 047 - Seznam žáků docházející na hodinu - Hlavní cesta 1. Uživatel vybere hodinu z formuláře (Formulář 046), pro kterou chce zapsat známku a stiskne tlačítko pro seznam žáků. 2. Systém zobrazí seznam žáků docházejících na hodinu.
Formulář 051 - Zápis známky - Hlavní cesta 1. Uživatel vybere ze seznamu žáků docházející na hodinu žáka, kterému chce známku zapsat. (Formulář 047). 2. Systém zobrazí formulář pro zapsání známky: - Výběr pololetí školního. roku - Známka z číselníku GradeType - Druh známky - Popis k známce
31
Analýza
Tok událostí
Uživateli se také zobrazí seznam již obdržených známek žáka za vybraný předmět. 3. Uživatel vyplní formulář a stiskem tlačítka Zapsat známku, známku zapíše. 4. Systém data uloží do systému a uživateli zobrazí hlášku o správném uložení. Přejde na formulář Seznam žáků docházející na hodinu (Formulář 047).
Známky žáků v rámci předmětu Uživatel v roli Teacher musí mít přehled, které známky dostali žáci v rámci předmětu. Jedná se o seznam žáků docházející na předmět a jejich známek rozdělených podle typu známky. Tok událostí
Formulář 053 - Hlavní cesta 1. Uživatel Teacher zvolí ze Seznamu vyučovaných předmětů (Formulář 046) předmět, pro který chce zobrazit známky. 2. Systém zobrazí seznam všech žáků docházející na předmět a jejich známek seřazených do typů známek. Nad každou známkou je v tooltipu zobrazení času zapsání známky, kdo zapsal známku a text popisu. Př.: Žák: Jan Tomáš Desetiminutovka 1, 2. 1 Zkoušení 2, 3 Žák: Tomáš Martin Desetiminutovka 3, 2. 1 Zkoušení 5, 3
Formulář 053 - Změna pololetí - Alternativní cesta 1. Uživatel vybere pololetí školního roku - 1. pololetí, 2. pololetí. 2. Systém zobrazí známky pro dané pololetí.
32
Analýza
2.2.4. Uživatelé uc Uživ atelé Informační systém
Změna detailu žáka
Můj profil
User (from Users)
Třída třídního učitele
Pov olení a zakázání uživ atelského účtu
Seznam zaměstanců
Teacher (from Users) «extend»
Změna detailu zaměstnance
«extend»
Vygenerov ání nov ého hesla
Seznam žaků Director (from Users)
Založení nov ého zaměstnance UserManager (from Users)
Založení nov ého žáka
Obrázek 5: UC Uživatelé
Můj profil Pohled zobrazení detailních informací o uživateli, které jsou uloženy v systému, bez možnosti editace. Tok událostí
Formulář 005 - Hlavní cesta 1. Uživatel vybere z menu položku můj profil.
33
Analýza
Tok událostí
2. Systém zobrazí pouze pro čtení informace zanesené do systému o daném uživateli.
Seznam zaměstnanců Tento UC pokrývá zobrazení seznamu zaměstnanců. Uživateli se zobrazí všichni uživatelé/zaměstnanci, kteří jsou zaregistrování v systému, i z minulosti. Tok událostí
Formulář 007 - Hlavní cesta 1. Uživatel zvolí z menu Lidé - Seznam zaměstnanců. 2. Systém zobrazí seznam zaměstnanců, kteří jsou v systému zaregistrovaní. Filtr bude implicitně nastaven tak, aby zobrazil pouze aktivní zaměstnance.
Třída třídního učitele Tento UC pokrývá zobrazení seznamu žáků pro roli Teacher a Director. Učiteli se zobrazí jen žáci třídy, kde je třídním učitelem. Řediteli se zobrazí všichni žáci, kteří na škole studují a nebo studovali. Tok událostí
Formulář 006 - Hlavní cesta 1. Uživatel zvolí z menu Studijní agenda - Moje třída. 2. Systém zobrazí seznam žáků třídy, kde je uživatel třídním učitelem.
Povolení a zakázání uživatelského účtu Uživatelé pod rolí Director a UserManager mají možnost měnit povolení přístupu do systému. Tato volba je přístupna z detailu uživatele (Formulář 008 a Formulář 041) a je vyvolána stiskem tlačítka na detailu. Vždy se zobrazí pouze jedna volba Zakázat a nebo Povolit v závislosti na aktuálním stavu.
34
Analýza
Seznam žáků Tento UC pokrývá zobrazení seznamu žáků pro roli Teacher a Director. Učiteli se zobrazí jen žáci třídy, kde je třídním učitelem. Řediteli se zobrazí všichni žáci, kteří na škole studují a nebo studovali. Tok událostí
Formulář 006 - Hlavní cesta 1. Uživatel zvolí z menu Lidé - Seznam žáků. 2. Systém zobrazí seznam žáků, kteří jsou v systému zaregistrovaní, tzn. kteří studovali a nyní studují. Filtr bude implicitně nastaven tak, aby zobrazil pouze žáky, kteří aktuálně studují. Uživatel tento filtr může změnit.
Vygenerování nového hesla V případě zapomenutého hesla, může oprávněný uživatel vygenerovat uživateli heslo nové. Toto heslo je odesláno na email uživatele, který tuto změnu provedl a zobrazeno taktéž na stránce. Učitel může generovat nové heslo pouze žákům, ke kterým má vztah třídní učitel a toto heslo je povinen předat uživateli. Volba je zobrazena v rámci tlačítka na formuláři detailu uživatele (Formulář 008, Formulář 041). Tok událostí
Vygenerování nového hesla - Hlavní cesta 1. Uživatel zvolí volbu Vygenerovat nové heslo z Formuláře 008 a nebo z Formuláře 041. 2. Systém změní uživateli heslo a toto heslo zašle na email uživatele, který jej vygeneroval.
Založení nového zaměstnance Uživatel přihlášený pod rolí Director a nebo UserManager smí vkládat do systému nové zaměstnance, resp. uživatele. S každým vytvořením zaměstnance se v systému vytvoří i uživatelský účet pro přístup. Uživatelské jméno a heslo je vygenerováno systémem a zasláno na email zakládajícího uživatele, který je na toto upozorněn i v rámci odpovědi aplikace.
35
Analýza
Uživatel je poté povinen přihlašovací údaje předat zodpovědné osobě, která bude mít do systému přístup. Tok událostí
Formulář 042 - Hlavní cesta 1. Uživatel zvolil z menu volbu Lidé - Nový zaměstnanec 2. Systém zobrazí formulář pro založení nového zaměstnance 3. Uživatel vyplní požadované údaje a pokusí se jej uložit. 4. Systém provede validaci vložených dat a případně uživatele vyzve k opravě. Pokud je vše v pořádku, zadané údaje uloží, vygeneruje uživatelské jméno, které je složeno z prvního znaku jména a pěti znaků příjmení, popř. číslovaného postfixu, pokud již uživatelské jméno existuje. Jestliže nelze vygenerovat už. jméno o délce 6 znaků z důvodu krátkého jména a příjmení, použije se tedy dostupný počet znaků. Systém vygeneruje také heslo složené z číslic a písmen. Vygenerované informace vypíše na obrazovku a odešle na email zadávajícího uživatele.
Založení nového žáka Uživatel přihlášený pod rolí Director a nebo UserManager smí vkládat do systému nové žáky, resp. uživatele. S každým vytvořením žáka se v systému vytvoří i uživatelský účet pro přístup pod rolí Pupil. Uživatelské jméno a heslo je vygenerováno systémem a zasláno na email zakládajícího uživatele, který je na toto upozorněn i v rámci odpovědi aplikace. Uživatel je poté povinen přihlašovací údaje předat zodpovědné osobě, která bude mít do systému přístup. Tok událostí
Formulář 043 - Hlavní cesta 1. Uživatel zvolil z menu volbu Lidé - Nový žák. 2. Systém zobrazí formulář pro založení nového žáka. 3. Uživatel vyplní požadované údaje a pokusí se jej uložit. 4. Systém provede validaci vložených dat a případně uživatele vyzve k opravě. Pokud je vše v pořádku, zadané údaje uloží, vygeneruje uživatelské jméno, které je složeno z prvního znaku jméno a 5 znaků příjmení, popř. číslovaného postfixu, pokud
36
Analýza
Tok událostí
již uživatelské jméno existuje. Jestliže nelze vygenerovat už. jméno o délce 6 znaků z důvodu krátkého jména, příjmení, použije se tedy dostupný počet znaků. Systém vygeneruje také heslo složené z číslic a písmen. Vygenerované informace vypíše na obrazovku a odešle na email zadávajícího uživatele.
Změna detailu žáka Změna vedených informací o žáku. Tok událostí
Formulář 041 - Hlavní cesta 1. Uživatel zvolí žáka, kterému chce změnit osobní informace ze Seznamu žáků (Formulář 006). 2. Systém zobrazí detail žáka. 3. Uživatel provede požadované změny a stiskne tlačítko pro uložení. 4. Systém provede validaci vložených dat a změny uloží. V případě problému, zobrazí uživateli podrobnou hlášku. V případě úspěšného uložení, bude informovat o úspěšném uložení.
37
Analýza
2.2.5. Zprávy uc Zpráv y Informační systém
Poslání nov é zpráv y
User
Seznam přij atých zpráv
(from Users)
Detail přij até zpráv y
Obrázek 6: UC Zprávy
Poslání nové zprávy Jakýkoli uživatel je oprávněn posílat zprávy kterémukoli uživateli. Posílat zprávy lze jen aktivním uživatelům. Tok událostí
Formulář 003 - Hlavní cesta 1. Uživatel zvolil z menu 'Pošli novou zprávu'. 2. Systém nabídne formulář pro novou zprávu. 3. Uživatel vyplní Příjemce zprávy, vybere ze seznamu popup okna (Formulář 004), Předmět zprávy a Tělo zprávy a uživatel stiskne tlačítko odeslat. 4. Systém zkontroluje, zda uživatel vyplnil příjemce a Předmět zprávy a zprávu uloží.
Formulář 004 - Hlavní cesta 1. Uživatel zvolil na formuláři 'Vytvořit novou zprávu' (Formulář 003) volbu Vybrat příjemce. 2. Systém otevře nové popup okno se seznamem osob. Zobrazí pouze aktivní uživatele.
38
Analýza
Tok událostí
3. Kliknutím na Uživatele vybere uživatele, kterému chce zprávu poslat. 4. Systém uzavře popup okno a vyplní příjemce v rodičovském okně.
Seznam přijatých zpráv Uživatelé mezi sebou posílají zprávy. Jedná se o posílání v rámci systému, nikoliv posílání emailů. Tok událostí
Formulář 001 - Hlavní cesta 1. Uživatel vybere z menu seznam přijatých zpráv. 2. Systém nabídne uživateli seznam přijatých zpráv. V záhlaví seznamu nabídne seznam kategorií zpráv.
Formulář 001 - Smazání přijaté zprávy - Alternativní cesta 1. Uživatel vybere ze seznamu zprávu, kterou chce smazat. 2. Systém se zeptá uživatele, zda chce opravdu zprávu smazat. 3. Uživatel potvrdí smazání. 4. Systém zprávu smaže. 3A. Uživatel volbu odmítne. 4A. Systém neprovede nic.
Formulář 001 - Změna kategorie zpráv - Alternativní cesta 1. Uživatel stiskne tlačítko kategorie, kterou chce zobrazit. 2. Systém nabídne uživateli seznam zpráv dané kategorie.
Detail přijaté zprávy Uživatel může přijatou zprávu Smazat, Přeřadit do jiné skupiny zpráv (složky) a na danou zprávu odpovědět.
39
Analýza
Tok událostí
Formulář 002 - Hlavní cesta 1. Uživatel stiskne tlačítko na jménu uživatele na Seznamu přijatých zpráv (Formulář 001). 2. Systém zobrazí detail dané zprávy a zapíše do databáze čas přečtení zprávy.
Formulář 002 - Smazání zprávy - Alternativní cesta 1. Uživatel stiskne tlačítko pro smazání zprávy. 2. Systém se zeptá uživatele, zda chce opravdu zprávu smazat. 3. Uživatel potvrdí smazání. 4. Systém zprávu smaže. 3A. Uživatel volbu odmítne. 4A. Systém neprovede nic.
Formulář 003 - Odpovědět na zprávu - Alternativní cesta 1. Uživatel z detailu přijaté zprávy stiskne tlačítko 'Odpovědět'. 2. Systém zobrazí detail zprávy: Předvyplní příjemce odesílatelem původní zprávy, Předmět stylem 'RE: '+ předmět minulé zprávy Tělo zprávy stylem: '-----' Odesílatel napsal(a) : tělo původní zprávy 3. Uživatel doplní tělo zprávy svou zprávou a stiskne tlačítko odeslat. 3A. Uživatel doplní tělo zprávy svou zprávou a změní odesílatele( tím je docíleno přeposlání zprávy) a stiskne tlačítko odeslat.
40
Analýza
2.3. Diagramy tříd Diagramy tříd ve fázi analýzy jsou prvním návrhem tříd a jejich vzájemných vazeb. Hlavní důvod pro vytvoření těchto diagramů je, že poskytují abstraktnější pohled na modelovaný systém. Díky absenci tříd, které jsou potřeba pro vlastní implementaci a nesouvisí přímo s modelovaným systémem (třídy nutné pro spojení s databází, třídy použitých knihoven apod.), je tento pohled více srozumitelnější pro další analýzu. Model vytvořený v této fázi by měl být nezávislý na jazyku, ve kterém bude systém implementován. Celý IS je složen z několika balíčků obsahující jednotlivé třídy. Závislostí jednotlivých balíčků ukazuje obrázek zobrazený níže. pkg Package Model Resources + Article
Communication
«use»
+ ArticleType
+ Message
+ Building
+ MessageGroup
+ Room + School
«use»
«use» Business
Study
+ GeneralRegistry
+ Absence
+ GeneralRegistryT ype
«use»
+ SystemParameter
«use»
+ AnnouncedSubject + BindPupilAndClass + BindPupilAndLesson + Certificate + CertificateMarks
«use»
+ Class
«use»
+ InscribeInSchoolYear Subj ect Users + Employee + Person
+ Lesson + LessonTime
+ Subject
+ Marks
+ SubjectCharacteristic «use»
+ TeacherSubject
+ SchoolYear
+ Role + User
+ MarkType + SchoolHalfYear
+ Pupil «use»
2.3.1. Balíček Business Balíček obsahuje třídy pro ukládání systémových parametrů, které definují chování IS. Dále obsahuje třídu, kde jsou definovány typy obecných číselníků a třídu pro definici hodnot číselníků. Každý obecný číselník je zařazen pod typ číselníků.
41
Analýza
pkg Business
SystemParameter
GeneralRegistry
GeneralRegistryType +grT ype 1
0..*
Obrázek 7: Diagram tříd - Business
2.3.2. Balíček Communication Balíček obsahuje třídy pro ukládání poslaných zpráv a rozdělení zpráv do skupin pro každého uživatele. U uložených zpráv se ukládá odesílatel a příjemce zprávy. pkg Communication
+recipent
Message 0..*
Users::Person
1 +sender
0..*
1
0..*
+messageGroup
1
1
MessageGroup 1..*
Obrázek 8: Diagram tříd – Communication
2.3.3. Balíček Resources Balíček obsahuje třídy pro správu zdrojů školy jako třídy pro seznam budov školy, dále třídy pro seznam místností v budově a seznam pomůcek zařazených do tříd rozdělených podle typů, které jsou definovány třídou ArticleType.
42
Analýza
pkg Resources
Building
0..* +building
1
+school
1
0..* School Room
+room
1
0..* Article
+articleType 0..*
ArticleType
1
Obrázek 9: Diagram tříd – Resources
2.3.4. Balíček Study Balíček study obsahuje třídy pro evidenci studijních výsledků žáků za školní rok, resp. za pololetí, jako známky, omluvené a neomluvené nepřítomnosti. V rámci tohoto balíčku ukládáme vytvořený a naplánovaný rozvrh pro jednotlivé roky, vypsané předměty, úvazky učitelů, docházející žáky na předměty a třídy včetně třídních učitelů.
43
Analýza
pkg Study
Certificate
CertificateMarks
+certificate 1
1..*
+schoolHalfYear 0..*
Subj ect::Subj ect
SchoolHalfYear
1
0..*
+subject
2
Class
+schoolYear
+schoolClass
+schoolYear
1
0..* +schoolClass
1
1
SchoolYear
1
1
1 +schoolYear
InscribeInSchoolYear
+schoolYear 0..*
1
0..*
0..* 0..* +teacher
BindPupilAndClass
1
AnnouncedSubj ect
Person Users::Employee
0..*
0..*
BindPupilAndLesson 1 +announcedSubject
0..*
+teacher +lesson
0..*
0..*
1
0..*
MarkType +lesson 1 0..*
1 Absence
+markType
Lesson 0..*
+lesson
1 0..*
1 +lesson
1
0..* 0..* 0..*
+pupil +pupil
Marks
1+pupil 1
LessonTime +room
Person
1 +pupil
Users::Pupil
0..*
Resources::Room
1
1 +pupil 0..*
1
Obrázek 10: Diagram tříd - Study
2.3.5. Balíček Subject Balíček Subject slouží pro udržování informací o studijním plánu pro celou školní docházku. Pro každý okruh učiva je vytvořena charakteristika předmětů, která je poté rozdělena a definována předměty, které se mohou na škole vyučovat. Dle povahy charakteristiky a nebo předmětu je určeno, zda tímto předmětem musí nebo nemusí projít každý žák.
44
Analýza
pkg Subj ect
Subj ect
+subjectCharacteristic 0..*
+subject
Subj ectCharacteristic
1
1
0..* TeacherSubj ect
Obrázek 11: Diagram tříd - Subject
2.3.6. Balíček Users Balíček Users udržuje informace o uživatelích, kteří mají a nebo měli v minulosti přístup do IS a rolích, které identifikují typ uživatele. pkg Users
Person
User
+person 1
1
+user
0
1..* Employee
Pupil
Role
Obrázek 12: Diagram tříd - Users
2.4. Diagram aktivit Diagram aktivit je používám v UML k zobrazení sekvence aktivit. Diagram aktivit ukazuje workflow určité části systému od počátku do konce popisující mnoho způsobů, jež jsou zobrazeny jako cesty systému, které existují ve vývoji událostí obsažených v aktivit. Mohou být použity k upřesnění situací pro paralelní zpracování některých aktivit. Aktivity diagramy jsou užitečné pro modelování pracovních postupů.
45
Analýza
2.5. Vytvoření školního roku Tento aktivity diagram popisuje pracovní postup vytvoření školního roku. Jedná se o znázornění sekvencí, které musí uživatel provést, aby školní rok mohl být vytvořen. Aktivity jsou pojmenovány jako případy užití, které svými scénáři, resp. sekvenčními diagramy tuto aktivitu popisují. To znamená, že nejprve musíme vytvořit instanci nového školního roku (Seznam a založení školního roku) a poté můžeme vypisovat předměty pro akademický rok a nebo vytvářet úvazky učitelů, případně založit třídy. K založení nových vyučovacích hodin můžeme přejít až po splnění předchozích třech aktivit. Abychom mohli přistoupit k samotnému vytváření rozvrhu, je potřeba vytvořit vyučovací hodiny a posléze můžeme rozvrh uvolnit k používání. act Activ ity diagram
Vypsání předmětů pro akademický rok
Start
Seznam a založení v yučov acích hodin
Seznam a založení nov ého školního roku Vytv ořit ův azek pro učitele pro školní rok
Založení a editace tříd pro akademický školní rok
Uv olnění rozv rhu
Tv orba rozv rhu
FlowFinal
Obrázek 13: AD - Vytvoření školního roku
2.6. Sekvenční diagramy Sekvenční diagramy zobrazují výměny zpráv mezi vybranými objekty pro danou situaci, resp. případ užití, s důrazem na časovou posloupnost událostí. . Velká část případů užití(dále UC) je zobrazení seznamu a práce s tímto seznamem. U těchto UC není nutné diagramy pro popis vytvářet a jsou jasně definované scénáři v jednotlivých UC diagramech. Následující sekvenční diagramy postupně ukazují.realizaci Vytvoření nového školního roku UC.
2.6.1. Založení nového školního roku Tento sekvenční diagram doplňuje a popisuje UC Seznam a založení školního roku.
46
Analýza
sd Seznam a založení šk. roku study::SchoolYear
study::SchoolHalfYear
Director
Vytvoř školní rok()
Vytvoř 1. pololetí()
Vytvoř 2. pololetí()
return()
(from Users)
Obrázek 14: Sekvenční diagram - Založení nového školního roku.
2.6.2. Vypsání předmětů pro akademický rok Tento sekvenční diagram doplňuje a popisuje UC Vypsání předmětů pro akademický rok. sd Vypsání předmětů pro akademický rok subject::Subject
study::AnnouncedSubject
Director
Vrať seznam všech předmětů()
Seznam předmětů()
loop počet předmětů Vypiš předmět pro školní rok()
Urči dotaci hodin předmětu() return()
(from Users)
Obrázek 15: Sekvenční diagram – Vypsání předmětů pro akademický rok
47
Analýza
2.6.3. Vytvořit úvazek pro učitele pro školní rok Tento sekvenční diagram doplňuje a popisuje UC Vytvořit úvazek učitele pro školní rok. sd Vytv ořit úv azek učitele pro školní rok users::Employee
study::InscribeInSchoolYear
Director
Vrať seznam všech aktivních učitelů()
Seznam učitelů()
loop počet učitelů Vytvoření úvazku učittele pro školní rok()
return()
(from Users)
Obrázek 16: Sekvenční diagram - Vytvořit úvazek pro učitele pro školní rok
2.6.4. Založení tříd pro akademický školní rok Tento sekvenční diagram doplňuje a popisuje UC Založení a editace tříd pro akademický školní rok.
48
Analýza
sd Založení a editace tříd pro akademický školní rok study::Class
study::BindPupilAndClass
Director
loop počet tříd Vytvoření třídy pro školní rok()
loop počet žáků
Přiřazení třídního uč itele()
Postoupení žáka do dalšího ročníku()
return()
Přiřazení žáků po jednom()
return()
return()
(from Users)
Obrázek 17: Sekvenční diagram - Založení tříd pro akademický školní rok
2.6.5. Založení vyučovacích hodin Tento sekvenční diagram doplňuje a popisuje UC Seznam a založení vyučovacích hodin.
49
Analýza
sd Seznam a založení v yučov acích hodin study::Lesson Director
loop počet v yuč. hodin Vytvoření nové vyuč ovací hodiny()
Přiřadit uč itele k hodině() return()
(from Users)
Obrázek 18: Sekvenční diagram - Založení vyučovacích hodin
2.6.6. Tvorba rozvrhu Tento sekvenční diagram doplňuje a popisuje UC Tvorba rozvrhu.
50
Analýza
sd Tvorba rozvrhu study::LessonTime
study::Lesson
resources::room
study::InscribeInSchoolYear
Director
Vrať seznam nepřiřazených hodin()
Seznam nepřiřazených hodin()
loop počet v olných hodin Zapiš hodinu()
Vrať seznam vypsaných učitelů()
Seznam učitelů()
Vrať seznam učeben()
Seznam uč eben()
Urči čas vyučování()
return()
(from Users)
Obrázek 19: Sekvenční diagram - Tvorba rozvrhu
2.7. Slovníček pojmů Slovníček pojmů slouží především k upřesnění významu pojmů používaných v analýze tak, aby použitým termínům rozuměli všichni, kdo se projektu nějakým způsobem účastní. Termín
Popis
1. pololetí
Pololetí školního roku od 1.září do 31. ledna
2. pololetí
Pololetí školního roku od 1.února do 30.června
Absence
Nepřítomnost žáka.
Akademický rok
viz. Školní rok.
Druh známky
Charakteristika předmětu
Určuje
za
co
byla
známka
získána,
např.
zkoušení,
desetiminutovka. Vzdělávací oblast, která je tvořena předměty po celých 9 let školní docházky.
51
Analýza
Neomluvená absence
Nepřítomnost, která nebyla řádně omluvena.
Omluvená absence
Nepřítomnost, která byla řádně omluvena.
Plánovaná absence
Nepřítomnost, kterou žák omlouvá do budoucnosti.
Silné heslo Školní docházka Školní rok
Různá kombinace velkých a malých písmen a číslic, nesmí být shodné s uživatelským jménem 9-ti letá povinná školní docházka. Časový úsek od 1.září do 30.června následujícího kalendářního roku.
ŠVP
Školní vzdělávací program
Úvazek učitele
Týdenní úvazek učitele, tj. počet hodin, které učitel učí za týden.
Vyučovací hodina
Časový úsek dlouhý 45 min během, které se žáci učí.
52
Návrh
3. Návrh Pro implementaci byla vybrána vícevrstvá architektura, kterou popisuje níže uvedený Diagram Component. Tato aplikace je postavena na principu třívrstvé architektury. Model třívrstvé architektury je pokračovatelem dvouvrstvé architektury. Každá vrstva poskytuje navenek určité rozhraní, přes které s ní může druhá vrstva komunikovat. Není tedy žádný problém např. změnit druh databáze. Hlavní rozdíl mezi dvouvrstvou a třívrstvou architekturou je, že klientovi není dovoleno přímo komunikovat s datovou vrstvou. Použití třívrstvé architektury neznamená, že pro každou vrstvu musí být vyhrazen samostatný počítač. Není totiž vůbec výjimkou, kdy jsou všechny tři vrstvy provozovány na jednom počítači. Model třívrstvé architektury rozlišuje tyto vrstvy: •
Prezentační vrstva – obsahuje funkce uživatelského rozhraní. Obvykle existuje několik prezentačních vrstev pro různé druhy zařízení, platformy a prostředí
•
Aplikační vrstva – tvoří prostředníka mezi vrstvou prezentační a vrstvou datovou . Obsahuje tzv. business logiku aplikace. V této vrstvě dochází k transformací dat mezi vstupně / výstupními požadavky a datovou vrstvou.
•
Datová vrstva – obsahuje funkce pro přístup k informacím v datovém úložišti
Ve složitějších aplikacích je možné definovat i více než tři vrstvy. Vždy je ale od sebe odstíněna prezentační vrstva od vrstvy datové. Příkladem může být např. vrstva pro kontrolu přístupových práv a zabezpečení, vrstva pro správu systémových prostředků, apod. Na výše zmíněné vrstvy se dá ale také nahlížet jako na podvrstvy aplikační vrstvy z třívrstvé architektury, ale také jako na samostatné vrstvy. Záleží pouze na úhlu pohledu.
3.1. Návrh architektury IS Pro každou třídu z Diagramu byla vytvořena třída BO (Business Objektů), jejichž atributu mapují jedna ku jedné tabulku, která této třídě odpovídá. Vytváření mapování objektů je pomocí XDoclet, kterým jsou taktéž generovány mapovací soubory pro Hibernate. Ke každé třídě BO je vytvořena jedna třída DAO (Data Access Object). Tato implementace odpovídá návrhovému vzoru pro J2EE aplikace od Sun Microsystems1. Každé DAO má předka, který obsahuje metody pro ukládání BO (save), pro dotažení celého objektu pomocí ID záznamu (getInfo) a metodu pro
1
Více na adrese http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
53
Návrh
smazání podle ID záznamu (delete). DAO třídy také obsahují metody pro selecty objektů z DB, které již nejsou pevně definované a jejich názvy se standardně odvíjí od funkce, kterou implementují. Pro každou DAO třídu je vytvořena třída Service, která je v aplikačním kontextu definována jako Springovská transakční beana. Přímo v Service je možno volat metody DAO tříd, které patří pod stejný balíček jako Service. Pokud bychom potřebovali volat metody DAO z jiného balíčku, musíme toto volání vykonat přes volání metody dané příbuzné Service. Blíže popisuje Obrázek 20: Příklad realizace vazeb mezi třídami IS . Pro implementaci webového rozhraní byly použity JSF. Tudíž pro každý formulář byla vytvořena ManagedBean, ze které jsou posléze volány metody Service tříd, nelze volat přímo metody DAO objektů. Nové instance objektů jsou vytvářeny voláním příslušných metod na třídách Service.
54
Návrh
class J2EE pattern v iew
IPersonBo
IMessageBo
com.digi.ischosys.users.bo:: PersonBoImpl
com.digi.ischosys.communication.bo:: MessageBoImpl
-
-
id: Long
-
id: Long
«property get» + getId() : Long
«property get» + getId() : Long
«property set» + setId(Long) : void
«property set» + setId(Long) : void
com.digi.ischosys.w ebapp.action:: MessageListManagedBean messageService: IMessageService
«property set» + setMessageService(IMessageService) : void «property get» + getMessageService() : IMessageService
IMessageGroupBo com.digi.ischosys.communication.bo:: MessageGroupBoImpl -
id: Long
-messageService
«property get» + getId() : Long
«interface» com.digi.ischosys.communication.service::IMessageService
«property set» + setId(Long) : void
«interface» com.digi.ischosys.communication.dao::IMessageGroupDao + + +
«interface» com.digi.ischosys.users.service::IPersonService
getInfo(Long) : IMessageGroupBo save(IMessageGroupBo) : void delete(Long) : void -messageGroupDao
com.digi.ischosys.communication.dao:: MessageGroupDaoHibenate + + +
getInfo(Long) : IMessageGroupBo delete(Long) : void save(IMessageGroupBo) : void
-messageDao
-personService
com.digi.ischosys.communication.serv ice:: MessageServ iceImpl -
personDao: IPersonDao
«property set» + setPersonDao(IPersonDao) : void «property get» + getPersonDao() : IPersonDao
«property set» + setMessageDao(IMessageDao) : void + setMessageGroupDao(IMessageGroupDao) : void + setPersonService(IPersonService) : void
+personDao «interface» com.digi.ischosys.users.dao::IPersonDao
getInfo(Long) : IMessageBo save(IMessageBo) : void delete(Long) : void
+ + +
com.digi.ischosys.communication.dao:: MessageDaoHibernate + + +
-
«property get» + getMessageDao() : IMessageDao + getMessageGroupDao() : IMessageGroupDao + getPersonService() : IPersonService
«interface» com.digi.ischosys.communication.dao::IMessageDao + + +
com.digi.ischosys.users.serv ice:: PersonServ iceImpl
messageDao: IMessageDao messageGroupDao: IMessageGroupDao personService: IPersonService
getInfo(Long) : IPersonBo save(IPersonBo) : void delete(Long) : void
com.digi.ischosys.users.dao:: PersonDaoHibernate
getInfo(Long) : IMessageBo delete(Long) : void save(IMessageBo) : void
+ + +
Obrázek 20: Příklad realizace vazeb mezi třídami IS
55
getInfo(Long) : IPersonBo delete(Long) : void save(IPersonBo) : void
Návrh
3.2. Diagram nasazení (Deployment diagram) IS je vyvíjen a bude provozován na open source databázi PostgreSQL2. Pro běh aplikace je potřebný aplikační server. Plnohodnotné aplikační servery poskytují velké množství funkcionality, kterou náš systém nevyužije, a proto si vystačíme se serverem Apache Tomcat 5.0.283. Na produkčním prostředí kvůli zvýšení bezpečnosti předsadíme Apache Web Server 2.24. Hlavním důvodem k výběru těchto řešení je, že všechny tyto produkty jsou vydávány pod GPL či BSD licencí a tudíž je jejich použití zdarma. V případě potřeby zvýšení výkonu lze toto řešení lehce použít pro rozdělení zátěže mezi více serverů tím, že Apache Web Server použijeme jako loadbalancer a Apache Tomcat nainstalujeme na jednotlivé servery. deployment Deployment diagram «execution environment» Client:Personal Computer
Monitor
Web brow ser
Klávesnice/Myš User (from Users) Http Request
Http Response
Apache Web Serv er
Http Request
Http Response
J2EE Serv er
Apache Tomcat Database serv er
Postgre SQL
JDBC Connection
IS Application
Obrázek 21: Diagram nasazení
2
Dostupné na adrese http://www.postgresql.org/
3
Dostupné na adrese http://tomcat.apache.org/
4
Dostupné na adrese http://httpd.apache.org/
56
Návrh
3.3. Diagram komponent Pro realizaci byly vybrány open source frameworky. O komunikaci s perzistentní vrstvou se stará Hibernate5. Implementaci vrstvy aplikační logiky – Spring framework6. Acegi Security je použit pro autentifikaci a autorizaci7. Pro prezentační vrstvu byly vybrány Java Server Faces (JSF)8. cmp Component Model Client
Http request
IS Application Authorization
Acegi Security
Request
Jav a Serv er Faces
Invoke
Spring framew ork
Open transaction
Persistent layer
JDBC Connection
Translate
Hibernate
Sql query
Database Serv er
Obrázek 22: Diagram komponent
Důvodem výběru Hibernate je hlavně jeho praktická zkušenosti s tímto systémem a značná oblíbenost v Java světě. Ačkoliv tento systém není “papírovým” standardem, je za standard považován a uznáván a je ověřenou technologií. Pro použití Hibernate mluví také velmi dobrá
5 6 7 8
Dostupné na adrese http://hibernate.org/ Dostupné na adrese http://www.springframework.org/ Dostupné na adrese http://www.acegisecurity.org/ Dostupné na adrese http://myfaces.org/
57
Návrh
podpora v aplikačním frameworku Spring, který je použit pro aplikační vrstvu a byla jasnou volbou. Jedná se o široce používanou technologii při vývoji J2EE aplikací, odladěnou a prověřenou časem. Použití EJB je podmíněno použitím plnohodnotného aplikačního serveru, což nevyhovuje požadavkům. JSF jsem zvolil z důvodu jeho velmi dobré znalosti a také díky jeho architektuře, možnosti znovupoužití kódu napříč celou aplikací. Společně s JSF jsem použil knihovnu RichFaces9 umožňující použití AJAXu.
3.4. Platform Specific Model (PSM) Balíčky mapovacích tříd persistentních objektů. Třídy odpovídají tabulkám v databázi. Balíček Business obsahuje třídy pokrývající nastavení systému jako systémové parametry a obecné číselníky. Balíček Communication ukládá komunikaci uživatelů a zařazení zpráv do skupin. Balíček Resources se plní při instalaci IS a obsahuje „nastavení“ školy, tj. definici místností a budov školy. Balíček Study pokrývá informaci o celém studiu žáka(nepřítomnosti, prospěchu, odstudovaných předmětech), nastavení školního roku, definici závazků učitelů. V balíčku Subject najdeme záznamy o ŠVP – předmětech a jejich charakteristikách definované ředitelem školy. V balíčku Users jsou umístěny tabulky držící informaci o aktuálních uživatelích, jejich rolích a účtech.
3.4.1. Balíček Business Balíček obsahuje třídy pro ukládání systémových parametrů, které definují chování IS. Dále obsahuje třídu, kde jsou definovány typy obecných číselníků a třídu pro definici hodnot číselníků. Každý obecný číselník je zařazen pod typ číselníků.
9
Dostupné na adrese http://www.jboss.org/jbossrichfaces/
58
Návrh
class com.digi.ischosys.business.bo.impl IdentifiedBo ISystemParameterBo SystemParameterBoImpl «column» - active: Boolean - name: String - value: String
AuditedObject IGeneralRegistryBo
IdentifiedBo IGeneralRegistryTypeBo
GeneralRegistryBoImpl
GeneralRegistryTypeBoImpl +grType «column» - code: String - description: String - editable: Boolean - name: String
1
+id - code: String «column» 0..* - active: Boolean - description: String - grType: IGeneralRegistryTypeBo - name: String - special1: String
Obrázek 23: Balíček tříd Business
3.4.2. Balíček Communication Balíček obsahuje třídy pro ukládání poslaných zpráv a rozdělení zpráv do skupin pro každého uživatele. U uložených zpráv se ukládá odesílatel a příjemce zprávy. class com.digi.ischosys.communication.bo.impl IdentifiedBo IMessageGroupBo MessageGroupBoImpl «column» - name: String - person: IPersonBo +messageGroup
0..1
* IdentifiedBo IMessageBo MessageBoImpl «column» - body: String - messageGroup: IMessageGroupBo - readDate: Calendar - readed: Boolean - recipent: IPersonBo - sendDate: Calendar - sender: IPersonBo - subject: String
Obrázek 24: Balíček tříd Communication
59
Návrh
3.4.3. Balíček Resources Balíček obsahuje třídy pro správu zdrojů školy jako třídy pro seznam budov školy, dále třídy pro seznam místností v budově a seznam pomůcek zařazených do tříd rozdělených podle typů, které jsou definovány třídou ArticleType. class com.digi.ischosys.resources.bo.impl IdentifiedBo IBuildingBo BuildingBoImpl «column» - name: String - school: ISchoolBo - street: String - zipcode: String - town: String +building
+id *
1
+id *
+school
1
IdentifiedBo IRoomBo
IdentifiedBo ISchoolBo
RoomBoImpl
SchoolBoImpl
«column» - identifier: String - building: IBuildingBo - description: String - roomtype: IGeneralRegistryBo +room
1
+id
*
«column» - name: String - street: String - zipcode: String - town: String
AuditedObject IArticleBo
IdentifiedBo IArticleTypeBo
ArticleBoImpl +id «column» - serialCode: String - room: IRoomBo - description: String - articletype: IArticleTypeBo
*
ArticleTypeBoImpl
+articletype
«column» 1 - code: String - name: String - description: String
Obrázek 25: Balíček tříd Resources
3.4.4. Balíček Study Balíček study obsahuje třídy pro evidenci studijních výsledků žáků za školní rok, resp. za pololetí, jako známky, omluvené a neomluvené nepřítomnosti. V rámci tohoto balíčku ukládáme vytvořený a naplánovaný rozvrh pro jednotlivé roky, vypsané předměty, úvazky učitelů, docházející žáky na předměty a třídy včetně třídních učitelů.
60
Návrh
class com.digi.ischosys.study AuditedObject ICertificateMarksBo
impl::SchoolHalfYearBoImpl
impl::CertificateBoImpl 1
«column» - schoolYear: ISchool YearBo - pupi l: IPupi lBo
AuditedObject ISchoolHalfYearBo
impl::CertificateMarksBoImpl
AuditedObject ICerti ficateBo
«col umn» - school HalfYear: ISchoolHalfYearBo 1..* - lesson: ILessonBo - certificate: ICerti ficateBo - mark: IGeneralRegi stryBo
*
1 «column» - hal fyearType: IGeneralRegistryBo - schoolYear: ISchoolYearBo *
0..* 1 AuditedObject IInscri beInSchoolYearBo
AuditedObject ISchoolYearBo
impl::InscribeInSchoolYearBoImpl
impl::SchoolYearBoImpl
1
«col umn» - dateFrom: Calendar - dateTo: Calendar - publicated: Bool ean *
1
«column» * - school Year: ISchoolYearBo - teacher: IEmployeeBo - lessonLoad: Integer
1
AuditedObject IAnnouncedSubjectBo impl::AnnouncedSubj ectBoImpl
AuditedObject IBindPupilAndLessonBo
«column» - subject: ISubjectBo - schoolYear: ISchoolYearBo - lessonLoad: Integer
impl:: BindPupilAndLessonBoImpl «col umn» - pupil: IPupilBo - l esson: ILessonBo
0..*
1 * Audi tedObject IClassBo
AuditedObject IBindPupi lAndClassBo
impl::ClassBoImpl
impl::BindPupilAndClassBoImpl
+lesson
«column» - pupil : IPupil Bo - schoolClass: IClassBo - classBookNumber: Integer
0..*
AuditedObject IMarkTypeBo impl::MarkTypeBoImpl
«column» 1 - name: String - schoolYear: ISchoolYearBo - teacher: IEmployeeBo - yearOfAttendance: Integer - lessonLoad: Integer
0
0..* AuditedObject ILessonBo
1 -school Class impl::LessonBoImpl 1
0..* «column» - teacher: IEmpl oyeeBo - announcedSubject: IAnnouncedSubjectBo - schoolClass: IClassBo 1 - classMandatory: Boolean
0..*
+l esson «column» - name: Stri ng - descri pti on: String - l esson: ILessonBo
1
1
AuditedObject IAbsenceBo impl::AbsenceBoImpl
1 0..* Audi tedObject IMarksBo
-
lesson: ILessonBo pupil : IPupilBo dateFrom: Calendar dateT o: Calendar absenceType: IGeneral RegistryBo
0..* 0..* AuditedObject ILessonTimeBo impl::LessonTimeBoImpl
impl::MarksBoImpl
«column» - classroom: IRoomBo - lesson: ILessonBo - from: Calendar - to: Calendar - dayOfWeek: IGeneralRegi stryBo
«column» - gradeType: IGeneral RegistryBo - schoolHalfYear: ISchoolHalfYearBo - pupil : IPupilBo - markT ype: IMarkT ypeBo - descripti on: Stri ng
Obrázek 26: Balíček tříd Study
3.4.5. Balíček Subject Balíček Subject slouží pro udržování informací o studijním plánu pro celou školní docházku. Pro každý okruh učiva je vytvořena charakteristika předmětů, která je poté rozdělena a definována předměty, které se poté mohou na škole vyučovat. Dle povahy charakteristiky a nebo předmětu je určena, zda tímto předmětem musí nebo nemusí projít každý žák.
61
Návrh
class com.digi.ischosys.subj ect.bo.impl AuditedObject ISubjectBo
Subj ectBoImpl «column» - name: String - description: String - subjectCharacteristic: ISubjectCharacteristicBo - mandatory: Boolean - yearOfAttendance: Integer
AuditedObject ISubjectCharacteristicBo
Subj ectCharacteristicBoImpl *
1
* AuditedObject ITeacherSubjectBo
TeacherSubj ectBoImpl «column» - teacher: IEmployeeBo - subject: ISubjectBo
1..
«column» - name: String - commonDescription: String - learningCompetence: String - solutionSolvingCompentence: String - communicativeCompetence: String - socialPersonalCompetence: String - civilCompetence: String - workingCompetence: String - personalSocialEducation: String - democraticCitizenEducation: String - euroGlobalContextEducation: String - multiCulturalEducation: String - enviromentalEducation: String - mediaEducation: String
Obrázek 27: Balíček tříd Subject
3.4.6. Balíček Users Balíček Users udržuje informace o uživatelích, kteří mají a nebo měli v minulosti přístup do IS a rolích, které identifikují typ uživatele.
62
Návrh
class com.digi.ischosys.users.bo.impl AuditedObject IPersonBo
BaseObject Serializable UserDetails
PersonBoImpl «column» - firstname: String - surname: String - street: String - town: String - country: IGeneralRegistryBo - dayOfBirth: Calendar - placeOfBirthTown: String - placeOfBirthProvince: String - nationality: IGeneralRegistryBo - insurencetype: IGeneralRegistryBo - citizenshipQualificator: IGeneralRegistryBo - personType: IGeneralRegistryBo - email: String - active: Boolean
User #
+id «column» # username: String 1 # password: String # confirmPassword: String # version: Integer # roles: Set = new HashSet() # enabled: boolean # accountExpired: boolean # accountLocked: boolean # credentialsExpired: boolean
1
1
IPupilBo
IEmployeeBo EmployeeBoImpl «column» TODO&ASK:Integer : - childrenCount: - Další vzdělávání, asiIGeneralRegistryBo nejvíce BOZP dávkové - highestEducationType: zadání - nextMedicalCheckDate: Calendar - Preventivní prohlídky - vést všechny - nextRiseSalaryDate: Calendar záznamy
- Průběh předchozího zaměstnání - lastRiseSalaryDate: Calendar -
salaryClass: IGeneralRegistryBo salaryGrade: IGeneralRegistryBo teacher: Boolean employeeType: IGeneralRegistryBo
serialVersionUID: long = 3832626162173359411L {readOnly} person: IPersonBo
PupilBoImpl «column» - schoolYear: Integer - studyState: IGeneralRegistryBo - firstClassSignDate: Calendar - firstClassSignSchool: String - signInThisSchoolDate: Calendar TODO&ASK: - individualPlan: Boolean - deseases: String - výchovná opatření - certificateNumber: String - handicapType: IGeneralRegistryBo - sessionState: IGeneralRegistryBo 1..* BaseObject Serializable GrantedAuthority Role -
serialVersionUID: long = 3690197650654049848L {readOnly} name: String description: String version: Integer users: Set
Obrázek 28: Balíček tříd Users
3.5. Model uložení dat Model uložení dat je vytvořen zpětným refactoringem z databáze. Obsahuje vazby a názvy klíčů, tak jak jsou skutečně v databázi. Tento model odpovídá třídám z PSM, to znamená, že pro každou třídu z PSM nalezneme vždy jednu tabulku v diagramech modelu uložení dat.
63
Návrh
dm db_model1 ischosys_t_subj ectcharacteristic «column» *PK id: bigint * name: varchar(255) commondescription: text learningcompetence: text solutionsolvingcompentence: text communicati vecompetence: text soci alpersonalcompetence: text civil competence: text worki ngcompetence: text personalsocialeducati on: text democrati cci tizeneducation: text euroglobal contexteducation: text mul ti cul turaleducation: text envirom entaleducati on: text medi aeducati on: text * whencreate: ti me whenchange: ti me * whocreate: varchar(20) whochange: varchar(20)
ischosys_t_employee ischosys_t_teachersubj ect «column» *PK id: bi gint *FK teacher_id: bigint *FK subj ect_i d: bigint * whencreate: ti me whenchange: tim e * whocreate: varchar(20) whochange: varchar(20)
+pk_ischosys_t_empl oyee +fkc96180a7920ccced (teacher_i d = id)
+pk_ischosys_t_empl oyee
+fkc96180a72de31e11
«column» *pfK i d: bi gi nt *FK hi ghesteducati ontype_i d: bi gi nt chil drencount: integer * l astri sesal arydate: time * nextmedicalcheckdate: ti me * nextrisesalarydate: time *FK sal aryclass_id: bi gint *FK sal arygrade_id: bi gi nt *FK employeetype_id: bigint * teacher_id: char(1)
+fk598b5a0b25536b2b +pk_i schosys_t_employee +pk_ischosys_t_employee +fk598b5a0b1b02711a +fk598b5a0b494311ea +fk598b5a0b4831b6b0 (teacher_id = i d) (teacher_i d = id)
(subject_id = id)
+fk12c27a62920ccced
+fk97403b3b920ccced
+pk_ischosys_t_subjectcharacteristic ischosys_t_inscribeinschoolyear
(subjectcharacteristic_id = id)
ischosys_t_class
«col umn» *PK i d: bi gi nt *FK schoolyear_i d: bi gi nt *FK teacher_id: bi gi nt * l essonl oad: integer * whencreate: ti me whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+pk_ischosys_t_subject +fk25e7822feb1eb691
ischosys_t_subj ect «column» *PK id: bi gi nt * name: varchar(255) * descri ption: varchar(255) *FK subjectcharacteri stic_id: bigint * mandatory: char(1) yearofattendance: integer * whencreate: ti me whenchange: time * whocreate: varchar(20) whochange: varchar(20)
«column» *PK id: bigint * name: varchar(50) *FK schoolyear_id: bigint *FK teacher_id: bigint * yearofattendance: i nteger * lessonload: integer * whencreate: time whenchange: ti me * whocreate: varchar(20) whochange: varchar(20)
(highesteducationtype_id (salarygrade_id (employeetype_id (salaryclass_i d = ==id) id)=id) id)
+pk_ischosys_c_registry +pk_ischosys_c_registry +pk_i +pk_ischosys_c_registry schosys_c_registry
+fk12c27a62ee3ac05f ischosys_c_registry +fk97403b3bee3ac05f +pk_i schosys_t_class (school year_id = id)
«col umn» *PK i d: bigint * active: char(1) * descripti on: varchar(255) *FK grtype_id: bi gint * name: varchar(255) special1: varchar(255) code: varchar(10) * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
(schoolyear_id = i d)
+pk_i schosys_t_school +pk_i schosys_t_school year year
(teacher_i d = id)
+pk_i schosys_t_subject ischosys_t_schoolyear (subject_id = i d)
+fkec46be0e2de31e11
ischosys_t_announcedsubj ect «col umn» *PK i d: bigint *FK subject_id: bigint *FK school year_i d: bigint * l essonload: integer * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+pk_ischosys_t_schoolyear (school year_i d = id) +fkec46be0eee3ac05f
«column» *PK i d: bi gi nt * datefrom: time * dateto: ti me * publicated: char(1) * whencreate: ti me whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+pk_ischosys_t_schoolyear
(halfyeartype_id = id) +pk_ischosys_t_announcedsubject (school year_id = id) (announcedsubject_id = i d)
+fk5fc853d5f0766a1f
+pk_ischosys_t_lesson
(lesson_id = i d) ischosys_t_marktype
+fk5fc853d5646d54a3
ischosys_t_lesson «col umn» *PK i d: bigint *FK teacher_i d: bi gi nt *FK announcedsubj ect_i d: bi gi nt FK school class_id: bi gint * classmandatory: char(1) * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+fk20da580187b8382e
ischosys_t_schoolhalfyear
+pk_i schosys_t_l esson +pk_i schosys_t_school halfyear
«col umn» *PK i d: bigint *FK halfyeartype_i d: bi gi nt *FK school year_i d: bigint * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
(lesson_id = i d)
+fke9cbd4bb3e317d9f (schoolhalfyear_id = i d)
+pk_i schosys_t_marktype
ischosys_t_bindpupilandlesson «column» *PK id: bi gi nt *FK pupil_id: bigint *FK lesson_id: bigint * whencreate: ti me whenchange: time * whocreate: varchar(20) whochange: varchar(20)
(marktype_id = id)
+fk97c8650978f14e0a
ischosys_t_marks
+fk5fc853d5920ccced +fk20da5801ee3ac05f
+fk2127dae43e317d9f
«column» *PK id: bigint * name: varchar(50) * description: varchar(255) *FK lesson_i d: bigint * whencreate: time whenchange: ti me * whocreate: varchar(20) whochange: varchar(20)
«column» *PK id: bi gi nt *FK gradetype_id: bigint *FK schoolhal fyear_id: bi gi nt *FK pupil_id: bigint *FK marktype_i d: bigint * whencreate: ti me whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+pk_i schosys_c_regi +pk_ischosys_c_registry stry
(schoolcl ass_i d = i d)
+fk97c865093c35bd5f +fk97c865096ceded67
Obrázek 29: Model uložení dat, část 1.
64
(gradetype_i d = i d)
Návrh
dm db_model2 ischosys_t_employee «column» *pfK id: bigint *FK highesteducationtype_id: bigint childrencount: integer * lastrisesalarydate: time * nextmedicalcheckdate: time * nextrisesalarydate: time *FK salaryclass_id: bigint *FK salarygrade_id: bigint *FK employeetype_id: bigint * teacher_id: char(1)
+fk598b5a0b25536b2b +fk598b5a0b1b02711a
(salarygrade_id (highesteducationtype_id = id) = id)(employeetype_id = id)
+fk598b5a0b4831b6b0 +fk598b5a0b494311ea
+pk_ischosys_c_registry
«column» *PK id: bigint * active: char(1) * description: varchar(255) *FK grtype_id: bigint * name: varchar(255) special1: varchar(255) code: varchar(10) * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
ischosys_t_bindpupilandclass +pk_ischosys_t_employee +pk_ischosys_t_employee (teacher_id = id)
+fk97403b3b920ccced
+fka3f60595646d54a3
ischosys_t_class
(schoolclass_id = id)
«column» *PK id: bigint * name: varchar(50) *FK schoolyear_id: bigint *FK teacher_id: bigint * yearofattendance: integer * lessonload: integer * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
«column» *PK id: bigint *FK pupil_id: bigint *FK schoolclass_id: bigint * classbooknumber: integer * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+pk_ischosys_c_registry +pk_ischosys_c_registry +pk_ischosys_c_registry +pk_ischosys_c_registry +pk_ischosys_c_registry (mark_id = id) +fk26fcbe6cf515d8ab
+pk_ischosys_t_class
+fka3f605955ef2fced ischosys_t_certificatemarks
ischosys_t_lessontime «column» (teacher_id = id) *PK id: bigint *FK classroom_id: bigint *FK lesson_id: bigint * lessonfrom: time * lessonto: time *FK dayofweek_id: bigint * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+pk_ischosys_t_class
(schoolclass_id = id)
ischosys_c_registry
+pk_ischosys_c_registry
(salaryclass_id = id)
+fk26fcbe6c3e317d9f
«column» *PK id: bigint *FK schoolhalfyear_id: bigint *FK lesson_id: bigint *FK certificate_id: bigint *FK mark_id: bigint * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+fkd956b4229c572851 +fk26fcbe6c3c35bd5f
(dayofweek_id = id)
+fk26fcbe6c6eb93fc4
+fkd956b4223e317d9f (lesson_id = id) (lesson_id = id) (halfyeartype_id = id)
+pk_ischosys_t_lesson +fk5fc853d5646d54a3 +fk5fc853d5920ccced
ischosys_t_lesson
(schoolhalfyear_id = id)
+pk_ischosys_t_lesson «column» *PK id: bigint *FK teacher_id: bigint *FK announcedsubject_id: bigint FK schoolclass_id: bigint * classmandatory: char(1) * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
(studystate_id (handicaptype_id = id) = id) (pupil_id = id)
ischosys_t_certificate «column» *PK id: bigint *FK schoolyear_id: bigint *FK pupil_id: bigint * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+pk_ischosys_t_lesson
+pk_ischosys_t_certificate (certificate_id = id)
+pk_ischosys_t_schoolhalfyear +fk9d68351a5ef2fced
ischosys_t_schoolhalfyear «column» *PK id: bigint *FK halfyeartype_id: bigint *FK schoolyear_id: bigint * whencreate: time (lesson_id = id) whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+fk20da580187b8382e (pupil_id = id)
+pk_ischosys_t_pupil +pk_ischosys_t_pupil +fk97fbbb31408b4930 +fk97fbbb314eba9266
+fke9cbd4bb3e317d9f
ischosys_t_pupil
ischosys_t_bindpupilandlesson «column» *PK id: bigint *FK pupil_id: bigint *FK lesson_id: bigint * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
+fke9cbd4bb5ef2fced(pupil_id = id)+pk_ischosys_t_pupil
Obrázek 30: Model uložení dat, část 2.
65
«column» *pfK id: bigint certificatenumber: varchar(255) deseases: varchar(255) * firstclasssigndate: time * firstclasssignschool: varchar(255) FK handicaptype_id: bigint * schoolyear: integer * signinthisschooldate: time *FK studystate_id: bigint * individualplan: char(1) * sessionstate_id: bigint
Návrh
dm db_model3
ischosys_c_registrytype
ischosys_t_school
«col umn» *PK i d: bi gi nt * code: varchar(10) * descri ption: varchar(255) * editable: char(1) name: varchar(40)
+pk_i schosys_c_registrytype
«column» *PK id: bi gi nt * active: char(1) * name: varchar(20) * val ue: varchar(255)
(school _i d = id) +pk_i schosys_t_school +fkbd228611f31d1364
(grtype_i d = id) ischosys_c_registry «col umn» *PK i d: bigint * acti ve: char(1) * descripti on: varchar(255) *FK grtype_id: bi gint * name: varchar(255) special1: varchar(255) code: varchar(10) * whencreate: time whenchange: time * whocreate: varchar(20) whochange: varchar(20)
ischosys_c_systemparameter
«column» *PK id: bi gint * name: varchar(50) * street: varchar(50) * town: varchar(50) * zipcode: varchar(5)
+fkb064208b1ba0592d
ischosys_t_building
+pk_ischosys_c_registry (roomtype_id = i d) +pk_ischosys_c_registry (citi zenshipquali ficator_i d = i d) +pk_ischosys_c_registry (nati onali ty_id =
«column» *PK id: bigint * name: varchar(50) *FK school_id: bigint * street: varchar(50) * town: varchar(50) * zipcode: varchar(5)
i d) (i+pk_ischosys_c_registry nsurancetype_id = id)
(bui lding_i d = +pk_i schosys_t_bui lding +fk25f02ab84e72bfe3 +fk25f02ab8f6b51024 id)
+pk_i schosys_c_registry +pk_i schosys_c_regi stry ischosys_t_room
ischosys_t_articletype
«col umn» *PK i d: bigint *FK building_id: bi gi nt descripti on: varchar(255) *FK roomtype_i d: bi gi nt * i dentifier: varchar(20)
(persontype_id = id) (country_id = i d)
«column» *PK i d: bi gi nt code: varchar(20) descri ption: varchar(255) * name: varchar(128)
+fk669b41f24b75ad04 +fk669b41f2c6c9075c +fk669b41f2ae64bbd8 +fk669b41f2e9e2c829
+fk669b41f2866ae742
+pk_ischosys_t_articl etype
+pk_ischosys_t_room ischosys_t_person «column» *PK id: bi gi nt *FK ci ti zenshipquali ficator_id: bigint FK country_id: bigint dayofbirth: time * firstname: varchar(50) *FK insurancetype_i d: bigi nt *FK nati onality_i d: bi gi nt pl aceofbirthprovi nce: varchar(50) pl aceofbirthtown: varchar(50) * street: varchar(50) * surname: varchar(50) * town: varchar(50) *FK persontype_i d: bigi nt email : varchar(255) active: char(1) * whencreate: ti me whenchange: time * whocreate: varchar(20) whochange: varchar(20)
(room_i d = id)
(articletype_i d = id)
+fk6995f9f9fa48f804 +fk6995f9f94deb052a
ischosys_t_article «column» *PK id: bi gi nt *FK articl etype_id: bigint descri ption: varchar(255) *FK room_id: bigint serialcode: varchar(30) * whencreate: ti me whenchange: tim e * whocreate: varchar(20) whochange: varchar(20)
+pk_i schosys_t_person
+pk_i schosys_t_person +pk_role
(person_i d = id) +pk_ischosys_t_person
(role_name = name)
+fk459c5729e5ce7681
(recipent_i (sender_idd ==id) id)
role «col um n» *PK name: varchar(20) * versi on: i nteger description: varchar(255)
app_user «column» *PK username: varchar(20) * version: integer +fk143bf46a95b77dea +pk_app_user (username = * password: varchar(255) username) account_enabl ed: char(1) * account_expired: char(1) * account_locked: char(1) * credenti al s_expired: char(1) FK person_id: bigint
(person_id = id)
+fk143bf46ab9911673
user_role «col umn» *pfK username: varchar(20) *pfK rol e_name: varchar(20)
+fkce282d0a2aef15a2 +fkce282d0ab4df0ba1
+fkabdd5fb5e5ce7681
ischosys_t_message «column» *PK id: bi gint body: varchar(255) FK messagegroup_id: bigint readdate: time * readed: char(1) *FK recipent_i d: bigint * senddate: time *FK sender_id: bigint * subj ect: varchar(255)
ischosys_t_messagegroup +pk_i schosys_t_messagegroup +fkce282d0a745b7033 (messagegroup_i d = id)
«column» *PK id: bi gi nt * name: varchar(50) *FK person_id: bi gi nt
Obrázek 31: Model uložení dat, část 3.
3.6. Menu Každá role, případně uživatel, má přirozeně přístup k různým částem a funkcím systému. Uživatel s určitou rolí vybírá funkce, které má k dispozici, pomocí menu a přechází na požadované stránky. Přechody z menu na stránky jsou popsány přímo ve scénářích případů užití.
66
Návrh
Menu root značí kořen celého menu. Pod kořenem se nachází kořenové položky, které jsou v menu přímo viditelné. Tyto kořenové položky mohou mít pod sebou další položky, které se rozbalí až po najetí kurzorem. Nazývejme je listy menu a již nejsou dále dělitelné. Společné kořenové položky pro všechny role jsou Domů, Zprávy a Můj profil. cmp Director menu
Menu root
Director (from Users) Domů
Zpráv y
Rozv rh
Lidé
Přij até zpráv y
Osobní rozv rh
Seznam žáků
Pošli nov ou zpráv u
Školní rozv rh
Nov ý žák
Rozv rh žáků
Rozv rhy učitelů
Školní rok
Seznam školních roků
Vytv ořit školní rok
Seznam zaměstnanců
Nov ý zaměstnanec
Vypsané předměty
Úv azek učitelů
Školní třídy
Vyučov ací hodiny
Obrázek 32: Menu role Director a Vice director
67
ŠVP
Charakteristika předmětů
Seznam předmětů
Můj profil
Návrh
cmp Teacher menu
Menu root
Teacher (from Users)
Domů
Rozv rh
Zpráv y
Přij até zpráv y
Studij ní agenda
Osobní rozv rh
Moj e třída
Rozv rh žáků
Zápis známek
ŠVP
Charakteristika předmětů
Seznam předmětů
Pošli nov ou zpráv u
Rozv rhy učitelů
Obrázek 33: Menu role Teacher cmp Pupil menu
Menu root
Pupil (from Users)
Domů
Pošli nov ou zpráv u
Přij até zpráv y
Zpráv y
Rozv rh
Studij ní info
Absence
Osobní rozv rh
Celkov á absence
Prospěch
Obrázek 34: Menu role Pupil
68
Můj profil
Můj profil
Návrh
cmp User manager menu
Menu root
UserManager (from Users) Lidé
Zpráv y
Pošli nov ou zpráv u
Seznam žáků
Přij até zpráv y
Nov ý žák
Můj profil
Seznam zaměstnanců
Nov ý zaměstnanec
Obrázek 35: Menu role UserManager
69
Use Ability testy
4. Use Ability testy Testy proběhly na budoucích uživatelích přímo ve škole, pro kterou je tento systém vyvíjen. Celkem byl program testován na 9 osobách. Test probíhal průměrně v délce 30 min. Zvládnutí testu osobami bylo přímo úměrné počítačové gramotnosti testovaných osob. Respondentům s větší zkušeností v práci s počítačem a internetem, nedělalo velké problémy zvládnutí práce s menu a s běžnými funkcemi..
4.1. Účastnící testů Testovací osoby byli vybrány z řad učitelského sboru. Jednalo se o osoby, které přicházejí celkem pravidelně do styku s počítačem a internetem. Pro účely testování se jevili nevhodní uživatelé, kteří mají s počítačem nebo internetem malé či vůbec žádné zkušenosti. Tito uživatelé by negativně ovlivnili výsledek testu. Zdáli se nevhodní i přesto, že tento systém budou takoví uživatelé používat. Pro tyto uživatele by mělo proběhnout proškolení a v budoucnosti by měl být k dispozici jednoduchý manuál, který bude popisovat základní funkce systému. Osoby, které se zúčastnili testu víceméně odpovídali nastavenému profilu a žádná z těchto osob nijak negativně neovlivnila výsledek testu.
4.2. Definice úkolů 4.2.1. Úkol 1 Přihlaste se, prosím, do systému jako Ředitel. Přihlašovací jméno: director Přihlašovací heslo: tomcat a) Zorientujte se v systému. Projděte si postupně nabídky v menu. Nebojte se na nic kliknout. b) Pokuste se změnit jazyk na anglický. c) Změňte jazyk nazpět na český.
Cíl: •
zjistit zda nedělá problémy přihlašování
•
otestovat změnu lokalizace – zda je tato volba dobře viditelná a srozumitelná 70
Use Ability testy
4.2.2. Úkol 2 Kromě celkové agendy žáků, budete moci v systému mezi uživateli posílat zprávy. a) Tedy zkuste si přečíst všechny Vaše přijaté zprávy. b) Nalezněte všechny zprávy, které Vám poslal pouze „Hajný“ c) Na jednu zprávu od Hajného odpovězte. d) Jednu zprávu přeřaďte do složky osobní.
Cíl: •
orientace v menu
•
filtrace na seznamu položek
•
práce se záznamy seznamu položek – výběr záznamu (detail nebo operace nad záznamem)
4.2.3. Úkol 3 Pošlete novou zprávu uživateli „Administrátor“.
Cíl: •
celková orientace v systému
•
použití LOV (list of values) – vybrání záznamu z popup okna
4.2.4. Úkol 4 a) Vraťte se na seznam přijatých zpráv. b) Seřaďte tyto zprávy podle datumu odeslaní. c) Nejstarší zprávu smažte. d) 4 zprávy na list je pro Vás málo. Nastavte, aby se Vám zobrazovalo na jednu stránku 10 zpráv.
Cíl: •
práce se seznamem položek – setřídění záznamů podle nějakého sloupečku (vzestupně, sestupně)
•
práce se seznamem položek – změna počtu položek v seznamu
71
Use Ability testy
4.2.5. Úkol 5 a) Zaveďte do systému nového žáka. b) Jakmile je nový žák založen, zobrazte seznam všech žáků v systému.
Cíl: •
práce s detailem, uložení detailu – test tlačítkové lišty
•
práce s kalendářem
4.2.6. Úkol 6 U zaměstnance „Mandlová“ změňte název ulice a města. Změňte datum narození. Všechny tyto změny uložte.
Cíl: •
práce s detailem, uložení detailu – test tlačítkové lišty
•
práce s kalendářem
4.2.7. Úkol 7 Odhlaste se ze systému.
Cíl: •
Tlačítko pro odhlášení v menu liště a nebo pod uživatelskými informacemi?
4.3. Záznam řešení 4.3.1. Úkol 1 Osoba 1 •
Na první pohled nemohla nelézt menu – hledala nějakou ikonku menu
•
Jazyk měnila v nástrojové liště
Osoba 2 •
Po projití aplikace se chtěla dostat na původní obrazovku – po přihlášení
•
Jazyk měnila v nástrojové liště
72
Use Ability testy
Osoba 3 •
Nemohla nalézt menu – nebylo jasné co je menu
•
Jazyk měnila v nástrojové liště – nakonec lokalizaci sama našla
Osoba 4 •
Úkol provedla bez problémů
Osoba 5 •
Úkol provedla bez problémů
Osoba 6 •
Úkol provedla bez problémů
Osoba 7 •
Změnu jazyka neprovedla. Nemohla najít tuto volbu. – hledala v menu
Osoba 8 •
Nebylo jasné co je menu. Očekávala nějaký popis
•
Jazyk změnila bez problémů.
Osoba 9 •
Úkoly provedla bez problému, po splnění úkolů se chtěla dostat do stavu jako po přihlášení. Hledala odkaz na úvodní obrazovku.
4.3.2. Úkol 2 Osoba 1 •
Úkol nemohl být proveden kvůli špatnému nastavení testu.
Osoba 2 a) Přijaté zprávy našla bez zjevných problému. b) Práce s filtrem dělala problémy. Zkoušela tlačítko vyber. Vyfiltrovat Hajného se nepodařilo.
73
Use Ability testy
c) Přejít na detail zprávy a odpověď byly bez problémů. d) Úkol přeskočen kvůli špatnému nastavení testu.
Osoba 3 a) Ok. b) Ok. c) Prvně odpovědět hledala na seznamu zpráv, poté zkusila detail a odpověděla. d) Nebylo jí jasné, co znamená popisek skupina zpráv – hledala něco jako složka zpráv. Po potvrzení, že složka je to, co skupina, úkol splnila.
Osoba 4 a) Přijaté zprávy našla bez zjevných problémů. b) Filtrace Hajného ok. c) Ok. d) Ok.
Osoba 5 a) Ok b) Nebylo jí jasné, co je filtrační formulář, hledala nějaký nadpis ‘Filtrace‘ apod., po ukázání co je filtrační formulář, poté úkol splnila bez problémů. c) Ok. d) Ze seznamu zpráv nevěděla jak zprávu přeřadit, hledala nějakou volbu přímo u zprávy. Po navedení na detail zprávy, úkol nakonec splnila.
Osoba 6 a) Ok. Pro zbytek úkolů chybí zápis.
Osoba 7 a) Ok. b) Prvně zkouší tlačítko vyber, očekává nějaké okno. Nebylo jí vůbec jasné k čemu slouží pole nad seznamem. Vyfiltrovat zkoušela tak, že se snažila kursorem označit uživatele a poté zmáčknout tlačítko vyber. Úkol neprovedla. c) Odpovědět hledá v seznamu zpráv, poté chtěla odpovědět přes volbu nová zpráva. Nakonec volbu na detailu našla. 74
Use Ability testy
d) Zkouší klikat na text ‘Skupina zpráv’ a poté hledá uložit. Po sdělení, že skupina je to samé jako složka, tak úkol splnila. Očekávala nějakou hlášku, že zpráva byla přeřazena.
Osoba 8 a) Ok. Pro zbytek úkolů chybí zápis. Osoba se v tom ztrácela, byla netrpělivá a nechtěla v úkolu pokračovat.
Osoba 9 a) Ok. b) Zkouší kliknout na tlačítko vyber, nebylo jí jasné, co znamenají pole nad seznamem. Úkol se nepovedlo splnit.. c) Ok. d) Skupinu zpráv nenašla, hledala na seznamu zpráv. Ani po nápovědě, aby se zaměřila na detail zprávy, úkol nesplnila.
4.3.3. Úkol 3 Osoba 1 •
Uživatel byl na seznamu zpráv a novou zprávu chtěl poslat napsáním ‘ Administrátor ’ do pole pro filtrování odesílatele. Po nápovědě, že je tohle úplně špatně, našla volbu poslání nové zprávy a pak úkol splnila.
Osoba 2 •
Formulář pro napsaní nové zprávy našla bez problémů. Nevěděla jak vybrat uživatele, kterému má zprávu poslat. Zkoušela napsat ‘ Administrátor ’ přímo do pole. Ikonku našla s nápovědou. Pak už ok.
Osoba 3 •
Z počátku chtěla psát příjemce přímo do kolonky, když jí to nešlo, pak se začala soustředit na ikonku.
Osoba 4 •
Do políčka pro příjemce chce vypsat “Administrátor”. Dlouho hledala, jak vyplnit políčko 75
Use Ability testy
pro příjemce, nakonec sama našla. Zajímavé je, že při plnění předešlého úkolu, chtěla odpovědět Hajnému přes novou zprávu a políčko pro příjemce vyplnila bez problémů.
Osoba 5 •
Volbu nová zpráva hledala na seznamu přijatých zpráv. Poté v menu formulář našla a úkol provedla bez problémů.
Osoba 6 •
Chybí zápis.
Osoba 7: •
Novou zprávu hledala na seznamu uživatelů. Volbu hledala tak, že chce někomu něco poslat, tak si prvně najde onoho člověka. Jakmile klikla na ikonku pro LOV uživatelů, nevěděla, kde se nachází a co má vlastně LOV dělat.
Osoba 8: •
Chce psát přímo do položky pro příjemce. Chce otevřít nějaké okno a tak zkouší kliknout na text Příjemce. Neví, co znamená hvězdička, co znamenají povinné položky.
Osoba 9 •
Při výběru příjemce jako první klikla na text Příjemce, poté zkusila přímo tlačítko.
4.3.4. Úkol 4 Osoba 1 a) Úkol nesplnila. Zkoušela kliknout na filtrační formulář. b) Nemůže najít ikonku pro smazání, zkoušela se dostat do detailu. c) Kam se má zapsat počet stránek našla bez problému. Potvrzení provedla tím, že klikla na ikonku pro další stránku.
Osoba 2 a) Úkol nesplnila. Vůbec netušila, kde je záhlaví seznamu. Čekala by záhlaví více zvýrazněné. b) Ok. 76
Use Ability testy
c) Ok.
Osoba 3 a) Úkol nesplnila. b) Volbu našla vcelku bez problému, jen smazala nejstarší záznam na stránce. Netušila, že existují i jiné listy seznamu. c) Ok.
Osoba 4 a) Seřazení zkoušela tlačítkem Vyber. Po chvilce tápaní seznam seřadila. b) Záznam smazala přes detail. Ikonky na konci seznamu si nevšimla. c) Ok. Vyplněnou hodnotu potvrdila přes ikonku pro další stránku.
Osoba 5 a) Seřazení bez problémů našla. Jen seznam již byl seřazen, tak zaváhala, protože neviděla žádnou akci. b) Ok. c) Ok. Vyplněnou hodnotu potvrdila klávesou Enter.
Osoba 6 a) Seřadit zkoušela tak, že se snažila označit celý řádek. Úkol nesplnila. b) Smazání záznamu hledala přes detail. Ikonky na konci seznamu si nevšimla. Poprvé na detailu volbu neviděla, tudíž ho opustila, ale pak se vrátila a smazala. c) Zvyšovat počet záznamů chtěla přes šipky pro stránkování. Poté ji napadlo změnit hodnotu a potvrdila klávesou Enter.
Osoba 7 a) Úkol nesplnila. b) Ok. Prvně šla na detail záznamu, poté se vrátila a smazala záznam ze seznamu. c) Políčko pro změnu našla okamžitě, potvrdila klávesou Enter.
Osoba 8 a) Úkol splnila bez problémů, okamžitě věděla, co se po ní chce. b) Záznam smazala přes detail. c) Počet záznamů změnila bez problémů, hledala nějaké tlačítko pro potvrzení – Potvrdit. 77
Use Ability testy
Nakonec potvrdila tlačítkem Vyber.
Osoba 9 a) Úkol splnila bez problémů, okamžitě věděla co se po ní chce. b) Ok. c) Ok.
4.3.5. Úkol 5 a 6 Úloha 5 a 6 typově stejná, pro nedostatek času jsem je u některých osob sloučil do jedné.
Osoba 1 •
Nebylo jasné jak skočit detailu člověka. Nemohla najít sloupeček s operací. Nebylo jasné co tlačítko dělá, nepočkala si kurzorem na title.
•
Prvně datum chtěla vyplnit přímo. Poté si tlačítka všimla a datum bez problémů vypsala.
•
Neví co znamená hvězdička u povinných položek.
Osoba 2 •
Volbu nového žáka hledala na seznamu žáků.
•
Při vkládání datumu bez problémů vybrala rok a měsíc, ale problémy dělalo vybrat den. Zkoušela kliknout na celé políčko, poté sama přišla, že musí pouze na text.
Osoba 3 •
V menu se orientovala bez problémů.
•
Datum chtěla psát přímo do políčka, ikonka byla o řádek níže kvůli velikosti okna prohlížeče. Až si uvědomila, že ikonka patří k políčku, tak poté datum změnila bez problémů.
Osoba 4 •
Při práci s kalendářem vybírá jako první den, což mělo za následek zavření kalendáře. Při opětovném otevření kalendáře a po vybrání správného roku a měsíce, neuměla vybrat den. Počítala s tím, že bude aktivní celé okno pro den.
78
Use Ability testy
Osoba 5 •
V kalendáři se orientuje bez problémů.
•
Neví, co znamená hvězdička u povinných položek.
Osoba 6 •
Datum chtěla vyplnit přímo. Ikonku později našla, ale podle jejich slov si připadala docela zmatená, nevěděla proč má datum vybírat přes nějakou komponentu.
•
Den chtěla potvrdit opět přes celé políčko.
Osoba 7 •
Datum vyplnila bez problémů.
Osoba 8 •
Datum vyplnila bez problémů.
•
Volbu vložení nového žáka hledá na seznamu všech žáků.
Osoba 9 •
Volbu vložení nového žáka hledá na seznamu všech žáků.
•
Neví, co znamená hvězdička u povinných položek. Povinné položky by čekala zvýrazněné tlustým písmem.
4.3.6. Úkol 7 Osoba 1 •
Odhlášení hledala prvně nad ikonkou ischosys. Poté se úspěšně odhlásila.
Osoba 2 •
Odhlášení bez problémů.
Osoba 3 •
Při odhlášení zkoušela tlačítko zpět v prohlížeči. Hledala základní zobrazení jako po přihlášení.
79
Use Ability testy
Osoba 4 •
Odhlášení bez problémů.
Osoba 5: •
Odhlášení bez problémů.
Osoba 6 •
Odhlášení očekávala v menu.
Osoba 7 •
Odhlášení bez problémů.
Osoba 8 •
Při odhlášení zkouší v prohlížeči tlačítko zpět. Očekávala u tlačítka pro odhlášení nějakou ikonku. Nakonec se odhlásila.
Osoba 9 •
Odhlášení hledá na počáteční stránce. Nakonec se odhlásila.
4.4. Seznam problémů a návrh řešení 4.4.1. Úkol 1 První orientace podle slov testovaných osob byla bez problémů. Systém jim nepřipadal na první pohled nějak nepřehledný a uživatelsky nepříjemný. Při prvním úkolu, pokud měli změnit lokalizaci, tak většina osob hledala změnu jazyka přímo ve Windows – jako návrh padlo, že by vedle textů pro lokalizaci mohla být vlaječka příslušného jazyka, tímto by byla volba více zřetelná. Jakmile se osoby pouze se systémem seznamovali, nečinilo jim žádné problémy s přecházením z formuláře na formulář, ale jakmile měli vybrat nějakou volbu z menu, nevěděli, kde se menu nachází. Tohle by mohlo činit problémy při čtení uživatelské příručky. Jako řešení navrhuji přidat do uživatelské příručky obrázek s vymezením pojmů na obrazovce a nebo v aplikaci jasně pojmenovat volbu. Osoby očekávali nápis ‘Menu’.
80
Use Ability testy
4.4.2. Úkol 2 Práce s filtrem dělala problémy většině testovaných osob. Nebylo jim zcela jasné, zda formulář nad seznamem patří k seznamu a k čemu vlastně slouží. Nejspíše by pomohlo obtáhnout seznam a filtr tenkou linkou, aby se zvýraznilo, že tyto oblasti patří k sobě. Dále např. přidat k filtru nápis ‘Filtr hodnot v seznamu. Tato komponenta se bude v aplikaci velice honě využívat, takže by měla být co nejvíce uživatelsky příjemná. Logické a o co se nejvíce uživatelé snažili, bylo vybrání hodnoty ze seznamu přes celý řádek. Práce s detailem záznamu byla bez problémů. Kontextové menu by mohlo být více zvýrazněné. Po přeřazení zprávy do jiné složky se neobjevuje hláška, že byla nějaká operace provedena. Uživatel nevěděl, co se stalo. Navrhuji, při každé operaci vypsat hlášku, že něco bylo provedeno a s jakým výsledkem.
4.4.3. Úkol 3 Formulář hledala asi polovina uživatelů na seznamu zpráv. Většina uživatelů jako první zkoušela přímo vypsat jméno příjemce než aby si ho vybrala ze seznamu. Pokud se jim to nedařilo, tak většina uživatelů správně klikla na přidruženou ikonku. Na seznamu položek je uživatelsky příjemnější vybrat záznam přes celý řádek, někteří uživatelé se snažili označit myší celý řádek a pak CTRL+C a CTRL+V tento záznam zkopírovat.
4.4.4. Úkol 4 V tomto úkolu dělalo uživatelům největší problém setřídění záznamů. Pro uživatele záhlaví není dostatečně zřetelné. Bylo by potřeba více odlišit všechny položky seznamu. Po stisku tlačítka vyber očekávali nějaké okno. Jedná se o jednu komponentu, která bude v aplikaci velice používána bez zvláštních modifikací, takže to lze vyřešit popsáním v helpu a nebo uživatelské příručce. Nejspíše jde o to, že je to pro nezkušené uživatele jiný princip, než na jaký jsou zvyklí z ostatních aplikací. Potvrdilo se, že pokud bylo uživatelům vysvětleno, jak funguje tato komponenta, neměli s prací velké problémy. Ikonky u každého záznamu uživatelé těžko hledali, mazání záznamu dělali povětšinou přes detail. Důležité volby bych dával i do detailu. Uživatelům nebylo zcela jasné, jaký smysl má stránkování nebo nepoznali, že je to stránkování. Bylo by lepší vložit popisky nad tlačítko, forvard, fast forward apod.
81
Use Ability testy
4.4.5. Úkol 5 a 6 Asi polovině uživatelů nebylo jasné co znamená hvězdička u textového pole. Možná by bylo vhodné pod každý takový formulář vypsat řádek ‘* značí povinnou položku’ . Při práci s kalendářem byla snaha zvolit den v tomhle pořadí den, měsíc, rok, což z funkcionality kalendáře není nyní možné. Většinu uživatelů zmátlo, že nemohou vybrat den kliknutím na celé okno pro den a to je vedlo k úvaze, že něco dělají úplně špatně. Velice bych doporučoval, aby den šel vybrat přes celé políčko.
4.4.6. Úkol 7 Uživatelé se odhlásili bez problémů. Jen by pro ně bylo příjemnější, kdyby tlačítko odhlásit bylo v menu a nebo alespoň zvýrazněno ikonkou.
82
Závěr
5. Závěr Hlavního cíle, zanalyzovat, navrhnout a následně implementovat informační systém v J2EE frameworcích, se podařilo dosáhnout. Byly použity moderní a mainstreamové opensource frameworky, takže v případě nasazení do provozu nevznikají další náklady na zakoupení licencí třetích stran. Touto diplomovou prací vznikla funkční aplikace, kterou je možno okamžitě nasadit do testovacího provozu. Druhotný cíl, navrhnout celý informační systém tak, aby byl lehce rozšiřitelný a existovala možnost customizace na různých základních školách, byl rovněž dosažen. Po provedení počáteční analýzy, se pokračovalo v udržování dokumentace během vývoje a tudíž vznikl ucelený analytický balíček vedený v Enterprise Architectu. Jeden z dalších důvodů, proč tato webová aplikace vznikla, bylo usnadnit práci a zlepšit komunikaci mezi subjekty zapojené do chodu školy. Díky tomu, že práce pokrývá mnoho důležitých procesů na základní škole, mohl by být i tento cíl splněn.
83
Literatura
6. Literatura [1] Bernd Oestereich, Developing software with UML. Addison Wesley, 1999. [2] UML 2.1 Tutorial, Sparx Systems, http://www.sparxsystems.com.au/resources/uml2_tutorial/ [3] Školní vzdělávací program, http://www.rvp.cz/sekce/52 [4] Spring Framework documentation, http://www.springframework.org/documentation [5] Hibernate documentation, http://www.hibernate.org/5.html [6] PostgreSQL documentation, http://www.postgresql.org/docs/ [7] MyFaces documentation, http://wiki.apache.org/myfaces/ [8] Acegi Security Reference Guide, http://www.acegisecurity.org/guide/springsecurity.html [9] RichFaces documentation, http://www.jboss.org/jbossrichfaces/docs/index.html
84
Přílohy
7. Přílohy 7.1. Příloha DVD 7.1.1. Obsah DVD /app/ischosys.war Zkompilovaná a zabalená aplikace v souboru war včetně všech knihoven. /doc/diplomova_prace.pdf Tento dokument v elektronické podobě. /doc/analysis.eap Analýza v Enterprise Architectu. /doc/instalacni_prirucka.pdf Instalační příručka. /install/* Instalační adresář. /src/* Java zdrojové kódy informačního systému /VMWareImage/Ubuntu804Server VMWare Image s nainstalovaným Ubuntu 8.04 serverem, pod kterým je nainstalovaná spustitelná aplikace včetně PostgreSQL serveru a Apache Tomcatu. /VMWareImage/Player/VMware-player-2.0.3-80004.exe Přehrávač vmware obrazů pod Windows.
7.1.2. Spuštění aplikace pod VMWare Pro spuštění je potřeba zkopírovat image na pevný disk nebo na jinou jednotku s možností zápisu a mít nainstalováno na cílovém počítači přinejmenším VMWare Player a případně jakoukoli vyšší verzi (VMWare Server a nebo VMWare Workstation). Přehrávač lze nalézt na
85
Přílohy
DVD adresáři /VMWareImage/Player a nebo aktuální verze je dostupná na adrese http://www.vmware.com/products/player/ . Po spuštění image přes přehrávač, musíme nejprve získat IP adresu, na které server běží. •
Přihlásíme se do linuxu jako user , heslo: user .
•
Zadáme příkaz ipconfig eth0 – tímto získáme IP adresu
•
Získanou IP adresu zadáme do prohlížeče. Aplikace běží na portu 8080 a kontext aplikace je ischosys . Příklad adresy: http://192.168.1.2:8080/ischosys
7.2. Screenshoty aplikace 7.2.1. Přihlašovací stránka
Obrázek 36: Screenshot - přihlašovací stránka
86
Přílohy
7.2.2. Menu po přihlášení pod rolí Director
Obrázek 37: Screenshot - menu po přihlášení pod rolí Director
7.2.3. Seznam vypsaných předmětů pro školní rok
Obrázek 38: Screenshot - seznam vypsaných předmětů pro školní rok
87
Přílohy
7.2.4. Rozvrh žáka
Obrázek 39: Screenshot - rozvrh žáka
88
Přílohy
7.2.5. Zapisování absence učitelem
Obrázek 40: Screenshot - zapisování absence učitelem
89
Přílohy
7.2.6. Přeřazení žáka do jiné třídy
Obrázek 41: Screenshot - přeřazení žáka do jiné třídy
7.2.7. Vytvoření nové zprávy
Obrázek 42: Screenshot - vytvoření nové zprávy
90
Přílohy
7.2.8. Příklad anglické lokalizace na detailu přijaté zprávy
Obrázek 43: Screenshot - příklad anglické lokalizace na detailu přijaté zprávy
7.2.9. Zobrazení prospěchu žáka
Obrázek 44: Screenshot - zobrazení prospěchu žáka
91
Přílohy
7.2.10. Vytvoření nového žáka přes roli UserManager
Obrázek 45: Screenshot - vytvoření nového žáka přes roli UserManager
92