ˇ´ızen´ı softwarovy ´ ch projekt˚ R u ´ ve ˇrec ˇ na ´ zpra ´ va Za Verze 1.1 ———————————————————————————————–
Projekt Hodnocen´ı ———————————————————————————————–
Autoˇri: ´k David Pola ˇ ˇ ´ bek Michal Reza
Vedouc´ı: ´ rek Ing. Martin Koma
Kontakt:
[email protected] [email protected] Datum: 29. prosince 2013
www.assembla.com/spaces/hodnoceni-pracovniku-fel
1
Obsah ´ 1 Uvod
3
2 Nov´ e poˇ zadavky 2.1 V´ ypoˇcet zapoˇcitateln´ ych hodin . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 V´ ypoˇcet efektivity v´ yuky . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 3
3 Popis implementace 3.1 V´ ypoˇcet zapoˇcitateln´ ych hodin . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 V´ ypoˇcet efektivity v´ yuky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Nasazen´ı aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 4 4
4 Zn´ azornˇ en´ı pr˚ ubˇ ehu projektu 4.1 Seznam ticket˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 4
5 Zhodnocen´ı pouˇ zit´ e infrastruktury 5.1 KOSapi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Nedostateˇcn´ a rychlost z´ısk´av´an´ı informac´ı . . . . . . . . . . . . . . . . 5.1.2 Nedostupnost u ´daj˚ u nebo jejich zdroj˚ u. . . . . . . . . . . . . . . . . .
7 7 8 8
6 Zhodnocen´ı ˇ casu a financ´ı str´ aven´ eho na projektu 6.1 Rozpoˇcet hodin pr´ ace na k´ odu projektu . . . . . . . 6.2 Graf repozit´ aˇre - Lines of Code . . . . . . . . . . . . 6.3 Graf repozit´ aˇre - Commity v hodinu . . . . . . . . . 6.4 Graf repozit´ aˇre - Commity v den . . . . . . . . . . .
8 8 9 9 9
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
7 Pl´ an dalˇ s´ıho v´ yvoje 10 7.1 Funkcion´ aln´ı body dalˇs´ıho v´ yvoje . . . . . . . . . . . . . . . . . . . . . . . . . 10 7.2 Architektonick´e body dalˇs´ıho v´ yvoje . . . . . . . . . . . . . . . . . . . . . . . 10 7.3 Wishlist body dalˇs´ıho v´ yvoje . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8 Osobn´ı hodnocen´ı jednotlivce 11 8.1 David Pol´ ak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 ˇ z´ 8.2 Michal Reˇ abek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 9 Apendix: dokumentace implementace KOMETY 9.1 V´ ypoˇcet za pˇredn´ aˇsky . . . . . . . . . . . . . . . . 9.2 V´ ypoˇcet za cviˇcen´ı . . . . . . . . . . . . . . . . . . 9.3 V´ ypoˇcet za zkouˇsen´ı . . . . . . . . . . . . . . . . . 9.4 V´ ypoˇcet za bakal´ aˇrsk´e a diplomov´e pr´ace . . . . . 9.5 V´ ypoˇcet za projektov´e pˇredmˇety . . . . . . . . . . 9.6 Import DPDP . . . . . . . . . . . . . . . . . . . . .
2
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
12 12 12 13 13 13 14
´ Uvod
1
Kr´ atce po zaˇc´ atku semestru doˇslo na jednom ze cviˇcen´ı ke zmˇenˇe poˇzadavk˚ u, coˇz zapˇr´ıˇcinilo reprioritizaci nov´e funkcionality na u ´kor st´avaj´ıc´ı. Z pl´ anu jednotliv´ ych aktivit, kter´e na projektu mˇely probˇehnout se tedy stal neuˇziteˇcn´ y kus pap´ıru. Z celkov´ ych sedmi specifikovan´ ych aktivit bylo dosaˇzeno tˇr´ı, a to jen z d˚ uvodu ˇze jejich implementace byla nezbytnˇe nutn´a k pokraˇcov´an´ı ve v´ yvoji. I pˇres popsanou zmˇenu poˇzadavk˚ u a vraˇzedn´e tempo jejich term´ın˚ u, jsme se souˇcasn´ ym stavem implementace aplikace spokojeni. Podaˇrilo se n´am implementovat vˇetˇsinu zmˇen, ke spokojenosti zadavatele. Aplikace nen´ı zdaleka hotov´a, bude j´ı d´ale zpracov´avat David Pol´ak jako Bakal´ aˇrskou Pr´ aci, pod veden´ım Ing. Martina Kom´arka.
2
Nov´ e poˇ zadavky
Na zaˇc´ atku semestru bylo pˇresunuto dokonˇcen´ı dosavadn´ı funkcionality na wishlist, d´ıky n´ ahl´e zmˇenˇe poˇzadavk˚ u zadavatelem. Nov´e poˇzadavky pouˇz´ıvaly stejn´e technologie jako pˇredchoz´ı, ale jejich implementace vyˇzadovala nov´ y n´avrh velk´e ˇc´asti datab´aze a architektury.
2.1
V´ ypoˇ cet zapoˇ citateln´ ych hodin
V´ ypoˇcet zapoˇcitateln´ ych hodin na z´akladˇe standardizovan´eho, moment´alnˇe platn´eho dokumentu Kometa 2 verze 1.3(d´ ale jen Kometa), podle kter´ehoˇz se rozdˇeluj´ı finance jednotliv´ ym ˇ pracoviˇst´ım CVUT. • Vypoˇc´ıtat zapoˇcitateln´e hodiny pro jednotliv´e pracovn´ıky v semestru za pˇredn´aˇsen´ı, cviˇcen´ı, zkouˇsen´ı, projektov´e pˇredmˇety a Bakal´aˇrsk´e a Magistersk´e pr´ace. • Vytvoˇrit podrobnou zpr´ avu o v´ ypoˇctu pro kaˇzd´eho uˇcitele. • Zobrazit tento v´ ypoˇcet v ˇraditeln´em a pˇrehledn´em seznamu (tabulce) za jeden nebo v´ıce semestr˚ u pro vybran´e pracovn´ıky. • Umoˇznit export t´eto tabulky do .csv a .xls souboru.
2.2
V´ ypoˇ cet efektivity v´ yuky
V´ ypoˇcet zapoˇcitateln´ ych hodin pˇres jednotliv´e programy, spoˇcten´ y souˇctem ZH za vˇsechny studenty v programu ve vˇsech pˇredmˇetech fakulty. • Rozpoˇc´ıtat zapoˇcitateln´e hodiny za pˇredmˇet (z´ıskan´e z v´ ypoˇctu komety) pro jednotliv´e studijn´ı programy na z´ akladˇe zaˇrazen´ı zapsan´ ych student˚ u na pˇredmˇet do program˚ u. • Zobrazit rozpoˇcet jednoho pˇredmˇetu • Zobrazit v´ ypoˇcet vˇsech pˇredmˇet˚ u v pˇrehledn´e tabulce
3 3.1
Popis implementace V´ ypoˇ cet zapoˇ citateln´ ych hodin
Kometa byla navrˇzena pro hodnocen´ı aktivit jednotliv´ ych pracoviˇst’, a proto z n´ı musela b´ yt odvozena nov´ a verze hodnot´ıc´ı jednotliv´e zamˇestnance dle vyuˇcovan´ ych pˇredmˇet˚ u.
3
Jelikoˇz z KOSapi nejdou z´ıskat potˇrebn´e informace k pˇresn´emu v´ ypoˇctu zapoˇcitateln´ ych hodin, musel b´ yt implementov´ an import dat z extern´ıch CSV soubor˚ u obsahuj´ıc´ıch informace o diplomov´ ych a bakal´ aˇrsk´ ych pr´ ac´ıch, projektov´ ych pˇredmˇetech a informac´ı z informaˇcn´ıho syst´emu, kter´ y spr´ avnˇe implementuje KOMETu. Funkcionalita pro v´ ypoˇcet zapoˇcitateln´ ych hodin je moment´alnˇe ve f´azi testov´an´ı.
3.2
V´ ypoˇ cet efektivity v´ yuky
Efektivita v´ yuky z´ avis´ı na exportu z KOMETY, ze kter´eho se bere seznam pˇredmˇet˚ u a jejich celkov´e ZH hodiny, kter´e se pak rozpoˇc´ıt´avaj´ı mezi studenty jednotliv´ ych studijn´ıch program˚ u. Funkcionalita pro v´ ypoˇcet efektivity v´ yuky pro jednotliv´e studijn´ı programy je moment´alnˇe ve f´ azi ladˇen´ı chyb.
3.3
Nasazen´ı aplikace
Aplikace je nasazen´ a a funkˇcn´ı na ˇskoln´ım serveru. Moment´alnˇe dovoluje zobrazit tabulku Zapoˇcitateln´ ych Hodin za pracovn´ıka v semestru, s rozdˇelen´ ymi ZH za pˇredn´aˇsky, zkouˇsen´ı, cviˇcen´ı, diplomov´e a bakal´ aˇrsk´e pr´ ace a projektov´e pˇredmˇety. S detailn´ı v´ ypoˇcetn´ı zpr´avou pro kontrolu chyb. Tabulku i zpr´ avu je moˇzn´e exportovat do form´atu XLS. Nasazen´a je tak´e moment´ alnˇe skryt´ a a rozpracovan´ a funkcionalita efektivity v´ yuky za jednotliv´e programy.
4
Zn´ azornˇ en´ı pr˚ ubˇ ehu projektu
Kaˇzd´ y dalˇs´ı pˇribliˇznˇe t´ yden, byly poˇzadavky v´ıce upˇresnˇeny a nˇekolikr´at se uk´azalo ˇze anal´ yza a implementace architektury a datab´aze je nedostaˇcuj´ıc´ı na nov´e zmˇeny v poˇzadavc´ıch. V souˇcasn´e dobˇe se d´ıky tˇemto ˇcast´ ym zmˇen´am poˇzadavk˚ u v aplikaci nach´azej´ı objekty, vazby a funkcionalita, kter´ a nen´ı nezbytnˇe potˇrebn´a, ale jej´ı odstranˇen´ı by znamenalo reimplementaci poloviny metod, kter´e s n´ı pracuj´ı. Ke konci semestru byl specifikov´an nov´ y poˇzadavek V´ ypoˇcet efektivity v´ yuky za program (3.2) a pr´ace se pˇresunula na jeho implementaci.
4.1
Seznam ticket˚ u
Pro zn´ azornˇen´ı vykonan´e pr´ ace pˇrikl´ad´ame ne´ upln´ y seznam ticket˚ u z Assembly, mezi vynechan´e patˇr´ı tickety zab´ıvaj´ıc´ı se bugfixy a udrˇzov´an´ım aplikace. Tickety jsou ˇrazeny chronologicky od nejstarˇs´ıho. Anal´ yza nov´ e funkcionality Hodnocen´ı (7h) N´ avrh a model datab´ aze pro novou funkcionalitu (3h) Modifikace struktury datab´ aze pro novou funkcionalitu (10h) Bylo nutn´e pˇrepracovat strukturu vˇetˇsiny datab´aze pro podporu nov´e funkcionality. Import informac´ı o DP a BP z extern´ıho souboru (4h) Je nutn´e importovat informace o BP a DP z exportovan´eho souboru ze syst´emu KOS.
4
V´ ypoˇ cet ZH hodin pro novou funkcionalitu (12h) Hlavn´ı algoritmus pro v´ ypoˇcet ZH hodnocen´ı. GUI pro novou funkcionalitu (1.5h) Bugfixy nov´ e funkcionality (2h) Chyby ve v´ ypoˇctu ZH. Chybˇ ej´ıc´ı data - poˇ cet uˇ citel˚ u na jednotliv´ ych paralelk´ ach v jednotliv´ ych t´ ydnech Z metodiky KOMETA 2 sekce 2.3a: Koeficient K pnp vyjadˇruje pr˚ umˇern´ y poˇcet uˇcitel˚ u pˇr´ıtomn´ ych na cviˇcen´ı v jednom t´ ydnu semestru, tedy aritmetick´ y pr˚ umˇer koeficient˚ u Kpn pro jednotliv´a cviˇcen´ı, shora omezen´ y hodnotou 1.6. Z KOSapi moˇzno pouze zjistit poˇcet uˇcitel˚ u na paralelce pro vˇsechny t´ ydny. Nejsem si jist´ y ˇze se vyskytuj´ı pˇr´ıpady pˇri kter´ ych jsou zaps´ani dva uˇcitele ale jen pro jednu jedinou hodinu (t´ yden) v semestru, jak nastiˇ nuje: Pro cviˇcen´ı laboratorn´ı (p´ısmenn´e oznaˇcen´ı v akreditaci je l) se ˇr´ıd´ı potˇrebou dvou nebo ˇctyˇr uˇcitel˚ u je K pn = 2 nebo K pn = 4, ¿¿a to pouze v t´ ydnech speci´aln´ıch laboratorn´ıch cviˇcen´ı¡¡ kde to vyˇzaduj´ı bezpeˇcnostn´ı pˇredpisy. Chybˇ ej´ıc´ı data - nemoˇ znost zjistit student˚ uv roˇ cn´ık v dobˇ e studia pˇ redmˇ etu V KOSapi nejsou dostupn´ a data studentova roˇcn´ıku v dobˇe studia pˇredmˇetu. V novˇejˇs´ı verzi KOMETy jiˇz nen´ı student˚ uv roˇcn´ık potˇreba. KOS - fiktivn´ı pˇ redmˇ et 32BBB (0.3h) Nejde nijak odliˇsit od ostatn´ıch pˇredmˇet˚ u, kromˇe slova ”fiktivn´ı”v n´azvu. M´a vypsan´e paralelky a k nim pˇriˇrazen´e uˇcitele. Mus´ım ho tedy zahrnout do v´ ypoˇctu. Je potˇreba vyfiltrovat pˇredmˇety, kter´e maj´ı typ zakonˇcen´ı NOTHING. Chybˇ ej´ıc´ı data - Neznalost historie pˇ riˇ razen´ı pracovn´ık˚ u ke katedr´ am Nakonec zobrazujeme vˇsechny pracovn´ıky a spr´avnˇe ˇrazen´ı do kateder je ned˚ uleˇzit´e. Rozd´ıln´ y poˇ cet studentu dle rozvrhu a naˇ se aplikace (2h) ˇ s´ım manu´aln´ı iterac´ı pˇres stuKOSapi nezapoˇc´ıt´ av´ a studenty s pozastaven´ ym studiem. Reˇ denty paralelek z KOSapi. ˇ Spatn´ y v´ ypoˇ cet ZH za zkouˇ sen´ı (1.2h) V´ ypoˇcet ZH za klasifikovan´ y z´ apoˇcet je v poˇr´adku. Zapoˇc´ıt´avaj´ı se cviˇc´ıc´ımu. Pro v´ ypoˇcet ZH za zkouˇsen´ı je ovˇsem potˇreba zapoˇc´ıtat pˇredn´aˇsej´ıc´ımu pˇr´ıpadnˇe rozpoˇc´ıtat mezi v´ıce pˇredn´ aˇsej´ıc´ıch.
5
Vytvoˇ rit SUM pro katedru (0.6h) Pˇridat z´ aznam o souˇctu za katedru. Rozdˇ elit dev.xhtml na Prohl´ıˇ zen´ı a V´ ypoˇ cet (1.5h) Rozdˇelen´ı funkcionality na dva logick´e celky. Vyclenit predmety ucene pro jine fakulty nez FEL z vypoctu ZH (0.7h) Spatny vypocet ZH za cviceni (0.56h) M´ısto poctu t´ ydn˚ u semestru ma byt poˇcet hodin za semestr. Tedy ve pro pro klasick´e cviˇcen´ı (=dvohodinove) 28 a nikoliv 14. Odstranit z klasickeho vypoctu predmety s projektovym typem vyuky (0.2h) Do klasick´eho v´ ypoˇctu by se nemˇely zapoˇc´ıt´avat pˇredmˇety s metodou v´ yuky PR, PRI a PRT. Chyba pri vypoctu ZH za zkouseni (0.5h) Chyba ve v´ ypoˇctu ZH. Vyhodit z vypoctu paralelky, kde je 0 studentu (0.2h) Spatny vypocet poctu studijnich skupin a poctu paralelek (Ppar a Pss) (0.3h) Import Kpnp z csv dat (2.5h) Blacklist import (4.5h) Katedern´ı blacklist pracovn´ık˚ u z extern´ıho souboru pro zrychlen´ı importu dat. Zobrazen´ı cel´ e fakulty (4.5h) Export tabulky do XLS (2.3h) Spatny vypocet ZH pro predmety z oblasti Bezpecnosti (0.5h) V celofakutnim hodnoceni jednoznacne divne vychazi vypocet ZH pro predmety z oblasti Bezpecnosti. Viz prvni ctyri vyucujici v celofakultni hodnoceni. Porovnejte ty vypocty s kometou. Mozna je to tim, ze vyuka probiha blokove, coz pak mozna meni zpusob vypoctu. Spatny jazyk u QB-DMA (0.3h) Jazyk byl pˇri chyb´ıc´ı hodnotˇe nastavov´an na ciz´ı - zmˇenˇeno na ˇcesk´ y. Pripominka k UI (3.0h) Zmˇenˇsen´ı UI, zmˇena styl˚ u a font˚ u.
6
Uprava GUI na zaklade pripominek vedeni (8.0h) Pˇrepracov´ an´ı UI na nov´ y zp˚ usob vyb´ır´an´ı a zobrazov´an´ı vypoˇcten´ ych dat. Nez´ avisl´ y import pˇ redmˇ et˚ u z KOSapi (2.0h) Oprava NPE a dalˇs´ıch pˇri importov´ an´ı pˇredmˇet˚ u. Nefunkcni zobrazeni dat pro vsechna pracoviste (0.3h) Chyba UI. Doplneni informaci o BP (1.9h) Nazev prace, Jmeno studenta, Jmeno vedouciho, Jmeno oponenta, Datum obhajoby, Zda uz byla prace opravdu obhajena ci je to jen v planu. Spatny vypocet ZH za DPBP (3.2h) Probl´em pˇriˇrazov´ an´ı BP a DP do spr´avn´ ych semestr˚ u. Testovani vypoctu ZH (0.5h) Automatick´e testov´ an´ı v´ ypoˇctu ZH - unit testy. Nov´ a funkcionalita efektivity v´ yuky (19.7h) Anal´ yza a implementace funkcionality v´ ypoˇctu efektivity v´ yuky Nerozpoˇ citateln´ e - poˇ cet student˚ u 0 (4.0h) Pov´ ypoˇctov´e pˇr´ıd´ an´ı informace o nezjistiteln´em rozˇrazen´ı student˚ u do obor˚ u. Aplikace pad´ a na NPE pˇ ri importu z Komety (ped v´ ykon) (2.0h) Konflikt v importovan´ ych datech. Anal´ yza chybovosti v´ ypoˇ ctu ZH jednotlivc˚ u (6.5h) Anal´ yza a opravy chyb pˇrepoˇc´ıt´ an´ı KOMETY na jednotlivce.
5 5.1
Zhodnocen´ı pouˇ zit´ e infrastruktury KOSapi
KOSapi je extern´ı RESTov´ a sluˇzba, kter´a pˇristupuje k dat˚ um z informaˇcn´ıho syst´emu KOS pomoc´ı pohled˚ u do datab´ aze. D´ıky tomu, ˇze je aplikace silnˇe z´avisl´a na datech z´ıskan´ y pomoc´ı t´eto sluˇzby, vznik´ a nˇekolik n´asleduj´ıc´ıch omezen´ı:
7
5.1.1
Nedostateˇ cn´ a rychlost z´ısk´ av´ an´ı informac´ı
KOSapi nebyla navrˇzena na takov´e vytˇeˇzov´an´ı dat jako potˇrebuje naˇse aplikace, rozhodli jsme se tedy duplikovat relevantn´ı ˇc´ asti objektov´e struktury KOSapi do naˇs´ı lok´aln´ı datab´aze pro rychlejˇs´ı v´ ypoˇcty. Import dat z KOSapi se v nejhorˇs´ım pˇr´ıpadˇe pohybuje na hranici deseti hodin. 5.1.2
Nedostupnost u ´ daj˚ u nebo jejich zdroj˚ u
N´e vˇsechny informace z KOSu jsou dostupn´e v KOSapi, a n´e veˇsker´e vazby maj´ı spr´avn´e nebo logick´e zdroje. Anal´ yza chybˇej´ıc´ıch a nepˇresn´ ych u ´daj˚ u z KOSapi je souˇc´ast´ı Bakal´aˇrsk´e pr´ace Davida Pol´ aka a bude dod´ ana v jin´em dokumentu. ˇ sen´ı probl´ Reˇ em˚ u V pr˚ ubˇehu projektu jsme vzd´ alenˇe spolupracovali s v´ yvoj´aˇrem KOSapi, kter´ y vˇzdy poskytl uspokojuj´ıc´ı v´ ymluvu, proˇc n´ aˇs poˇzadavek nemohl b´ yt implementov´an. V d˚ usledku jsme byli nuceni se obr´ atit na statick´ y export potˇrebn´ ych dat pˇr´ımo z informaˇcn´ıho syst´emu. T´ yk´a se to pˇredevˇs´ım diplomov´ ych a bak´ al´aˇrsk´ ych prac´ı a projektov´ ych pˇredmˇet˚ u. V pr˚ ubˇehu v´ yvoje jsme narazili na dobˇre ukryt´ y syst´em, kter´ y poskytuje exporty z v´ ypoˇctu KOMETy, tak jak se pouˇz´ıvaj´ı pro pˇrerozdˇelov´an´ı finanˇcn´ıch prostˇredk˚ u mezi jednotliv´e pracoviˇstˇe. Z tˇechto export˚ u jsme dos´ahli velmi uspokojiv´eho v´ ypoˇctu zapoˇcitateln´ ych hodin za pracovn´ıky. Je nezbytnˇe nutn´e, aby i do pˇr´ıˇst´ıch semestr˚ u byl tento export dostupn´ y, pokud moˇzno ve stejn´em form´ atu, jelikoˇz je na nˇem aplikace pro spr´avn´ y v´ ypoˇcet naprosto z´ avisl´ a a poˇzadovan´ a data se nedaj´ı z´ıskat nikde jinde.
6
Zhodnocen´ı ˇ casu a financ´ı str´ aven´ eho na projektu
Na projektu bylo str´ aveno celkem 160 hodin, coˇz je ˇc´ıslo t´emˇeˇr o polovinu menˇs´ı neˇz jsme odhadovali pro p˚ uvodn´ı pl´ an pr´ ace na projektu, nov´a funkcionalita byla sice tˇeˇzˇs´ı na anal´ yzu, ovˇsem nemuseli jsme se seznamovat s ˇz´adn´ ymi nov´ ymi technologiemi a frameworky, s jejichˇz velkou ˇcasovou dotac´ı jsme poˇc´ıtali v p˚ uvodn´ım ˇcasov´em odhadu. Ze stanoven´e sazby v dokumentu POS 1100kˇc/manhour vych´az´ı cena proveden´ ych zmˇen na aplikaci na 176 000kˇc.
6.1
Rozpoˇ cet hodin pr´ ace na k´ odu projektu
mˇ es´ıc.t´ yden hodiny
9 20.78
10 0
11.1 9.5
11.2 40.7
11.3 27.01
8
11.4 0.5
12.1 24.7
12.2 21.7
12.3 4
12.4 10.5
6.2
Graf repozit´ aˇ re - Lines of Code
Zmˇena LOC 17064 (24321 pˇrid´ano, 7257 odebr´ano) Bylo odhadov´ ana zmˇena 1000 ˇr´ adk˚ u k´odu, ovˇsem d´ıky nov´e funkcionalitˇe se jich zmˇenilo pˇres 17 tis´ıc, nutno regulovat oproti z´aloze a duplikaci css a templat˚ u, kter´e jsou poˇc´ıt´any nyn´ı dvakr´ at a skuteˇcn´e ˇc´ıslo je o 3000 ˇr´adk˚ u menˇs´ı.
6.3
Graf repozit´ aˇ re - Commity v hodinu
Nutno podotknout ˇze David Pol´ ak zˇrejmˇe nem´a r´ad sp´anek.
6.4
Graf repozit´ aˇ re - Commity v den
9
Zde je vhodn´e poznamenat ˇze pravideln´e sch˚ uzky konzultace projektu byly ve stˇredu. Z m´enˇe zaj´ımav´ ych graf˚ u je vidˇet ˇze nejv´ıce commit˚ u bylo ve stˇredu po konzultaci, kde byly implementov´ any nejnutnˇejˇs´ı zmˇeny, d´ale byly commity ve stˇredu r´ano, tedy z d˚ uvodu aby bylo na konzultaci implementov´ ano co nejv´ıce zmˇen.
7
Pl´ an dalˇ s´ıho v´ yvoje
7.1
Funkcion´ aln´ı body dalˇ s´ıho v´ yvoje
• Analyzovat chybovost v´ ypoˇctu zapoˇcitateln´ ych hodin – Zapoˇcitateln´e hodiny rozpoˇc´ıtan´e mezi jednotliv´e uˇcitele se v souˇctu znaˇcnˇe rozch´ azej´ı s celkov´ ym poˇctem zapoˇcitateln´ ych hodin za pˇredmˇety z komety. Je nutn´e analyzovat vˇsechny nepˇresnosti a zjistit jejich pˇr´ıˇcinu. – Nepˇresnosti m˚ uˇzou b´ yt zp˚ usobeny jak ˇspatn´ ym pˇrepoˇctem komety z pˇredmˇet˚ u na uˇcitele, tak i nepˇresnostmi v KOSapi nebo v syst´emu KOS. – Je nutn´e opravit nepˇresnosti v´ ypoˇctu v aplikaci a shrom´aˇzdit seznam probl´em˚ u v KOSapi a v syst´emu KOS a pˇredloˇzit ho pˇr´ısluˇsn´emu veden´ı pro dalˇs´ı anal´ yzu, pˇr´ıpadnˇe opravu. • Nasadit automatick´e testy spr´ avn´eho v´ ypoˇctu zapoˇcitateln´ ych hodin – Po anal´ yze a opravˇe chyb ve v´ ypoˇctu zapoˇcitateln´ ych hodin je potˇreba vytvoˇrit automatick´e testy, na zn´ am´e u ´daje, kter´e ovˇeˇr´ı spr´avnost v´ ypoˇctu. • Vytvoˇrit historii zaˇrazen´ı student˚ u do studijn´ıch program˚ u – Jelikoˇz KOSapi poskytuje pouze aktu´aln´ı stav zaˇrazen´ı student˚ u do program˚ u, pak je nutn´e uchov´ avat stav pro minul´e semestry v lok´aln´ı datab´azi, pro pˇr´ıpad retrospektivn´ıho vytv´ aˇren´ı dalˇs´ı funkcionality, kter´a by tyto data potˇrebovala.
7.2
Architektonick´ e body dalˇ s´ıho v´ yvoje
• Pˇridat request queue do knihoven KOSapi – Knihovny pro pˇr´ıstup ke KOSapi, potˇrebuj´ı implementovat frontu poˇzadavk˚ u, tak jak aplikace stoj´ı ted’, pak ze dvou nebo v´ıce souˇcasn´ ych poˇzadavk˚ u na KOSapi z aplikace se spr´ avnˇe provede jen jeden. • Refaktorizovat odeb´ır´ an´ı pˇredmˇet˚ u se zakonˇcen´ım NOTHING – Pˇredmˇety se zakonˇcen´ım NOTHING se nyn´ı odeb´ıraj´ı pˇri kalkulaci zapoˇcitateln´ ych hodin. Nutno refaktorizovat do jin´e ˇc´asti aplikace. • Refaktorizovat classesType ze String do enum • Refaktorizace datab´ azov´e tˇr´ıdy Review – Tˇr´ıda Review byla vytvoˇrena na zaˇc´atku specifikace nov´e funkcionality, kdy se pˇredpokl´ adalo ˇze bude v´ ypoˇcet zobrazov´an a implementov´an na z´akladˇe jednotliv´ ych kateder. Nyn´ı se v´ ypoˇcet zobrazuje za jednotliv´e uˇcitele a tˇr´ıda Review je tedy pˇrebyteˇcn´ a. Ovˇsem na tˇr´ıdu Review je v´az´ana cel´a logika vytv´aˇren´ı a vypoˇc´ıt´ av´ an´ı zapoˇcitateln´ ych hodin. – Nutno refaktorizovat vytv´aˇren´ı z kateder na jednotliv´e uˇcitele. • Refaktorizovat servisn´ı metody efektivity v´ yuky – Cel´ y v´ ypoˇcet efektivity v´ yuky je moment´alnˇe duplikov´an ve v´ ypoˇcetn´ı tˇr´ıdˇe, je nutno pˇresunout a upravit metody zpˇet do servisn´ıch tˇr´ıd.
10
7.3
Wishlist body dalˇ s´ıho v´ yvoje
• Historie exportu xls soubor˚ u – Bylo by dobr´e vytv´ aˇret a uchov´avat z´aznamy o vytvoˇren´ ych xls souborech pro jednotliv´e uˇzivatele. • Upravit a sjednotit knihovny pro pˇr´ıstup ke KOSapi – Knihovna pro pˇr´ıstup ke KOSapi je plnˇe dostaˇcuj´ıc´ı svoji funkcionalitou ke spr´avn´emu chodu aplikace a i jednoduch´emu udrˇzov´an´ı k´odu. Ovˇsem pˇri jejich pouˇz´ıv´an´ı bylo pozorov´ ana urˇcit´ a uˇzivatelsk´a neflexibilita pˇri vyb´ır´an´ı dat. Uˇzivatel mus´ı b´ yt obezn´ amen s dotazy KOSapi aby mohl vyuˇz´ıt vˇsech jeho moˇznost´ı. – David Pol´ ak bude ve sv´e Bakal´aˇrsk´e pr´aci pokraˇcovat na v´ yvoji knihovny pro pˇr´ıstup ke KOSapi.
8 8.1
Osobn´ı hodnocen´ı jednotlivce David Pol´ ak
Jelikoˇz je to projekt, na kter´em pracuji od jeho zrodu, tak mi pr´ace na nˇem pˇriˇsla z´abavn´a a naplˇ nuj´ıc´ı. Nauˇcil jsem se spoustu nov´eho co se t´ yˇce architektury a optimalizace Java EE aplikac´ı. Zjistil jsem ˇze pr´ ace pod ˇcasov´ ym tlakem mi nijak vyloˇzenˇe nevad´ı, ovˇsem mus´ım se zbavit tendence pl´ anovat si veˇskerou aktivitu na noˇcn´ı hodiny, ale tenhle semestr to nijak jinak ani napl´ anovat neˇslo. Co se t´ yˇce spolupr´ ace v t´ ymu, tak si nem´am na co stˇeˇzovat, Michal udˇelal vˇzdycky to co jsem mu naloˇzil, a vzhledem k tomu ˇze to byly vˇetˇsinou rutinn´ı vˇeci do kter´ ych se mi nechtˇelo, tak mi t´ım usnadnil ˇzivot a zlepˇsil pocit ohlednˇe projektu.
8.2
ˇ z´ Michal Reˇ abek
Na projektu se mi podaˇrilo odstranit duplikaci k´odu a optimalizovat pˇr´ısup k datab´azi a zobrazovac´ı logiku. Tyto zmˇeny vyˇzadovaly z´asah do arhitektury aplikace. D´ale jsem implementoval nˇekolik zmˇen v UI a export dat do excelu. Pravideln´e t´ ydenn´ı konzultace pomohly do znaˇcn´e m´ıry naplnit pˇredstavy zadavatel˚ u, t´ ymov´a spolur´ace prob´ıhala podle pˇredstav, a tak nezb´ yv´ a neˇz konstatovat, ˇze se podaˇrilo dov´est semestr´aln´ı projekt do u ´spˇeˇsn´eho konce.
11
9 9.1
Apendix: dokumentace implementace KOMETY V´ ypoˇ cet za pˇ redn´ aˇ sky
ˇ Pro UCITELE vyber vˇsechny PARALELKY (lecture) v SEMESTRU; Sluˇc paralelky okupuj´ıc´ı stejn´ y ˇcas v´ yuky; for vˇsechny PARALELKY do Ignoruj jestli je nulov´ y poˇcet student˚ u; Ignoruj jestli nen´ı nastaveno pracoviˇstˇe (nen´ı FEL); ˇ ˇ Ignoruj jestli je to projektov´ y PREDM ET; ˇ ˇ Ignoruj jestli nem´ a typ zakonˇcen´ı (dummy PREDM ET); ; ˇ ˇ Z´ıskej typ (bakal´ aˇrsk´ y...) a jazyk PREDM ETu a dle KOMETY urˇci Pmin; Proved’ u ´pravu minim´ aln´ı hodnoty Ppar dle KOMETY; ; Z´ıskej jazyk a dle KOMETY urˇci Kj; ; Z´ıskej poˇcet vyuˇcovan´ ych hodin za SEMESTR (CSV importovan´e z zp.feld.cvut.cz/kometa2.3); ; Spoˇc´ıtej ZH a podˇel poˇctem pˇredn´aˇsej´ıc´ıch; end
9.2
V´ ypoˇ cet za cviˇ cen´ı
ˇ Pro UCITELE vyber vˇsechny PARALELKY (lecture) v SEMESTRU; Sluˇc paralelky okupuj´ıc´ı stejn´ y ˇcas v´ yuky; ˇ ˇ for vˇsechny PREDMETY (unik´ atn´ı z PARALELEK) do Ignoruj jestli nen´ı nastaveno pracoviˇstˇe (nen´ı FEL); ˇ ˇ Ignoruj jestli je to projektov´ y PREDM ET; ˇ ˇ Ignoruj jestli nem´ a typ zakonˇcen´ı (dummy PREDM ET); ; ˇ ˇ (CSV importovan´e z zp.feld.cvut.cz/kometa2.3); Z´ıskej Kpnp pro dann´ y PREDM ET ; Z´ıskej jazyk a dle KOMETY urˇci Kj; for kaˇzdou PARALELKU do Ignoruj pokud je nulov´ y poˇcet student˚ u; Z´ıskej poˇcet vyuˇcovan´ ych hodin za SEMESTR (CSV importovan´e z zp.feld.cvut.cz/kometa2.3); end Spoˇcti maxim´ aln´ı poˇcet uˇcitel˚ u na paralelce; Spoˇcti parametry z KOMETY; ˇ ˇ a podˇel maxim´aln´ım poˇctem uˇcitel˚ Spoˇcti ZH za PREDM ET u; end
12
9.3
V´ ypoˇ cet za zkouˇ sen´ı
ˇ ˇ for vˇsechny PREDM ETY (unik´ atn´ı z PARALELEK) do Ignoruj jestli nen´ı nastaveno pracoviˇstˇe (nen´ı FEL); ˇ ˇ Ignoruj jestli je to projektov´ y PREDM ET; ˇ ˇ Ignoruj jestli nem´ a typ zakonˇcen´ı (dummy PREDM ET); ; ˇ ˇ (CSV importovan´e z zp.feld.cvut.cz/kometa2.3); Z´ıskej Kpnp pro dann´ y PREDM ET ; Z´ıskej jazyk a dle KOMETY urˇci Kj; if zakonˇceno klasifikovan´ym z´ apoˇctem then ˇ Vyber PARALELKY (lab,tut,nedef) za SEMESTR pro UCITELE end if Jestli zakonˇceno zkouˇskou then ˇ Vyber PARALELKY (lecture) za SEMESTR pro UCITELE end Ignoruj jin´e zakonˇcen´ı; Sluˇc PARALELKY okupuj´ıc´ı stejn´ y ˇcas v´ yuky; for kaˇzdou PARALELKU do Ignoruj pokud je nulov´ y poˇcet student˚ u; Z´ıskej Kzk podle typu zakonˇcen´ı dle KOMETY; Vypoˇc´ıtej ZH za paralelku, a podˇel poˇctem vyuˇcuj´ıc´ıch; end ; Seˇcti ZH za paralelky; end
9.4
V´ ypoˇ cet za bakal´ aˇ rsk´ e a diplomov´ e pr´ ace
ˇ Vyber vˇsechny DPBP pr´ ace kde je UCITEL vedouc´ı nebo oponent; for vˇsechny DPBP do Urˇci Kj dle KOMETY; Urˇci ZHo dle KOMETY; Vypoˇcti ZH; end
9.5
V´ ypoˇ cet za projektov´ e pˇ redmˇ ety
´ pˇredmˇety za UCITELE ˇ for vˇsechny PROJEKTOVE v SEMESTRU do Urˇci Kj dle KOMETY; Urˇci ZHo dle KOMETY; Vypoˇcti ZH; end
13
9.6
Import DPDP
Zaˇ razen´ı DPBP do semestru ´ I´ then if nastaveno datum ABSOLVOVAN ´ ’ Zaˇrad dle data ABSOLVOVAN´I; Skonˇci; end ´ I´ then if nastaveno datum ODEVZDAN ´ ’ Zaˇrad dle data ODEVZDAN´I; Skonˇci; end ´ I´ nen´ı starˇs´ı neˇz 3 semestry then if datum ZADAN Zaˇrad’ do moment´ alnˇe prob´ıhaj´ıc´ıho semestru; end V jin´em pˇr´ıpadˇe DPBP ignoruj jako neplatnou.;
14