ˇ e vysok´e uˇcen´ı technick´e v Praze Cesk´ Fakulta elektrotechnick´a
ˇ VUT FEL katedra pocˇı´tacˇu˚ C
Bakal´aˇrsk´a pr´ace
IS pro evidenci doch´ azky a aktivit v r´ amci tˇ elocviˇ cn´ e jednoty Pavel Stehl´ık
ˇ unek Vedouc´ı pr´ace: Ing. Martin Sim˚
Studijn´ı program: Elektrotechnika a informatika, strukturovan´ y, bakal´aˇrsk´ y Obor: V´ ypoˇcetn´ı technika ˇcerven 2006
ii
Podˇ ekov´ an´ı Pˇredevˇs´ım bych chtˇel podˇekovat m´ ym rodiˇc˚ um za jejich trpˇelivost, mor´aln´ı i materi´aln´ı podporu. Dˇekuji tak´e vˇsem pˇr´atel˚ um a kamar´ad˚ um, bez jejichˇz podpory by tato pr´ace ˇ unkovi za veden´ı, podporu a nikdy nevznikla. M´e d´ıky patˇr´ı tak´e Ing. Martinu Sim˚ neust´al´e popoh´anˇen´ı pˇri tvorbˇe bakal´aˇrsk´e pr´ace. iii
iv
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem svou bakal´aˇrskou pr´aci vypracoval samostatnˇe a pouˇzil jsem pouze podklady uveden´e v pˇriloˇzen´em seznamu. Nem´am z´avaˇzn´ y d˚ uvod proti uˇzit´ı tohoto ˇskoln´ıho d´ıla ve smyslu §60 Z´akona ˇc. 121/2000 Sb., o pr´avu autorsk´em, o pr´avech souvisej´ıc´ıch s pr´avem autorsk´ ym a o zmˇenˇe nˇekter´ ych z´akon˚ u (autorsk´ y z´akon).
V Praze dne 30. ˇcervna 2006
.............................................................
v
vi
Abstract This work deals with a problem of design, realization and testing an information system for documentation in a gymnastic organization. The system enables an easy-way administration of statistics of exercises, sports instructors, gymnasts and prints summaries and attendance lists. The output of this work is functional information system, which simplify work of train leaders in within the frame of the civil society Sokol.
Abstrakt Tato pr´ace se zab´ yv´a problematikou n´avrhu, realizace a testov´an´ı informaˇcn´ıho syst´emu pro evidenci v r´amci tˇelocviˇcn´e jednoty. Syst´em umoˇzn ˇuje jednoduchou formou v´est evidenci cviˇcen´ı, cviˇcitel˚ u, cviˇcenc˚ u a tisk pˇrehled˚ u a doch´azkov´ ych list˚ u. V´ ysledkem t´eto pr´ace je funkˇcn´ı informaˇcn´ı syst´em, kter´ y usnadn´ı pr´aci vedouc´ım cviˇcen´ı v r´amci obˇcansk´eho sdruˇzen´ı Sokol.
vii
viii
Obsah Seznam obr´ azk˚ u
xi
´ 1 Uvod
1
2 Popis probl´ emu, specifikace c´ıle 2.1 Deklarace z´amˇeru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Katalog poˇzadavk˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 4 4
3 Anal´ yza a n´ avrh ˇ reˇ sen´ı 3.1 Uˇzivatel´e syst´emu a jejich role 3.2 Model jedn´an´ı . . . . . . . . . 3.3 Objektov´ y model dat . . . . . 3.4 N´avrh uˇzivatelsk´eho prostˇred´ı 3.5 Generov´an´ı v´ ystup˚ u syst´emu .
. . . . .
6 6 6 7 8 11
4 Rozbor pouˇ zit´ ych technologi´ı 4.1 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Frameworky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Datab´azov´ y stroj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 12 12 14
5 Implementace 5.1 Bal´ıˇcek main . . . . . 5.2 Bal´ıˇcek main.bean . . 5.3 Bal´ıˇcek main.export . . 5.4 Bal´ıˇcek main.gui . . . 5.5 Bal´ıˇcek main.manager 5.6 Bal´ıˇcek print . . . . . . 5.7 Bal´ıˇcek util . . . . . .
. . . . . . .
15 15 15 16 16 17 18 18
6 Testov´ an´ı 6.1 Struktur´aln´ı testov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . ´ celov´e testov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Uˇ 6.3 Syst´emov´e testov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19 19 19 21
7 Z´ avˇ er
23
8 Seznam literatury
25
A Seznam pouˇ zit´ ych zkratek
27
B UML a dalˇ s´ı diagramy
29
C Obsah pˇ riloˇ zen´ eho CD
33
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
ix
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
. . . . .
. . . . . . .
x
Seznam obr´ azk˚ u 1.1
ˇ e sokolsk´e obce . . . . . . . . . . . . . . . . . . . . . . . . . . . Logo Cesk´
3.1 3.2 3.3 3.4 3.5 3.6 3.7
Zjednoduˇsen´ y model jedn´an´ı . . . Zjednoduˇsen´ y objekt typu Osoba Okno spr´avce kurz˚ u. . . . . . . . Okno spr´avce odbornosti . . . . . Okno spr´avce osob . . . . . . . . Okno spr´avce cviˇcen´ı . . . . . . . Vyplnˇen´ y doch´azkov´ y list . . . .
. . . . . . .
6 7 9 9 10 10 11
4.1
Prov´az´an´ı programu, Hibernate a datab´aze. . . . . . . . . . . . . . . . .
13
6.1 6.2
Uk´azka bˇehu programu pod operaˇcn´ım syst´emem Windows . . . . . . . . Uk´azka bˇehu programu pod operaˇcn´ım syst´emem Linux . . . . . . . . . .
22 22
B.1 Model jedn´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Diagram tˇr´ıd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3 ER diagram dat v datab´azi . . . . . . . . . . . . . . . . . . . . . . . . .
29 30 31
C.1 Obsah pˇriloˇzen´eho CD . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
. . . . . . .
xi
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
1
xii
´ KAPITOLA 1. UVOD
1
´ 1 Uvod V dneˇsn´ım svˇetˇe existuje mnoho informaˇcn´ıch syst´em˚ u. B´ yvaj´ı urˇceny pro udrˇzov´an´ı, zpracov´an´ı a poskytov´an´ı informac´ı. D´a se ˇr´ıci, ˇze jsou to syst´emy, kter´e maj´ı alespoˇ n jeden z tˇechto c´ıl˚ u: • pl´anov´an´ı, • spr´ava a ˇr´ızen´ı, • evidence. C´ılem pr´ace je navrhnout a implementovat syst´em pokr´ yvaj´ıc´ı vˇsechny dˇr´ıve uveden´e c´ıle ˇ v oblasti evidence pro Ceskou obec sokolskou, jej´ıˇz pˇredstaven´ı v u ´vodu nevynech´ame.
O Sokole ˇ a obec sokolsk´a je obˇcansk´e sdruˇzen´ı jej´ıˇz logo m˚ Cesk´ uˇzete spatˇrit na obr´azku 1.1. Sokolsk´a programov´a tradice je spojena pˇredevˇs´ım se snahou o v´ ychovu ˇclovˇeka odpovˇedn´eho za sebe, za obec, za demokratick´ y st´at. Sokol se ˇrad´ı k nejstarˇs´ım spolk˚ um tohoto typu na svˇetˇe. Myˇslenkovˇe vznikl v devaten´act´em stolet´ı z emancipaˇcn´ıch snah ˇcesk´eho n´aroda. Myˇslenku vˇsestrann´eho rozvoje ˇclovˇeka mu vtiskli dr. Miroslav Tyrˇs, profesor Univerzity Karlovy, a podnikatel Jindˇrich F¨ ugner.
ˇ e sokolsk´e obce Obr´azek 1.1: Logo Cesk´
Sokol byl nˇekolikr´at zak´az´an nebo omezen ve sv´e ˇcinnosti omezen v´alkami a totalitn´ımi reˇzimy. Poprv´e byl zak´az´an za prvn´ı svˇetov´e v´alky v roce 1915, podruh´e jej v roce 1941 za druh´e svˇetov´e v´alky zruˇsili nacist´e. Po roce 1948 byl potˇret´ı omezen a pohlcen sjednocenou tˇelov´ ychovou“. Snaha o obnovu Sokola byla v roce 1968 uduˇsena normal” izac´ı. Teprve v lednu 1990 byl jiˇz poˇctvrt´e probuzen k nov´emu ˇzivotu d´ıky b´ yval´ ym ˇ ˇclen˚ um v Ceskoslovensk´ e republice a ˇc´asteˇcn´e podpoˇre ze zahraniˇc´ı, kde pˇreˇzil v komunit´ach krajan˚ u. Proto tak´e existuje spousty obdobn´ ych sdruˇzen´ı v zahraniˇc´ı, kter´e v souˇcasn´e dobˇe spolupracuj´ı na rozvoji myˇslenky dr. Miroslava Tyrˇse.
´ KAPITOLA 1. UVOD
2
ˇ COS m´a nyn´ı t´emˇeˇr dvˇe stˇe tis´ıc ˇclen˚ u poch´azej´ıc´ıch ze vˇsech vˇekov´ ych skupin. Ti se dobrovolnˇe vˇenuj´ı pohybov´ ym aktivit´am ve v´ıce jak ˇsesti des´ıtk´ach sportovn´ıch ˇ ˇ odvˇetv´ı, kter´e jsou nyn´ı v COS organizov´any. COS se ale nevˇenuje jen sportovn´ım ˇcinnostem, ale i kulturn´ım aktivit´am. Pˇr´ıkladem jsou folkl´orn´ı a loutk´aˇrsk´e soubory. V nˇekter´ ych sportovn´ıch odvˇetv´ıch, jak´ ymi jsou gymnastika, h´azen´a, basketbal, judo a atletika dosahuj´ı ˇclenov´e sokolsk´e obce dokonce ligov´e aˇz reprezentaˇcn´ı u ´rovnˇe.
ˇ Organizaˇ cn´ı struktura COS ˇ a obec sokolsk´a se dˇel´ı na tyto organizaˇcn´ı stupnˇe: Cesk´ • tˇelocviˇcn´e jednoty Sokol ( jednota“) ” N´azev jednoty zaˇc´ın´a slovy tˇelocviˇcn´a jednota Sokol“ (ve zkratce T.J.Sokol“), za ” ” nimiˇz n´asleduje m´ıstopisn´e oznaˇcen´ı jednoty. Za n´azev jednoty je moˇzn´e pˇripojit ˇ upˇresˇ nuj´ıc´ı doplˇ nky, napˇr. - COS“. ” • sokolsk´e ˇzupy ( ˇzupa“) ” ˇ Zupa je sdruˇzen´ı jednot v r´amci pˇr´ısluˇsn´eho kraje. N´azev ˇzupy zaˇc´ın´a slovy Sokolsk´a ˇzupa“, za nimiˇz n´asleduje historick´e nebo jin´e oznaˇcen´ı ˇzupy. ” ˇ Z´akladn´ım dokumentem COS jsou jej´ı stanovy, kter´e jsou pro vˇsechny ˇcleny, orgaˇ nizaˇcn´ı jednoty a org´any na vˇsech organizaˇcn´ıch stupn´ıch COS z´avazn´e a ze kter´ ych mus´ı vych´azet vˇsechny ˇr´ady a dalˇs´ı spolkov´e normy, pˇredpisy a rozhodnut´ı. ˇ COS m´a tak´e svou u ´stˇredn´ı ˇskolu, kter´a m´a povinnost uskuteˇcn ˇovat vzdˇel´avac´ı, pedagogickou, organizaˇcn´ı, v´ yzkumnou a konzultaˇcn´ı ˇcinnost v problematice tˇelesn´e v´ ychovy a sportu. Odbor sportu zastˇreˇsuje sportovn´ı odd´ıly, napˇr´ıklad aerobik, fotbal, volejbal, ale tˇreba i ˇ ˇsachy nebo biliard. Odbor vˇsestrannosti je nejpoˇcetnˇejˇs´ı sloˇzkou COS, v r´amci programu sokolsk´e vˇsestrannosti jsou provozov´any rekreaˇcn´ı sporty a pohybov´e aktivity pro vˇetˇsinu lid´ı, vˇcetnˇe zdravotnˇe postiˇzen´ ych.
Elektronick´ a evidence Elektronick´a evidence n´am poskytuje hned nˇekolik v´ yhod oproti klasick´e pap´ırov´e evidenci. Napˇr´ıklad snadn´e zpracov´an´ı, rychlou dostupnost, pˇresnost informac´ı a jin´e. Z hlediska jiˇz nast´ınˇen´e organizace sokolsk´e obce je potˇreba evidovat u ´daje o ˇclenech, cviˇcitel´ıch, kurzech a jejich cviˇcen´ı. Nemus´ıme tedy evidovat doch´azku, ale jej´ı evidence n´am umoˇzn´ı vyuˇzit´ı ve v´ ykazech za odbor ˇci celou ˇzupu v kter´ ych je potˇreba zahrnout statistick´e u ´daje ohlednˇe u ´ˇcasti. Zavedeme tedy pˇrehled doch´azky u ´ˇcastn´ık˚ u cviˇcen´ı. Pˇrehled konan´ ych kurz˚ u a jeho cviˇcen´ı n´am umoˇzn´ı spr´avnˇe napl´anovat a rozvrhnout nov´e. V r´amci evidence cviˇcitel˚ u budeme v´est i pˇrehled jejich odbornost´ı, jeho kvalifikaˇcn´ı stupeˇ n a platnost. Bude tak moˇzn´e pˇriˇradit ke cviˇcen´ı opravdu kvalifikovan´eho cviˇcitele. Cviˇciteli bude moci b´ yt tak´e doporuˇcen doˇskolovac´ı kurz na z´akladˇe zjiˇstˇen´ ych u ´daj˚ u.
´ KAPITOLA 1. UVOD
3
Dostupn´ y software Nev´ıme o obdobn´em softwaru.Nalezen´e dostupn´e n´astroje nesplˇ nuj´ı naˇse poˇzadavky. Vˇetˇsinou se jednalo o komerˇcn´ı programy typu Attendance Management System. Nalezli jsme i nˇekolik open-source projekt˚ u, ale byli pˇrev´aˇznˇe u ´zce specializovan´e nebo postaven´e na platformnˇe PHP/MySQL. Rozˇs´ıˇren´ı tˇechto dostupn´ ych syst´em˚ u o n´ami poˇzadovanou ˇ funkˇcnost se jevilo jako zbyteˇcnˇe n´aroˇcn´e. V r´amci COS tak´e vznik´a syst´em pro evidenci cviˇcitel˚ u, zˇrejmˇe jen pro potˇrebu jednoty. Bohuˇzel zat´ım nebyl dokonˇcen a ˇz´adn´a z jeho ˇc´ast´ı nen´ı veˇrejnˇe pˇr´ıstupn´a.
´ KAPITOLA 2. POPIS PROBLEMU, SPECIFIKACE C´ILE
4
2 Popis probl´ emu, specifikace c´ıle 2.1
Deklarace z´ amˇ eru
Navrhnˇete a implementujte syst´em, kter´ y umoˇzn´ı jednoduchou formou evidovat doch´azku do cviˇcen´ı, akce organizovan´e tˇelocviˇcnou jednotou a dalˇs´ı aktivity cviˇcitel˚ u. Syst´em umoˇzn´ı sledov´an´ı aktivit (cviˇcen´ı) se seznamem akc´ı a jejich u ´ˇcastn´ık˚ u , ale tak´e statistiky doch´azky (procentu´aln´ı u ´ˇcast za urˇcit´e obdob´ı). Syst´em poskytne sledov´an´ı kvalifikace a odbornosti jednotliv´ ych cviˇcitel˚ u a umoˇzn´ı generov´an´ı v´ ypis˚ u dat ze syst´emu urˇcen´ ych pro tisk, ˇci dalˇs´ı ˇs´ıˇren´ı. Zamˇeˇrte se na snadnost instalace a ovl´ad´an´ı, jelikoˇz tento syst´em bude urˇcen pro dom´ac´ı pouˇzit´ı uˇzivatel˚ um, kteˇr´ı ˇcasto nemaj´ı vˇetˇs´ı zkuˇsenost s prac´ı na poˇc´ıtaˇci. Syst´em navrhnˇete a implementujte jako multiplatformn´ı (nez´avisl´ y na operaˇcn´ım syst´emu). Pˇri v´ yvoji pouˇzijte jen prostˇredky, kter´e umoˇzn ˇuj´ı v´ ysledn´ y syst´em a zdrojov´e k´ody ˇs´ıˇrit pod licenc´ı open-source.
2.2
Katalog poˇ zadavk˚ u
Poˇzadavky jsou z´akladem vˇsech syst´em˚ u. Mˇely by b´ yt jedin´ ym vyj´adˇren´ım, co by mˇel syst´em dˇelat a ne jak by to mˇel dˇelat. To je pomˇernˇe velk´ y rozd´ıl. M˚ uˇzeme tak urˇcit, co by mˇel syst´em dˇelat a jak´e chov´an´ı by mˇel nab´ızet, bez toho aniˇz bychom ˇrekli nˇeco o tom jak bude dan´e funkˇcnosti dosaˇzeno. Pro definici poˇzadavk˚ u jsme pouˇzili jednoduch´ y a ˇcasto pouˇz´ıvan´ y form´at. hjedineˇcn´ y identifik´atorihn´azev syst´emui bude hpopis vykon´avan´e funkcei Na z´akladˇe deklarace z´amˇeru a konzultac´ı s vedouc´ım pr´ace byly definov´any poˇzadavky, kter´e pokr´ yvaj´ı hlavn´ı vlastnosti syst´emu. 1. Syst´em bude evidovat osoby s jejich osobn´ımi u ´daji a kontaktn´ımi u ´daji. ˇ 2. Syst´em bude pˇriˇrazovat osob´am role u ´ˇcastn´ık, cviˇcitel a ˇclen COS, kter´e se vz´ajemnˇe nevyluˇcuj´ı. ˇ 3. Syst´em bude zaznamen´avat u ˇclen˚ u COS zaplacen´ı ˇclensk´ ych poplatk˚ u a platnost zdravotn´ıho potvrzen´ı. 4. Syst´em bude zaznamen´avat u cviˇcitel˚ u odbornosti a jejich kvalifikaˇcn´ı stupeˇ n. 5. Syst´em bude evidovat cviˇcen´ı s n´azvem, popisem a vedouc´ım 6. Syst´em bude evidovat cviˇcebn´ı hodiny patˇr´ıc´ı pod jednotliv´a cviˇcen´ı s datem kon´an´ı, cviˇcitelem, popisem a u ´ˇcastn´ıky. 7. Syst´em bude zaznamen´avat na cviˇcebn´ıch hodin´ach u u ´ˇcastn´ık˚ u doch´azku, pozn´amku a zda se pod´ıleli jako pomocn´ı cviˇcitel´e.
´ KAPITOLA 2. POPIS PROBLEMU, SPECIFIKACE C´ILE
5
8. Syst´em bude generovat v´ ypisy dat ze syst´emu urˇcen´e pro tisk. 9. Syst´em bude navrˇzen a implementov´an jako nez´avisl´ y na operaˇcn´ım syst´emu. 10. Syst´em bude implementov´an a uveˇrejnˇen pod licenc´ı open source. 11. Syst´em bude pˇr´ıstupn´ y pro bˇeˇzn´e osobn´ı poˇc´ıtaˇce bez nutnosti pˇripojen´ı do s´ıtˇe. Open-source Mezi v´ yznamn´e poˇzadavky bylo zaˇrazeno vyv´ıjet syst´em jako open-source z nˇekolika d˚ uvod˚ u. Syst´em bude moci kdokoli pˇrizp˚ usobit sv´e potˇrebˇe a d´ale ho zdokonalovat. Ve st´avaj´ıc´ı podobˇe se d´a vyuˇz´ıt kdekoliv kde je potˇreba evidovat osoby, kter´e se u ´ˇcastn´ı libovoln´e ud´alosti. Napˇr´ıklad s minim´aln´ımi u ´pravami se d´a vytvoˇrit digit´aln´ı tˇr´ıdnice pro t´emˇeˇr vˇsechny typy ˇskol.
´ ´ ˇ SEN ˇ ´I KAPITOLA 3. ANALYZA A NAVRH RE
6
3 Anal´ yza a n´ avrh ˇ reˇ sen´ı 3.1
Uˇ zivatel´ e syst´ emu a jejich role
Typick´ ymi uˇzivateli syst´emu budou zpoˇc´atku mladˇs´ı lid´e. U nich se pˇredpokl´ad´a ˇze si chtˇej´ı udˇelat poˇr´adek a nechtˇej´ı b´ yt zavaleni pap´ırov´an´ım a neust´ale hledat zaloˇzen´e v´ ykazy. U starˇs´ıch lid´ı se d´a oˇcek´avat pˇrevl´adaj´ıc´ı strach z nov´e a neust´ale se vyv´ıjej´ıc´ı techniky, ale pevnˇe vˇeˇr´ıme ˇze ho pˇrekonaj´ı a dˇr´ıve ˇci pozdˇeji syst´em zaˇcnou vyuˇz´ıvat. Syst´em nebude z´avisl´ y na ˇz´adn´em centr´aln´ım prvku, coˇz umoˇzn ˇuje aby mˇel kaˇzd´ y vedouc´ı svoji instanci. S jednou instanc´ı tak bude pracovat zpravidla jeden vedouc´ı, kter´ y ho bude m´ıt instalov´an na sv´em osobn´ım poˇc´ıtaˇci. Syst´em bude d´ale pracovat s datab´azov´ ym strojem a lok´aln´ım diskem, kter´e lze nazvat z pohledu n´avrhu tak´e u ´ˇcastn´ıky. Osoby evidovan´e v syst´emu maj´ı dvˇe hlavn´ı role, cviˇcitel a u ´ˇcastn´ık. ´ castn´ıkem se kaˇzd´a osoba v syst´emu, i cviˇcitel m˚ • Uˇ uˇze vystupovat jako u ´ˇcastn´ık. ´ castn´ık se m˚ ˇ • Uˇ uˇze st´at ˇclenem COS, ale toto rozliˇsen´ı je pouze informativn´ı a nem´a na chod syst´emu vliv. • Cviˇcitel m˚ uˇze b´ yt povˇeˇren veden´ım cviˇcen´ı a cviˇcebn´ıch hodin.
3.2
Model jedn´ an´ı
Na z´akladˇe popisu probl´emu a nalezen´ ych u ´ˇcastn´ık˚ u jsme vytvoˇrili model jedn´an´ı v jazyce UML, kter´ y naleznete v pˇr´ıloze B.1. V modelu jedn´an´ı se objevuj´ı tˇri u ´ˇcastn´ıci (vedouc´ı, datab´azov´ y stroj, lok´aln´ı disk) a samotn´ y syst´em, kter´ y poskytuje danou funkˇcnost. Zjednoduˇsen´ y model jedn´an´ı lze vidˇet na obr´azku 3.1.
Obr´azek 3.1: Zjednoduˇsen´ y model jedn´an´ı
´ ´ ˇ SEN ˇ ´I KAPITOLA 3. ANALYZA A NAVRH RE
7
Z modelu je vidˇet jak´e funkce vedouc´ı m˚ uˇze od syst´emu ˇza´dat. Syst´em k plnˇen´ı poˇzadovan´ ych krok˚ u potˇrebuje data, kter´a z´ısk´a od datab´azov´eho stroje. Lok´aln´ımu disku pak syst´em pˇred´av´a v´ ystupy urˇcen´e pro tisk a podobnˇe.
3.3
Objektov´ y model dat
Pro reprezentaci dat jsme pouˇzili objekty, v Javˇe zn´ame jako JavaBeans. Jedna tˇr´ıda realizuje jeden typ objektu. Diagram s promˇenn´ ymi bez poskytovan´ ych funkc´ı get a set ´ lze vidˇet na obr. 3.2. Upln´ y diagram naleznete v pˇr´ıloze B.2
Obr´azek 3.2: Zjednoduˇsen´ y objekt typu Osoba
Za pomoc´ı objektovˇe-relaˇcn´ıho mapov´an´ı bylo z tˇechto tˇr´ıd automaticky vytvoˇreno sch´ema datab´aze. Sch´ema takto vznikl´e datab´aze naleznete v podobˇe ER diagramu v pˇr´ıloze B.3.
´ ´ ˇ SEN ˇ ´I KAPITOLA 3. ANALYZA A NAVRH RE
8
3.4
N´ avrh uˇ zivatelsk´ eho prostˇ red´ı
Navrhnout pˇrehledn´e a pro uˇzivatele pˇr´ıvˇetiv´e prostˇred´ı je pomˇernˇe obt´ıˇzn´ yu ´kol. N´aˇs syst´em m´a za u ´kol umoˇznit prohl´ıˇzet a editovat nˇekolik vz´ajemnˇe prov´azan´ ych u ´daj˚ u. Rozhodli jsme se tyto u ´daje rozdˇelit do nˇekolika oddˇelen´ ych ˇc´ast´ı (spr´avce kurz˚ u, cviˇcen´ı, osob a odbornost´ı). Pˇri reprezentaci tˇechto ˇc´ast´ı uˇzivateli jsme zvaˇzovali tˇri moˇzn´e alternativy: 1. hlavn´ı okno (spr´avce kurz˚ u) slouˇz´ıc´ı jako rozcestn´ık k dalˇs´ım ˇc´astem programu, kter´e se otev´ıraj´ı v samostatn´ ych oknech, 2. hlavn´ı okno maj´ıc´ı z´aloˇzky (karty) pro jednotliv´e ˇc´asti, kter´e se skr´ yvaj´ı pod dan´ ymi z´aloˇzkami, 3. hlavn´ı okno obsahuj´ıc´ı vlastn´ı plochu tvoˇr´ıc´ı podklad pod variantou 1. Jako malou nev´ yhodu 1. reprezentace vid´ıme v jej´ı mal´e pˇrehlednosti oproti 2. variantˇe se z´aloˇzkami, kter´a n´am ale neumoˇzn ˇuje m´ıti otevˇren´ ych v´ıce ˇc´ast´ı programu najednou. Tˇret´ı varianta je vhodn´a pro rozs´ahlejˇs´ı syst´emy a bˇeˇzn´ı uˇzivatele ji pˇr´ıliˇs neznaj´ı, proto jsme ji zam´ıtli. Pro reprezentaci uˇzivatelsk´eho prostˇred´ı byla tedy zvolena 1. varianta s oddˇelen´ ymi okny. Poskytuje snadn´e rozm´ıstˇen´ı na ploˇse, zobrazen´ı v´ıce ˇc´ast´ı programu najednou a jeho implementaci je snadnˇejˇs´ı neˇz u ostatn´ıch variant. Aby uˇzivatelsk´e rozhran´ı bylo pˇrehledn´e rozhodli jsme se pro rozdˇelen´ı jednotliv´ ych ˇc´ast´ı na pˇrehled dan´ ych poloˇzek a jejich detaily. Pˇrehled nach´azej´ıc´ı se v lev´e ˇc´asti obsahuje tabulku poskytuj´ıc´ı jednoduch´e a pˇrehledn´e zobrazen´ı evidovan´ ych poloˇzek. Ovl´adac´ı prvky pro pˇrid´an´ı, u ´pravu a odebr´an´ı poloˇzky jsou um´ıstˇeny v doln´ı ˇc´asti pˇrehledu. Detaily um´ıstˇen´e napravo od pˇrehledu n´am poslouˇz´ı ke tˇrem u ´ˇcel˚ um: 1. zobrazen´ı detail˚ u vybran´e poloˇzky ze seznamu – pole nejsou editovateln´e, 2. vytvoˇren´ı nov´e poloˇzky – pole jsou pr´azdn´e a editovateln´e, 3. editov´an´ı vybran´e poloˇzky – pole jsou vyplnˇen´e a editovateln´e. Prvek pro uloˇzen´ı nov´e ˇci upraven´e poloˇzky je um´ıstˇen v doln´ı ˇc´asti detail˚ u.
´ ´ ˇ SEN ˇ ´I KAPITOLA 3. ANALYZA A NAVRH RE
9
Spr´ avce kurz˚ u Jelikoˇz kurz je nejhlavnˇejˇs´ı poloˇzka v programu, 4oznaˇcili jsme jeho spr´avce jako prim´arn´ı okno. Tento spr´avce slouˇz´ı k zad´av´an´ı nov´ ych kurz˚ u, prohl´ıˇzen´ı a u ´prav´am jiˇz zadan´ ych. Proto jako jedin´ y obsahuje roletov´e menu v nˇemˇz najdeme odkazy na dalˇs´ı spr´avce, operace s datab´azi, n´apovˇedu a jeho ukonˇcen´ım konˇc´ı cel´ y program. Pro rychlejˇs´ı navigaci v programu byl do horn´ı ˇc´asti pˇrid´an panel n´astroj˚ u obsahuj´ıc´ı ˇ odkazy na spr´avce osob, odbornost´ı a generov´an´ı v´ ypisu. C´ast detaily“ nav´ıc obsahuje ” odkaz na spr´avce cviˇcen´ı zobrazuj´ıc´ı cviˇcen´ı pˇriˇrazen´e vybran´emu kurzu.
Obr´azek 3.3: Okno spr´avce kurz˚ u
Spr´ avce odbornost´ı Slouˇz´ı k pˇrid´av´an´ı a editaci kvalifikaˇcn´ıch stupˇ n˚ u a odbornost´ı, kter´e je moˇzn´e ve spr´avˇe osob cviˇcitel˚ um pˇriˇradit. Standardnˇe je jiˇz pˇriˇrazeno nˇekolik odbornost´ı a kvalifikaˇcn´ıch ˇ stupˇ n˚ u typick´ ych pro COS. Tento spr´avce neobsahuje detaily“, jelikoˇz je moˇzn´e vˇsechny ” dostupn´e u ´daje zobrazit pˇr´ımo v pˇrehledu.
Obr´azek 3.4: Okno spr´avce odbornosti
10
´ ´ ˇ SEN ˇ ´I KAPITOLA 3. ANALYZA A NAVRH RE
Spr´ avce osob Slouˇz´ı k zad´av´an´ı nov´ ych osob,prohl´ıˇzen´ı a u ´prav´am jiˇz existuj´ıc´ıch. Jelikoˇz se pˇredpokl´ad´a velk´ y poˇcet evidovan´ ych osob je potˇreba umoˇznit v pˇrehledu tˇr´ıdit a vyhled´avat. K tomu poslouˇz´ı textov´e pole a zaˇskrt´avac´ı pol´ıˇcko um´ıstˇen´e v horn´ı ˇc´asti pˇrehledu. V pˇr´ıpadˇe ˇze je spr´avce osob otevˇren ze spr´avy cviˇcen´ı, objev´ı se vedle tlaˇc´ıtka Pˇridat nalevo od tlaˇc´ıtka OK. To n´am poslouˇz´ı pro potvrzen´ı v´ ybˇeru u ´ˇcastn´ık˚ u do cviˇcen´ı.
Obr´azek 3.5: Okno spr´avce osob
Spr´ avce cviˇ cen´ı Slouˇz´ı k zad´av´an´ı nov´ ych cviˇcen´ı, prohl´ıˇzen´ı a u ´prav´am jiˇz zadan´ ych dan´eho kurzu. V horn´ı ˇc´asti okna se nach´az´ı informace o kurzu a jeho vedouc´ım, ke kter´emu je cviˇcen´ı pˇriˇrazeno. N´asleduj´ı pˇrehled a detaily cviˇcen´ı. Pod tlaˇc´ıtkem pˇridat v´ıce“ se skr´ yv´a ” dialogov´e okno umoˇzn ˇuj´ıc´ı vytvoˇren´ı v´ıce cviˇcen´ı najednou. Ve spodn´ı ˇc´asti spr´avce cviˇcen´ı lze cviˇcen´ım pˇriˇradit seznam u ´ˇcastn´ık˚ u vˇcetnˇe jejich doch´azky a aktivity.
Obr´azek 3.6: Okno spr´avce cviˇcen´ı
´ ´ ˇ SEN ˇ ´I KAPITOLA 3. ANALYZA A NAVRH RE
3.5
11
Generov´ an´ı v´ ystup˚ u syst´ emu
Jedn´ım z poˇzadavk˚ u na syst´em je umoˇznˇen´ı generov´an´ı v´ ystupu pouˇziteln´eho pro tisk. Vu ´vahu pˇripadaly variant: 1. vygenerov´an´ı xml souboru a n´asledn´a konverze do form´atu pdf, 2. pˇr´ım´ y tisk zobrazuj´ıc´ıch komponent obsaˇzen´ ych v programu, 3. vygenerov´an´ı html souboru. Prvn´ı varianta se jevila jako nejvhodnˇejˇs´ı. Bohuˇzel nebyl nalezen vhodn´ y prostˇredek pro pouˇzit´ı zdarma, kter´ y by umoˇznil konverzi xml do pdf vˇcetnˇe netrivi´aln´ıch tabulek. Vybrali jsme proto 3. variantu jelikoˇz n´am html jazyk poskytuje na rozd´ıl od 2. varianty volnost jak v´ ystupn´ı dokument uspoˇr´ad´ame. Pˇr´ıklad v´ ystupu ve formˇe vyplnˇen´eho doch´azkov´eho listu je vidˇet na obr. 3.7
Obr´azek 3.7: Vyplnˇen´ y doch´azkov´ y list
ˇ YCH ´ KAPITOLA 4. ROZBOR POUZIT TECHNOLOGI´I
12
4 Rozbor pouˇ zit´ ych technologi´ı 4.1
Java
Java je programovac´ı jazyk poch´azej´ıc´ı od firmy Sun Microsystems. Povaˇzujeme ji za vyspˇel´ y programovac´ı jazyk, obsahuj´ıc´ı vˇetˇsinu vlastnost´ı, kter´e jsou vyˇzadov´any v modern´ım programov´an´ı. Pˇredevˇs´ım je silnˇe objektov´a, coˇz umoˇzn ˇuje v n´ı modelovat, vytv´aˇret, pouˇz´ıvat a rozˇsiˇrovat rozs´ahl´e knihovny a syst´emy. Velkou v´ yhodou Javy je jej´ı hardwarov´a nez´avislost, protoˇze je pˇrekl´adan´a do speci´aln´ıho mezik´odu (bytecode), kter´ y je na konkr´etn´ım poˇc´ıtaˇci nebo zaˇr´ızen´ı (PC, handheld, mobiln´ı telefon apod.) interpretov´an, pˇr´ıp. za bˇehu pˇrekl´ad´an do nativn´ıho k´odu (tzv. JIT - Just-In-Time compilerem). Program´ator tedy m˚ uˇze napsat program v Javˇe napˇr´ıklad na osobn´ım poˇc´ıtaˇci pod Windows a spustit jej i na jin´ ych syst´emech, kde je k dispozici Java runtime. Mezi dalˇs´ı v´ yhody patˇr´ı siln´a typov´a kontrola, multithreading, oˇsetˇren´ı vyj´ımek a vysok´a bezpeˇcnost. Jako ˇcasto uv´adˇen´a nev´ yhoda je niˇzˇs´ı rychlost, zp˚ usoben´a zpracov´an´ım v runtime prostˇred´ı. Tu lze omezit s pomoc´ı specializovan´ ych pˇrekladaˇc˚ u na c´ılov´em prostˇred´ı tzv. Java just-in-time Compiler. NetBeans Pro v´ yvoj syst´emu jsme pouˇzili v´ yvojov´e prostˇred´ı NetBeans od Sun Microsystems, kter´e je jiˇz nˇekolik let vyv´ıjeno v Praze. Vybrali jsme si ho d´ıky jeho n´avrh´aˇri GUI MATISSE, jeˇz pouˇz´ıv´a nov´ y layout manager. Ten umoˇzn ˇuje metodou drag-and-drop navrhnout GUI rychle a intuitivnˇe tak jak to zn´ame napˇr´ıklad z Visual Basicu.
4.2
Frameworky
K usnadnˇen´ı v´ yvoje bylo pouˇzito nˇekolik framework˚ u. Frameworky si lze vysvˇetlit jako prostˇred´ı poskytuj´ıc´ı nov´e API(aplikaˇcn´ı rozhran´ı), kter´e je pouˇzito pro usnadnˇen´ı pˇri programov´an´ı. B´ yvaj´ı napsan´e ve stejn´em programovac´ım jazyku, kter´ y pouˇz´ıv´ame. Dom4j Dom4j je open source framework urˇcen´ y pro Javu. Umoˇzn ˇuje ˇc´ıst, zapisovat, vytv´aˇret a upravovat XML dokumenty. Vyuˇzili jsme ho pˇri exportu a importu dat. Hibernate Hibernate je framework poskytuj´ıc´ı objektovˇe relaˇcn´ı mapov´an´ı (ORM) pro aplikace psan´e v Javˇe. Objektovˇe relaˇcn´ı mapov´an´ı je zp˚ usob, jak tˇr´ıdy napsan´e v Javˇe (objekty) pˇremapovat na relaˇcn´ı strukturu datab´azov´ ych tabulek. Vyhneme se t´ım tedy vytv´aˇren´ı
ˇ YCH ´ KAPITOLA 4. ROZBOR POUZIT TECHNOLOGI´I
13
datab´aze a struktury tabulek. Hibernate to provede za n´as, jak naznaˇcuje diagram 4.1, kter´ y zobrazuje propojen´ı a nastaven´ı perzistentn´ıho spojen´ı datab´aze s aplikac´ı pˇres perzistentn´ı objekty.
Obr´azek 4.1: Prov´az´an´ı programu, Hibernate a datab´aze. Hibernate tedy poskytuje jednoduch´e API, kter´e umoˇzn ˇuje mapov´an´ı objekt˚ u do 20 podporovan´ ych relaˇcn´ıch datab´az´ı. Jedn´a se o relaˇcn´ı datab´aze Oracle(jak´akoliv verze), Oracle 9/10g, DB2, DB2 AS/400, DB2 OS390, MySQL, PostgreSQL, Sybase, Sybase Anywhere, SAP DB, HypersonicSQL (HSQLDB), Microsoft SQL Server, Informix, FrontBase, Ingres, Progress, Mckoi SQL, Pointbase, Interbase a FireBird. Pro komunikaci s datab´az´ı n´am poskytuje dvˇe moˇznosti. • Hibernate Query Language (HQL) – plnˇe objektovˇe orientovan´ y dotazovac´ı jazyk umoˇzn ˇuj´ıc´ı z´ısk´av´an´ı datab´azov´ ych dat ve formˇe objekt˚ u, kter´ y je syntakticky velmi podobn´ y SQL. • Structured Query Language (SQL) – standardizovan´ y dotazovac´ı jazyk. Hibernate lze pouˇz´ıt v mnoha aplikaˇcn´ıch architektur´ach. M˚ uˇze b´ yt pouˇzita jak v klasick´ ych desktopov´ ych aplikac´ıch, tak i v serverov´ ych aplikac´ıch zaloˇzen´ ych na J2EE. GlazedLists GlazedLists n´am umoˇzn ˇuje jednoduˇs´ı implementaci seznamu objekt˚ u, kter´ y je moˇzno napˇr´ıklad pouˇz´ıt jako model komponenty JTable. Tento seznam je snadn´e filtrovat, ˇradit a jeho okamˇzit´ y stav ihned prom´ıtat do tabulky. Napˇr´ıklad po vybr´an´ı ˇr´adku v tabulce osob, m˚ uˇzeme pracovat s vybran´ ym ˇr´adkem jako by to byl objekt Person a volat nad n´ım pˇr´ısluˇsn´e funkce. D´ale poskytuje moˇznost implementace posluchaˇce v objektech a pˇri jejich zmˇenˇe ihned aktualizovat grafick´e komponenty, napˇr´ıklad jiˇz zmiˇ novanou tabulku. Pro komponentu JTable t´eˇz poskytuje jednoduch´e nastaven´ı z´ahlav´ı, editace bunˇek a podobnˇe.
ˇ YCH ´ KAPITOLA 4. ROZBOR POUZIT TECHNOLOGI´I
14
4.3
Datab´ azov´ y stroj
V aplikaci je vyˇzadov´ano datov´e u ´loˇziˇstˇe, kter´e by jednoduchou formou dovolovalo spravovat uloˇzen´e informace a jejich uloˇzen´ı do logick´e struktury. Vedle XML soubor˚ u je nevhodnˇejˇs´ı ˇreˇsen´ı relaˇcn´ı datab´aze, ukl´adaj´ıc´ı data v definovan´e podobˇe do tabulek. Datab´azov´ ych server˚ u existuje nˇekolik. Potˇrebujeme, aby pouˇzit´ y datab´azov´ y server splˇ noval nˇekolik poˇzadavk˚ u: • zdarma k pouˇzit´ı • moˇznost bˇeˇzet na lok´aln´ım poˇc´ıtaˇci • bezobsluˇzn´a instalace (spuˇstˇen´ı) • co nejmenˇs´ı velikost a nejvyˇsˇs´ı rychlost Bohuˇzel, instalace vˇetˇsiny bˇeˇznˇe dostupn´ ych server˚ u vyˇzaduje pomˇernˇe sloˇzitou instalaci a nastaven´ı. Proto bylo zvoleno ponˇekud atypick´e ˇreˇsen´ı ve formˇe HSQLDB. HSQLDB HSQLDB, dˇr´ıve naz´ yv´an jako Hypersonic“, je open source SQL datab´aze ukl´adaj´ıc´ı ” vˇsechna data v nˇekolika souborech na disk. M´a nˇekolik v´ yhod: • velmi mal´a a rychl´a, • jednoduch´e nastaven´ı, • naps´ana v Javˇe. Tyto vlastnost´ı z n´ı utv´aˇrej´ı ide´aln´ı ˇc´ast, kterou lze sn´aze implementovat do aplikace. Poskytuje stejn´e rozhran´ı jako sloˇzit´e datab´azov´e servery. Obsahuje JDBC ovladaˇc, podporuje ANSI-92 SQL, 99 a rozˇs´ıˇren´ı 2003. HSQLDB je moˇzno spustit v nˇekolika reˇzimech. Standardnˇe se pouˇz´ıv´a jako klasick´ y server, kter´ y zpracov´av´a nˇekolik pˇripojen´ı. My ho pouˇzijeme v reˇzimu stand-alone“, ” kter´ y n´am umoˇzn´ı spustit datab´azov´ y server z aplikace. Takto spuˇstˇen´ y server bˇeˇz´ı jako souˇc´ast aplikace a pˇrij´ım´a pouze spojen´ı z dan´eho programu. Nyn´ı je tento produkt hojnˇe vyuˇz´ıv´an jako datab´azov´ y engin pro persistenci v mnoha open source projektech, ale dokonce i komerˇcn´ıch produktech.
KAPITOLA 5. IMPLEMENTACE
15
5 Implementace V Javˇe dˇel´ıme zdrojov´e k´ody do bal´ıˇck˚ u, kter´e obsahuj´ı jednotliv´e tˇr´ıdy se spoleˇcn´ ym zamˇeˇren´ım ˇci t´ematem. N´aˇs program byl rozdˇelen do tˇr´ı z´akladn´ıch bal´ıˇck˚ u: • main (1 tˇr´ıda, 4 podbal´ıˇcky) - hlavn´ı bal´ıˇcek programu slouˇz´ıc´ı k inicializaci a spuˇstˇen´ı programu obsahuj´ıc´ı d´ale popsan´e podbal´ıˇcky, • print (3 tˇr´ıdy) - bal´ıˇcek obsahuj´ıc´ı tˇr´ıdy zajiˇstuj´ıc´ı funkci generov´an´ı tiskov´eho v´ ystupu, • util (2 tˇr´ıdy) - bal´ıˇcek obsahuj´ıc´ı pomocn´e tˇr´ıdy.
5.1
Bal´ıˇ cek main
Bal´ıˇcek main obsahuje tˇri podbal´ıˇcky: • main.bean (7 tˇr´ıd) - bal´ıˇcek obsahuj´ıc´ı tˇr´ıdy pro reprezentaci objekt˚ u, • main.export (2 tˇr´ıdy) - bal´ıˇcek obsahuj´ıc´ı tˇr´ıdy realizuj´ıc´ı import a export dat • main.gui (6 tˇr´ıd) - bal´ıˇcek obsahuj´ıc´ı tˇr´ıdy realizuj´ıc´ı uˇzivatelsk´e prostˇred´ı a jeho ˇr´ıdic´ı logiku, • main.manager (6 tˇr´ıd) - bal´ıˇcek obsahuj´ıc´ı tˇr´ıdy pro manipulaci s reprezentovan´ ymi objekty. Jedin´a tˇr´ıda v tomto bal´ıˇcku Main.java slouˇz´ı k nastaven´ı vzhledu programu (look and feel), zobrazen´ı u ´vodn´ı obrazovky a inicializaci main.gui.LessonBrowser (Spr´avy osob), coˇz je hlavn´ı okno aplikace.
5.2
Bal´ıˇ cek main.bean
Bal´ıˇcek main.bean obsahuje tˇr´ıdy slouˇz´ıc´ı jako z´aklad pro instance objekt˚ u. Ke kaˇzd´emu objektu (tˇr´ıdˇe) byl vytvoˇren mapovac´ı XML soubor se stejn´ ym n´azvem a koncovkou hbm.xml (napˇr. Person.hbm.xml). Vytvoˇren´e mapovac´ı soubory n´am slouˇz´ı k propojen´ı objektov´eho modelu s relaˇcn´ı datab´az´ı. Obsahuj´ı vˇzdy jm´eno tˇr´ıdy, kter´a se m´a mapovat, n´azev tabulky, zp˚ usob generov´ani id a promˇenn´e urˇcen´e k mapov´an´ı do datab´aze. Volitelnˇe pak obsahuje datov´ y typ, kter´ ym je promˇenn´a uloˇzena v datab´azi a vazby (relace) mezi objekty, kter´e se v relaˇcn´ı datab´azi vytvoˇr´ı pomoc´ı ciz´ıho kl´ıˇce. Tyto objekty a mapovac´ı soubory jsou vyuˇzity frameworkem Hibernate, kter´ y prov´ad´ı jejich mapov´an´ı do relaˇcn´ı datab´aze. Vyuˇzit´ı Hibernate tak pˇrin´aˇs´ı nˇekolik poˇzadavk˚ u, kter´e mapovan´e objekty musej´ı splnit.
16
KAPITOLA 5. IMPLEMENTACE
Vˇsechny mapovan´e promˇenn´e mus´ı m´ıt neveˇrejn´a pˇr´ıstupov´e pr´ava a pˇr´ıstup k nim zprostˇredkov´an pomoc´ı veˇrejn´ ych metod, takzvan´ ymi getry a setry. Jelikoˇz doch´az´ı k uloˇzen´ı dat do datab´aze, zav´ad´ı Hibernate potˇrebu zav´est promˇenou id typu Long, kter´a slouˇz´ı jako jednoznaˇcn´ y identifik´ator z´aznamu v tabulce. Protoˇze o jednoznaˇcnost id se star´a framework Hibernate, mus´ı b´ yt funkce setId(long id) definov´ana jako neveˇrejn´a. Dalˇs´ı poˇzadavky na vlastnosti tˇechto tˇr´ıd pˇrineslo vyuˇzit´ı frameworku GlazedLists. V kaˇzd´e tˇr´ıdˇe bylo potˇreba implementovat posluchaˇce, kter´ y naslouch´a a zachycuje ud´alosti pˇri zmˇen´ach vlastnost´ı dan´e tˇr´ıdy. Tyto ud´alosti vyvol´avaj´ı rozˇs´ıˇren´e metody set a informuj´ı o tom jakou vlastnost mˇen´ı,jak´a byla jej´ı p˚ uvodn´ı hodnota a na jakou byla zmˇenˇena. Tento zp˚ usob monitorov´an´ı zmˇen vlastnost´ı umoˇzn ˇuje frameworku GlazesLists ihned prom´ıtat zmˇeny vlastnost´ı do tabulek ˇci list˚ u. Nemus´ı tak doch´azet k n´aroˇcn´emu znovunaˇc´ıt´an´ı dat z datab´aze. Z´avˇerem byli tˇr´ıdy obohaceny o implementaci funkce equals(), kter´a vrac´ı hodnotu boolean a slouˇz´ı k porovn´an´ı dvou objekt˚ u stejn´eho typu na z´akladˇe jejichid.
5.3
Bal´ıˇ cek main.export
Bal´ıˇcek main.export obsahuje tˇr´ıdy XmlExport a XmlImport. Export a import dat je realizov´an za pomoc´ı knihovny dom4j. Z ˇcasov´ ych d˚ uvod˚ u byl implementov´an pouze export a import evidovan´ ych osob. Pokud se importovan´a data jiˇz v syst´emu vyskytuj´ı je uˇzivatel dot´az´an zda je chce opravdu pˇridat.
5.4
Bal´ıˇ cek main.gui
Bal´ıˇcek main.gui sdruˇzuje tˇr´ıdy uˇzivatelsk´e rozhran´ı a jeho ˇr´ıdic´ı logiky. Tˇr´ıdy s koncovkou browser vznikly z vˇetˇs´ı ˇc´asti za pomoc´ı vizu´aln´ıho n´astroje pro n´avrh uˇzivatelsk´eho prostˇred´ı Matisse, kter´ y je souˇc´ast´ı v´ yvojov´eho n´astroje NetBeans. Tˇr´ıda LessonBrowser slouˇz´ı k inicializaci grafick´ y prvk˚ u, zobrazen´ı okna spr´ava kurz˚ ua obsluze jeho ud´alost´ı. Spr´ava kurz˚ u byla stanovena jako hlavn´ı okno programu. Slouˇz´ı tedy jako hlavn´ı rozcestn´ık a cel´ y program se ukonˇcuje pr´avˇe ukonˇcen´ım tohoto okna. Tˇr´ıda PersonBrowser obsahuje inicializaci grafick´ ych prvk˚ u dan´ ych spr´avc˚ u a m´a na starost obslouˇzen´ı vˇsech jeho ud´alost´ı. Pˇri implementaci tabulky zobrazuj´ıc´ı pˇrehled osob vyuˇzit nestandardn´ı datov´ y model z frameworku GlazedLists. Ten n´am umoˇznil sn´aze implementovat ˇrazeni a filtrov´an´ı poloˇzek v tabulce. Tento model nav´ıc umoˇzn ˇuje okamˇzitˇe prom´ıtat svou zmˇenu do tabulky, aniˇz by bylo nutn´e ruˇcnˇe volat jej´ı pˇrekreslen´ı. V r´amci t´eto tˇr´ıdy se d´ale vyskytuje inicializace a obsluha dialogov´e okna pro pˇrid´av´an´ı odbornosti a okna pro zad´an´ı parametr˚ u slouˇz´ıc´ı pˇri generov´an´ı v´ ystupu. Tˇr´ıda ExpertiseBrowser obsahuje obsluhu spr´avce odbornost´ı, je v n´ı t´eˇz definov´ano automatick´e pˇrid´an´ı klasick´ ych kvalifikaˇcn´ıch stupˇ n˚ u a odbornost´ı pokud v seznamu ˇz´adn´e
KAPITOLA 5. IMPLEMENTACE
17
nejsou. Tˇr´ıda LessonHourBrowser slouˇz´ı k inicializaci a obsluze ud´alost´ı spr´avce cviˇcen´ı. D´ale obsahuje inicializaci a obsluha dialogov´e okna pro pˇrid´av´an´ı v´ıce cviˇcen´ı najednou a okna pro zad´an´ı parametr˚ u slouˇz´ıc´ı pˇri generov´an´ı v´ ystupu. Tˇr´ıda FileChooser obsluhuje otevˇren´ı dialogov´eho okna pro urˇcen´ı c´ılov´eho m´ısta, kam se maj´ı soubory s pˇr´ıponou html uloˇzit. Tˇr´ıda SplashScreen obsahuje inicializaci jednoduch´eho okna bez ovl´adac´ıch prvk˚ u a obr´azek. Slouˇz´ı k zobrazen´ı animovan´eho obr´azku do t´e doby nˇeˇz se program plnˇe naˇcte. Inicializace grafick´ ych prvk˚ u ve swingu trv´a pomˇernˇe dlouho a kdyby se uˇzivateli po spuˇstˇen´ı bˇehem nˇekolika m´ala sekund nic nezobrazilo mohl by zaˇc´ıt b´ yt nervozn´ı a program ukonˇcit dˇr´ıve neˇz by se staˇcil plnˇe spustit. Tato tˇr´ıda s pˇr´ıchodem Java 6.0 odpadne, jelikoˇz bude u ´vodn´ı obrazovka snadno implementov´ana parametrem pˇri spouˇstˇen´ı.
5.5
Bal´ıˇ cek main.manager
Bal´ıˇcek main.manager obsahuje tˇr´ıdy slouˇz´ıc´ı jako rozhran´ı mezi Hibernate a programem. Obsahuje tedy tˇr´ıdy, kter´e slouˇz´ı pˇri manipulaci s reprezentovan´ ymi objekty. Pˇri kaˇzd´em u ´kolu prov´adˇen´ ym nad datab´az´ı je sestaveno sezen´ı a transakce. Lze tak pˇredej´ıt chyb´am, kter´e vznikaj´ı jen ˇc´asteˇcn´ ym proveden´ım posloupnosti pˇr´ıkazu. Tyto tˇr´ıdy jsou logicky pojmenov´any, napˇr´ıklad tˇr´ıda pro manipulaci s objektem Person je pojmenov´ana PersonManager. Vˇsechny tyto tˇr´ıdy obsahuj´ı d˚ uleˇzit´e funkce slouˇz´ıc´ı k manipulaci s daty: • funkce list() z´ısk´an´ı v´ ypisu dat z datab´aze za vyuˇzit´ı dotazovac´ıho jazyka HQL nebo SQL, • funkce create(Object obj) vytvoˇr´ı a uloˇz´ı dan´ y objekt v datab´azi, • funkce update(Object obj) naˇcte dan´ y objekt z datab´aze, provede jeho zmˇenu a uloˇz´ı, • funkce delete(Object obj) smaˇze vybran´ y objekt. Funkce delete(Object obj) pˇri manipulaci s objekty Person, Lesson a LessonHour nen´ı pouˇzita. M´ısto smaz´an´ı objektu je pouˇzit update(Object obj) a zmˇena vlastnosti hidden. T´ım jsme se vyhnuli komplikac´ım, kter´e smaz´an´ı prov´azan´ ych objekt˚ u doprov´az´ı. Napˇr´ıklad n´am toto ˇreˇsen´ı umoˇznilo aby po smaz´an´ı“ osoby mohla b´ yt zobrazena jako ” u ´ˇcastn´ık jiˇz zaevidovan´eho cviˇcen´ı.
18
5.6
KAPITOLA 5. IMPLEMENTACE
Bal´ıˇ cek print
Bal´ıˇcek print sdruˇzuje tˇr´ıdy zajiˇstuj´ıc´ı funkci generov´an´ı tiskov´eho v´ ystupu. Na z´akladˇe pˇredan´ ych argument˚ u tyto tˇr´ıdy generuj´ı v´ ystup do souboru. Generov´an´ı je zajiˇstˇeno jednoduch´ ym z´apisem ˇretˇezc˚ u obsahuj´ıc´ı HTML tagy a potˇrebn´e u ´daje do souboru. Tˇr´ıda PrintAttendance umoˇzn ˇuje generovat pˇrehledy cviˇcen´ı a vyplnˇen´e ˇci pr´azdn´e doch´azkov´e listy.Pˇri generov´an´ı vyplnˇen´ ych doch´azkov´ ych list˚ u doch´az´ı k v´ ypoˇctu statistiky u ´ˇcasti jednotliv´ ych u ´ˇcastn´ık˚ u ale i cel´ ych cviˇcen´ıch, kter´a je zahrnuta do v´ ystupu. Tˇr´ıda PrintLessons poskytuje vytvoˇren´ı pˇrehledu vybran´ ych kurz˚ u jehoˇz souˇc´ast´ı je i celkov´a u ´ˇcast na vˇsech cviˇcen´ıch, kter´e jsou v r´amci kurzu vyps´any. Tˇr´ıda PrintPersons slouˇz´ı k vytvoˇren´ı pˇrehledu osob, dle zadan´ ych parametr˚ u. V tˇechto v´ ypisech je t´eˇz zahrnuta celkov´a u ´ˇcast dan´e osoby na cviˇcen´ıch a v pˇr´ıpadˇe, ˇze tato osoba prov´adˇela v´ yuku, tak kolikr´at ji provedla.
5.7
Bal´ıˇ cek util
Bal´ıˇcek util obsahuje zb´ yvaj´ıc´ı tˇridy BrowserControl a HibernateUtil. Tˇr´ıda HibernateUtil je pˇrevzat´a z frameworku Hibernate a slouˇz´ı k inicializaci, vytvoˇren´ı a zpˇr´ıstupnˇen´ı SessionFactory od kter´e lze tvoˇrit sezen´ı, kter´e jsou pouˇzit´e v bal´ıku main.manager pˇri manipulaci s daty z datab´aze. Tˇr´ıda BrowserControl je standardn´ı tˇr´ıda pouˇz´ıvan´a k otevˇren´ı internetov´eho prohl´ıˇzeˇce s dan´ ym URL. Jelikoˇz se n´azvy i konvence lom´ıtek v operaˇcn´ıch syst´emech liˇs´ı, bylo tˇreba tuto tˇr´ıdu rozvˇetvit na dvˇe ˇc´asti pro unixov´e a windows syst´emy.
´ ´I KAPITOLA 6. TESTOVAN
19
6 Testov´ an´ı Testov´an´ı je jednou z d˚ uleˇzit´ ych ˇc´asti projektu, kter´a zvl´aˇstˇe u rozs´ahlejˇs´ıch syst´emu nem˚ uˇze chybˇet. Otestov´an´ı m´a pˇredevˇs´ım za u ´kol naj´ıt co nejv´ıce chyb a ovˇeˇrit funkˇcnost. D˚ uleˇzit´e je ale i otestov´an´ı pouˇzitelnosti a pˇr´ıvˇetivosti dan´eho programu, takzvan´eho user-friendly“. ” Testov´an´ı stoj´ı hodnˇe u ´sil´ı, ale vyplat´ı se pokud si chceme z´ıskat spokojen´e uˇzivatele. Pokud totiˇz existuje jin´a alternativa uˇzivatel´e se m´alokdy vracej´ı k produkt˚ um kter´e obsahuj´ı z´avaˇznou chybou, kter´a naruˇsuje funkˇcnost programu i kdyby oprava vyˇsla sebe dˇr´ıve. Pˇr´ı testov´an´ı naˇseho programu jsme pouˇzili tyto metody testov´an´ı : 1. struktur´aln´ı testov´an´ı (white-box testing), 2. u ´ˇcelov´e testov´an´ı (black-box testing), 3. syst´emov´e testov´an´ı.
6.1
Struktur´ aln´ı testov´ an´ı
Struktur´aln´ı testov´an´ı, naz´ yvan´e t´eˇz jako white-box, se zakl´ad´a na testov´an´ı mal´ ych ˇc´ast´ı programu a znalosti vnitˇrn´ı logiky programu. Vˇetˇsinou ho prov´ad´ı autor testovan´e ˇc´asti aby ovˇeˇril jej´ı funkˇcnost. Autor s´am by mˇel vˇedˇet nejv´ıce co od dan´e ˇc´asti poˇzaduje za funkˇcnost a kde by pˇr´ıpadn´e chyby mohli nastat. Osoba, kter´a prov´ad´ı testov´an´ı u odhalen´ ych nedostatk˚ u provede co nejdˇr´ıve opravu. Pokud nedostatek opravit nedok´aˇze mus´ı jej zdokumentovat pro pozdˇejˇs´ı opravu. C´ılem tohoto testov´an´ı je vykon´an´ı vˇsech ˇc´ast´ı programu“, kter´e d´avaj´ı celek. Program ” by mˇel na z´avˇer proj´ıt struktur´aln´ım testem znovu jako celek, jelikoˇz nˇekter´e chyby se projev´ı pouze za urˇcit´e podm´ınky. V´ ysledek struktur´ aln´ıho testov´ an´ı Z´avˇereˇcn´e struktur´aln´ı testov´an´ı jsme provedli se zapnut´ ymi lad´ıc´ımi informacemi. To n´am umoˇznilo sledovat obsah jednotliv´ ych objekt˚ u a promˇenn´ ych pˇri proch´azen´ı programem a plnˇen´ım d´ılˇc´ıch u ´kol˚ u. Pˇri tomto koneˇcn´em testov´an´ı jsme nenalezli ˇz´adn´e z´avaˇzn´e chyby ve vnitˇrn´ı logice, kter´e by br´anili spr´avn´e funkˇcnosti programu.
6.2
´ celov´ Uˇ e testov´ an´ı
Pˇri u ´ˇcelov´em testovan´ı se na testovan´ y program d´ıv´ame jako na ˇcernou skˇr´ınku, jej´ıˇz obsah a vnitˇrn´ı logika je n´am skryta. Od toho zp˚ usobu pohledu je tak´e odvozen anglick´ y n´azev black-box testing“. ” Toto testov´an´ı by prov´ad´ı zpravidla nezasvˇecen´ y uˇzivatel, kter´ y nen´ı ovlivnˇen znalostmi
´ ´I KAPITOLA 6. TESTOVAN
20
z v´ yvoje programu. Tento uˇzivatel se snaˇz´ı zjistit za jak´ ych okolnost´ı se program chov´a jinak, neˇz jak on s´am ˇcek´a, ˇci je naps´ano v uˇzivatelsk´e pˇr´ıruˇcce. V ide´aln´ım pˇr´ıpadˇe by uˇzivatel testuj´ıc´ı program zjistit jak se program chov´a ve vˇsech jeho moˇznostech, a zdokumentovat vˇsechny ud´alosti, kter´e mu pˇripadali chybn´e ˇc´ı nestandardn´ı. Otestovat chov´an´ı vˇsech moˇznost´ı nen´ı vˇetˇsinou v praxi re´aln´e. Jedno z v´ ychodisek je testuj´ıc´ım uˇzivatel˚ um zadat co maj´ı otestovat ve formˇe sc´en´aˇr˚ u, kter´e si projdou a sdˇel´ı sv´e dojmy. Nemˇeli by vˇsak z˚ ustat jen u sc´en´aˇr˚ u a otestovat program tak´e dle sv´ ych rozhodnut´ı. Sc´ en´ aˇ r pouˇ zit´ı 1. Zaevidovat nˇekolik nov´ ych osob, z toho alespoˇ n jednoho cviˇcitele. 2. Pˇridat nˇekolik odbornost´ı a kvalifikaˇcn´ıch stupˇ n˚ u. 3. Vyhledat jen cviˇcitele a pˇriˇradit jim odbornosti. 4. Vygenerovat pro tisk u ´daje o vybran´em cviˇciteli, vˇcetnˇe jeho odbornost´ı. 5. Zaevidovat alespoˇ n jeden kurz. 6. Ke kurzu pˇriˇradit jedno cviˇcen´ı. 7. Tomuto cviˇcen´ı pˇriˇradit nˇekolik u ´ˇcastn´ık˚ u a uloˇzit. 8. Vytvoˇrit nˇekolik dalˇs´ıch cviˇcen´ı pomoc´ı funkce Pˇridat v´ıce..“. ” 9. Cviˇcen´ım zadat doch´azku a uloˇzit. 10. Vygenerovat pro tisk vyplnˇen´ y doch´azkov´ y list se vˇsemi cviˇcen´ımi dan´eho kurzu. 11. Odstranit osobu, kter´a je zaevidov´ana jako vedouc´ı kurzu. 12. Zmˇenit popis zaevidovan´eho kurzu. 13. Vygenerovat pro tisk pˇrehled vˇsech kurz˚ u. Syst´ em pˇ eti ot´ azek Pokud si uˇzivatelsk´e testov´an´ı prov´ad´ı tv˚ urce s´am pot´e se pouˇz´ıv´a syst´emu pˇeti ot´azek, kter´e by si mˇel poloˇzit v kter´emkoliv m´ıstˇe aplikace. Tyto ot´azky : 1. v´ım kde jsem, 2. v´ım jak jsem se sem dostal, 3. v´ım jak´ y v´ ysledek jsem z´ıskal,
´ ´I KAPITOLA 6. TESTOVAN
21
4. v´ım jak se vr´atit zpˇet, 5. v´ım jak se dostat d´ale, by mˇeli b´ yt ve vˇsech pˇr´ıpadech zodpovˇezeny kladnˇe. V opaˇcn´em pˇr´ıpadˇe je potˇreba tyto nesrovnalosti zaznamenat a pokusit se o n´apravu. V´ ysledek u ´ˇ celov´ eho testov´ an´ı Uˇzivatelsk´e testov´an´ı provedli nez´avisle na sobˇe tˇri dobrovoln´ıci, kteˇr´ı si nejdˇr´ıve proˇsli pˇripraven´e sc´en´aˇre. Pot´e si s programem pohr´ali“ jak uznali za vhodn´e. ” Pˇri jejich testov´an´ı byli nalezeny n´asleduj´ıc´ı probl´emy a nejasnosti. Ty byli ihned po testov´an´ı opraveny. • Program se ve windows po poklep´ an´ı na JAR soubor nespustil. Vytvoˇren d´avkov´ y soubor start.bat, kter´ y slouˇz´ı ke spuˇstˇen´ı programu. • U zaˇskrt´ avac´ıch pol´ıˇcek dojem ˇze nejsou aktivn´ı, mal´e zv´yraznˇen´ı aktivnosti prvku. Zvolen klasick´ y a v´ yraznˇejˇs´ı vzhled aplikace (LookAndFeel). • Na prvn´ı pohled nen´ı poznat, kter´e poloˇzky musej´ı b´yt vyplnˇeny ˇ Cervenˇ e zv´ yraznˇeny popisky pˇred poli, kter´e musej´ı b´ yt vyplnˇeny. • U vˇetˇsiny prvk˚ u by bylo vhodn´e pˇridat rychlou n´ apovˇedu k ˇcemu slouˇz´ı. Pˇrid´ana n´apovˇeda ve formˇe vyskakovac´ıch bublin, takzvan´ ych tool-tip˚ u. • R˚ uzn´e pojmenov´an´ı tlaˇc´ıtek, napˇr. Odstranit a Odebrat Sjednoceny n´azvy v cel´em programu. Vˇsechny objeven´e nedostatky se t´ ykali kosmetick´ ych vad uˇzivatelsk´eho prostˇred´ı a neobjevili ˇz´adnou chybu v logice programu. Na z´avˇer jsme sami provedli test syst´emem pˇeti ot´azek, pˇri kter´em jsem nezaznamenali ˇz´adn´e z´aporn´e odpovˇedi.
6.3
Syst´ emov´ e testov´ an´ı
Tento test byl zamˇeˇren na ovˇeˇren´ı multiplatformnosti programu. Provedli jsme jej na operaˇcn´ım syst´emu Windows XP SP2 a distribuci Linuxu Gentoo s windows managerem Gnome. Pˇri testu pod Linuxem se vyskytl probl´em s url k ikon´am a standardn´ım um´ıstˇen´ım datab´aze v podadres´aˇri programu. Probl´emy byly vyˇreˇseny opraven´ım url na form´at, kter´ y akceptuj´ı oba syst´emy. Na z´avˇer jsme pˇripravili uk´azku jak´ y m´a program vzhled pod operaˇcn´ım syst´emem windows (obr.6.1) a linux (obr.6.2). Naˇsim c´ılem bylo aby program vypadal identicky aˇz na dekoraci okna(zavˇren´ı, minimalizace), kter´a z´avis´ı na vzhledu operaˇcn´ıho syst´emu.
22
´ ´I KAPITOLA 6. TESTOVAN
Obr´azek 6.1: Uk´azka bˇehu programu pod operaˇcn´ım syst´emem Windows
Obr´azek 6.2: Uk´azka bˇehu programu pod operaˇcn´ım syst´emem Linux
´ ER ˇ KAPITOLA 7. ZAV
23
7 Z´ avˇ er V´ ysledkem bakal´aˇrsk´e pr´ace je syst´em urˇcen´ y pˇredevˇs´ım pro vedouc´ıho cviˇcen´ı. Tento syst´em je vyuˇziteln´ y pro podporu a usnadnˇen´ı evidenci v r´amci tˇelov´ ychovn´e jednoty (Sokola) ˇci pˇri organizaci dalˇs´ıch volno-ˇcasov´ ych aktivit. Umoˇzn ˇuje n´am jednoduchou formou evidovat osoby vˇcetnˇe jejich kvalifikace a doch´azky. D´ale z evidovan´ ych dat umoˇzn ˇuje generovat doch´azkov´e listy pro jednotliv´e kurzy. Syst´em byl implementov´an bez vˇetˇs´ıch probl´em˚ u za pouˇzit´ı programovac´ıho jazyka Java, nˇekolika volnˇe dostupn´ ych framework˚ u (Hibernate, Glazed Lists), datab´azov´eho stroje HSQLDB a v´ yvojov´eho prostˇred´ı NetBeans. Programovac´ı metody a prostˇredky se vˇsak st´ale vyv´ıjej´ı a zdokonaluj´ı. Proto bˇehem implementace naˇseho informaˇcn´ıho syst´emu doˇslo k postupn´ ym u ´prav´am na z´akladˇe novˇe objeven´ ych framework˚ u. Jejich neust´al´ y v´ yvoj tak umoˇzn ˇuje sn´aze implementovat souˇc´asti, jako jsou vytvoˇren´ı formul´aˇr˚ u, tiskov´ ych sestav ve form´atu pdf ˇci pˇriˇrazen´ı dat (dataBinding) ve swingov´ ych aplikac´ıch. Bˇehem v´ yvoje tohoto syst´emu jsme nasb´ırali mnoho zkuˇsenost´ı, zvl´aˇstˇe co se t´ yˇce n´avrhu syst´emu, tvorby uˇzivatelsk´eho rozhran´ı a vyuˇzit´ı dostupn´ ych framework˚ u.
Moˇ znosti rozˇ s´ıˇ ren´ı do budoucna Jednou z moˇznost´ı rozˇs´ıˇren´ı je portovat syst´em na pˇrenosn´a zaˇr´ızen´ı typu PDA nebo takzvan´e chytr´e telefony, kter´e podporuj´ı technologii Java. Pot´e bude moˇzn´e zadat doch´azku, ˇci libovoln´e pozn´amky pˇr´ımo na m´ıstˇe. Odpadla by tak nutnost tisknout doch´azkov´e listy a pˇrepisovat ˇz´adan´e u ´daje znovu do poˇc´ıtaˇce. Jelikoˇz je syst´em decentralizovan´ y, umoˇzn´ı v budoucnu umoˇznit mezi u ´ˇcastn´ıky pˇred´av´an´ı dat formou importu a exportu dat ve formˇe soubor˚ u. Nab´ız´ı se i moˇznost obohatit syst´em o pˇr´ımou s´ıtovou podporu a komunikaci. Umoˇznil by se tak pˇrenos dat po lok´aln´ı s´ıt´ı ˇci internetu. D´ale s menˇs´ım pˇrepracov´an´ım syst´emu bude snadn´e zˇr´ıdit centr´aln´ı server, kter´ y by dan´e informace ukl´adal a nab´ızel je jako intern´ı webovou sluˇzbu.
24
´ ER ˇ KAPITOLA 7. ZAV
KAPITOLA 8. SEZNAM LITERATURY
25
8 Seznam literatury [1] SPELL, Brett. Java – Programujeme profesion´ alnˇe. Praha : Computer Press, 2002. 1022 s. ISBN 80-7226-667-5. [2] HEROUT, Pavel. Uˇcebnice jazyka Java. ˇ e Budˇejovice : KOPP, 2000. 352 s. ISBN 80-7232-115-3. Cesk´ [3] HEROUT, Pavel. Java – grafick´e uˇzivatelsk´e prostˇred´ı a ˇceˇstina. ˇ e Budˇejovice : KOPP, 2001. 320 s. ISBN 80-7232-150-1. Cesk´ [4] Sun Microsystems. Java tutorial [online]. c1995-2005 , last update: December 23, 2005 [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://java.sun.com/learning/tutorial/index.html i. [5] Sun Microsystems. JDK 5.0 Documentation [online]. c2004 [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://java.sun.com/j2se/1.5.0/docs/ i. [6] Sun Microsystems. Core Java Technologies Tech Tips [online]. c1994-2006 , [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://java.sun.com/developer/JDCTechTips/ i. [7] JBoss. Hibernate Reference Documentation [online]. c2002-2005 , [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://www.hibernate.org/hib docs/v3/reference/en/html/ i. ˇ [8] STROBL, Roman. Flash Demos and Quick Tips about Java and NetBeans [online]. 2006 , [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://blogs.sun.com/roller/page/roumen i. [9] Glazed Lists. List transformation in Java [online]. c2003-2006 , [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://publicobject.com/glazedlists/ i. [10] O’HANLEY, John. Collected Java Practices [online]. c2006 , [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://www.javapractices.com/ i. [11] MARINACCI, Joshua. An Introduction to Java Persistence for Client-Side Developers [online]. last update: 05/25/2006 , [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://today.java.net/pub/a/today/2006/05/23/ejb3persistence-api-for-client-side-developer.html i.
26
KAPITOLA 8. SEZNAM LITERATURY
[12] MARINACCI, Joshua. More Persistence for Client-Side Developers [online]. last update: 06/08/2006 , [cit. 2006-07-20]. Dostupn´ y z WWW: hhttp://today.java.net/pub/a/today/2006/06/08/more-ejb3persistence-api-for-client-side-developer.html i. ˇ ABL, ´ [13] MUKNSN Josef Testov´an´ı program˚ u [online]. 2005, [cit. 2006-07-22]. Dostupn´ y z WWW: hhttp://reboot.cz/index.phtml?id=94 i.
ˇ ´ILOHA A. SEZNAM POUZIT ˇ YCH ´ PR ZKRATEK
A Seznam pouˇ zit´ ych zkratek JRE Java Runtime Environment GUI Graphical User Interface HQL Hibernate Query Language HTML HyperText Markup Language PDF Portable Document Format SQL Structured Query Language UML Unified Modeling Language XML Extensible Markup Language
27
28
ˇ ´ILOHA A. SEZNAM POUZIT ˇ YCH ´ PR ZKRATEK
ˇ ´ILOHA B. UML A DALSˇ´I DIAGRAMY PR
B UML a dalˇ s´ı diagramy
Obr´azek B.1: Model jedn´an´ı
29
30
ˇ ´ILOHA B. UML A DALSˇ´I DIAGRAMY PR
Obr´azek B.2: Diagram tˇr´ıd
ˇ ´ILOHA B. UML A DALSˇ´I DIAGRAMY PR
Obr´azek B.3: ER diagram dat v datab´azi
31
32
ˇ ´ILOHA B. UML A DALSˇ´I DIAGRAMY PR
ˇ ´ILOHA C. OBSAH PRILO ˇ ˇ EHO ´ PR ZEN CD
C Obsah pˇ riloˇ zen´ eho CD
Obr´azek C.1: Obsah pˇriloˇzen´eho CD
33