Redakční systém pro tvorbu, údržbu a zveřejňování investičních záměrů a veřejných zakázek městského úřadu (Editorial system for creating, maintenance and publishing of investment intents and public orders of a city hall) Navrhněte WWW redakční systém pro úřad veřejné správy. Analýzu přizpůsobte potřebám, které zmapujete na odboru investičních záměrů magistrátu Hlavního města Prahy. Analýzu zdokumentujte technikami, které jste si osvojil v předmětu SIN. Vytvořená aplikace bude používat na pozadí relační databázi. Pro vývoj použijte některý volně šiřitelný aplikační server, například Apache-Tomcat. Systém poskytne podporu správci stránek a veřejnému uživateli. Součástí řešení bude návod pro instalaci a pro zabezpečení dat proti zneužití a proti poškození. Součástí řešení bude také uživatelský návod pro obsluhu aplikace v roli správce.
České vysoké učení technické v Praze Fakulta elektrotechnická
Bakalářská práce
Redakční systém pro tvorbu, údržbu a zveřejňování investičních záměrů a veřejných zakázek městského úřadu Michal Repaský
Vedoucí práce: Ing. Ivan Halaška
Studijní program: Elektrotechnika a informatika strukturovaný bakalářský Obor: Informatika a výpočetní technika červen 2007
Poděkování Rád bych poděkoval vedoucímu bakalářská práce Ing. Ivanu Halaškovi za vedení práce a konzultace ohledně problematiky tématu. Dále bych rád poděkoval přátelům Milanu Kajnarovi a Ondřeji Herclovi z fakulty elektrotechnické za testování a pomoc při hledání chyb v aplikaci. v
Prohlášení Prohlašuji, že jsem svou 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 k použ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 Kyšicích dne 6.6. 2007
…………………………………...
vii
Abstrakt Purpose of this thesis is an implementation of web application for creating, maintenance and publishing of investment intents and public orders of a city hall. System supports public users and administrator of a system. Created application is intended to be run on application server and uses a background relation database. Documentation contains a complete analysis documented by method of software engineering.
Abstrakt Cílem této bakalářské práce je implementace webové aplikace pro tvorbu, údržbu a zveřejňování investičních záměrů a veřejných zakázek městského úřadu. Systém poskytuje podporu veřejnému uživateli a správci systému. Vytvořená aplikace používá na pozadí relační databázi a je nasazena na aplikačním serveru. Součástí dokumentace je kompletní analýza metodami softwarového inženýrství.
ix
Obsah Seznam obrázků
xiv
Seznam tabulek
xvii
1 Úvod
1
2 Cíl bakalářské práce
3
3 Analýza metodami SI 5 3.1 Odborný článek …………………………………………………………..............5 3.2 Katalog požadavků ……………………………………………………………….9 3.3 Deklarace záměru …………………………………………………………….....10 3.4 Seznam aktérů a událostí ……………………………………………………......11 3.5 Datová slovník …………………………………………………………………..13 3.6 Požadavky hardware a software …………………………………………….......17 3.7 Rozpočet projektu ……………………………………………………………....18 4 Implementace 21 4.1 Programovací jazyk Java ...……….......…………………………………………21 4.2 Výběr vývojového prostředí ..…………………………………………………...22 4.3 Vlastní implementace …………………………………………………………...23 4.3.1 Popis využitých technologií …………………………………………..23 4.3.2 Popis vlastní implementace …………………………………………...24 5 Testování 27 5.1 Analýza rizik …………………………………………………………………....27 5.2 Plán řízení jakosti …………………………………………………………….....29 5.3 Plán testů ………………………………………………………………………..31 5.4 Akceptační test ………………………………………………………………….34 6 Závěr
37
7 Seznam literatury
39
A UML diagramy 41 A.1 Usecase diagram systému ………………………………………………………41 A.2 Usecase diagram vyhledávání ………………………………………………….42 A.3 Usecase diagram vystavení investičního záměru ………………………………43 A.4 Usecase diagram investičních záměrů ………………………………………….44 A.5 Usecase diagram stornování investičního záměru ……………………………...45 A.6 Usecase diagram vystavení veřejné zakázky ……………………………….......46 A.7 Usecase diagram veřejných zakázek ……………………………………….......47 A.8 Usecase diagram stornování veřejné zakázky …………………………….........48 A.9 Activity diagram systému ………………………………………………….…...49 A.10 Kontextový diagram …………………………………………………………..50 A.11 Datový model ……………………………………………………………...….51
xi
B Pokyny a návody 53 B.1 Návod k instalaci ……………………………………………………………….53 B.2 Návod na zálohování a obnovení databáze ……………………………………..77 B.2.1 Zálohování dat ……………………..………………………………....77 B.2.2 Obnova dat ………………...…..……………………………………...80 B.2.3 Příklad postupu zálohování a obnovy dat ………………………........81 C Uživatelská příručka 83 C.1 Návod k redakčnímu systému ……...……………………………………….......83 D Obsah přiloženého CD
xii
87
Seznam obrázků 3.1.1 Příklad systému pro zveřejňování investičních záměrů města Plzeň….………...8 3.1.2 Příklad systému pro zveřejňování veřejných zakázek města Plzeň ……………..8 3.1.3 Příklad systému pro zveřejňování veřejných zakázek města Brno ………….......8 4.1.1 Struktura programovacího jazyka Java ...…………………………………........21 4.3.2.1 Struktura aplikačního serveru 1 .....…………….……………….……….…...24 4.3.2.2 Struktura aplikačního serveru 2 ..………………………………………….....24 4.3.2.3 Struktura aplikace ..………………………………………………………......26 A.1.1 Usecase diagram systému ..…………………………………………………....41 A.2.1 Usecase diagram vyhledávání ..………………………………………………..42 A.3.1 Usecase diagram vystavení investičního záměru ..………………………….…43 A.4.1 Usecase diagram investičních záměrů .…………………………………..……44 A.5.1 Usecase diagram stornování investičního záměru ….……………………..…..45 A.6.1 Usecase diagram vystavení veřejné zakázky .………………………………....46 A.7.1 Usecase diagram veřejných zakázek .……...……………………………….....47 A.8.1 Usecase diagram stornování veřejné zakázky ……………………………..….48 A.9.1 Activity diagram systému ………………………………………………….....49 A.10.1 Kontextový diagram systému .……………………………………………….50 A.11.1 Datový model .……………………………………………………………….51 B.1.1 Úvod instalace Java SDK .…………………………………………………….53 B.1.2 Potvrzení licenčních podmínek instalace Java SDK .………………………....54 B.1.3 Nastavení umístění instalace Java SDK na disku ………………………….....54 B.1.4 Nastavení parametrů uživatelského jména, hesla a portu aplikace při instalaci Java SDK ………………………………………………………………………….…55 B.1.5 Nastavení parametrů aplikačního serveru SUN při instalaci Java SDK .……...55 B.1.6 Shrnutí nastavení při instalaci Java SDK ..…………………………………….56 B.1.7 Dokončení instalace Java SDK ..………………………………………………56 B.1.8 Úvod instalace Apache Tomcat ...…………………………………………......57 B.1.9 Potvrzení licenčních podmínek instalace Apache Tomcat ..…………………..57 B.1.10 Výběr typu instalace Apache Tomcat ......……………………………………58 B.1.11 Nastavení umístění instalace Apache Tomcat na disku ......………………….58 B.1.12 Nastavení parametrů uživatelského jména a hesla při instalaci Apeche Tomcat .……………………………………………………………………………………….59 B.1.13 Nastavení cesty k nainstalované Java SDK při instalaci Apeche ...………….59 B.1.14 Dokončení instalace Apeche Tomcat ………………………………………...60 B.1.15 Úvod instalace serveru MySQL ……………………………………………...60 B.1.16 Výběr typu instalace serveru MySQL ………………………………………..61 B.1.17 Shrnutí nastavení při instalaci serveru MySQL …...…………………………61 B.1.18 Stornování licenční registrace produktu při instalaci serveru MySQL ……....62 B.1.19 Dokončení instalace serveru MySQL ………………………………………..62 B.1.20 Úvod konfigurace serveru MySQL …………………………………………..63 B.1.21 Volba konfigurace serveru MySQL ………………………………………….63 B.1.22 Typ konfigurace serveru MySQL ……………………………………………64 B.1.23: Volba typu počítače pro chod serveru MySQL ……………………………..64 B.1.24: Volba typu databází na serveru MySQL ………………………………….…65 B.1.25 Výběr umístění databází serveru MySQL …………………………………....65 B.1.26 Výběr typu připojování k serveru MySQL …………………………………..66 B.1.27 Výběr portu připojení k serveru MySQL …………………………………….66 B.1.28 Výběr znakové sady serveru MySQL ………………………………………..67
xiv
B.1.29 Nastavení příkazové řádky serveru MySQL ……………………………….67 B.1.30 Nastavení uživatelského jména a hesla serveru MySQL …………………..68 B.1.31 Potvrzení konfigurace serveru MySQL ………………………………........68 B.1.32 Dokončení konfigurace serveru MySQL …………………………………..69 B.1.33 Kopírování knihoven javamail api do adresáře serveru ……………….......70 B.1.34 Spuštění skriptu pro vytvoření databáze na serveru MySQL ……………...71 B.1.35 Přejmenování archivu balíčku aplikace ……………………………………72 B.1.36 Otevření přejmenovaného archivy balíčku aplikace ………………............72 B.1.37 Upravení zdrojového souboru s konfiguračními daty ……………………..73 B.1.38 Úvodní stránka aplikačního serveru Apache Tomcat ………………..........74 B.1.39 Navigační menu na serveru Apache Tomcat ………………………………75 B.1.40 Přihlašovací formulář serveru Apache Tomcat …………………………….75 B.1.41 Formulář pro nahrání aplikačního balíčku na server ………………………75 B.1.42 Úvodní stránka aplikace běžící na serveru …………………………………76
xv
Seznam tabulek 3.1.1 Záhlaví tabulky investičních záměrů s názvy požadovaných sloupů ...……..……6 3.1.2 Záhlaví tabulky veřejných zakázek s názvy požadovaných sloupů …………...….6 3.7.1 Rozpočet odhadem MS Project ............................................................................19 5.1.1 Tabulka rizik ………………………………………………………….………...28 5.2.1 Harmonogram obecného testování ……………………………………………..30 5.3.1 Výsledky testování a opravy chyb……………………………………………....32 5.3.1 Akceptační test ………………………………………………………………....34 B.1.1 Formát souborů databáze MyIsam ……………………………………………78
xvii
1 Úvod Motivací práce byl původně externí zadavatel(společnost Trgiman s.r.o.). Po rozvázání pracovního poměru však došlo k realizaci práce v rámci bakalářské práce. Aplikace je vytvořena jako nástroj pro zveřejňování investičních záměrů a veřejných zakázek městského úřadu. Je rozdělena do dvou oblastí. První oblast představuje přístupnou část běžnému uživateli jako je návštěvník serveru a druhou částí je oblast k administraci aplikace. Ve veřejné části je uživateli přístupná část s vystavenými dokumenty a má možnost tyto dokumenty procházet, vyhledávat a případně se k některým registrovat jako zájemce. Administrátor má k dispozici rozsáhlou sekci pro správu dokumentů. V této sekci nejen že manipuluje s dokumenty, ale reaguje na registraci veřejných uživatelů k jednotlivým dokumentům, což ze opět projevuje ve veřejné části aplikace.
1
2 Cíl bakalářské práce Cílem bakalářské práce je provést kompletní analýzu vytvářeného software metodami softwarového inženýrství[1] a následně na základě analýzy implementovat aplikaci. Výslednou implementaci otestovat a vytvořit návod na instalaci aplikace, uživatelskou příručku a návod na zálohování a obnovení databáze.
3
3 Analýza metodami SI 3.1 Odborný článek Koncepce pro zveřejňování významných informací (veřejné zakázky hl. m. Prahy) včetně organizací městem zřízených
Vzhledem k faktu, že veřejná správa je především službou občanům, je třeba chápat i poskytování a předávání informací veřejnosti jako jeden ze základních typů služeb, který, má-li být kvalitní, musí se řídit principy aktuálnosti, pravdivosti, srozumitelnosti poskytovaných informací a zároveň musí respektovat potřeby, možnosti a zvyklosti příjemce. Stav Dne 1.5.2004 nabyl účinnosti zákon č. 40/2004 Sb., o veřejných zakázkách. V této souvislosti bylo hl. m. Praha několikrát napadeno, naposledy při vyhodnocení soutěže Otevřeno x Zavřeno (Otevřená společnost, o.p.s., 29.9.2005), že nedostatečně informuje veřejnost při vyhlašování veřejných zakázek, přestože všechny jsou pravidelně zveřejňovány na našem webu pod heslem Radnice! Úřední deska/Veřejné zakázky. Pravdou je, že zveřejnění je jen pasivní a neumožňuje veřejnosti (zejména podnikatelům) používat službu, kterou již některá města aplikují na svých internetových stránkách (např. Brno, které také bylo ve shora zmíněné soutěži vyhodnoceno jako nejlepší ). Cíl Hlavním záměrem při tvorbě informační koncepce o zveřejňování veřejných zakázek na pražském webu je transparentnost veřejné správy - volný a rovný přístup k informacím o činnosti orgánů veřejné správy s důrazem na jejich dostupnost a tím i vyloučení případné korupce. Zároveň usnadňuje kontrolu veřejných zakázek a hospodaření s veřejným rozpočtem za využití Standardu ISVS 1 [9] pro zveřejňování vybraných informací o veřejné správě způsobem umožňujícím dálkový přístup.
Řešení V souvislosti s projektem e-government 2 a v zájmu principů rovné příležitosti zájemců o dodávky majetku a služeb, jejich nediskriminaci a vytvoření podmínek veřejné kontroly nad realizací jednotlivých obchodních případů, navrhuji vytvoření nové rubriky magistrátního webu s názvem „Veřejné zakázky". Tato aplikace zároveň umožní našemu úřadu rychlé získávání nabídek na realizaci projektů, operativní rozhodování o výběru nejvhodnější nabídky a zároveň umožní co nejširšímu okruhu uchazečů se o tyto zakázky ucházet.
1
Zákon č. 365/2000 Sb., o informačních systémech veřejné správy, ve znění zákona č. 517/2002 Sb. klade na bedra orgánů veřejné správy nejednu povinnost ve vztahu k budování a správě informačního systému. 2 E-government je projekt elektronické podpory vládních organizacích, organizací a úřadů.
5
Kapitola 3 Analýza metodami SI Pomocí navrhované aplikace bude také umožněno podnikatelům zaregistrovat se jako potencionální uchazeč tak, aby mu byly jednotlivě vyhlašované zakázky automaticky doručovány na jím dodanou e-mailovou adresu. Tím se zmenšuje i nebezpečí oslovení jen úzkého okruhu firem. S důrazem na respektování zvyklosti příjemce při vyhledávání informací tohoto typu na našich webových stránkách by byl odkaz na tyto aplikace umístěn v levé liště hlavní stránky pod oblastí Radnice. Odkaz by se jmenoval Veřejně zakázky a po jeho rozbalení by se zobrazily odkazy na aplikace veřejných zakázek a investičních záměrů, které by byly doplněny anotačním textem, ve kterém by byl shrnut přínos a popis této aplikace uživatelům. Dalším možným řešením by bylo umístit odkaz na aplikace formou malého banneru, které již na naší hlavní stránce odkazují na rubriky On line podání, Bezpečná Praha aj. Investiční záměry Po kliknutí na odkaz Investiční záměry by se zobrazila tabulka s plánovanými investičními záměry hl. m. Prahy. Tu by tvořily kritéria: číslo, datum vyhlášení, předmět investičního záměru a lokalita. Tabulku (víz níže) by bylo možné i podle těchto kritérií třídit vzestupně či sestupně. číslo datum vyhlášení předmět IZ lokalita xxx xxx xxx aooc Tabulka 3.1.1: Záhlaví tabulky investičních záměrů s názvy požadovaných sloupů Po otevřeni konkrétního záměru by se zobrazil, kromě podrobnějších informací o záměru (zadavatel, doba realizace, aj.) i on-line formulář 3 , přes který by se mohly jednotlivé podnikatelské subjekty možnost nahlásit jako zájemci o realizaci. Po vyplnění všech jeho nezbytných náležitostí a následném odeslání by se údaje o přihlášeném subjektu načetly do evidence, kterou by spravoval příslušný odbor MHMP 4 . Veřejné zakázky Po kliknutí na odkazu Veřejné zakázky by se zobrazila tabulka s přehledem zakázek, které již město realizovalo. Tu by tvořila kritéria: číslo, datum, předmět zakázky a zadavatel. Tabulku (viz níže) by bylo možné i podle těchto kritérií třídit vzestupně či sestupně. Číslo datum předmět zakázky zadavatel xxx xxx xxx xxx Tabulka 3.1.2: Záhlaví tabulky veřejných zakázek s názvy požadovaných sloupů Po otevření konkrétní zakázky by se zobrazily informace o podmínkách vyhlášení, přihlášených zájemcích (vč. pořadí ve výběrovém řízení) aj.
3 4
Online-formulář je elektronická podoba formuláře MHMP je zkratka magistrátu Hlavního města Prahy
6
3.1 Odborný článek
Podpora Obě aplikace by obsahovaly vyhledávač podle předem předdefinovaných náležitostí: • číslo záměru, • předmětu/obor činnosti, • lokalita, • termín od-do, • způsob zadání, • vyhlašovatele. Dále by také obsahovaly odkaz (e-mailová adresa, popř. telefonní linka) na pracovníka MHMP, který by k aplikacím podal bližší informace v situaci, kdyby si s jejím použitím klient nevěděl rady. Zveřejnění formou takto přehledných aplikací zmenšují nebezpečí oslovení jen úzkého okruhu firem. Aplikace usnadňuji kontrolu veřejných zakázek a hospodaření s veřejným rozpočtem. Spolu s popsanými aplikacemi navrhujeme zřídit další službu podnikatelům, o kterou mají dle ohlasů velkým zájem. Jednalo by se o avizování „novinek" (investiční zakázky a vyhlášené veřejné zakázky) přes kanál RSS 5 [8], který by příjemci ohlásil každou novou investiční či veřejnou zakázku uveřejněnou na webových stránkách. Administrační část Po kliknutí na odkaz administrační části aplikace by se objevil formulář pro přihlášení. Po zadání vstupních dat by se přistoupilo do vlastního administračního modulu. V tomto modulu by měl administrátor, pracovník úřadu, prostředky k vystavení nového investičního záměru v podobě on-line formuláře. Ten by se odeslal do evidence a byl vystaven pro veřejnost. Na základě vystavení veřejnosti a registrace potenciálních zájemců by administrátor v této sekci mohl také vystavit veřejnou zakázku pomocí on-line formuláře. Měl by k dispozici vždy investiční záměr a k němu seznam registrovaných zájemců. Ze seznamu zájemců by podporou systému vybral ty, které blíže obeslal, ty, kteří na obeslání kladně reagovali. Z nich by pak určil jednoho výherce výběrového řízení a odeslal takto vybavený investiční záměr jako veřejnou zakázku do evidence. Ta by opět byla k dispozici veřejnosti i se seznamem všech zúčastněných podnikatelů. Administrátor by měl možnost také stornovat veškeré dokumenty. Veškeré informace o vystavených dokumentech by se odesílaly na registrované uživatelské emaily v evidenci a vystavily by se na informační kanál RSS. 5
RSS (RDF Site Summary)je velmi jednoduchý formát pro čtení zpráv a článků z různých zpravodajských i jiných serverů, které se snaží svým čtenářům zprostředkovat různé užitečné i různě užitečné informace. Principem RSS kanálů je čtení pouze aktuálních článků, bez nutnosti navštěvovat hlavní a ostatní stránky serverů. Seznam článků se zobrazí přímo ve čtečce RSS a poté má čtenář právo volby, zda načte konkrétní článek se serveru nebo zda článek číst nechce.
7
Kapitola 3 Analýza metodami SI Přílohy:
Obrázek 3.1.1: Příklad systému pro zveřejňování investičních záměrů města Plzeň zobrazení okna Investiční záměry na webových stránkách města Plzeň
Obrázek 3.1.2: Příklad systému pro zveřejňování veřejných zakázek města Plzeň zobrazení okna Veřejné zakázky na webových stránkách města Plzeň
Obrázek 3.1.3: Příklad systému pro zveřejňování veřejných zakázek města Brno zobrazení okna Veřejné zakázky na webových stránkách města Brno
8
3.2 Katalog požadavků
3.2 Katalog požadavků 1. Systém pro zveřejňování významných informací slouží pro přístup k činnosti orgánů veřejné správy. a. Systém obsahuje sekci investiční záměrů pro zveřejnění zamýšlených projektů a on-line registraci 6 potencionálních zájemců. b. Systém obsahuje sekci veřejných zakázek pro zveřejnění realizovaných projektů včetně veškerých informací o zúčastněných podnikatelích výběrového řízení a detailech. c. Systém obsahuje administrační sekci pro správu všech dokumentů. V této části aplikace administrátor, pracovník úřadu, vystavuje a případně i stornuje veškeré dokumenty. d. Obsahuje sekci pro získání novinek při vystavení nových dokumentů i. Návod jak připojit čtečku RSS kanálu 7 ii. Návod jak registrovat email pro zasílání novinek 2. Sekce investičních záměrů a. Obsahuje přehled veškerých investičních záměrů s možností setřídění záměrů podle jednotlivých kritérií b. Obsahuje formulář pro on-line registraci potencionálních zájemců 3. Sekce veřejných zakázek a. Obsahuje přehled veškerých provedených veřejných zakázek včetně detailů o zakázce a přehledu všech zúčastněných b. Přehled zúčastněných představuje výpis v podobě seznamu všech registrovaných zájemců, zájemců, kteří projevili zájem i po obeslání úřadem, a jednoho výherce výběrového řízení 4. Administrační sekce a. Obsahuje zabezpečený přístup pouze pro povolaného pracovníka úřadu b. Umožňuje manipulaci s dokumenty (vystavování nových, stornování již vystavených
6
Online-registrace je zastoupena online-formulářem připraveným pro vyplnění uživatelem Webové čtečky RSS jsou specializované webové stránky nebo servery, pomocích kterých můžete pročítat články a zprávy z různých RSS zdrojů, které jsou tříděny podle typu zpráv nebo serveru. Většina webových čteček RSS nabízí již personifikaci. Pomocí personifikace vyberete pouze ty zdroje nebo obory zpráv, které jsou pro Vás atraktivní.
7
9
Kapitola 3 Analýza metodami SI
3.3 Deklarace záměrů Systém pro zveřejňování významných informací slouží jako volný a rovný přístup k informacím o činnosti orgánů veřejné správy. Tato rubrika obsahuje sekce investiční záměry a veřejné zakázky. Sekce umožňují úřadu rychlé získání nabídek na realizaci projektů, operativní rozhodování a výběr nejvhodnější nabídky. Sekce investiční záměry obsahuje tabulkový výpis všech plánovaných investičních záměrů. Výpis lze třídit sestupně/vzestupně podle kritérií: číslo záměru, datum vyhlášení, předmět, lokalita. Po otevření konkrétního záměru se zobrazí detail s podrobnějšími informacemi a on-line formulář přes který se může podnikatel registrovat jako zájemce o realizaci záměru. Tyto informace jsou odeslány do evidence, kterou zpracuje příslušný obor. Sekce veřejné zakázky obsahuje tabulkový přehled všech zakázek, které město realizovalo. Ten tvoří kriteria: číslo zakázky, datum, předmět, zadavatel, podle nichž zle opět výpis třídit vzestupně/sestupně. Obě sekce obsahují podporu ve formě vyhledávače. Vyhledávání se provádí na základě předdefinovaných náležitostí: číslo záměru/zakázky, obor činnosti, lokalita, termín od-do, vyhlašovatel. Požadavkem na systém je zasílaní novinek na podnikatelem registrovanou emailovou adresu v evidenci při jakémkoliv vystavení i stornování dokumentu. Požadavek je i vytvořit informační kanál RSS pro bezprostřední vystavení novinek pro veřejnost. Systém také obsahuje administrační modul pro zveřejňování jednotlivých dokumentů. Modul spravuje pracovník úřadu a v první řadě podporuje vystavení zamýšleného investičního záměrů. Na základě tohoto vyhlášení a registrace potenciálních zájemců pak lze v modulu vystavit veřejnou zakázku. Administrační část umožňuji i stornování veškerých dokumentů. Veškeré informace o provedených činnostech jsou automaticky rozesílány na registrované emaily podnikatelů a vystaveny na informační kanál RSS.
10
3.4 Seznam aktérů a událostí
3.4 Seznam aktérů a událostí Aktéři Podnikatel prohledávající informace – Běžný uživatel prohlížející si vystavené investiční záměry a veřejné zakázky. Podnikatel angažující se v konkrétním záměru – Uživatel v roli podnikatele, který se registruje jako potenciální zájemce o realizaci nějakého vystaveného investičního záměru s danými podmínkami. Administrátor – Informovaný a znalý pracovník úřadu, který má vysoký stupeň oprávnění a v pověření úřadu vystavuje plánované investiční záměry s danými pravidly a podmínkami, na základě registrace u jednotlivých investičních záměrů obesílá potencionální zájemce o realizaci, bez podpory systému, a na základě reakce jednotlivých adresátů poté vystavuje veřejnou zakázku, ve které zohledňuje rozhodnuti úřadu o výherci výběrového řízení. Administrátor může také stornovat jakýkoliv vystavený dokument s nutností udání důvodu. Události Registrace emailu – Podnikatel který má zájem o oslovení při každém vystavení nového dokumentu a provedení změny stávajících dokumentů s určitým důvodem, stornování dokumentu, zaregistruje svoji emailovou adresu do evidence systému. Prohlížení investičních záměrů – Běžný uživatel vstoupí do sekce investičních záměrů a prohlíží si výpis všech vystavených záměrů s možností třídění podle kritérií výpisu vzestupně/sestupně. Nahlášení jako zájemce o realizaci – Uživatel v roli podnikatele se zájmem o realizaci určitého investičního záměru za definovaných podmínek vyplní on-line formulář 8 a odešle informace do evidence. Prohlížení veřejných zakázek – Běžný uživatel vstoupí do sekce veřejných zakázek a prohlíží si výpis všech vystavených zakázek s možností třídění podle kritérií výpisu vzestupně/sestupně. Vyhledávání - Běžný uživatel vyhledává v systému vystavené dokumenty, v sekci vyhledávání, podle definovaných kritérii filtru 9 vyhledávače. Výsledek hledání lze opět setřídit podle kritérií výpisu vzestupně/sestupně. Vystavení investičního záměru – Informovaný a znalý pracovník úřadu v roli administrátora systému vstoupí do administrační sekce systému a vyplní on-line formulář investičního záměru, který odešle do evidence a který se vystaví pro veřejnost.
8 9
Online-formulář je elektronická podoba formuláře. Filtr vyhledávače představuje souhrn kritérii, podle kterých se bude provádět vyhledávání.
11
Kapitola 3 Analýza metodami SI Vystavení veřejné zakázky - Informovaný a znalý pracovník úřadu v roli administrátora systému vstoupí do administrační sekce systému a vystaví veřejnou zakázku na základě dosud registrovaných a obeslaných podnikatelů, ze kterých je vybrán jeden výherce výběrového řízení. Takto definovaný formulář je odeslán do evidence a vystaven pro veřejnost. Stornování investičního záměru - Informovaný a znalý pracovník úřadu v roli administrátora systému vstoupí do administrační sekce systému a stornuje investiční záměr s požadavkem vyplnění důvodu stornování dokumentu pro vystavení novinky na informační kanál 10 systémem. Stornovat lze pouze investiční záměr, u kterého není vystavena veřejná zakázka, pokud je zakázka již vestavena, musí být nejprve stornována, jinak nelze investiční záměr zrušit! Stornování veřejné zakázky - Informovaný a znalý pracovník úřadu v roli administrátora systému vstoupí do administrační sekce systému a stornuje veřejnou zakázku s požadavkem vyplnění důvodu stornování dokumentu pro vystavení novinky na informační kanál systémem. Odeslání novinky na registrované emailové adresy – Systém automaticky po provedení změny administrátorem, vystaveni nebo stornování dokumentu, rozešle zprávu na podnikateli registrované emailové adresy v evidenci. Email obsahuje hlavičku úřadu a titulek dokumentu, kterého se informace týká. V případě stornování dokumentu obsahuje zpráva i důvod zrušení. Vystavení novinky na informační kanál RSS – Systém automaticky po provedení změny administrátorem realizuje tyto změny i v informačním kanálu RSS.
10
Informační kanál systému představuje kanál RSS a rozesílání informací na registrované emaily uživatelů.
12
3.5 Datový slovník
3.5 Datový slovník Formulář zájemce o Investiční záměr Název organizace: Název organizace projevující zájem o provedení investičního záměru nazevorganizace = {retezec}80 IČO: IČO organizace projevující zájem o provedení investičního záměru ico = ico Ulice(a číslo): Ulice ulice = ulice+cp Město: Město mesto = mesto PSČ: Poštovní směrovací číslo psc = psc E-mail: Email (komunikace s jednatelem společnosti) email = {retezec}[@]{reteze}[.cz] Kontaktní osoba: Jméno osoby (jednatele společnosti) kontaktniosoba = {retezec}80 Telefon: Kontaktní telefon telefon = [+420]{cislice}9 Registrace emailu Vložte email pro zasílání novinek: Email registrovaný organizací pro zasílání novinek regemail = {retezec}[@]{reteze}[.cz] Formulář pro vyhledávání dokumentů Číslo záměru/zakázky: Číslo evidence investičních dokumentů cisloinvzameru = {cislice}10 Od data: Termín vyhlášení zakázky datumvyhlaseni = datum Předmět: Předmět investičního záměru predmet = {retezec}80 Lokalita: Lokalita realizace investičního záměru lokalita = {retezec}80 13
Kapitola 3 Analýza metodami SI Druh: Druh investičního záměru druh = {retezec}80 IČO zadavatele: IČO zadavatele, vystavovatele, investičního záměru icozadavatele = ico Doba realizace: Od Termín zahájení realizace veřejné zakázky dobarealizaceod = datum do Termín ukončení realizace veřejné zakázky dobarealizacedo = datum Okruh: Tématický okruh investičního záměru okruh = {retezec}80
Formulář pro vkládání Investičního záměru Číslo inv. záměru: Číslo evidence dokumentů cislo = {cislice}10 Datum: Datum vyhlášení zakázky datumvyhlaseni = datum Předmět: Předmět investičního záměru predmet = {retezec}80 Lokalita: Lokalita realizace investičního záměru lokalita = {retezec}80 Zadavatel(IČO): IČO zadavatele, vystavovatele, investičního záměru icozadavatele = ico Druh: Druh investičního záměru druh = {retezec}80
14
3.5 Datový slovník Doba realizace: Od Termín zahájení realizace veřejné zakázky dobarealizaceod = datum do Termín ukončení realizace veřejné zakázky dobarealizacedo = datum Datum zveřejnění: Datum zveřejnění investičního záměru datumzverejneni = datum Okruh: Tématický okruh investičního záměru okruh = {retezec}80 Login Už. jméno: Unikátní jméno pro přihlášení do systému uz_jmeno = {retezecsezn} Heslo: Unikátní heslo pro přihlášení do systému uz_heslo = {retezecsezn}
Definice pojmů v datovém slovníku cislice = [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ] pismeno_male = [ a | á | b | ... | ý | z | ž ] pismeno_velke = [ A | Á | B | ... | Ý | Z | Ž ] epismeno_male = [ a | b | ... | y | z ] epismeno_velke = [ A | B | ... | Y | Z ] ico_pismena = [cz| ] mezera = [ ' ' ] pismeno = [ pismeno_male | pismeno_velke ] litery = [ pismeno | mezera ] znaky = [ ` | ~ | @ | # | $ | % | ^ | & | \* | \( | \) | \[ | \] | \+ | \= | - | _ | < | > | " | ' | / | \\ | ] retezecsezn = { znaky | litery | cislice } retezec = { litery | cislice }
15
Kapitola 3 Analýza metodami SI den = [ 1 | 2 | ... | 31 ] mesic = [ 1 | 2 | ... | 12 ] rok = [ 1 | 2 ] + 3{cislice}3 datum = den + . + mesic + . + rok mesto= {retezec}25 ulice={retezec}25 cp={cislice} psc={cislice}5 ico=ico_pismena{cislice}8
16
3.6 Požadavky hardware a software
3.6 Požadavky hardware a software Hardware Fujitsu Siemens PRIMERGY RX200S2 RAID procesor Intel. Xeon. 3,00GHz 1 GB DDR-RAM CD RW/DVD-ROM, disketová mechanika RAID 0, 1 2x 73 GB HDD SCSI dual Gb LAN Software Operační systém MS Windows XP Professional http://www.microsoft.cz/ Aplikační server Apache Tomcat 5.x http://tomcat.apache.org/ Databázový server MySQL Server 5 http://www.mysql.com/products/
17
Kapitola 3 Analýza metodami SI
3.7 Rozpočet projektu Odhad metodou COCOMO 11 Ke kalkulaci byl použit Little COCOMO calculator http://sunset.usc.edu/research/COCOMOII/cocomo81_pgm/cocomo81.html Vstupní data Product Size Odhad počtu řádek: 10.000 Software development mode:Semi-Detached* Product Attributes Required Reliability: extraHigh Database Size: Normal Product Complexity: Normal Computer Attributes Execution Time Constraint: Normal Main Storage Constraint: Normal Virtual Machine Volatility: Normal Computer Turnaround Time: Normal Personnel Attributes Analyst Capability: Low Applications Experience: High Programmer Capability: Normal Virtual Machine Experience: Normal Programming Language Experience: Normal Project Attributes Modern Programming Practices: High Use of Software Tools: Normal Required Development Schedule: Normal Výstup Effort: 54.56 Person Months Schedule: 10,14 Months Při realizaci jedním samostatným pracovníkem (průměrný plat činí 35000,-) vychází cena realizace projektu na 10,14 * 35.000 = 354.900,-
11
COCOMO(COnstructive COst MOdel) je metoda odhadu rozpočtu na základě předpokládaných hodnot, v našem případě je předpokládaná hodnota počet řádků kódu.
18
3.7 Rozpočet projektu
Odhad MS Project 1 analytik 1 programátor návrh trvá 2,5 měsíce implementace 6 měsíců zkušební provoz 1 měsíc plat analytika 40.000 Kč plat programátora 35.000 Kč měsíční fixní náklady 8.000 Kč Akce Úvodní studie Analytická studie Návr GUI Implementace Testovani CELKEM:
Čas 1 měsíc 1 měsíc 0,5 měsíce 6 měsíců 1 měsíc
Cena
35.000 + 40.000 + 8000 = 83.000 Kč 35.000 + 40.000 + 8000 = 83.000 Kč (35.000 + 40.000 + 8.000) x 0,5 = 41.500 Kč (35.000 + 8.000) x 6 = 258.000 Kč 30.000 + 8.000 = 38.000 Kč 503.500 Kč Tabulka 3.7.1: Rozpočet odhadem MS Project
Doba realizace celého projektu 1+1+0,5+6+1=9,5 měsíce. Fixní náklady na hardware a software Hardware Fujitsu Siemens PRIMERGY RX200S2 RAID
55.930,-
Software OS Microsoft Windows XP Professional Apache Tomcat 5.5 MySQL Server 5
10.151,- ,- ,-
19
4 Implementace 4.1 Programovací jazyk Java Programovací jazyk Java[10] byl vyvinut společností Sun Microsystem a poprvé byl představen v roce 1995. Jazyk Java je rozdělen obecně do tří základních oblastí Java Micro Edotion, pro vývoj aplikací mobilních zařízení, telefonu a embedded 12 zařízení, Java Standart Edition, pro vývoj standardních uživatelských aplikací s výbornou podporou grafického rozhranní a Java Enterprise Edition převážně pro vývoj rozsáhlejších aplikací a aplikací určených pro webové rozhranní.
Obrázek 4.1.1: Struktura programovacího jazyka Java Obecně je Java velice rychlý objektový programovací jazyk hojně využívaný pro svou podporu grafických uživatelských rozhranní. Java je mladý a stále se vyvíjející nástroj, který s dalším rozvojem modelových řad přináší stále další a efektivnější změny a přibližuje se velice rychle ke starším a zaběhlejším programovacím jazykům jako je například jazyk C++. Asi za největší pokrok ve vývoji jazyka Java přinesla jeho nová verze Java 5, označená jako Java Tiger[11], někdy též označovaná jako verze 1.5, ačkoliv jde o tu samou verzi. Tato verze přinesla několik novinek jako jsou například generické typy. Generické typy jsou poměrně značná inovace a jejich hlavním posláním je lepší zajištění typové kontroly již při překladu. To se týká zejména práce s Collection13 , které až dosud mohly obsahovat pouze obecný typ Object. Ten je v Javě předkem každého typu takže do takové Collection lze (jako Object) vložit cokoliv a také (opět jako Object) získat zpět. Další neméně důležitá inovace, kterou verze přinesla, je proměnná dálka argumentů funkcí, takzvaně „varargs“. Touto novinkou se Java značně přiblížila jazyku C/C++. Auto (un)boxing primitivních typů je další z novinek. Přítomnost primitivních typů v jinak objektové Javě vede k potřebě jejich objektových reprezentací. Těmi jsou například pro datový typ int třída Integer, pro boolean třída Boolean atd. Pro různé operace s nimi jsou někdy potřeba jejich primitivní formy a jindy (například pro vkládání do Collections) zase objektové reprezentace. To vede k častému explicitnímu přetypovávání. Tomu se snaží v Javě 5.0 vyhnout pomocí mechanismu auto boxingu resp. unboxingu primitivních typů. Vylepšený cyklus For, k procházení Collections resp. polí bylo nutné využívat cyklus a objekt typu Iterator(u polí ne) případně cyklus s indexní proměnnou. Java 5.0 přichází s vylepšeným For cyklem známým z jiných jazyků pod jménem Foreach. Syntaxe je následující 12
Embedded zařízení jsou vestavěná zařízení nejrůznějších spotřebičů nebo strojů. Collection představuje třída Java collection library, což je sada interfaců a tříd poskytujících dynamická pole, hašovací tabulky, stromy, a další (součást balíku java.util). 13
21
Kapitola 4 Implementace for (type var: array) kde array je pole nebo Collection, var je proměnná, do které budou ukládány jednotlivé hodnoty z array a type její typ. Při programování je často potřeba mít možnost volby z několika diskrétních hodnot z nějakého předem daného výčtu. Často se pro takové úlohy v Javě používají statické int konstanty. Jejich nevýhodou však je, že se ve skutečnosti jedná pouze o pojmenované int a tedy je možné místo nich dosadit libovolný jiný int (např. jaro=1, leto=2 ... co je potom 5?), je možné je sčítat (jaro+podzim=4=zima), což většinou nedává smysl. Naproti tomu výčtové typy jsou specifickým druhem objektu s předkem java.lang.Enum, implementují rozhraní Serializable 14 a Comparable 15 . Nejsou tedy jenom konstantou, ale překladačem je vytvořena zcela nová třída. To tedy znamená, že je možné v nich vytvářet i vlastní metody a atributy a že je lze používat stejně jako ostatní běžné třídy (např. v Collections). Protože jsou ale hodnoty výčtového typu specifickými druhy konstant, lze je také používat v přepínači switch. Pro implementaci bakalářské práce jsem si vybral programovací jazyk Java jednak kvůli znalosti tohoto jazyka a značnou zkušenost s implementací v něm, a také pro jednoduchost a výbornou podporu potřebných požadavků na vývoj aplikace a přínos novinek z poslední verze.
4.2 Výběr vývojového prostředí Vývojové prostředí NetBeans[12] je volně šiřitelné open-source vývojové prostředí kompletně vyvíjeno v jazyku Java a plně podporováno společností Sun Microsystem. Vývojové prostředí je multiplatformní, to znamená, že běží na operačních systémech jako je Windows, Solária, Linux a dokonce MacOS. Prostředí Netbeans podporuje celou řadu dalších plug-in 16 modulů vyvíjených pro další rozšíření tohoto prostředí a každý i sebenáročnější uživatel si tímto způsobem může prostředí upravit podle svých potřeb a nároků. Vývojové prostředí Netbeans obsahuje výborný nástroj pro tvorbu grafického rozhranní aplikací, takzvaný Swing GUI 17 Builder. Tento nástroj umožňuje, jakožto celý jazyk Java, velice rychlý vývoj grafických aplikací. Jednoduchou metodou chytni a táhni, neboli drag&drop, umožňuje snadné sestavení grafického vzhledu aplikace z velkého množství jednotlivých komponent, které prostředí obsahuje. Prostředí umožňuje snadný vývoj webových aplikací, takzvaný Web Application Development. Umožňuje velice rychle vytvořit například dynamické webové stránky, takzvané JSP stránky nebo JSF stránky, a v nich snadno manipulovat například s daty získanými z databáze, vkládat do stránek jednoduše a rychle další struktury pro rychlou tvorbu jako je například JSTag, JavaServerPages, Standard Tag Library. Prostředí podporuje veškeré novinky jazyka Java 5 pro vývoj Enterprise aplikací. Nástroje jako je BluePrints pro přístup k databázím, Enterprise Java Beans, JAX a další technologie verzí Java včetně verze 5. Netbeans podporuje webové služby a aplikační server. Vývojové prostředí podporuje plnou spolupráci s aplikačními servery nejvíce používaných společností jako je Sun 14
Serializací rozumíme transformaci objektu na bitový proud. Tato operace zahrnuje transformaci všech objektů obsažených v dané instanci a dalších informací potřebných pro zpětnou rekonstrukci proudu bytů na původní objekt. Serializace je jednou z klíčových operací pro distribuované aplikace a síťové zpracování vůbec. 15 Comparable je interface umožňující porovnávání objektů, které tento interface implementují. 16 Plu-in je zásuvný modul, který si uživatel může dodatečně doinstalovat do aplikace. 17 Graphic User Interface - je druh komunikace s počítačem mající podobu interaktivních grafických prvků. V dnešní době se nejčastěji skládá z oken zabírajících větší či menší část počítačového monitoru.
22
4.3 Vlastní implementace Application Server, Tomcat, Weblogic9 a JBoss 4, a s nimi pak veškeré technologie J2EE 1.4 a Java EE 5. Netbeans podporuje vývoj rozsáhlých aplikací a nástrojů s nimi spojenými. Podporuje kontrolu verzí vyvíjených aplikačních materiálů, kooperaci jednotlivých vývojářů a vytváření UML dokumentace projektů. Vývojové prostředí Netbeans jsem si vybral, protože jsem s ním velice spokojen a mám značnou praxi v jeho používání. Prostředí má vynikající podporu společnosti Sun a umožňuje celou řadu dalších rozšíření. Největší prioritou pro mne byl i fakt, že prostředí je volně šiřitelný produkt.
4.3 Vlastní implementace 4.3.1 Popis použitých technologií V implementaci aplikace bakalářské práce jsem převážně používal webové technologie programovacího jazyka Java na tvorbu dynamických webových stránek, tedy JSP, Java Server Pages[6], pro vlastní dynamický HTML kód[7] stránek, Servlety[13], pro logiku nad JSP, zpracování dat nad databází a ošetření veškeré dynamiky aplikace. Pro přístup do databáze jsem použil JDBC[4] komponentu jazyka Java, tedy Java Data Base Connection pro přístup, připojení, dotazování a manipulaci s daty nad externí databází[3] a databázovým serverem, konkrétně serverem MySQL5[14]. Dále jsem hojně používal JSTL[15], Java Standard Tag Library, pro vkládání větších celků výpisu pravidelně se opakujícího kódu do dynamicky tvořených stánek. Jazyk XML[16] jsem použil pro vypisování několika informací do vnějších zdrojů pro zpracování jako je RSS čtečka informací nebo jen nastavení důležitých konfiguračních parametrů aplikace. Pro celkovou implementaci aplikace jsem využíval mimo standardní knihovny jazyka, jako je balíček java.util, java.lang, java.sql a mnoho dalších jsem použil i několik explicitních tříd jako je java.mail[17] a java.activation pro posílání emailů aplikací nebo mysql-connector-java-3.1.13 pro připojení aplikace k databázi MySQL.
23
Kapitola 4 Implementace
4.3.2 Popis vlastní implementace Celá aplikace je webová aplikace nasazená na aplikačním serveru[18], který obsluhuje jednotlivé webové klienty, přes které se uživatelé připojují k aplikaci.
Obrázek 4.3.2.1: Struktura aplikačního serveru 1 Server autorizuje jednotlivé uživatele a na základě ověření rozlišuje jednotlivý typy uživatelů a jejich práva. Podle jejich požadavků pak řeší obsluhu jednotlivých dotazů a případně komunikuje s dalšími částmi jako je databázový server.
Obrázek 4.3.2.2: Struktura aplikačního serveru 2 Aplikace je tvořena dvěma hlavními celky. Veřejnou částí, která je přístupná všem uživatelům, a administrační sekcí, která je přístupná jen pověřenému pracovníkovi úřadu a je zabezpečená proti vstupu nepovolaných. Za celou aplikaci pak stojí rozsáhlé jádro aplikace, které manipuluje s daty a dohlíží na správu a chod programu.
24
4.3 Vlastní implementace Webová aplikace se jeví uživatelům jako webové stránky, do kterých se automaticky překládají JSP stránky a Servlety při jejich vyvolání webovým klientem uživatele na straně serveru. Za JSP stránkami však stojí aplikační logika, která je rovněž nasazena na aplikačním serveru a stará se o běh dynamických stránek a ošetřuje veškeré informace získané ze staticky generovaných vyplněných a odeslaných formulářů nebo naopak vytváří různé dynamické stránky z konkrétních Sql dotazů nad databází. Za nejvýznamnější komponentu aplikace považuji třídu DatabaseManager, která spravuje celkový přístup k databázi, což je jádro celé aplikace. Ostatní logika je rovnoměrně rozložena do obsluhy každé z částí, a to jak veřejné tak i administrační sekce, což jsem intuitivně dodržoval při vytváření a pojmenování jednotlivých tříd aplikace, například AdminLogin obsluhuje přihlášení administrátora, VypisVerZakazek zase ošetřuje výpis veřejných zakázek z databáze atd.. Každá sekce se skládá z mnoha celků jako jsou investiční záměry, veřejné zakázky, vyhledávání, vystavování a stornování těchto dokumentů, statistika, rozesílaní informací emailem nebo vystavování na kanál RSS a další. Každá z těchto sekcí je tvořena určitou logikou v podobě Servletů, která se odvolává na třídu ManagerDatabáze, jejíž instanci získá a se kterou pak pracuje. Dalších podobných a důležitých tříd pro obsluhu logiky a nástroje pro obsluhu a správu aplikace je zde cela řada, například FormUtility je třída pro obsluhu dat z formulářů, obsahuje například metody pro kontrolu správnosti dat, tedy validaci vložených dat na straně serveru, a metody pro konverzi vkládaných dat na data příslušná databázi MySQL.
25
Kapitola 4 Implementace
Pro názornost uvádím strukturu aplikace v podobě stromu:
Obrázek 4.3.2.3: Struktura aplikace
26
5 Testování 5.1 Analýza rizik Obecná rizika Rizika velikosti produktu Riziko produktu není příliš vysoké. Několik podobných projektů již existuje, zákazník má jasnou představu co od systému požaduje a dostatečně specifikované zadání. Produkt svým rozsahem patří do kategorie středně rozsáhlých produktů. Rizika obchodního dopadu Produkt je pro zadávající firmu naprosto klíčový, je na něm závislá a tvoří základ obchodního modelu společnosti, bez něj nemůže firma v podstatě fungovat, produkt se bezprostředně dotýká každého zákazníka firmy. Rizika obchodního dopadu jsou tedy značná. Rizika spojená se zákazníkem Firma spolupracuje při průběžné kontrole projektu, dobře ví co chce a riziko je tedy poměrně nízké. Procesní rizika Firmy již v minulosti většinou vyvíjely aplikace podobného rozsahu, mají tedy již ověřené postupy a vhodné nástroje. Využívají poznatků softwarového inženýrství. Pravidelně se kontrolují a revidují požadavky, návrh, kód a provádí se i důkladné testování systému. Veškerá přezkoumání jsou dokumentována, včetně nalezených chyb. Procesní rizika jsou minimální. Technologická rizika Riziko je zanedbatelné, jelikož firmy mají zkušenosti s vývojem podobných projektů a použijí se ověřené a standardní softwarové i hardwarové technologie. Uživatelské rozhraní je standardní. Rizika vývojového prostředí Společnosti mají k dispozici všechny potřebné nástroje pro návrh i implementaci produktu, včetně nástrojů pro řízení softwarového procesu[]. Pracovníci jsou zkušení a proškoleni. Dokumentace je dostupná. V tomto směru nejsou žádná rizika. Rizika spojená s velikostí týmu a jeho zkušeností Schopnosti týmu byly již nesčetněkrát ověřeny v minulosti, tým je stabilní a složen ze zkušených, spokojených a adekvátně ohodnocených pracovníků. V tomto směru se nepředpokládá žádné riziko. Jelikož se využívají široce známé a dostupné technologie, bývá možno v případě potřeby najmout externí výpomoc.
27
Kapitola 5 Testování Dopady rizik Zanedbatelný < Marginální < Kritický < Katastrofický
Tabulka rizik Riziko Fluktuace členů týmu
Kategorie Tým
Pravděpodobnost Dopad 25% Marginální
Nízký odhad složitosti projektu
Velikost projektu
20%
Kritický
Změna požadavků zákazníka
Procesní
15%
Kritický
Nedorozumění Tým nebo váznoucí komunikace mezi členy týmu Chyba HW nebo Technická SW s případnou ztrátou dat
20%
Marginální
5%
Katastrofický
Nedostatečná kvalifikace pracovníků
5%
Kritický
Tým
Řešení Odpovídající ohodnocení, firemní výhody, záložní pracovníci Lepší rozdělení práce, záložní pracovníci, práce přes čas Průběžné předvádění, kvalitní komunikace se zákazníkem Pravidelné porady, dobrá informovanost týmu Využívání systému verzování, pravidelné zálohy, kvalitní HW Výběr kvalitních pracovníků, pravidelná školení
Tabulka 5.1.1: Tabulka rizik Předcházení a řešení krizových situací Aby se zmírnilo riziko fluktuace, je potřeba společně s týmem hledat její příčiny (např. špatné pracovní podmínky, nízký plat, konkurující trh práce), před počátkem projektu ošetřit příčiny, které má manažer pod kontrolou, po začátku předpokládat fluktuaci a připravit postupy k zajištění kontinuity, zajistit komunikaci mezi pracovníky a šíření všech informací o vývoji projektu v rámci týmu, stanovit standardy pro vytváření dokumentace a zabezpečit, aby byla produkována včas a zajistit vzájemné kontroly práce tak, aby více než jedna osoba byla seznámena s každou prací. 28
5.2 Plán řízení jakosti
V případě, že přesto dá některý člen týmu výpověď, máme záložní pracovníky, informace jsou dokumentovány, znalosti rozšířeny v týmu. Navíc, vedoucí projektu se může dočasně zaměřit na úkoly, které jsou dostatečně zajištěny, a poskytnout novým pracovníkům čas na zapracování. Ti, co odcházejí, dostanou za úkol zaškolit nové pracovníky. Aby se zmírnilo riziko nízkého odhadu složitosti projektu, je nutno kvalitně zpracovat projekt, kontrolovat stanovené termíny a harmonogram. V případě neplnění harmonogramu je nutno lépe organizovat a dělit práci, případně přejít k zapojení záložních pracovníků. Aby se zmírnilo riziko změn požadavků zákazníka, je nutno při úvodní studii co nejpřesněji zjistit jeho požadavky, nechat si prokazatelně schválit odborný článek i celou úvodní studii. Jsou nutné pravidelné konzultace se zákazníkem během vývoje.
5.2 Plán řízení jakosti Cíl řízení jakosti Plán řízení jakosti je výsledkem stanovení cílů jakosti a specifikování procesů pro splnění těchto cílů. Jedná se o sledování konkrétních výsledků projektu a posuzování, zda odpovídají standardům a stanoveným požadavkům. Pokud neodpovídají, navrhují se způsoby odstraňování příčin nevyhovujícího plnění. Plán řízení jakosti stanoví harmonogram a způsob provádění auditů a revizí požadavků, návrhu, kódu i testování doposud vytvořených částí systému na různých úrovních. Z hlediska posloupnosti vývoje se dají testy rozdělit na dva typy. Testy specifikací a testy implementací. Testy specifikací chceme zajistit kvalitu specifikace po definiční i vzhledové stránce. Cílem testu akceptačního je popsat způsob testování již implementovaných funkcí. Odpovídajícím způsobem se musí testovat všechny funkce tak, aby ve výsledku aplikace fungovala bez problému tak, jak bylo specifikováno a jen tak může být výsledné řešení přijato. Chyby se mohou vyskytnout v různých fázích vývoje a také jsou různého typu. Je třeba zajistit efektivní zpětnou vazbu do vývoje aplikace.
29
Kapitola 5 Testování Jinými slovy, vytvořený systém musí zákazníkovi spolehlivě sloužit podle jím zadané specifikace, tzn. musí nejen obsahovat dohodnuté funkce a vlastnosti, ale musí být i stabilní, spolehlivý a chovat se korektně. Harmonogram ID A A1 A2 B B1 B2 C C1 C2 D D1 D2 D3
Operace Úvodní studie Zpracování úvodní studie Kontrola úvodní studie Analytická studie Zpracování analytické studie Kontrola analytické studie Implementace Zpracování implementace Kontrola implementace Jednotkové testy Zpracovaní modulu uživatel Kontrola modulu uživatel Zpracovaní modulu administrátor
D4 E E1
Kontrola modulu administrátor 5 dnů Integrace Integrační testy (White box 18 a Black 10 dnů 19 box ) Validační testy Alfa testování 10 dnů Beta testování 8 dnů Systémové testy Testy zotavení 3 dny Testy bezpečnosti 3 dny Zátěžové testy 3 dny Dokumentace Zpracování uživatelské dokumentace 15 dnů Kontrola uživatelské dokumentace 5 dnů Tabulka 5.2.1: Harmonogram obecného testování
F F1 F2 G G1 G2 G3 H H1 H2
18
Doba testování
Závislost
21 dnů 3 dny
A1
11 dnů 3 dny
A B1
140 dnů 5 dnů
C1
4 dny 2 dny 8 dnů
C D1 D1 D3 D E F1 F F F C H1
Při White-box testování stanovujeme data pro testovací případy na základě znalosti vnitřní logiky programu. Cílem je vykonání "všech příkazů" programu tak, aby se zjistily chyby v řídící logice. Tento cíl je spíše cílem teoretickým, v praxi jej nemůžeme nikdy dosáhnout. I relativně malé programy totiž obsahují ohromné množství cest, které by bylo třeba projít. Tento požadavek můžeme tedy snížit na to, abychom provedli každý případ alespoň jednou. 19 Při Black-box testování se na testovaný program díváme jako na černou skříňku a snažíme se zjistit za jakých okolností se chová jinak, než jak je uvedeno ve specifikaci. V ideálním případě bychom měli zjistit jak se program chová pro všechny kombinace vstupních hodnot což je v praxi opět nereálné. Proto z množiny vstupních dat připadajících v úvahu vybereme jen vhodné podmnožiny.
30
5.3 Plán testů
5.3 Plán testů Účel testů Testování je důležitou součástí návrhu projektu. Testování je považováno za destruktivní činnost - odhalování chyb a závad. Vyplatí se nicméně začít testovat co nejdříve, neboť čím déle zůstává chyba neodhalena, tím nákladnější je její odstranění v pozdějších fázích projektu. Stejně jako ostatní zbytek projektu je i testování nutno naplánovat a (včetně výsledků) zdokumentovat. Cílem testování je zajištění kvality v celém průběhu práce na projektu i po jeho skončení. Přehled a rozdělení testů Jednotkové testy Pomocí jednotkových testů ověřujeme jednotlivé fragmenty (moduly) samostatně. Používáme metody white-box[19] testování (kontrola správné funkce všech vnitřních komponent) i black-box[19] testování (kontrola implementace všech funkcí produktu). Integrační testování Postupně integrujeme jednotlivé moduly shora-dolů a po každém přidání modulu je systém znovu otestován. Zároveň hlídáme, zda se přidáním nového modulu nezavlekly nové chyby. Validační testování Následuje po integračním testování. ověřujeme, zda produkt splňuje očekávání zákazníka, která jsou specifikována v zadání projektu. Provádí se alfa i beta testování. Alfa testování provádí zákazník v prostředí dodavatele (pod dohledem vývojového týmu). Beta testování se provádí u zákazníka v provozních podmínkách. Vývojový tým není přítomen, zákazník zapisuje problémy a zasílá je vývojářům. Systémové testování Série testů prověřujících celý systém (HW, SW, DB i uživatele). Nejprve testy zotavení - ověřují, že poruchy byly řádně ošetřeny v předepsaném čase. Pro automatické ošetření se vyhodnocuje reinicializace, mechanismus checkpointů, obnova dat, restart. Dále testy bezpečnosti - testujeme odolnost systému proti útoku zvenčí. Tester se snaží proniknout do systému a snahou je zajistit, aby cena za proniknutí převyšovala cenu útoku. Nakonec provedeme zátěžové testy - test systému extrémní zátěží.
31
Kapitola 5 Testování Výsledky testů Pro každé testování se zaznamená míra a kvalita splnění požadavku. Dále budou zaznamenány kroky, které se provedou k nápravě závažnějších chyb a po nich budou testy zopakovány. Záznamy o výsledcích testů se budou uchovávat v elektronické podobě. Záznam testu bude obsahovat datum, charakteristiku daného testu a stručný přehled získaných výsledků, příp. též zlepšení nebo zhoršení oproti předchozímu testu, dále konstatování kvality testovaného subjektu a příp. doporučení pro nápravy a další testování.
Testoval
Datum nalezení chyby
Předmět chyby
Datum opravení chyby
Způsob opravení
O.Hercl
1.4.2007
Neošetřená posloupnost zadávání dat ve formuláři pro vyhledávání dokumentů
2.4.2007
O.Hercl
13.4.2007
Email vložený do databáze za účelem zasílaní novinek od systému není možné z evidence již nikde odstranit.
27.4.2007
M.Kajnar
1.5.2007
V části pro stornování investičních záměrů administrační sekce pro správu dokumentu chybí stránkování výpisu dokumentů.
2.5.2007
Ve formuláři se opravila posloupnost dat, termín vyhlášení musí být menší než doba realizace a doba realizace Do musí být starší než doba realizace Od. Při opětovném vložení emailu jste dotázáni na odebrání emailu z evidence a dotázáni na heslo, které Vám bylo zasláno při vložení emailu do evidence. Po vložení hesla je email opět odebrán. Stránkování bylo doplněno.
32
5.3 Plán testů O.Hercl
10.5.2007
Ve statistice registrovaných organizací administrační sekce je obsažen sloupec Objem v Kč u každé organizace s hodnotou 0
-
M.Kajnar
10.5.2007
10.5.2007
M.Kajnar
10.5.2007
Nefunkční tlačítko na setřídění sestupného výpisu veřejných zakázek podle kritérii Lokalita Možnost zadání smyslné posloupnosti dat do formuláře pro vystavení nového investičního záměru
O.Hercl
25.5.2007
Překlep v nadpisu formuláře pro stornování Veřejné zakázky
25.5.2007
25.2.2007
Tato funkce není prozatím implementována, počítá se s dalším rozšířením aplikace a nástavbou pro evidenci zadaných zakázek, tato hodnota je pouze přípravou do budoucna. Funkce opravena.
Zadáváni posloupnosti dat opravena. Datum zveřejnění musí být starší dnešního data. Datum vyhlášení musí být starší než datum zveřejnění. Datum realizace Od musí být starší datu vyhlášení a datum realizace Do musí být starší datu realizace Od. Opraveno.
Tabulka 5.3.1: Výsledky testování a opravy chyb
33
Kapitola 5 Testování
5.4 Akceptační test Akceptační test bude proveden na finální verzi produktu, zákazníkem u zákazníka. Potvrzením akceptačního testu přebírá zákazník software. Následující tabulka dává přehled jednotlivých kroků testu. Číslo 1
Název Zobrazení úvodní stránky
Detailní popis Uživatel spustí webový prohlížeč a do adresního řádku zadá adresu aplikace
Předpoklady Funkční připojení k internetu, webový prohlížeč
2
Přihlášení administrátora do zabezpečené sekce Vystavení nového investičního záměru
Uživatel v roli administrátora odkazem administrace otevře stránku pro přihlášení a vyplní vstupní údaje.
Viz 1
3
Uživatel v roli administrátora Viz 1, 2 přihlášeného do zabezpečené sekce zvolí odkaz vložení investičního záměru. Dostane se na stránku s on-line formulářem, který vyplní a odešle do evidence dat. Uživatel zvolí na úvodní stránce Viz 1 Zveřejňování závažných vyhlášek městského úřadu odkaz investiční záměry a otevře stránku s výpisem vystavených investičních záměrů
4
Prohlížení vystavených investičních záměrů
5
Prohlížení detailu vystaveného investičního záměru
Uživatel zvolí na stránce výpisu Viz 1, 4 investičních záměrů kterýkoliv vystavený investiční záměr, jehož detail si chce prohlédnout. Každý vystavený investiční záměr ve výpisu představuje odkaz na vlastní detail záměru.
6
Registrace podnikatele jako potencionální ho zájemce o realizaci
Uživatel si zobrazí stránku detailu investičního záměru o jehož případnou realizaci má zájem. Na stránce detailu vyplní on-line formulář zájemce a odešle data do evidence
34
Viz 1, 4, 5
Správný výsledek Zobrazí se www stránka Zveřejňování závažných vyhlášek městského úřadu Zobrazí se stránka s administračním rozhraním pro správu dokumentů Zobrazí se informační stránka správně vloženého investičního záměru s odkazy na další akce Zobrazí se stránka s výpisem vystavených investičních záměrů. Výpis má hlavičku s názvy sloupců podle kterých lze obsah setřídit vzestupně/sestupně Zobrazí se stránka s výpisem detailu vystaveného investičního záměru a formulářem pro registraci potencionálního zájemce o realizaci Zobrazí se stránka úspěšného odeslání formuláře s odkazy na další akce
5.4 Akceptační test
7
investičního záměru Vystavení nové veřejné zakázky
Uživatel v roli administrátora Viz 1, 2 přihlášeného do zabezpečené sekce zvolí odkaz vystavení veřejné zakázky. Otevře stránku s výpisem všech vystavených investičních záměru a vybere jeden, ke kterému chce vystavit veřejnou zakázku. Po vybrání se otevře stránka s detailem zakázky a výpisem všech registrovaných potencionálních zájemců o realizaci. V seznamu reg. zájemců administrátor určí obeslané zájemce, zájemce, kteří projevili zájem a jednoho výherce výběrového řízení. Takto definovaný formulář odešle do evidence dat. Uživatel zvolí na úvodní stránce Viz 1 Zveřejňování závažných vyhlášek městského úřadu odkaz veřejné zakázky a otevře stránku s výpisem vystavených veřejných zakázek
8
Prohlížení vystavených veřejných zakázek
9
Prohlížení detailu vystavené veřejné zakázky
Uživatel zvolí na stránce výpisu veřejných zakázek kteroukoliv veřejnou zakázku, jejíž detail si chce prohlédnout. Každá vystavená veřejná zakázka ve výpisu představuje odkaz na vlastní detail zakázky.
10
Registrace emailu podnikatelem pro zasílání novinek
Uživatel zvolí na úvodní stránce Viz 1 Zveřejňování závažných vyhlášek městského úřadu odkaz Jak získat novinky zveřejňování významných informací? Otevře stránku s návodem pro získávaní novinek, na které je i odkaz pro registraci emailu pro zasílání novinek. Tento odkaz otevře a na další stránce vloží emailovou adresu do formuláře a odešle do evidence dat.
Viz 1, 8
Zobrazí se stránka úspěšného vystavení veřejné zakázky s odkazy na další akce.
Zobrazí se stránka s výpisem vystavených veřejných zakázek. Výpis má hlavičku s názvy sloupců podle kterých lze obsah setřídit vzestupně/sestupně Zobrazí se stránka s výpisem detailu vystavené veřejné zakázky
Zobrazí se stránka úspěšného zaregistrování emailu pro zasílaní novinek s odkazy na další akce.
35
Kapitola 5 Testování 11
Stornování veřejné zakázky
12
Stornování investičního záměru
36
Uživatel v roli administrátora Viz 1, 2 přihlášeného do zabezpečené sekce zvolí odkaz stornování veřejné zakázky a otevře výpis vystavených veřejných zakázek. V tomto výpisu vybere nejméně jednu veřejnou zakázku, kterou chce stornovat a vyplní důvod stornování. Tento výběr potvrdí a odešle do evidence dat. Uživatel v roli administrátora Viz 1, 2 přihlášeného do zabezpečené sekce zvolí odkaz stornování investičního záměru a otevře výpis vystavených investičních záměrů. V tomto výpisu vybere nejméně jeden investiční záměr, který chce stornovat a vyplní důvod stornování. Tento výběr potvrdí a odešle do evidence dat. Tabulka 5.4.1: Akceptační test
Zobrazí se stránka úspěšného stornování dokumentu s odkazy na další akce.
Zobrazí se stránka úspěšného stornování dokumentu s odkazy na další akce.
6 Závěr Vytyčené cíle práce byly zcela naplněny, výsledkem práce je vytvořená, plně funkční aplikace s kompletní analýzou metodami softwarového inženýrství. Aplikace je kompletní, otestovaná a připravená k nasazení. Součástí práce je i vytvořený návod na instalaci a nasazení aplikace, uživatelská příručka a příručka na zálohování a obnovení databáze. Při vypracování úlohy jsem si zdokonalil programovací metody jazyku Java EE a metody softwarového inženýrství pro vypracování dokumentace projektu, podle které by měl každý projekt vznikat. Zároveň jsem si osvojit myšlenku nejprve o projektu přemýšlet a poté projekt realizovat, do této chvíle jsem vyznával metody extrémního programování, které přestává být u větších projektů značně neefektivní. Dokumentace pro mne tedy v tomto případě byla velice důležitá a napomáhala mi držet se předem vytyčených cílů. Dalším rozšířením aplikace by mohl být modul pro správu realizovaných zakázek ve smyslu evidence hospodaření s penězi úřadu a vedení evidence pro účetnictví, tedy podrobnější a rozsáhlejší systém i s možnou komunikací s externím systémem účetnictví.
37
7 Seznam literatury [1] Karel Richta, Slidy přednášek předmětu X36SIN - Softwarové inženýrství, Katedra počítačů ČVUT FEL, Praha, 2006 [2] Object Management Group, Inc., UML Resource Page, http://www.uml.org/ [3] J. Pokorný, I. Halaška, M. Valenta, Databázové systémy, Katedra počítačů ČVUT FEL, Praha, 2006 [4] Sun Microsystems, Inc., Java Database Connectivity http://java.sun.com/products/jdbc/overview.html [5] Sun Microsystems, Inc., The JavaTMEE 5 Tutorial http://java.sun.com/javaee/5/docs/tutorial/doc [6] Sun Microsystem, Inc., JavaServer Pages Technology http://java.sun.com/products/jsp/ [7] W3C, HTML 4.01 Specification http://www.w3.org/TR/html4 [8] Interval.cz, RSS techonologie
http://interval.cz/clanky/rss-rss/ [9] Isis.cz, Internetové zpravodajství o e-Governmentu http://www.isvs.cz/isvs-teorie/ [10] Sun Microsystems, Inc., The Java Language Specification http://java.sun.com/docs/books/jls/ [11] Sun Microsystems, Inc., JDKTM 5.0 Documentation http://java.sun.com/j2se/1.5.0/docs/ [12] Netbeans, NetBeans Software Framework http://www.netbeans.org/products/ide/ [13] Sun Microsystems, Inc., Java Servlet Technology http://java.sun.com/products/servlet/ [14] MySQL, MySQL5 Reference Manual http://dev.mysql.com/doc/refman/5.1/en/index.html [15] Sun Microsystems, Inc., JavaServer Pages Standard Tag Library http://java.sun.com/products/jsp/jstl/ [16] Sun Microsystems, Inc., Java XML Technology http://java.sun.com/xml/ [17] Sun Microsystems, Inc., JavaMail http://java.sun.com/products/javamail/
[18] Apache Software Foundation, Apache Tomcat application server http://tomcat.apache.org/
[19] Reboot.cz, Metody testování aplikací http://reboot.cz/howto/programovani/testovani-programu/articles.html?id=94 [20] Petr Štěpánek, Tomáš Richta, Jiří Polák, Vojtěch Merunka, Slidy přednášek předmětu X36RSF – Řízení softwarových projektů, Katedra počítačů ČVUT FEL, Praha, 2007
39
A UML diagramy A.1 Usecase diagram systému
Obrázek A.1.1: Usecase diagram systému
41
Dodatek A UML diagramy
A.2 Usecase diagram vyhledávání
Obrázek A.2.1: Usecase diagram vyhledávání
42
A.3 Usecase diagram vystavení investičního záměru
A.3 Usecase diagram vystavení investičního záměru
Obrázek A.3.1: Usecase diagram vystavení investičního záměru
43
Dodatek A UML diagramy
A.4 Usecase diagram investičních záměrů
Obrázek A.4.1: Usecase diagram investičních záměrů
44
A.5 Usecase diagram stornování investičního záměru
A.5 Usecase diagram stornování investičního záměru
Obrázek A.5.1: Usecase diagram stornování investičního záměru
45
Dodatek A UML diagramy
A.6 Usecase diagram vystavení veřejné zakázky
Obrázek A.6.1: Usecase diagram vystavení veřejné zakázky
46
A.3 Usecase diagram vystavení investičního záměru
A.7 Usecase diagram veřejných zakázek
Obrázek A.7.1: Usecase diagram veřejných zakázek
47
Dodatek A UML diagramy
A.8 Usecase diagram stornování veřejné zakázky
Obrázek A.8.1: Usecase diagram stornování veřejné zakázky
48
A.9 Activity diagram systému
A.9 Activity diagram systému
Obrázek A.9.1: Activity diagram systému
49
Dodatek A UML diagramy
A.10 Kontextový diagram
Obrázek A.10.1: Kontextový diagram systému
50
A.11 Datový model
A.11 Datový model
Obrázek A.11.1: Datový model
51
B Pokyny a návody B.1 Návod na instalaci Aplikace je vyvíjena v programovacím jazyce Java 1.5 Enterprise Edition a tedy nezávislá na platformě, návod je však zaměřen na instalaci potřebného software pro operační systém MS Windows XP SP2. Co budeme potřebovat Pro běh aplikace je nezbytné nainstalovat Java SDK, aplikační server, například Apache Tomcat a databázový MySQL server. V době sepsání návodu na instalaci byla k dispozici verze Java SDK 5.02, Apace Tomcat 6.0.10 a MySQL 5.0.37. Všechny softwarové produkty lze zdarma stáhnout na stránkách výrobce, Java SDK na stránkách http://java.sun.com (konkrétně http://java.sun.com/javaee/downloads/index.jsp), aplikační server Apache Tomcat na stránkách http://tomcat.apache.org/ (konkrétně http://tomcat.apache.org/download-60.cgi#6.0.10) a MySQL databázový server na stránkách http://www.mysql.com (konkrétně http://dev.mysql.com/downloads/mysql/5.0.html).
Instalace Java SDK Spustíme instalaci a vybereme standardní typ instalace pro nainstalování základních knihoven jazyka Java.
Obrázek B.1.1: Úvod instalace Java SDK
53
Dodatek B Pokyny a návody
Potvrdíme licenční podmínky
Obrázek B.1.2: Potvrzení licenčních podmínek instalace Java SDK V dalším kroku musíme určit místo na disku, kam se nainstaluje přibalený aplikační server Sun-Java Aplication Server, který je také součástí instalačního balíčku, ale který pro svou složitost k nasazení aplikace nepoužijeme.
Obrázek B.1.3: Nastavení umístění instalace Java SDK na disku
54
B.1 Návod na instalaci
V dalším kroku nastavíme port serveru, administrátorské heslo a jméno pro správu a pokračujeme v instalaci. Tyto předdefinované hodnoty portů serveru neměníme.
Obrázek B.1.4: Nastavení parametrů uživatelského jména, hesla a portu aplikace při instalaci Java SDK Další nastavení instalace neměníme
Obrázek B.1.5: Nastavení parametrů aplikačního serveru SUN při instalaci Java SDK
55
Dodatek B Pokyny a návody
Potvrdíme nastavení instalace a spustíme následné kopírování souboru
Obrázek B.1.6: Shrnutí nastavení při instalaci Java SDK
Obrázek B.1.7: Dokončení instalace Java SDK
56
B.1 Návod na instalaci
Instalace aplikačního serveru Apache Tomcat Spustíme instalaci
Obrázek B.1.8: Úvod instalace Apache Tomcat Potvrdíme licenční podmínky
Obrázek B.1.9: Potvrzení licenčních podmínek instalace Apache Tomcat
57
Dodatek B Pokyny a návody Zvolíme typ instalace „normal“, tedy standardní instalaci s nejčastěji používanými součástmi serveru pro spravování webových aplikací.
Obrázek B.1.10: Výběr typu instalace Apache Tomcat Zvolíme místo na disku, kam se má produkt nainstalovat.
Obrázek B.1.11: Nastavení umístění instalace Apache Tomcat na disku
58
B.1 Návod na instalaci V dalším kroku je důležité nastavení connector portu serveru, administrátorského jména a hesla pro správu. Connector port je port, na kterém bude server spuštěn, implicitně je nastaven na hodnotu 8080. Tento port lze libovolně změnit, doporučuji jej však nechat nastaven na předdefinovanou hodnotu.
Obrázek B.1.12: Nastavení parametrů uživatelského jména a hesla při instalaci Apeche Tomcat V dalším kroku určíme místo na disku, kde je nainstalována Java SDK, vybereme tedy adresář nainstalovaných knihoven Java SDK JRE a pokračujeme v instalaci.
Obrázek B.1.13: Nastavení cesty k nainstalované Java SDK při instalaci Apeche
59
Dodatek B Pokyny a návody
Obrázek B.1.14: Dokončení instalace Apeche Tomcat
Instalace databázového serveru MySQL Spustíme instalaci
Obrázek B.1.15: Úvod instalace serveru MySQL
60
B.1 Návod na instalaci Vybereme „typický“ způsob instalace pro nainstalování nejčastěji používaných součástí databázového serveru MySQL.
Obrázek B.1.16: Výběr typu instalace serveru MySQL
Obrázek B.1.17: Shrnutí nastavení při instalaci serveru MySQL
61
Dodatek B Pokyny a návody Po dokončení kopírování instalačních souborů zvolíme neregistrovat se na stránkách výrobce
Obrázek B.1.18: Stornování licenční registrace produktu při instalaci serveru MySQL
Obrázek B.1.19: Dokončení instalace serveru MySQL
62
B.1 Návod na instalaci Po instalaci se spustí konfigurace serveru
Obrázek B.1.20: Úvod konfigurace serveru MySQL Po vlastním zkopírování souborů dojde na vlastní konfiguraci serveru. Na začátku nastavení zvolíme rekonfiguraci instance a pokračujeme výběrem detailní konfigurace.
Obrázek B.1.21: Volba konfigurace serveru MySQL
63
Dodatek B Pokyny a návody
Obrázek B.1.22: Typ konfigurace serveru MySQL V detailní konfigurace si vybíráme typ počítače, na kterém server poběží ze třech možností, Developer machine, Server machine a Dedicated MySQL server machine, zde vybereme Server machine (pro demonstrativní účely zvolíme Develorep machine, server nebude potřebovat pro svůj chod velké množství operační paměti jako je tomu u realných serverů).
Obrázek B.1.23: Volba typu počítače pro chod serveru MySQL
64
B.1 Návod na instalaci
Dále zvolíme typ databáze jako nejuniverzálnější typ „Multiunctional Databaze“
Obrázek B.1.24: Volba typu databází na serveru MySQL Dále ponecháme výchozí nastavení InnoDB typu databáze
Obrázek B.1.25: Výběr umístění databází serveru MySQL
65
Dodatek B Pokyny a návody
V další části konfigurace zvolíme „transakční“ typ databáze a poté typ připojování k databázi jako „Online Transaction Processing“ pro optimalizaci velkého počet připojujících se uživatelů přes internet k webové aplikaci.
Obrázek B.1.26: Výběr typu připojování k serveru MySQL V dalším nastavení zvolíme port serveru, přednastaven je na číslo portu 3306 a tuto hodnotu nebudeme měnit.
Obrázek B.1.27: Výběr portu připojení k serveru MySQL
66
B.1 Návod na instalaci Nakonec vybereme znakovou sadu databáze „cp1250“ a nastavíme administrátorské jméno a heslo pro správu a spustíme nastavený server.
Obrázek B.1.28: Výběr znakové sady serveru MySQL Výchozí nastavení příkazové řádky MySQL neměníme
Obrázek B.1.29: Nastavení příkazové řádky serveru MySQL
67
Dodatek B Pokyny a návody Dále nastavíme heslo pro přístup do databáze
Obrázek B.1.30: Nastavení uživatelského jména a hesla serveru MySQL Na závěr potvrdíme provedení změn nastavení konfigurace
Obrázek B.1.31: Potvrzení konfigurace serveru MySQL
68
B.1 Návod na instalaci Instalace je úspěšně nakonfigurována
Obrázek B.1.32: Dokončení konfigurace serveru MySQL
69
Dodatek B Pokyny a návody
Nahrání potřebných knihoven do aplikačního serveru V aplikaci je využívání několik externích knihovních souborů, které jsou nezbytné pro její chod. Tyto souboru je nutné nakopírovat do adresářové struktury aplikačního serveru, aby je mohla aplikace, která poběží na serveru, plně využívat. Jedná se o soubory: „mail.jar“ (k volnému stažení na stránkách (http://java.sun.com/products/javamail/downloads/index.html), knihovna Java Mail API 1.4 je využívána pro podporu zasílání e-mailů aplikací, „mysql-connector-java-3.1.13-bin.jar“ (k volnému stažení na stránkách http://dev.mysql.com/downloads/connector/j/3.1.html), knihovna je použita jako JDBC Driver for MySQL (Connector/J) pro spojení aplikace s databázovým serverem MySQL a komunikaci s vytvořenou databází. Tyto soubory je nutno nakopírovat do podadresáře „Apache Software Foundation\Tomcat 6.0\lib“ nainstalovaného aplikačního serveru Apache Tomcat. Obrázek B.1.33: Kopírování knihoven javamail api do adresáře serveru
70
B.1 Návod na instalaci Vytvoření databáze na serveru MySQL Kompletní databázi vytvoříme spuštěním skriptu na databázovém serveru. Nejprve spustíme konzoli (MySQL command line client) serveru MySQL, do které se přihlásíme jako administrátor. Administrátorské jméno a heslo bylo definováno při instalaci serveru. V konzoli zadajte příkaz „source cesta_ke_scriptu“, kde „cesta_ke_scriptu“ představuje umístění skriptu pro vytvoření databáze na pevném disku či jiném médiu.
Obrázek B.1.34: Spuštění skriptu pro vytvoření databáze na serveru MySQL
Vytvoření emailu pro rozesílání zpráv aplikací Aplikace podporuje rozesílání informací registrovaným uživatelům. Jedná se o informace o novinkách nebo dokumentech na serveru a jejich stavu. Pro toto rozesílání je nezbytné zajistit existenci konkrétního funkčního emailového účtu. Tento účet je možné vytvořit buď lokálně v SMTP serveru, nebo u emailového providera jako je server www.seznam.cz , www.google.cz aj..
71
Dodatek B Pokyny a návody Nastavení parametrů pro provoz aplikace Před vlastním nasazením aplikace na aplikační server, tedy jejím spuštěním, je nutné nastavit potřebné parametry v konfiguračním souboru web.xml. Tento soubor se nachází v archivu aplikace. Archiv je zabalen vývojovým prostředím do WAR souboru, jde však o běžný ZIP archiv. Nejprve tedy přejmenujeme tento archiv, VerejneZakazky.war, na archiv VerejneZakazky.zip.
Obrázek B.1.35: Přejmenování archivu balíčku aplikace Otevřeme tento archiv v archivačním programu, který podporuje ZIP soubory, implicitně v systému Windows XP SP2 je tato podpora obsažena.
Obrázek B.1.36: Otevření přejmenovaného archivu balíčku aplikace
72
B.1 Návod na instalaci
V otevřeném archivu vyhledáme konfigurační soubor, který se nachází na relativní adrese \WEB-INF\web.xml.
Obrázek B.1.37: Upravení zdrojového souboru s konfiguračními daty Otevřeme tento soubor v textovém editoru a zeditujeme nastavení parametrů: <param-name>@PHMP.WIN_VERZAKAZKY.ADMIN_PASSWORD@ <param-value>123
Jedná se o parametr hesla pro přístup administrátora ve vlastní aplikace, výchozí hodnota je „123“, tuto hodnotu změňte podle vlastních potřeb. <param-name @PHMP.WIN_VERZAKAZKY.ADMIN_USERNAME@ <param-value>admin
Jedná se o parametr uživatelského jména pro přístup administrátora ve vlastní aplikace, výchozí hodnota je „admin“, tuto hodnotu změňte podle vlastních potřeb. <param-name>@PHMP.WIN_VERZAKAZKY.DB_URL@ <param-value>jdbc:mysql://localhost/verejnezakazky
Jedná se o parametr adresa databáze pro přístup aplikace k databázi, výchozí hodnota je „jdbc:mysql://localhost/verejnezakazky“, tuto hodnotu změňte podle nastavení databázového serveru, typicky je však stejná. <param-name>@PHMP.WIN_VERZAKAZKY.DB_PASSWORD@ <param-value>root
Jedná se o parametr heslo pro přístup na databázový server z aplikace, výchozí hodnota je „root“, tuto hodnotu změňte podle konfigurace databázového serveru, viz. Instalace databázového serveru MySQL. <param-name>@PHMP.WIN_VERZAKAZKY.DB_USERNAME@ <param-value>root
Jedná se o parametr uživatelské jméno pro přístup na databázový server z aplikace, výchozí hodnota je „root“, tuto hodnotu změňte podle konfigurace databázového serveru, viz. Instalace databázového serveru MySQL. <param-name>@PHMP.WIN_VERZAKAZKY.SMTP_SERVER@ <param-value>smtp.something.cz
Jedná se o parametr SMTP server pro odesílání informací z aplikace, výchozí hodnota je „smtp.something.cz“, tuto hodnotu změňte podle vytvořeného emailu, viz. Vytvoření emailu pro rozesílání zpráv aplikací. <param-name>@PHMP.WIN_VERZAKAZKY.SMTP_PORT@ <param-value>25
73
Dodatek B Pokyny a návody Jedná se o parametr port SMTP serveru pro odesílání informací z aplikace, výchozí hodnota je číslo „25“, tuto hodnotu změňte podle vytvořeného emailu, viz. Vytvoření emailu pro rozesílání zpráv aplikací, typicky je však stejná. <param-name>@PHMP.WIN_VERZAKAZKY.SEND_EMAIL_FROM@ <param-value>
[email protected]
Jedná se o parametr Emailová adresa pro odesílání informací z aplikace, výchozí hodnota je „
[email protected]“, tuto hodnotu změňte podle vytvořeného emailu, viz. Vytvoření emailu pro rozesílání zpráv aplikací. Po nastavení veškerých potřebných nastavení uložíme změny v souboru web.xml. Archiv VerejneZakazky.zip opět přejmenujeme zpět na VerejneZakazky.war a pokračujeme v instalaci.
Nasazení aplikace na aplikační server V internetovém prohlížeči do adresního řádku napište adresu http://localhost:8080/ , na kterou přejdeme.
Obrázek B.1.38: Úvodní stránka aplikačního serveru Apache Tomcat
74
B.1 Návod na instalaci Na této adrese je nainstalován a spuštěn aplikační server. Dostaneme se na server. Pro nahrávání aplikací je nutné vstoupit do administrační sekce, která se nachází mezi odkazy v levé části úvodní stránky serveru jako „Tomcat Manager“.
Obrázek B.1.39: Navigační menu na serveru Apache Tomcat Po vstupu budete dotázání na administrátorský login, který byl nastaven při instalaci serveru.
Obrázek B.1.40: Přihlašovací formulář serveru Apache Tomcat V administrační sekci pro nahrávání aplikací je vytvořen formulář pro nahrávání programových balíčků „WAR file to deploy“.
Obrázek B.1.41: Formulář pro nahrání aplikačního balíčku na server
75
Dodatek B Pokyny a návody Na disku vybereme umístění aplikace, kterou chceme nahrát a tlačítkem „deploy“ dojde k nasazení aplikace na server, přičemž aplikace má relativní adresu na serveru a odkazujeme se na ní adresou „adresa_serveru:port/jméno_aplikace“. Naše webová aplikace má tedy adresu http://localhost:8080/VerejneZakazky/ a je již plně připravena k použití.
Obrázek B.1.42: Úvodní stránka aplikace běžící na serveru
76
B.2 Návod na zálohování a obnovení databáze
B.2 Návod na zálohování a obnovení databáze B.2.1 Zálohování dat Zaměříme se především na zálohování MySQL databází z pohledu správce systému. Budeme tedy uvažovat o situacích, kdy máme daný server na starosti a můžeme, když je to potřeba, pracovat jako administrátor. Jak uvidíme, je zde více možností zálohování. Příkaz SELECT INTO OUTFILE Tento příkaz může sloužit jako kontrolní výpis tabulek pro zálohování konkrétních dat v nich obsažených. Používá se především pro zálohování do neelektronických archivů, ve kterých jsou obsahy databáze ihned k nahlédnutí např. pro nějakou kontrolu. Syntaxe příkazu je následující: SELECT * FROM nazevtabulky INTO OUTFILE 'nazevsouboru.txt'; Příkaz je koncipován stejně jako kterýkoliv dotaz v sql s tím rozdílem, že výsledný výpis se zapíše do souboru. Tento příkaz má následující výhody: - Můžete si vybrat, které tabulky budete chtít zálohovat. - Můžete si (vyjmenováním sloupců v příkazu SELECT) vybrat jen určité sloupce tabulky. - Můžete si (použitím klauzule WHERE) vybrat jen určité řádky - Výslednou množinu můžete seřadit. - Přestože se to nepoužívá příliš často, lze takto zálohovat spojení dvou či více tabulek (tedy sadu záznamů vzniklou použitím LEFT JOIN, RIGHT JOIN či INNER JOIN) - Celý příkaz je velmi jednoduchý a intuitivní. - Výsledný soubor je čitelný člověkem - Protože je výsledný soubor textový, bývá snadné jej komprimovat a obvykle rovněž kompresní poměr bývá velmi solidní. - Proces zálohování pomocí tohoto příkazu je dosti rychlý Základní nevýhody použití tohoto příkazu: - Soubor, který vznikne pomocí SELECT INTO OUTFILE musí být nový. Jinými slovy, tento příkaz se nikdy nepokusí přepsat existující soubor, a to bez ohledu na to, kdo a kdy původní soubor vytvořil. Neuděláte tedy ani dvakrát stejný soubor. To je určitý bezpečnostní prvek, který zabraňuje MySQL přepsat (ať už neúmyslně nebo cíleně) existující soubory v systému. Pokud chcete využívat tento příkaz, musíte se tedy ujistit, že cílový soubor neexistuje. - Abyste mohli příkaz SELECT INTO OUTFILE provést, musíte mít příslušná databázová práva
77
Dodatek B Pokyny a návody
Příkaz BACKUP TABLE Příkaz BACKUP TABLE slouží k zálohování jediné tabulky. Syntaxe příkazu je následující: BACKUP TABLE nazevtabulky TO '/cesta/k/zaloze'; Tento příkaz má následující výhody: - Umožňuje elegantně pořídit kopii jediné tabulky - Je principielně dosti rychlý - Dá se velmi snadno zapamatovat Nezanedbatelné nevýhody příkazu: - Při zápisu do cílového adresáře jste omezeni právy systému (tato nevýhoda pochopitelně není pro administrátora podstatná) - Funguje to jen s tabulkami typu MyISAM(tabulky bez relací). - Příkaz je v dokumentaci označen jako zastaralý. - Neumožňuje přepsat existující data - Situace, v níž byste chtěli zálohovat jedinou tabulku je z hlediska správy serveru poměrně vzácná. Vysvětlení funkce: Na serveru jsou pro každou tabulku typu MyISAM vyhrazeny až tři soubory: *.frm (Definice tabulky MyISAM. Jsou zde uloženy typy a velikosti jednotlivých sloupců tabulky.) *.MYD (Samotná data pro tabulku.) *.MYI (Indexy pro danou tabulku) Tabulka B.1.1: Formát souborů databáze MyISAM Pozn.: V MySQL 5 může například existovat soubor *.TRG s definicí triggerů pro danou tabulku. Když přijde příkaz pro zálohování pomocí BACKUP TABLE, databáze se postará aby do dané tabulky nemohl nikdo zapisovat a pak vytvoří soubory .frm a .MYD do cílového adresáře. Indexy se nekopírují, neboť je lze z obnovených dat poměrně snadno zrekonstruovat. Příkaz MYSQLDUMP Tento užitečný příkaz vytvoří zálohu dat tak, že sestaví SQL příkazy, které povedou k vytvoření dané tabulky nebo tabulek. Příkaz je trochu odlišný od ostatních, které se spouští v konzoli databázového serveru. Tento příkaz spustí externí program a ten zálohu provede.
78
B.2 Návod na zálohování a obnovení databáze Spouští se mimo konzoli MySQL serveru přímo v operačním systému. Například v systému MS Windows z příkazové řádky. Syntaxe příkazu je následující: mysqldump -u root nazevdatabaze > cesta/tabulka.sql Povede k tomu, že bude vytvořen v domovském adresáři soubor tabulka.sql s následujícím obsahem: -- MySQL dump 10.10 --- Host: localhost Database: nazevdatabaze -- -----------------------------------------------------
--- Table structure for table `tabulka` -DROP TABLE IF EXISTS `tabulka`; CREATE TABLE `tabulka` ( `sloupec1` varchar(20) collate cp1250_czech_cs default NULL, `datum1` date default NULL ) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs; --- Dumping data for table `tabulka` -LOCK TABLES `tabulka` WRITE; INSERT INTO `tabulka` VALUES ('Nazev1','2007-01-01'),('Nazev2','2006-1231'),('Nazev3','2006-10-10'); UNLOCK TABLES; Je tedy vytvořena jak definice tabulky, tak i data. Příkaz mysqldump má poměrně hodně přepínačů, s nimiž bude dobré se seznámit. Příkaz se dá použít i na jiné typy tabulek než MyISAM. Má velice dobrý výstup, protože produkuje soubor, který je člověku čitelný, textový a který se dá rozumně zkomprimovat. Lze se také zmínit o tom, že vygenerované příkazy se mohou náramně hodit při exportu struktury a dat na jiný typ databázového stroje.
79
Dodatek B Pokyny a návody
B.2.2 Obnova dat Obecně k obnově dat Obecně zřejmě budete obnovovat data ve dvou typických scénářích: - Protože jste zálohovali data na vývojovém systému a nyní je obnovujete pro "ostrý" provoz. Například vyvíjíte webovou apikaci a nyní nahráváte konfigurační data na ostrý server. - Protože jste přišli o nějaká data vlivem výpadku, havárie či útoku a potřebujete systém co nejdříve dostat zpět do provozu. K prvnímu bodu není příliš co dodat - obnova dat bude tak jako tak provedena prakticky ihned a jestliže není něco v pořádku, projeví se to okamžitě. Ve druhém případě vzniká nebezpečí nekonzistence databáze po obnově dat, proto je velice dobré důkladně vše předem promyslet než začnete s vlastní obnovou! Přestože se to zdá samozřejmé, často vznikají veliké komplikace. Obnovu dat při havárii budete skoro vždy provádět v časovém presu. Jestliže budete schopni provést to rychle, je to plus. Velice pravděpodobně budete při obnově dat zápasit s větším množstvím záloh. Je třeba vybrat správná data! Obnova dat bude muset být kompletní. Argument obnovení pouze části databáze většinou nenachází u zákazníka úspěch. Obnova dat je většinou (narozdíl od záloh) neplánovaná akce. Z těchto důvodů se většinou vytváří „cvičný poplach“ pro ověření, zda obnova dat dělá opravdu to, co má. A to bez ohledu na použitou metodu. Tato zkouška se vyplácí prakticky vyzkoušet před naplněním databáze rozsáhlými daty, což vede v případě výpadku k rozsáhlým škodám. Obnova z textových souborů Uvedli jsme, že lze zálohovat data pomocí příkazu SELECT INTO OUTFILE. Komplementární příkaz pro obnovu dat je LOAD DATA INFILE. Platí pro něj stejná omezení jako pro SELECT INTO OUTFILE s jednou podstatnou výjimkou - za určitých okolností lze pomocí rozšíření LOAD DATA LOCAL INFILE nahrávat do tabulky data ležící jinde než na serveru. Tento způsob obnovy dat bývá z bezpečnostních důvodů na serverech zakázán - a na webech je často zakázán celý příkaz LOAD DATA INFILE. Příkaz sám o sobě je dosti rychlý. Uveďme si příklad, jak může záloha a obnova dat probíhat: SELECT * FROM tabulka INTO OUTFILE 'tabulka.txt'; LOAD DATA INFILE 'tabulka.txt' INTO TABLE tabulka; Obnova dat příkazem RESTORE TABLE Opakem příkazu BACKUP TABLE je příkaz RESTORE TABLE. Má stejné nectnosti jako příkaz backup table, mezi největšími připomeňme, že funguje jen pro tabulky MyISAM.
80
B.2 Návod na zálohování a obnovení databáze Obnova dat příkazem MYSQLDUMP Příkaz mysqldump nemá žádného bratříčka mysqlrestore. Je tomu tak proto, že obnovu dat můžeme provést pomocí řádkového klienta mysql. V mysql command line použijeme příkaz source. Příklad syntaxe: SOURCE ‘'/cesta/k/zaloze.sql';
B.2.3 Příklad postupu zálohování a obnovy dat Spustíme příkazovou řádku systému MS Windows XP. Příkazové řádce zvolíme adresář, ve kterém se nachází nainstalovaný server MySQL a tedy i zálohovací program „mysqldump“. Pokud proběhla instalace serveru Mysql 5 standardním způsobem, nachází se tento adresář v C:\Program Files\MySQL\MySQL Server 5.0\bin. V tomto adresáři spustíme zálohovací program mysqldump s parametry: mysqldump -uUSERNAME -pPASSWORD DATABASE_NAME > PATH_TO_SAVE, kde USERNAME, PASSWORD, DATABASE_NAME a PATH_TO_SAVE nahradíme konkrétními hodnotami. USERNAME představuje uživatelské jméno a PASSWORD pak heslo pro administrátorský přístup na server mysql, tyto hodnoty byly nastaveny při instalaci serveru, viz. návod na instalaci. DATABASE_NAME je jméno konkrétní zálohované databáze a PATH_TO_SAVE je cesta na disku, kam se má záloha uložit. Posloupnost příkazů v příkazové řádce MS Windows XP: cd C:\Program Files\MySQL\MySQL Server 5.0\bin mysqldump -uroot -proot varejnezakazky > C:\verejnezakazky.sql Pozn.: uživatelské jméno a heslo v tomto případe je „root“ a „root“, jméno databáze je „verejnezakazky“ a cesta k umístění zálohy je „c:\verejnezakazky.sql“
Posloupnost příkazů v konzoli MySQL5: Nejprve se přihlásíme jako administrátor. use verejnezakazky; source c:/verejnezakazky.sql; Pozn.: před vlastním spuštěním sql skriptu pro obnovení dat databáze musíme nejprve vybrat databázi, do které se obnova provede, toto představuje příkaz „use“.
81
C Uživatelská příručka C.1 Návod k redakčnímu systému Celou aplikaci můžeme rozdělit podle možností přístupu jejich uživatelů do jednotlivých částí. Jednou, veřejnou částí, jsou vystavené dokumenty, nad nimiž může běžný návštěvník serveru provádět vyhledávání, jejich výpis si může uživatel setřídit atd. Druhou a stěžejní část aplikace je běžnému návštěvníkovi nepřístupná část serveru pro správu a vystavování jednotlivých dokumentů, tedy administrátorská sekce. Úvodní stránka aplikace: Na úvodní stránce je několik základních odkazů pro orientaci v aplikaci. První čtyři odkazy, „Vyhlášené investiční záměry“, „Uskutečněné veřejné zakázky“, „Vyhledávání zveřejněných dokumentů“, „Jak získat novinky zveřejňování významných informací?“, jsou pro běžné návštěvníky serveru, podnikatele, pro které představuje aplikace kontakt s úřadem a jeho investičními záměry. Poslední odkaz je uřčen pracovníkovi úřadu pro vstup do administrační části aplikace. Veřejná část aplikace: Vyhlášené investiční záměry První odkaz „Vyhlášené investiční záměry“ úvodní stránky aplikace slouží běžnému uživateli k prohlížení vyhlášených investičních záměrů úřadem. Po potvrzení odkazu se podnikatel dostane na stránku s výpise veškerých vystavených plánovaných investičních záměrů úřadu. Všechny tyto záměry si může podnikatel nechat seřadit, vzestupně nebo sestupně, podle kritérií Číslo inv. záměru, Datum vyhlášení, Předmět inv. záměru a Lokalita. Každý řádek výpisu pak představuje jeden investiční záměr. Na vrcholu stránky je umístěn odkaz „Zpět na hlavní stránku veř. zakázek“ a slouží pro orientaci v aplikaci. Pod výpisem investičních záměrů je odkaz „Máte zájem o zasílaní informací o nových investičních záměrech na vaši emailovou adresu?“. Pod tímto odkazem si může podnikatel registrovat svůj email pro zasílání novinek, viz. odstavec Jak získat novinky zveřejňování významných informací. Číslo každého investičního záměru pak přestavuje odkaz na další stránku jeho vlastního detailu. Po kliknutí na tento odkaz se podnikateli nabídne stránka s detailním popisem právě vybraného investičního záměru. Na vrcholu stánky jsou opět odkazy pro orientaci v aplikace, jednak „Zpět na inv. záměry“, tedy zpět na výpis záměrů, a „Zpět na hlavní stránku veř. zakázek“, tedy zpět na úvodní stránku. Pod formulářem detailu se nachází další formulář, „Formulář zájemce o Investiční záměr“. Registrace podnikatele, který má zájem o realizaci investičního záměru Podnikatel, který má zájem o realizaci konkrétního vyhlášeného investičního záměru si tento záměr vyhledá mezi všemi vyhlášenými, viz. odstavec Vyhlášené investiční záměry, klikne na jeho detail v seznamu investičních záměrů a na následující stránce pod formulářem detailu o záměru vyplní a odešle do evidence formulář zájemce o realizaci.
83
Dodatek C Uživatelská příručka
Uskutečněné veřejné zakázky Druhý odkaz „Uskutečněné veřejné zakázky“ úvodní stránky aplikace slouží běžnému uživateli k prohlížení uskutečněných veřejných zakázek. Po kliknutí na tento odkaz se nabídne podnikateli stránka, na jejímž vrcholu je odkaz pro návrat na hlavní stránku aplikace a pod ním je již výpis veškerých vyhlášených veřejných zakázek. Všechny tyto veřejné zakázky si může podnikatel nechat seřadit, vzestupně nebo sestupně, podle kritérií Číslo veř. zakázky, Datum vyhlášení, Předmět veř. zakázky a Lokalita. Každý řádek výpisu pak představuje jednu veřejnou zakázku. Číslo každé veřejné zakázky pak přestavuje odkaz na další stránku jejího vlastního detailu. Po kliknutí na tento odkaz se podnikateli nabídne stránka s detailním popisem právě vybrané veřejné zakázky. Na vrcholu stánky jsou opět odkazy pro orientaci v aplikace, jednak „Zpět na veř. zakázky“, tedy zpět na výpis zakázek, a „Zpět na hlavní stránku veř. zakázek“, tedy zpět na úvodní stránku. Pod odkazy je k dispozici nejen formulář detailu zakázky, ale i informace i podnikateli, případně firmě, která vyhrála výběrové řízení, informace i všech podnikatelích, kteří projevili zájem o realizace zakázky a seznam těch , se kterými úřad jednal. Vyhledávání zveřejněných dokumentů Třetí odkaz „Vyhledávání zveřejněných dokumentů“ úvodní stránky slouží k vyhledávání vystavených dokumentů. Po kliknutí na odkaz se objeví stránka s formulářem pro vyhledávání. V tomto formuláři uživatel zvolí, zda vyhledává investiční záměr či veřejnou zakázku a vyplní kritéria, podle kterých se po odeslání provede vyhledávání. Po odeslání se objeví stránka s výsledkem hledání. Jak získat novinky zveřejňování významných informací Čtvrtý odkaz „Jak získat novinky zveřejňování významných informací?“ úvodní stránky slouží k popisu jak získávat informace o nově vystavených dokumentech a veškerých dalších informacích provedených v aplikaci. Po kliknutí na odkaz se objeví stránka s popisem jak získat novinky. Jeden způsob je nastavit čtečku RSS kanálu na stránku aplikace a další způsob je registrovat vlastní email do evidence. Na registrované emaily se automaticky rozesílají informace při jakékoliv operaci s dokumenty ze strany úřadu. Při zadání emailu podruhé do evidence bude email automaticky odebrán z této evidence. Administrátorská sekce: Do této oblasti, která je chráněná přístupovým administrátorským uživatelským jménem a heslem, která jsou nastavena v konfiguračním souboru web.xml, viz. instalace produktu, nemají přístup běžní návštěvníci serveru. Sekce je určena pro pověřené pracovníky úřadu a slouží k vystavování jednotlivých dokumentů, jejich stornování a k evidenci registrovaných podnikatelů. Přihlášení administrátora do sekce Administrátor se do sekce dostane přes odkaz na úvodní stránce aplikace „Administrace“. Nabídne se mu stránka login s formulářem pro vložení přihlašovacích údajů a odkazem pro návrat zpět na hlavní stránku aplikace. Po vyplnění přihlašovacích údajů
84
C.1 Návod k redakčnímu systému odešle administrátor informace ke kontrole a při správném přihlášení vstoupí do administrační sekce. Vložení nového investičního záměru Administrátor se přihlásí do administrační oblasti aplikace, viz. odstavec přihlášení administrátora do sekce. V této sekci vybere z několika odkazů odkaz „Vložení nového investičního záměru“. Po kliknutí na odkaz se objeví stránka s odkazy pro návrat jednak do administrační sekce, ale i pro návrat na hlavní stránku aplikace, a formulář pro vložení nového investičního záměru. Administrátor vyplní tento formulář a odešle jej do evidence. Ve formuláři má administrátor možnost zvolit „odeslat emaily reg. uživatelům“, tímto se při vkládání investičního záměru do evidence rozešle informace o vložení nového dokumentu na registrované emaily v evidenci, viz. odstavec Jak získat novinky zveřejňování významných informací. Stornování starého investičního záměru Administrátor se přihlásí do administrační oblasti aplikace, viz. odstavec přihlášení administrátora do sekce. V této sekci vybere z několika odkazů odkaz „Stornování starého investičního záměru“. Po kliknutí na odkaz se objeví stránka s výpisem vystavených investičních záměrů. Tento výpis si může administrátor seřadit, vzestupně nebo sestupně, podle kritérií Číslo inv. záměru, Datum vyhlášení, Předmět inv. záměru a Lokalita. Číslo každého investičního záměru pak představuje odkaz na stránku s jeho detailem. Jednotlivé investiční záměry ve výpisu jsou odlišený barvami. Bílou barvu pozadí mají investiční záměry, ze kterých není ještě vytvořena veřejná zakázka a lze je bez problému stornovat. Šedou barvu pozadí mají investiční záměry, ze kterých již byla vystavena veřejná zakázka a nelze je stornovat dříve než se stornuje právě tato veřejná zakázka. Při výběru investičního záměru z výpisu administrátor zaškrtne políčko „storno“ v pravé části výpisu a tlačítkem „stornuj dokumenty“ odešle příkaz k jeho stornování. Těchto dokumentů ke stornování může být vybráno i více. Administrátor při stornování má možnost zvolit odeslání zprávy na všechny registrované emaily uživatelů, viz. odstavec viz. odstavec Jak získat novinky zveřejňování významných informací, a dokonce může vložit i text jako důvod tohoto stornování. Vyhlášení veřejné zakázky Administrátor se přihlásí do administrační oblasti aplikace, viz. odstavec přihlášení administrátora do sekce. V této sekci vybere z několika odkazů odkaz „Vyhlášení veřejné zakázky“. Po kliknutí na odkaz se objeví stránka s odkazy pro návrat jednak do administrační sekce, ale i pro návrat na hlavní stránku aplikace, a výpis vložených investičních záměrů. Tento výpis si může administrátor seřadit, vzestupně nebo sestupně, podle kritérií Číslo inv. záměru, Datum vyhlášení, Předmět inv. záměru a Lokalita. Z těchto vystavených investičních záměrů administrátor vyhlásí veřejnou zakázku na základě projevení zájmu o realizaci veřejné zakázky formou registrovaných podnikatelů a firem k vystavenému investičnímu záměru, viz. odstavec Registrace podnikatele, který má zájem o realizaci investičního záměru. Ve výpisu představuje každý řádek investiční záměr a číslo investičního záměru pak odkaz na detail investičního záměru. Po kliknutí na detail investičního záměru se objeví stránka s detailem záměru a seznamem registrovaných podnikatelů. Z tohoto seznamu označí administrátor jednoho výherce výběrového řízení a v seznamu registrovaných podnikatelů definuje ty, kteří byly obesláni a ty, kteří na základě obeslání projevili zájem a mezi nimiž následně proběhlo
85
Dodatek C Uživatelská příručka výběrové řízení, výběrové řízení není obsaženo jako funkce aplikace (jedná se pouze o zanesení výsledného rozhodnutí). Na stránce pro vystavení veřejné zakázky z investičního záměru a seznamu registrovaných podnikatelů má administrátor k dispozici funkci „Hromadně obeslat všechny zájemce“. Tato funkce umožní sebrat veškeré emaily registrovaných podnikatelů u tohoto záměru a obeslat je. Stornování staré veřejné zakázky Administrátor se přihlásí do administrační oblasti aplikace, viz. odstavec přihlášení administrátora do sekce. V této sekci vybere z několika odkazů odkaz „Stornování staré veřejné zakázky“. Po kliknutí na odkaz se objeví stránka s výpisem vystavených veřejných zakázek. Tento výpis si může administrátor seřadit, vzestupně nebo sestupně, podle kritérií Číslo veř. zakázky, Datum vyhlášení, Předmět veř. zakázky a Lokalita. Číslo každé veřejné zakázky pak představuje odkaz na stránku s jejím detailem. Při výběru veřejné zakázky z výpisu administrátor zaškrtne políčko „storno“ v pravé části výpisu a tlačítkem „stornuj dokumenty“ odešle příkaz k její stornování. Těchto dokumentů ke stornování může být vybráno i více. Administrátor při stornování má možnost zvolit odeslání zprávy na všechny registrované emaily uživatelů, viz. odstavec viz. odstavec Jak získat novinky zveřejňování významných informací, a dokonce může vložit i text jako důvod tohoto stornování. Statistika registrovaných organizací Administrátor se přihlásí do administrační oblasti aplikace, viz. odstavec přihlášení administrátora do sekce. V této sekci vybere z několika odkazů odkaz „Statistika registrovaných organizací“. Po kliknutí na tento odkaz má administrátor k dispozici přehled podnikatelů a firem a jejich statistiku působení. Tento výpis si může administrátor seřadit, vzestupně nebo sestupně, podle kritérií Název organizace, Počet přihlášení, Počet vyhraných veř. zakázek a Objem v Kč. Tyto informace zohledňují jednotlivé organizace a jejich aktivitu při projevování zájmů o investiční záměry a jejich vyhraná výběrová řízení a mohou napomáhat při výběrových řízeních úřadu. Odhlášení administrátora do sekce Přihlášený administrátor zvolí odkaz „Odhlášení a návrat na domovskou stánku“ a tím se bezpečně ukončí přihlášení do administrační sekce a vrátí se na úvodní stránku aplikace.
86
D Obsah přiloženého CD
87