Informační systém autoškoly

Rozměr: px
Začít zobrazení ze stránky:

Download "Informační systém autoškoly"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Bakalářská práce Informační systém autoškoly Bukovský Michal Vedoucí práce: prof. Ing. Josef Semrád Studijní program: Elektrotechnika a informatika strukturovaný bakalářský Obor: Informatika a výpočetní technika červenec 2008

2 II

3 Poděkování Na tomto místě bych rád poděkoval Ing. Josefu Semrádovi za veškerou pomoc a vedení této práce. Velké díky také patří rodičům za jejich trpělivost během celého studia, bez kterého by tato práce nemohla vzniknout. III

4 IV

5 Prohlášení Prohlašuji, že jsem bakalářskou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla 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 Bukovský Michal V

6 VI

7 Abstract The goal of this bachelor thesis was to analyze reguirements of driving school information system. Then, on the basis of that analysis, the information system has been implemented and tested. This project has been designed and implemented in NetBeans IDE development environment. It runs on Java Enterprise Edition 5 technology, GlassFish application server and Apache Derby relational database. Developed system provides administration of on-line registrations, payments, customers, employees and driving school cars. Last but not least it allows practical lessons planning and theoretical education registering. The implementation includes entire website that represents the driving school on the Internet. Abstrakt Cílem této práce bylo analyzovat požadavky na informační systém autoškoly a poté, na základě této analýzy, systém implementovat a otestovat. Projekt byl navržen a implementován ve vývojovém prostředí NetBeans IDE s využitím technologie Java Enterprise Edition 5, aplikačního serveru GlassFish a relační databáze Apache Derby. Vyvinutý systém poskytuje správu on-line přihlášek, plateb, zákazníků, zaměstnanců, vozidel autoškoly a v neposlední řadě umožňuje plánování praktických jízd a vedení přehledu o výuce teorie. Součástí implementace jsou i kompletní webové stránky, které reprezentují autoškolu na Internetu. VII

8 VIII

9 Obsah 1. ÚVOD SPECIFIKACE CÍLE A STRUKTURA PRÁCE SPECIFIKACE CÍLE STRUKTURA PRÁCE POUŽITÉ TECHNOLOGIE UML JAVA EE JavaServer Faces Enterprise JavaBeans JDBC Java Persistence API XHTML CSS ÚVODNÍ STUDIE ODBORNÝ ČLÁNEK KATALOG POŽADAVKŮ ANALÝZA A NÁVRH ŘEŠENÍ DIAGRAM TŘÍD DIAGRAMY PŘÍPADŮ UŽITÍ Hlavní přehled užití systému Přihlášení do systému Případy užití uživatele Prohlížení webu Případy užití vedoucího Případy užití asistenta vedoucího Případy užití zákazníka Případy užití učitele DIAGRAMY AKTIVIT Závěrečná zkouška SEKVENČNÍ DIAGRAMY Přihlášení zákazníka na jízdu SCÉNÁŘE UŽITÍ SYSTÉMU DIAGRAM NASAZENÍ NÁVRH UŽIVATELSKÉHO ROZHRANÍ REALIZACE POUŽITÉ PROGRAMY NetBeans IDE Macromedia Dreamweaver MX PhpBB TESTOVÁNÍ ZÁVĚR IX

10 9. LITERATURA A. SEZNAM POUŽITÝCH ZKRATEK B. UŽIVATELSKÉ ROZHRANÍ APLIKACE C. OBSAH PŘILOŽENÉHO CD X

11 Seznam obrázků 1 DIAGRAMY UML [4] ARCHITEKTURA JDBC [8] DIAGRAM TŘÍD HLAVNÍ PŘEHLED UŽITÍ SYSTÉMU PŘIHLÁŠENÍ DO SYSTÉMU PŘÍPADY UŽITÍ UŽIVATELE PROHLÍŽENÍ WEBU PŘÍPADY UŽITÍ VEDOUCÍHO PŘÍPADY UŽITÍ ASISTENTA VEDOUCÍHO PŘÍPADY UŽITÍ ZÁKAZNÍKA SPRÁVA VÝUKY ZÁKAZNÍKA PŘÍPADY UŽITÍ UČITELE SPRÁVA HODINY JÍZDY UČITELE ZÁVĚREČNÁ ZKOUŠKA PŘIHLÁŠENÍ NA JÍZDU DIAGRAM NASAZENÍ NÁVRH UŽIVATELSKÉHO ROZHRANÍ WEB AUTOŠKOLY VÝUKA WEB AUTOŠKOLY GALERIE ZÁKAZNÍK PŘEHLED PLÁNOVÁNÍ ZÁKAZNÍK VYTVÁŘENÍ PLÁNU JÍZDY ZÁKAZNÍK DETAIL JÍZDY VEDOUCÍ DETAIL VOZIDLA XI

12 XII

13 1. Úvod V současné době narůstá počet lidí, kteří pro vyhledání informací a služeb využívají celosvětovou síť Internet. Je to dáno hlavně tím, že tento způsob vyhledávání je velmi rychlý a efektivní. Další velkou zásluhu na tomto trendu má fakt, že připojení k Internetu je stále dostupnější. Proto je dnes, zejména pro společnosti poskytující služby koncovým zákazníkům, velmi důležitá on-line prezentace. Současně s rozšiřováním Internetu probíhá velký rozvoj informačních technologií, které umožňují vytvářet aplikace pro poskytování těchto služeb. Mohou tak vznikat robustní a přitom bezpečné informační systémy. Informační systém obecně slouží pro ukládání, zpracovávání a poskytování informací a dat. Jeho úkolem je také zjednodušit a zefektivnit práci uživatelů, kteří s ním pracují. Data jsou informačním systémem ukládána do databáze, což je následně umožňuje vyhledávat a provádět nad nimi různé analýzy. Autoškol využívajících systém, který jejím zákazníkům umožňuje plánovat výuku, zatím není mnoho. Důvodem může být nejistota návratu investic do vývoje takového softwaru, nedůvěra v komplexní informační systémy nebo také zvyklost či relativní spokojenost s dosavadním způsobem vykonávání činností v autoškole. Správně navržený a implementovaný systém však může poskytnout mnoho výhod. Naprogramování komplexního informačního systému není snadné a před samotnou implementací je užitečné provést podrobnou analýzu. Díky analýze můžeme předejít mnoha problémům při vývoji a zvýšit tak pravděpodobnost úspěchu implementace. Analýza a návrh jsou proto také součástmi této práce a jsou zpracovány s využitím metodik softwarového inženýrství. 1

14 2. Specifikace cíle a struktura práce 2.1 Specifikace cíle Cílem projektu je vytvořit komplexní informační systém, který nejen poskytuje informace o autoškole v podobě webových stránek, ale také umožňuje zákazníkům jejich výuku plánovat. Zároveň by měl být snadný pro obsluhu a uživatelsky přívětivý. Navrhovaný systém musí umožňovat evidenci a správu zaměstnanců, zákazníků a vozidel autoškoly. Dalšími součástmi systému by mělo být plánování závěrečných zkoušek a platební systém. Nelze předpokládat, že všichni zákazníci budou on-line plánování výuky využívat. Proto systém také musí podporovat dosavadní způsob plánování, kdy zákazníci své následující termíny výuky domlouvají přímo se svými učiteli. 2.2 Struktura práce Kapitola 1 seznamuje čtenáře s problematikou a kontextem zadání. Kapitola 2 popisuje cíl, kterého chce práce dosáhnout. Kapitola 3 uvádí a popisuje technologie, které byly při práci využity. Kapitola 4 obsahuje úvodní studii. Kapitola 5 se zabývá analýzou a návrhem systému. Kapitola 6 popisuje realizaci systému, uvádí programy, které byly při implementaci použity, a prezentuje realizovaný projekt. Kapitola 7 se zabývá testováním systému. Kapitola 8 shrnuje výsledek práce. Kapitola 9 obsahuje seznam použité literatury. 2

15 3. Použité technologie 3.1 UML Jazyk UML (Unified Modeling Language, unifikovaný modelovací jazyk) je univerzální jazyk pro vizuální modelování systémů. [1] Při analýze požadavků se často jako nástroj pro komunikaci mezi zadavatelem a řešitelem využívá právě modelování. Před rokem 1994 existovalo několik jazyků pro vizuální modelování. Jazyk UML byl navržen za účelem spojit nejlepší postupy dosavadních modelovacích technik a softwarového inženýrství. V roce 1997 byl jazyk přijat jako první průmyslový standard objektově orientovaného jazyka pro vizuální modelování. UML je nyní objektovou notací, která je podporována drtivou většinou CASE (Computer-aided Software Engineering) nástrojů. Také většina objektově orientovaných metodik je postavena právě na UML. Velkou výhodou tohoto jazyka pro vizuální modelování je nezávislost jak na konkrétním programovacím jazyce, tak i na procesu vývoje. UML totiž není svázán s žádnou konkrétní metodikou. Lze jej použít společně se všemi existujícími metodami. Jazyk UML umožňuje pomocí různých typů diagramů zachytit systém z různých pohledů a na různé úrovni abstrakce. [2] Zatímco model obsahuje veškeré shromážděné informace o systému, diagram je graficky znázorněný pohled na model, který popisuje jen jistou část modelu. UML od verze 2.0 zahrnuje 13 typů diagramů (viz obrázek 1). Obr. 1 Diagramy UML [4] 3

16 Stručná charakteristika diagramů: Diagram aktivit (Activity Diagram) Zobrazuje sekvence činností řízených převážně interními událostmi. Diagram tříd (Class Diagram) Popisuje statickou strukturu systému zobrazením všech tříd, které se týkají modelovaného systému, a vztahů mezi nimi. Diagram komunikace (Communication Diagram) Zachycuje instance tříd, jejich vzájemné vztahy a komunikaci mezi nimi. Ve starších verzích UML se tento diagram označoval jako diagram spolupráce (Collaboration Diagram). Diagram komponent (Component Diagram) Zobrazuje a popisuje jednotlivé komponenty, z kterých se systém skládá. Diagram vnitřní struktury (Composite Structure Diagram) Popisuje vnitřní strukturu komplexních elementů a zachycuje spolupráci s ostatními prvky systému. Diagram nasazení (Deployment Diagram) Zobrazuje rozložení jednotlivých softwarových komponent na cílovou hardwarovou infrastrukturu. Diagram přehledu interakcí (Interaction Overview Diagram) Zachycuje tok řízení v rámci systému nebo procesu. Každý uzel nebo aktivita v rámci diagramu může reprezentovat další diagram interakce. Objektový diagram (Object Diagram) Ukazuje objekty a jejich vztahy na úrovni jejich konkrétních instancí. Diagram balíčků (Package Diagram) Zobrazuje rozložení elementů modelu do skupin (tzv. balíčků) a závislosti mezi těmito skupinami. Sekvenční diagram (Sequence Diagram) Zobrazuje časovou posloupnost akcí instancí tříd a zasílání zpráv mezi nimi. Stavový diagram (State Machine Diagram) Zachycuje jednotlivé stavy, v nichž se může daný element nacházet, a přechody mezi nimi. Diagram časování (Timing Diagram) Popisuje změny stavu, podmínky objektu nebo role ve vztahu k času. Diagram případů užití (Use Case Diagram) Popisuje chování systému z hlediska uživatele, aniž by odhaloval jeho vnitřní strukturu. 4

17 3.2 Java EE 5 Java Platform, Enterprise Edition (označovaná jako Java EE) je jedna ze součástí platformy Java, která je určena pro vývoj a provoz podnikových aplikací a informačních systémů. Vývoj Javy EE 5 byl dokončen v roce 2006, jejím předchůdcem byla J2EE 1. Základem pro platformu Java EE je platforma Java SE 2, nad kterou jsou definovány součásti tvořící Javu EE. Těmito součástmi jsou především specifikace pro vývoj webových aplikací (Java Servlets, JSP 3 ), pro vývoj business logiky (EJB 4, Spring), pro přístup k legacy systémům 5 (JCA 6, Hibernate) a zprávovému middleware (JMS 7 ) a pro podporu webových služeb. Aplikace pro platformu Java EE jsou vyvíjeny na základě API 8 a dalších fragmentů definovaných v jednotlivých specifikacích. Běhovým prostředím pro tyto aplikace je poté takzvaný aplikační server. [5] JavaServer Faces JavaServer Faces (JSF) je jednou z technologií platformy Java EE. Tato technologie byla vyvinuta společností Sun Microsystems a hlavním důvodem jejího vzniku byla myšlenka možnosti čistšího vývoje webových aplikací. Využíváním JSF je u webové aplikace odděleno grafické uživatelské rozhraní (GUI 9 ) od aplikační logiky. Faces jsou soubory speciálních XML 10 značek, kterým se specifikují odkazy na Java beany uložené v aplikačním serveru. Tato struktura aplikace je velmi užitečná zejména pro projekty, na kterých pracují celé týmy vývojářů. Každý člen týmu se může zaměřit na svoji část procesu vývoje, kterou je pak může lehce propojit s dalšími částmi. Například vývojáři webových stránek mohou bez znalosti programování aplikační logiky projit své stránky pomocí JavaServer Faces tagů komponent, kterým jsou pak předávána data k zobrazení ze standardních Java beanů v kódu aplikace. [6] Enterprise JavaBeans Technologie Enterprise JavaBeans (EJB) je součástí platformy Java EE. Byla definována firmou Sun Microsystems a jedná se o standardní komponentní architekturu, která usnadňuje vývoj rozsáhlých informačních systémů. Enterprise beany jsou komponenty určené zejména k implementaci aplikační logiky a ke komunikaci s persistentním úložištěm nebo jinými systémy. Enterprise beany jsou v prostředí aplikačního serveru uloženy v EJB kontejneru, který jim poskytuje zabezpečení, přístup ke zdrojům, řízení jejich životních cyklů a další služby. Technologie EJB také nabízí řadu 1 J2EE Java 2 Platform, Enterprise Edition 2 Java SE Java Platform, Standard Edition 3 JSP Java Server Pages 4 EJB Enterprise Java Beans 5 Legacy systémy již existující a někdy velmi staré systémy 6 JCA Java Connector Architecture 7 JMS Java Messaging Services 8 API - Application Programming Interface, rozhraní pro programování aplikací 9 GUI - Graphical user interface, grafické uživatelské rozhraní 10 XML - Extensible Markup Language 5

18 možností řízení transakcí. Programátor si může zvolit, zda bude transakce řídit sám nebo toto řízení přenechá EJB kontejneru. Enterprise beany jsou dvojího typu: session a message-driven. Session bean je komponenta, která volajícímu klientovi umožňuje vykonat určitou činnost. Jedná se vlastně o objekt, který obsahuje aplikační logiku nějakého business procesu. Instanci této komponenty je možné použít vícekrát pro více klientů. Vždy však maximálně pro jednoho klienta současně a nemůžou být sdíleny mezi ostatními klienty. To klientovi umožňuje spravovat stav dané komponenty. Session beany nejsou persistentní, což znamená, že nejsou ukládány do datového úložiště. [7] Existují dva typy session bean: bezestavové (stateless) a stavové (stateful). Bezestavové slouží pro obsluhu krátké konverzace, kdy je provedeno pouze jednoho volání, a není tedy třeba uchovávat stav probíhající konverzace. Naopak stavové (stateful) session beany si uchovávají svůj konverzační stav po celou dobu trvání sezení s daným klientem. Message-driven beany umožňují aplikaci pracovat s asynchronními zprávami. Na rozdíl od session bean neprobíhá komunikace přes rozhraní, ale pouze odesláním a následným přijetím zprávy. Jakmile kontejner dostane zprávu, aktivuje beanu, která vykoná určitou práci a poté se ukončí. Zpráva může být zaslána jakoukoliv komponentou platformy J2EE. Může tedy jít například o klienta aplikace, jinou beanu nebo webovou komponentu JDBC Java Database Connectivity (JDBC) je jednou ze základních technologií platformy Java EE a slouží pro připojení k relačním databázím. Rozhraní pro unifikovaný přístup k databázím poskytuje JDBC API. Základem konceptu JDBC je využití funkčnosti JDBC ovladače (JDBC Driver), který dotazy překládá do nativních volání databáze. Díky tomu je aplikační programátor odstíněn od specifického API databáze. Může tedy znát pouze toto jednotné rozhraní JDBC, které pak použije pro přístup k libovolné databázi, která poskytuje JDBC ovladač. Na obrázku 2 je zobrazena zjednodušená architektura JDBC, která znázorňuje základní princip této technologie. Obr. 2 Architektura JDBC [8] 6

19 JDBC API se používá zejména v enterprise session beanách pro získání přístupu k databázi. Může se ale také použít v servletu nebo JSP stránce, kde umožní přímý přístup k databázi bez využití EJB Java Persistence API Java Persistence API, někdy označovaná jako JPA, je standardem pro zajištění perzistence dat prostřednictvím objektově-relačního mapování (ORM 1 ). Tento standard je součástí Java EE, lze ho však použít i v Java SE. Technologie JPA byla také navržena tak, aby nebyla závislá na žádné specifické databázi. Dříve byla persistence dat zajišťována prostřednictvím Entity EJB komponent, které reprezentovaly data, s kterými aplikace pracovala. S příchodem EJB verze 3.0 nastala změna, po které jsou místo těchto komponent používány obyčejné POJO 2 objekty, které nepotřebují žádný kontejner. Zatímco entity reprezentují tabulku v relační databázi, instance těchto entit odpovídají jednotlivým řádkám tabulek. Entity jsou běžně ve vztahu s jinými entitami. Tyto vztahy mohou být vyjádřeny anotacemi zapsanými přímo ve třídě entity nebo ve zvláštním XML souboru pro definici metadat. [9] K vytváření dotazů JPA používá speciální jazyk Java Persistence Query Language (JPQL), který kombinuje objektový přístup s klasickým SQL XHTML Jazyk XHTML (Extensible Hypertext Markup Language, Rozšiřitelný hypertextový značkovací jazyk) je novější norma jazyka HTML. Jedná se o značkovací jazyk pro tvorbu hypertextových dokumentů v prostředí sítě Internet a využívá se pro zobrazování informací v internetovém prohlížeči. Tvůrcem tohoto jazyka je mezinárodní sdružení společností W3C (World Wide Web Consortium), které se zabývá vytvářením webových standardů. Díky tomu, že XHTML je založen na XML 4, dokumenty v tomto jazyce jsou snadno zobrazitelné, upravovatelné a validovatelné. 3.4 CSS CSS (Cascading Style Sheets, Tabulky kaskádových stylů) je jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML. [3] I tento jazyk, stejně jako XHTML, byl navržen standardizační organizací W3C. Hlavní výhodou používání CSS je oddělení popisu vzhledu dokumentu od jeho struktury a obsahu. To je umožněno tím, že se design a formátování načítají ze souboru kaskádových stylů, který je často společný pro celý web. V případě změny designu pak stačí upravit pouze tento jeden soubor a změna se projeví na všech webových stránkách. Bez použití CSS by úprava 1 ORM - Object-relational mapping, objektově-relační mapování 2 POJO - Plain Old Java Object 3 SQL - Structured Query Language, strukturovaný dotazovací jazyk 4 XML - Extensible Markup Language, rozšiřitelný značkovací jazyk - obecný standard pro výměnu dat 7

20 znamenala ve všech HTML dokumentech najít a upravit atributy značek, kterých by se změna týkala. To by samozřejmě bylo časově mnohem náročnější a značně nepohodlné. Kromě toho CSS nabízí více možností formátování než samotné HTML. Další nespornou výhodou, která je důsledkem používání této technologie, je urychlení zobrazení webových stránek internetovým prohlížečem. To je způsobeno tím, že se CSS soubor ukládá do mezipaměti prohlížeče. Pokud nedojde ke změně tohoto souboru, je načten pouze jednou. 8

21 4. Úvodní studie 4.1 Odborný článek Cílem projektu je vytvořit komplexní informační systém pro firmu nabízející svým zákazníkům služby v oblasti výuky řízení motorových vozidel autoškolu. Autoškola může provozovat výcvik všech druhů řidičských oprávnění od motocyklů až po nákladní automobily a autobusy. Tento systém nebude sloužit pouze zaměstnancům autoškoly, ale i jejím zákazníkům. Součástí systému bude také webová stránka pro prezentaci společnosti, která bude rovněž poskytovat informace pro její zákazníky. Návštěvníci stránek zde mimo jiné také najdou galerii prostor autoškoly, vozidel určených k výuce a samotných učitelů. Na webových stránkách nebude chybět on-line registrační formulář, prostřednictvím kterého se žáci budou moci zaregistrovat do informačního systému autoškoly. Součástí projektu bude také diskuzní fórum, které bude poskytovat prostor pro diskuzi mezi žáky nebo zde mohou zaměstnanci odpovídat na případné dotazy. Informační systém bude obsahovat jednoduchý systém účetnictví, kde u každého zákazníka bude záznam o platbách, které již byly uhrazeny nebo naopak teprve čekají na zaplacení. Tyto částky bude žák vidět po přihlášení ve své zákaznické sekci. V systému budou vystupovat čtyři různé role registrovaných uživatelů: vedoucí, asistent vedoucího, učitel a žák. Úkolem vedoucího je organizovat chod firmy, proto mu systém musí umožňovat především přidávat či měnit záznamy o zaměstnancích a vozidlech autoškoly. Vedoucí také musí mít přístup k informacím o zákaznících. Asistent vedoucího bude mít přístup k záznamům o zákaznících a jejich výuce, které bude moci měnit. Bude mít na starosti registrování nových či zneaktivňování vyučených zákazníků, zaznamenávání jejich plateb a plánování závěrečných zkoušek. Nového zákazníka bude asistent vedoucího moci vytvořit z on-line přihlášky nebo vyplněním příslušného formuláře. V případě on-line přihlášky bude možné přímo vytvořit zákazníka i s jeho vybraným kurzem výuky. Učitel bude moci upravovat svůj profil včetně svojí pracovní doby a spravovat naplánované hodiny praktických jízd. V případě zákazníků, kteří nebudou využívat služby online plánování, bude dohodnuté termíny zapisovat do systému. Po uskutečnění naplánované hodiny učitel tuto hodinu potvrdí. Díky tomu pak má zákazník ve svém profilu přehled o provedených jízdách. Zaregistrovaní žáci autoškoly budou mít přes webové rozhraní přístup do vlastní sekce, kde budou dostupné všechny důležité informace a funkce, mezi které bude patřit zobrazení profilu zákazníka s možností jeho úpravy, dále plánování jízd, vytváření přehledu teoretických hodin a nebude chybět ani zobrazení přehledu stavu celého kurzu. Pokud žák nebude využívat 9

22 on-line služby plánování, bude svoji výuku plánovat přímo s učitelem, s kterým ji bude chtít uskutečnit. Naplánované hodiny bude žák moci zrušit a následně naplánovat jiný termín. Výuka se skládá z teoretických hodin a jízd. Teoretické hodiny jsou prováděny pro skupiny zákazníků v předem stanovených termínech. Během nich se klienti učí dopravní předpisy, pravidla silničního provozu, poskytování první pomoci a základy údržby vozidla. Docházka na teoretické hodiny není povinná. Jízdy budou prováděny podle předem naplánovaných termínů v informačním systému. Pracovní doby zaměstnanců budou tvořit přehled termínů, na které se budou moci přihlašovat zákazníci. Vedoucí bude moci stanovovat pracovní doby všech zaměstnanců, zatímco učiteli bude umožněno měnit pouze své hodiny výuky. Při přihlašování na termín jízdy si žák nejprve vybere učitele. Po výběru se zobrazí kontakty na daného učitele a jeho pracovní doba, která bude složena z možných termínů pro přihlášení. Žák následně zadá datum a vybere jeden z možných termínů. Součástí plánování jízdy bude také výběr preferovaného vozidla pro vykonání jízdy. Systém poté musí zkontrolovat, zda jsou učitel a vozidlo na vybraný termín k dispozici. Vytváření přehledu vyučovacích hodin teorie bude registrovanému žákovi umožněno ve správě výuky teorie, která bude součástí sekce pro zákazníka. Správa bude zahrnovat přidávání, upravování a odstraňování již vytvořených hodin. Při vytváření nové hodiny teorie žák zadá datum, zapíše popis hodiny a zaškrtne, zda hodinu navštívil. Žák si tedy bude moci vést přehled o navštívených i nenavštívených hodinách podle toho, jak mu to bude vyhovovat. Získá tím přehled o tom, které okruhy teoretické přípravy absolvoval a naopak které si bude muset sám doplnit, aby úspěšně složil závěrečnou zkoušku. Systém musí evidovat informace o zaměstnancích, vozidlech, zákaznících a vyučovacích hodinách a musí umět tyto zdroje rezervovat, aby mohlo být realizováno plánování výuky. U zaměstnanců se budou ukládat osobní údaje jako je jméno, příjmení, adresa a kontakty ( a telefonní čísla), dále datum nástupu do firmy, fixní a variabilní mzda. U učitelů je také nezbytné evidovat, na které skupiny vozidel mají oprávnění k výuce. U každého z firemních vozidel bude evidována jejich SPZ, značka, typ, barva a informace, v jakém je stavu (v provozu, dočasně nedostupné pro výuku z důvodu opravy apod.). U zákazníků budou evidovány informace uvedené na přihlášce, kterou bude nutné vyplnit pro registraci do autoškoly. Tato přihláška bude na webových stránkách autoškoly dostupná jako dokument ke stažení nebo v podobě on-line formuláře. Mezi uváděné informace bude patřit skupina řidičského oprávnění, na kterou chce zákazník provést výcvik, dále to bude jméno, příjmení, datum, místo a okres narození, státní občanství, adresa, a telefonní kontakty. Záznamy o jednotlivých vyučovacích hodinách budou obsahovat všechny potřebné informace, mezi které patří poznámka, zda byla hodina uskutečněna, datum a čas konání, účastníci (učitel a žák v případě jízdy, v případě teoretických hodin pouze žáci) a u jízdy bude záznam o vozidle, ve kterém byla tato praktická hodina provedena. 10

23 4.2 Katalog požadavků 1. Systém bude navržen pro autoškolu, která svým zákazníkům nabízí služby v oblasti výuky všech skupin vozidel od motocyklů až po nákladní automobily a autobusy. 2. Součástí systému budou webové stránky, které budou sloužit k prezentaci autoškoly na Internetu a budou poskytovat všechny potřebné informace. 2.1 Na webových stránkách budou informace týkající se provozu autoškoly. 2.2 Na webových stránkách budou k dispozici ke stažení všechny formuláře potřebné k přihlášení zákazníka na výcvik. 2.3 Na webových stránkách bude popis všech skupin řidičských oprávnění. 2.4 Na webových stránkách bude seznam zaměstnanců s jejich kontakty a fotografiemi. 2.5 Na webových stránkách budou odkazy na důležité webové stránky týkající se výuky řízení motorových vozidel. 2.6 Webové stránky budou obsahovat obrázkovou galerii s fotografiemi prostor autoškoly, vozidel určených k výuce a učitelů autoškoly. 2.7 Na webových stránkách bude možné vyplnit on-line přihlášku do autoškoly U on-line přihlášky se bude vyplňovat skupina řidičského průkazu, na kterou chce zákazník provést výcvik, jméno, příjmení, datum, místo a okres narození, státní občanství, adresa, a telefonní kontakty. 3. Do systému se bude uživatel přihlašovat svým uživatelským jménem a přístupovým heslem. Po přihlášení získá přístup do sekce pro registrované uživatele. 3.1 Zákazník se po přihlášení dostane do své zákaznické sekce V zákaznické sekci bude zákazníkovi umožněno zobrazit a upravit svůj profil Ve své sekci bude mít zákazník přehled o svých platbách, které již byly uhrazeny nebo naopak teprve čekají na zaplacení Ve své sekci bude mít zákazník přehled o stavu výuky Ve své sekci bude mít zákazník možnost plánovat svoji praktickou část výuky Zákazník si může naplánovat termín jízdy Zákazník může naplánovaný termín jízdy upravit či zrušit Ve své sekci bude mít zákazník možnost vést přehled teoretické části výuky Zákazník může vytvořit termín teoretické hodiny Zákazník může vytvořený termín teoretické hodiny upravit či zrušit. 3.2 Učitel se po přihlášení dostane do své sekce pro učitele Ve své sekci bude mít učitel možnost upravovat svůj profil a pracovní dobu Ve své sekci bude mít učitel možnost plánovat výuku zákazníků Učitel může zákazníkovi naplánovat praktickou hodinu jízdy. 11

24 Učitel může vybranou naplánovanou hodinu upravit či zrušit Učitel může vybranou naplánovanou hodinu označit za uskutečněnou. 3.3 Asistent vedoucího se po přihlášení dostane do sekce asistenta vedoucího Ve své sekci bude mít asistent vedoucího možnost spravovat seznam zákazníků Asistent vedoucího bude moci přidat nového zákazníka vyplněním formuláře nebo vygenerováním z on-line přihlášky Asistent vedoucího bude moci zneaktivnit daného zákazníka Asistent vedoucího bude moci měnit profil vybraného zákazníka Ve své sekci bude asistent vedoucího spravovat platby zákazníků Asistent vedoucího bude moci přidat k danému zákazníkovi položku k uhrazení Asistent vedoucího bude moci označit položku k úhradě za zaplacenou. 3.4 Vedoucí se po přihlášení dostane do sekce vedoucího Ve své sekci bude vedoucí moci spravovat seznam zaměstnanců Vedoucí bude moci přidat nového zaměstnance Vedoucí bude moci zneaktivnit vybraného zaměstnance Vedoucí bude moci měnit profil vybraného zaměstnance Ve své sekci bude vedoucí moci spravovat skupiny řidičských oprávnění Vedoucí může přidat novou skupinu Vedoucí může upravit či zneaktivnit vybranou skupinu. 4. Součástí systému bude diskuzní fórum pro diskuzi zaměstnanců a zákazníků autoškoly. 5. Systém bude evidovat informace o zaměstnancích, vozidlech, zákaznících a vyučovacích hodinách. 5.1 U zaměstnanců se bude ukládat jméno, příjmení, adresa a kontakty ( a telefonní čísla), datum nástupu do firmy, fixní a variabilní mzda a skupiny vozidel, na které mají oprávnění k výuce. 5.2 U každého firemního vozidla bude evidována jeho SPZ, značka výrobce, typ, barva a informace, v jakém je stavu. 5.3 U zákazníků a přihlášek se bude ukládat jméno, příjmení, datum, místo a okres narození, státní občanství, adresa, a telefonní kontakty. 5.4 U přihlášek budou informace o zákazníkovi a navíc skupina řidičského oprávnění, na kterou chce zákazník provést výcvik. 5.5 U vyučovacích hodin bude ukládána informace o tom, zda byla hodina uskutečněna, dále datum a čas konání, účastníci (učitel a žák v případě jízdy, v případě teoretických hodin pouze žáci) a u jízdy bude záznam o vozidle, ve kterém byla výuka provedena. 12

25 5. Analýza a návrh řešení 5.1 Diagram tříd Diagram tříd popisuje statickou strukturu systému zobrazením všech tříd, které se týkají modelovaného systému, a vztahů mezi nimi. Pro přehlednost jsou u tříd uvedeny pouze jejich názvy. Obr. 3 Diagram tříd 13

26 5.2 Diagramy případů užití Diagramy případů užití popisují chování systému z hlediska uživatele, aniž by odhalovaly jeho vnitřní strukturu. Používají se u nich pojmy přirozeného jazyka a termíny z problémové domény, aby se co nejvěrněji a co nejsrozumitelněji načrtly funkce systému. Soubor diagramů případů užití dobře podává prvotní představu o rozsahu celého projektu Hlavní přehled užití systému Diagram hlavního přehledu užití stručně znázorňuje činnosti, které budou moci jednotliví uživatelé systému provádět. Zatímco neregistrovaný uživatel bude mít přístup pouze k prohlížení webových stránek autoškoly, registrovaní uživatelé po přihlášení dostanou jednu z uživatelských rolí. Těmi budou zákazník, učitel, vedoucí a asistent vedoucího. Obr. 4 Hlavní přehled užití systému 14

27 5.2.2 Přihlášení do systému Pro přihlášení do systému bude nutné zadat správné uživatelské jméno a přihlašovací heslo. Diagram přihlášení také znázorňuje uživatele informačního systému. Obr. 5 Přihlášení do systému Případy užití uživatele Každý uživatel bude moci prohlížet web, odesláním přihlášky se registrovat on-line, dále nesmí chybět možnost stažení důležitých formulářů (zejména přihlášky a potvrzení o zdravotní způsobilosti žadatele o řidičské oprávnění) a odkaz na on-line testy, kterými si žák autoškoly může prověřit své znalosti. Dalšími možnostmi budou navštívení diskuzního fóra a přihlášení do informačního systému, kde se registrovaní uživatelé dostanou do své sekce s přehledem výuky a jejím plánováním. 15

28 Obr. 6 Případy užití uživatele Prohlížení webu Tento diagram případů užití popisuje, co všechno bude možné zobrazit na webových stránkách autoškoly. Všechna tato zobrazení budou přístupná každému, kdo na webové stránky vstoupí. Obr. 7 Prohlížení webu 16

29 5.2.5 Případy užití vedoucího Vedoucí bude mít na starosti zejména správu zaměstnanců a vozidel autoškoly. Správa zaměstnanců bude zahrnovat přidání nového a zneaktivnění či změnu profilu vybraného zaměstnance. V profilu zaměstnance budou uvedeny jeho osobní informace s kontakty a skupinami řidičského oprávnění, které může vyučovat, a v neposlední řadě také pracovní doba, která bude tvořena hodinami pro výuku. Pro správu vozidel bude systém umožňovat přidání nového vozidla a zneaktivnění či změnu vybraného vozidla. U vozidel musí být uvedeno, které skupiny řidičského oprávnění s nimi lze vyučovat. V systému bude zajištěna správa těchto skupin. Další možností vedoucího bude změna nastavení systému, kde bude možné nastavit například kapacitu učebny autoškoly. Obr. 8 Případy užití vedoucího 17

30 5.2.6 Případy užití asistenta vedoucího Asistent vedoucího bude mít na starosti správu zákazníků, jejich on-line přihlášek, poplatků a kurzů. Z nové on-line přihlášky bude možné vygenerovat zákazníka, případně i s jeho kurzem, na který se hlásí. Přihlášku bude také možné odstranit. V případě, že registrace nebude provedena on-line, musí být vytvoření nového zákazníka umožněno vyplněním příslušného formuláře. Asistent vedoucího bude moci zobrazit profil zákazníka a případně provést jeho změnu. Správa kurzů bude zahrnovat vytvoření nového či uzavření kurzu vybraného zákazníka a správu závěrečné zkoušky kurzu. U zkoušky bude uveden datum konání a zda byl splněn test a závěrečná jízda s komisařem. Správa poplatků bude zajištěna možnostmi pro přidání nového nebo úpravu existujícího poplatku. Každý z poplatků bude mít svůj název, částku k zaplacení a stav, který bude udávat, zda je již poplatek uhrazen. Obr. 9 Případy užití asistenta vedoucího Případy užití zákazníka Přihlášenému zákazníkovi bude systém poskytovat přehled jeho kurzů, uhrazených i neuhrazených poplatků, dále bude umožňovat zobrazit a upravit profil, zobrazit stav závěrečné zkoušky u každého zákazníkova kurzu a v neposlední řadě bude systém sloužit ke správě výuky, která zahrnuje plánování jízd a vedení přehledu o výuce teorie. 18

31 Obr. 10 Případy užití zákazníka Správa výuky zákazníka se skládá z plánování jízd a vytváření přehledu o výuce teorie. Zákazník bude moci vytvořit nový či zrušit již vytvořený plán jízdy. Pro vytvoření plánu bude nutno vyplnit datum a hodinu konání a vybrat učitele a preferované vozidlo. Formulář vytváření hodiny teorie bude obsahovat datum, popis hodiny a stav, zda již hodina byla uskutečněna. Vybranou hodinu teorie bude také možné zrušit. Obr. 11 Správa výuky zákazníka 19

32 5.2.8 Případy užití učitele Učitelům bude systém poskytovat zejména plánování praktické výuky zákazníků. Pro založení nového plánu jízdy bude vybrán termín, žák a preferované vozidlo. Nebude chybět ani možnost zrušení plánu jízdy. Dalšími funkcemi budou úprava termínů výuky, které tvoří pracovní dobu učitele, možnost změny profilu a prohlížení seznamu zákazníků s jejich profily. Obr. 12 Případy užití učitele Učitel bude mít k dispozici seznam svých plánů jízd, které byly naplánovány zákazníky nebo samotným učitelem. U každé z těchto naplánovaných hodin půjde zobrazit detail, ve kterém budou informace o daném zákazníkovi, termín konání, poznámka a stav hodiny udávající, zda již jízda byla uskutečněna. Tento stav i poznámku bude moci učitel změnit. Obr. 13 Správa hodiny jízdy učitele 20

33 5.3 Diagramy aktivit Závěrečná zkouška Diagram znázorňuje průběh závěrečné zkoušky od přihlášení na termín až po zápis výsledků zkoušky. Pokud žák neuspěje u písemného testu, nemůže provést závěrečnou jízdu s komisařem a musí být přihlášen na jiný termín. Pokud žák splní písemný test ale nesloží zkoušku, na dalším termínu zkoušky jde rovnou na závěrečnou jízdu. Obr. 14 Závěrečná zkouška 21

34 5.4 Sekvenční diagramy Přihlášení zákazníka na jízdu Diagram znázorňuje činnosti zákazníka, učitele a samotného systému při plánování hodiny jízdy v případě, že zákazník nevyužije on-line plánování. Zákazník nejdříve učiteli poskytne potřebné informace a ten poté v systému jízdu naplánuje. Obr. 15 Přihlášení na jízdu 22

35 5.5 Scénáře užití systému Případ užití: Spravovat skupiny ŘO Uživatelé: Vedoucí Vstupní podmínky: 1. Je zobrazen přehled skupin řidičského oprávnění. Tok událostí: 1. KDYŽ Uživatel zvolí přidání nové skupiny. 1.1 Systém zobrazí formulář pro přidání nové skupiny. 1.2 Uživatel vyplní formulář skupiny. 1.3 Uživatel potvrdí přidání skupiny. 1.4 Systém provede kontrolu formuláře. 1.5 KDYŽ Byly nalezeny chyby ve formuláři Systém informuje o chybách Případ užití pokračuje bodem Systém vytvoří novou skupinu řidičského oprávnění. 2. KDYŽ Uživatel ze seznamu vybere určitou skupinu. 2.1 Systém zobrazí detail skupiny. 2.2 KDYŽ Uživatel zvolí změnu aktivity skupiny KDYŽ Skupina je aktivní Systém skupinu zneaktivní JINAK Systém skupinu zaktivní. 2.3 KDYŽ Uživatel chce změnit detail skupiny Uživatel provede změny detailu skupiny Uživatel potvrdí změnu detailu skupiny Systém provede kontrolu detailu KDYŽ Byly nalezeny chyby při kontrole detailu skupiny Systém informuje o chybách Případ užití pokračuje bodem Systém provede změnu detailu skupiny. Případ užití: Spravovat on-line přihlášku Uživatelé: Asistent vedoucího Vstupní podmínky: 1. Je zobrazen detail on-line přihlášky. Tok událostí: 1. KDYŽ Uživatel zvolí změnu aktivity přihlášky. 1.1 KDYŽ Přihláška je aktivní Systém změní stav přihlášky na neaktivní. 1.2 JINAK Systém změní stav přihlášky na aktivní. 2. KDYŽ Uživatel zadá příkaz pro vytvoření zákazníka z on-line přihlášky. 2.1 Systém vytvoří zákazníka z on-line přihlášky. 3. KDYŽ Uživatel zadá příkaz pro vytvoření zákazníka a kurzu z on-line přihlášky. 3.1 Systém vytvoří zákazníka a kurz z on-line přihlášky. 23

36 Případ užití: Spravovat vozidla Uživatelé: Vedoucí Vstupní podmínky: 1. Je zobrazen přehled vozidel autoškoly. Tok událostí: 1. KDYŽ Uživatel zvolí přidání nového vozidla. 1.1 Systém zobrazí formulář pro přidání nového vozidla. 1.2 Uživatel vyplní formulář vozidla. 1.3 Uživatel potvrdí přidání vozidla. 1.4 Systém provede kontrolu formuláře. 1.5 KDYŽ Byly nalezeny chyby ve formuláři Systém informuje o chybách Případ užití pokračuje bodem Systém vytvoří nové vozidlo. 2. KDYŽ Uživatel ze seznamu vybere určité vozidlo. 2.1 Systém zobrazí detail vozidla. 2.2 KDYŽ Uživatel zvolí změnu aktivity vozidla KDYŽ Vozidlo je aktivní Systém vozidlo zneaktivní JINAK Systém vozidlo zaktivní. 2.3 KDYŽ Uživatel chce změnit detail vozidla Uživatel provede změny detailu vozidla Uživatel potvrdí změnu detailu vozidla Systém provede kontrolu vozidla KDYŽ Byly nalezeny chyby při kontrole detailu vozidla Systém informuje o chybách Případ užití pokračuje bodem Systém provede změnu detailu vozidla. 2.4 KDYŽ Uživatel chce vozidlu přidat skupinu řidičského oprávnění Uživatel z nabídky vybere skupinu řidičského oprávnění Uživatel zadá příkaz pro přidání vybrané skupiny vozidlu KDYŽ Vozidlo nemá vybranou skupinu Systém vozidlu přidá vybranou skupinu. 2.5 KDYŽ Uživatel chce vozidlu odebrat skupinu řidičského oprávnění Uživatel z nabídky vybere skupinu řidičského oprávnění Uživatel zadá příkaz pro odebrání vybrané skupiny vozidlu KDYŽ Vozidlo má vybranou skupinu Systém vozidlu odebere vybranou skupinu. 24

37 Případ užití: Spravovat poplatky zákazníka Uživatelé: Asistent vedoucího Vstupní podmínky: 1. Je zobrazen přehled poplatků zákazníka. Tok událostí: 1. KDYŽ Uživatel zvolí přidání nového poplatku. 1.1 Systém zobrazí formulář pro přidání nového poplatku. 1.2 Uživatel vyplní formulář poplatku. 1.3 Uživatel potvrdí přidání poplatku. 1.4 Systém provede kontrolu formuláře. 1.5 KDYŽ Byly nalezeny chyby ve formuláři Systém informuje o chybách Případ užití pokračuje bodem Systém vytvoří pro daného zákazníka nový poplatek. 2. KDYŽ Uživatel ze seznamu vybere určitý poplatek. 2.1 Systém zobrazí detail poplatku. 2.2 KDYŽ Uživatel zvolí změnu zaplacení KDYŽ Poplatek není zaplacený Systém změní stav poplatku na zaplacený JINAK Systém změní stav poplatku na nezaplacený. 2.3 KDYŽ Uživatel chce změnit detail poplatku Uživatel provede změny detailu poplatku Uživatel potvrdí změnu detailu poplatku Systém provede kontrolu detailu KDYŽ Byly nalezeny chyby při kontrole detailu poplatku Systém informuje o chybách Případ užití pokračuje bodem Systém provede změnu detailu poplatku. Případ užití: Upravit profil zákazníka Uživatelé: Zákazník, Asistent vedoucího Vstupní podmínky: 1. Je zobrazen profil zákazníka. Tok událostí: 1. Uživatel upraví údaje, které chce změnit. 2. KDYŽ Uživatel zadá příkaz k uložení změn profilu. 2.1 Systém provede kontrolu formuláře. 2.2 KDYŽ Byly nalezeny chyby ve formuláři Systém informuje o chybách Případ užití pokračuje bodem Systém uloží upravený profil zákazníka. 25

38 Případ užití: Spravovat kurz zákazníka Uživatelé: Asistent vedoucího Vstupní podmínky: 1. Je zobrazen detail vybraného kurzu určitého zákazníka. Tok událostí: 1. KDYŽ Uživatel zvolí změnu aktivity kurzu. 1.1 KDYŽ Kurz je aktivní Systém kurz zneaktivní. 1.2 JINAK Systém kurz zaktivní. 2. KDYŽ Uživatel chce nastavit datum konání zkoušky. 2.1 Uživatel zadá datum zkoušky. 2.2 Uživatel potvrdí zkoušku. 2.3 Systém provede kontrolu zadané hodnoty. 2.4 KDYŽ Datum zkoušky je chybný Systém informuje o chybě Případ užití pokračuje bodem Systém uloží datum zkoušky. 3. KDYŽ Uživatel zvolí změnu složení písemné zkoušky. 3.1 KDYŽ Písemná zkouška není složena Systém nastaví písemnou zkoušku jako složenou. 3.2 JINAK Systém nastaví písemnou zkoušku jako nesloženou. 4. KDYŽ Uživatel zvolí změnu složení závěrečné jízdy. 4.1 KDYŽ Závěrečná jízda není složena Systém nastaví závěrečnou jízdu jako složenou. 4.2 JINAK Systém nastaví závěrečnou jízdu jako nesloženou. Případ užití: Změnit termíny výuky Uživatelé: Učitel, Vedoucí Vstupní podmínky: 1. Je zobrazen rozvrh s termíny výuky učitele. Tok událostí: 1. Uživatel změní termíny v rozvrhu výuky. 2. KDYŽ Uživatel dá příkaz k uložení rozvrhu výuky. 2.1 Systém uloží upravený rozvrh výuky. 26

39 5.6 Diagram nasazení Obr. 16 Diagram nasazení 27

40 5.7 Návrh uživatelského rozhraní Cílem projektu je vytvořit informační systém, který je funkční a zároveň uživatelsky přívětivý. Aby se aplikace stala oblíbenou mezi jejími uživateli, musí nejen správně fungovat, ale i dobře vypadat. Kromě grafického zpracování je také důležité vhodné uspořádání ovládacích prvků, aby práce se systémem byla co nejvíce intuitivní. Design aplikace je navržen tak, aby webové stránky autoškoly splývaly s jejím informačním systémem, čímž celý projekt nabývá celistvého dojmu. Při návrhu autoškola dostala pracovní název Autoškola Rychlík & spol. Na obrázku 17 je zobrazen návrh uživatelského rozhraní pro on-line přihlášku do autoškoly. Obr. 17 Návrh uživatelského rozhraní 28

41 6. Realizace Aplikace informačního systému byla implementována na platformě Java EE 5 ve vývojovém prostředí NetBeans IDE Webové stránky autoškoly, které jsou součástí projektu, byly navrženy v programu Macromedia Dreamweaver MX 2004 a poté byly v NetBeans převedeny do formy JSP stránek. Další součástí projektu je diskuzní fórum, pro které byla využita nejnovější verze open-source systému phpbb. Ukázky uživatelského rozhraní implementované aplikace jsou uvedeny v příloze B. 6.1 Použité programy NetBeans IDE NetBeans je open source projekt firmy Sun Microsystems, který je vyvíjen komunitou vývojářů po celém světě. Tento projekt zahrnuje dva hlavní produkty, kterými jsou vývojové prostředí NetBeans IDE a vývojová platforma The NetBeans Platform. Vývojové prostředí NetBeans IDE umožňuje psát, překládat, ladit a šířit programy. Je určeno zejména pro vývoj aplikací v jazyce Java, ale podporuje i další programovací jazyky a existuje velké množství modulů, které toto vývojové prostředí rozšiřují. V Javě podporuje všechny 3 hlavní platformy, kterými jsou Java SE, Java EE a Java ME Macromedia Dreamweaver MX 2004 Dreamweaver patří mezi celosvětově nejpopulárnější programy pro tvorbu a úpravu webových stránek. Tento nástroj kombinuje vizuální návrh s přímou editací kódu - jedná se o takzvaný WYSIWYG editor. Tato zkratka označuje způsob editace dokumentů, při kterém je verze zobrazená na obrazovce vzhledově totožná s výslednou podobou dokumentu. Název je odvozen z anglické věty What you see is what you get, což v překladu znamená Co vidíš, to dostaneš PhpBB PhpBB je open-source systém používaný pro tvorbu internetových fór. Jedná se o jedno z celosvětově nejrozšířenějších řešení pro diskuzní fóra, které je založeno na serverovém jazyce PHP. Výhodami tohoto řešení jsou škálovatelnost, lehce přizpůsobitelný design, přehledné uživatelské rozhraní a v neposlední řadě podpora mnoha různých databázových systémů, například MySQL, MS-SQL a PostgreSQL. 1 Java ME - Java Platform, Micro Edition 29

42 7. Testování V průběhu tvorby webových stránek bylo nezbytné průběžně testovat jejich správné zobrazování, protože stejné stránky mohou být různými internetovými prohlížeči interpretovány odlišně. Pro tato testování byly použity prohlížeče Opera 9.50, Mozilla Firefox 2.0 a Internet Explorer 7.0. Díky testování bylo docíleno toho, že ve všech těchto prohlížečích se stránky zobrazují shodně (až na drobné detaily, které nijak neovlivňují funkčnost či kvalitu designu). Během implementace bylo důležité testování, zda všechny funkce vyvíjené aplikace správně fungují. Jednalo se zejména o takzvané regresní testování, které je jedním z typů softwarového testování. Jeho cílem je odhalit regresní chyby, které se objevují v okamžiku, kdy softwarová funkcionalita, která dříve fungovala, přestane správně fungovat. Typická regresní chyba nastává jako nepředvídaný důsledek změny programu. [10] Pro tato testování bylo používáno takzvané Black Box a White Box testování neboli testování metodou černé a bílé skříňky. Při testování metodou černé skříňky se správná funkčnost aplikace kontroluje z vnějšího pohledu bez využití znalostí o tom, jak funguje uvnitř. U testování metodou White Box se data pro testování stanovují na základě znalosti vnitřní logiky programu. V závěru implementace bylo provedeno funkcionální testování, jehož cílem bylo zjistit, zda funkcionalita odpovídá funkčním požadavkům stanoveným v katalogu požadavků, který je součástí úvodní studie. Výsledná aplikace splňovala všechny tyto požadavky. 30

43 8. Závěr Cílem práce bylo vytvoření informačního systému autoškoly včetně webových stránek a diskuzního fóra. V první řadě bylo nutné vypracovat úvodní studii, ve které je uvedena problematika a sepsány funkční požadavky na systém. Dalšími fázemi vývoje byly analýza a návrh řešení. Analýza byla provedena pomocí modelovacího jazyka UML. Když byl systém analyzován a navržen, bylo možné přejít k vlastní implementaci, která byla realizována na platformě Java EE. Díky podrobné analýze, průběžnému testování a přehledné struktuře programu, kterou platforma Java EE poskytuje, nedocházelo k žádným vážnějším komplikacím a informační systém se tak podařilo podle představ implementovat. Vyvinutý systém obsahuje kompletní webové stránky včetně galerie a diskuzního fóra, poskytuje správu on-line přihlášek, plateb, zákazníků, zaměstnanců a vozidel autoškoly a dále umožňuje plánovat praktické jízdy a vést přehled o výuce teorie. Aplikace je snadno rozšiřitelná, proto by v případě potřeby mohly být přidány další funkcionality či bezpečnostní prvky. 31

44 9. Literatura [1] J. Arlow, I. Neustadt. UML a unifikovaný proces vývoje aplikací. Computer Press, Brno, ISBN X [2] A. Buchalcevová, J. Pavlíčková, L. Pavlíček. Základy softwarového inženýrství. Oeconomica, Praha, ISBN [3] Wikipedia. Cascading Style Sheets. [4] Wikipedia. Unified Modeling Language. [5] Wikipedia. Java EE. [6] Sun Microsystems. JavaServer Faces Technology Overview. [7] Root.cz. Komponenta Session beans v JBoss. [8] Interval.cz. Úvod do JDBC. [9] Wikipedia. Java Persistence API. [10] Wikipedia. Testování softwaru. 32

45 A. Seznam použitých zkratek API Application Programming Interface CASE Computer-aided Software Engineering CSS Cascading Style Sheets EJB Enterprise JavaBeans GUI Graphical User Interface HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol IDE Integrated Development Environment Java EE Java Platform, Enterprise Edition Java ME Java Platform, Micro Edition Java SE Java Platform, Standard Edition JCA Java Connector Architecture JDBC Java Database Connectivity JMS Java Messaging Services JPA Java Persistence API JPQL Java Persistence Query Language JSF JavaServer Faces JSP JavaServer Pages ORM Object-relational Mapping POJO Plain Old Java Object SQL Structured Query Language UML Unified Modeling Language W3C World Wide Web Consortium WYSIWYG What you see is what you get XHTML Extensible Hypertext Markup Language XML Extensible Markup Language 33

46 B. Uživatelské rozhraní aplikace Obr. 18 Web autoškoly Výuka Obr. 19 Web autoškoly Galerie 34

47 Obr. 20 Zákazník Přehled plánování Obr. 21 Zákazník Vytváření plánu jízdy 35

48 Obr. 22 Zákazník Detail jízdy Obr. 23 Vedoucí Detail vozidla 36

49 C. Obsah přiloženého CD 37