Projekt iMHD Zápočtová práce na předmět Vedení DB aplikací a jazyk UML autor: Jakub Lysák Cílem projektu je vytvořit systém pro tvorbu orientace ("tabulek s číslem linky a popisem trasy") pro vozidla městské hromadné dopravy.
Výklad pojmů SPOJ – pro účely projektu se spojem rozumí vozidlo dopravce jedoucí v určitém čase mezi určitými zastávkami LINKA – SPOJE jedoucí po téže nebo velmi podobné trase. Linka bývá označena číslem, písmenem či kombinací čísel a písmen. VARIANTA LINKY – skupina SPOJŮ jedoucích po úplně stejných trasách. Každá linka má minimálně jednu variantu (označuje se TAM). Typicky má ovšem varianty dvě, jednu pro směr TAM a druhou pro směr ZPĚT. Další varianty linky existují pouze v případě, že všechny spoje linky nejedou po stejné trase, tj. typicky někam zajíždí nebo naopak do některých zastávek nezajíždí. Varianty linky (kromě variant TAM a ZPĚT) se označují písmeny. TRASA LINKY – seznam zastávek linky (nebo varianty linky), ve kterých SPOJE dané linky (varianty linky) zastavují. POLOOKRUŽNÍ LINKA – linka, která má jen jednu konečnou zastávku a její trasa je polookružní, tj. jede z výchozí zastávky do zastávky X, odtud jednosměrně do zastávky Y, odtud jednosměrně do zastávky X a odtud zpět do výchozí zastávky. Žádná zastávka kromě výchozí není zastávkou konečnou. Zastávce Y se říká MEZILEHLÁ. NOČNÍ LINKA – linka, která je v provozu v nočním období. Noční doprava má svá specifika, především značně neobvyklé trasy linek a delší intervaly mezi jednotlivými SPOJI. Proto je v zájmu dopravce informovat cestující o TRASE LINKY podrobněji – zejména o možnostech přestupu mezi jednotlivými NOČNÍMI LINKAMI, jméno ulice nebo čtvrti, ve které se zastávka nachází ATRIBUTY LINKY – podrobnější údaje o lince. Pro účely tohoto projektu se atributem linky rozumí příznak, zda je noční a zda je ve výluce. ATRIBUTY ZASTÁVKY – detailní údaje o zastávce. Pro účely tohoto projektu se atributy zastávky bude rozumět její jméno, charakter (stálá, na znamení, na znamení od 20 do 04 hod), význam (zda má být uvedena na VNĚJŠÍ BOČNÍ ORIENTACI), zda je přestupní zastávkou mezi NOČNÍMI LINKAMI. ČELNÍ ORIENTACE – tabule umístěná na přední straně vozidla. Obsahuje číslo linky a jméno konečné zastávky, v případě POLOOKRUŽNÍ LINKY také jméno mezilehlé zastávky. VNĚJŠÍ BOČNÍ ORIENTACE – tabule umístěná na pravé boční straně vozidla otočená směrem ven. Obsahuje číslo linky a přehled významných zastávek. VNITŘNÍ BOČNÍ ORIENTACE – tabule umístěná na pravé boční straně vozidla otočená směrem ven. Obsahuje číslo linky a seznam všech zastávek. V případě NOČNÍ LINKY obsahuje navíc také informace o možnostech přestupu a podrobnější popis míst, jimiž linka projíždí. ZADNÍ ORIENTACE – tabule umístěná na zadní straně vozidla. Obsahuje pouze číslo linky. ORIENTACE VOZIDLA – zahrnuje čtyři základní TYPY ORIENTACE: ČELNÍ ORIENTACI, VNITŘNÍ a VNĚJŠÍ BOČNÍ ORIENTACI a ZADNÍ ORIENTACI. Pokud se v textu dále hovoří o ORIENTACI bez přívlastku, znamená to právě tyto čtyři věci.
1
Požadavky zadavatele Obecné systém musí pracovat na stávajícím HW dopravce. Minimální konfigurace je Pentium 233 s 32 MB RAM systém musí pracovat na stávajícím OS dopravce, tj. Windows 98; musí být zaručena funkčnost systému i po plánovaném přechodu na nový OS Windows XP Professional se systémem bude pracovat vždy nejvýše jeden uživatel ovládání programu bude intuitivní, snadné; veškeré texty musí být v češtině
Specifické Systém bude umožňovat přidávat a vymazávat zastávky a nastavovat jejich atributy. Systém umožní uživateli zadávat nové, upravovat stávající a vymazávat linky a nastavovat jejich atributy. Systém umožní uživateli přidávat nové, upravovat stávající a vymazávat varianty linek. Systém bude na základě výše uvedených údajů (linek, zastávek, variant) generovat orientaci automaticky. Uživatel bude mít možnost orientaci dále upravovat do konečné podoby, přičemž systém bude tyto úpravy ukládat. Systém bude umožňovat tisk orientace na standardních tiskárnách systému Windows 9x/ME/2000/XP. Systém bude schopen vytvořenou orientaci konvertovat do formátu PDF.
2
Diagram bussiness procesů Základní a také jediný bussines proces realizovaný systémem:
v edení společnosti
požadavek vedení
referát j ízdních řádů
v ytv oření/změna trasy linky
údržba v ozidel
v ytv oření/změna orientace
dodání do v ozov ny
v ýlep na tabule
řidič v ozidla
umístění ve vozidle
3
Diagramy use-case Základní přehled use-case projektu. Linkový a zastávkový modul jsou jen pomocné, hlavní část tvorby orientace zajišťuje orientační modul. Use-case jsou popsány až za diagramy. (Dovolil jsem si trochu šetřit papírem a navzdory vašemu doporučení dal na stránku vždy dva diagramy, v praxi bych dal každý na samostatnou stránku z důvodu přehlednosti.) Základní návrh use-case:
unregistered trial version EA 3.60 unregistered trial version Linkový a zastávkový modul unregistered trial version EA 3.60 unregistered trial version tv orba a editace linek
unregistered trial version EA 3.60 unregistered trial version unregistered trial version EA 3.60 unregistered trial version tv orba a editace zastáv ek «include»
unregistered trial version EA 3.60 unregistered trial version «include» unregistered trial versiontv orba EAa editace 3.60 unregistered trial version přestupů
unregistered trial version EA 3.60 unregistered trial version «include» v ýběr linky a v arianty
modul unregistered trial versionOrientač EAní 3.60 unregistered trial version uživ atel
«include» export orientace do PDF
unregistered trial version EA 3.60 unregistered trial version «include»
unregistered trial version EA 3.60 unregistered trial version «include» tisk orientace
unregistered trial version EA 3.60 unregistered trial version unregistered trial version EA 3.60 unregistered trial version tv orba a editace orientace
unregistered trial version EA 3.60 unregistered trial version
4
Podrobnější rozpis use-case tvorby a editace zastávek a tvorby a editace přestupů:
EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered přidání nov é zastáv ky nov ého EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 přidání unregistered «extend» přestupu
tv orba a editace zastáv ek
tv orba a editace přestupů
«extend»
EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered změna atributů «extend»
zastáv ky «extend»
přestupu EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60smazání unregistered «extend»
EA 3.60 unregistered trial version EA ky3.60 unregistered trial version EA 3.60 unregistered smazání zastáv EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered
Podrobnější rozpis use-case tvorby a editace linek:
v ytv oření nov é linky tv orba a editace linek
«extend» «include» «include» v ytv oření nov é v arianty
«extend»
«extend»
nastav ení atributů linky
«extend» «include» editace v arianty smazání linky
editace linky
«extend»
«extend»
smazání v arianty
5
Podrobnější rozpis use-case tvorby a editace orientace:
60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered tria náv rh orientace noční linky
náv rhtrial čelní version 60 unregistered trial version EA 3.60 unregistered EA 3.60 unregistered tria orientace
60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered tria «extend» náv rh zadní 60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered tria orientace náv rh orientace
«extend»
60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered tria «extend»
náv rh boční v nitřní orientace
náv rh boční v nitřní orientace noční linky
60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered tria «extend» «include»
60 unregistered«extend» trial version EA 3.60 unregistered trial version EA 3.60 unregistered tria náv rh boční v něj ší orientace
náv rh boční v něj ší orientace noční linky
60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered tria v ýběr typu
tv orba a editace 60 unregistered trial versionorientace EA 3.60 unregistered trial version EA 3.60 unregistered tria orientace editace trial čelní version 60 unregistered trial version EA 3.60 unregistered EA 3.60 unregistered tria orientace
60 unregistered trial version EA 3.60 unregistered trial version «include» EA 3.60 unregistered tria «extend»
«include»
editor textu editace zadní 60 unregistered trial version EA 3.60 unregistered trial version «include» EA 3.60 unregistered tria orientace «extend»
60 unregistered trial version EA 3.60 unregistered trial version «include» EA 3.60 unregistered tria «extend» editace orientace «extend»
editace boční v něj ší orientace
«extend» «include» editor grafiky
«extend» editace boční v nitřní orientace
«include»
6
Slovní popis use-case (Popis některých opakujících se a velmi si podobných use-case je vynechán a je pouze konstatováno analogicky jako… Snad to nevadí.) výběr linky a varianty Systém zobrazí seznam linek a jejich variant. Uživatel si vybere právě jednu linku. Systém zobrazí varianty vybrané linky. Uživatel si vybere právě jednu variantu. výběr typu orientace Systém zobrazí výzvu k výběru jednoho ze čtyř typů ORIENTACE. Uživatel si vybere jeden až čtyři typy. export orientace do PDF Uživatel si vybere právě jednu linku a variantu pomocí VÝBĚR LINKY A VARIANTY. Uživatel zadá, jaký typ orientace chce zkonvertovat pomocí VÝBĚR TYPU ORIENTACE. Uživatel zadá jméno souboru, kam bude chtít uložit výsledný soubor ve formátu PDF. Systém uživateli oznámí výsledek konverze (úspěch – neúspěch) tisk orientace Uživatel si vybere právě jednu linku a variantu pomocí VÝBĚR LINKY A VARIANTY. Uživatel zadá, jaký typ orientace chce tisknout pomocí VÝBĚR TYPU ORIENTACE. Uživatel vybere tiskárnu, na níž chce tisknout a nastaví parametry tisku. Systém orientaci v požadovaném rozsahu na požadované tiskárně vytiskne. tvorba a editace zastávek Uživatel zvolí právě jednu z možností: PŘIDÁNÍ ZASTÁVKY, SMAZÁNÍ ZASTÁVKY, ZMĚNA ATRIBUTŮ ZASTÁVKY. Systém provede příslušnou akci. přidání nové zastávky Uživatel zadá jméno přidávané zastávky. Systém provede kontrolu, zda zastávka již existuje. Pokud existuje, zobrazí chybu ERR_STOP_EXIST a zastávku nepřidá. Pokud neexistuje, systém nastaví implicitní hodnoty atributů zastávky a zavolá ZMĚNA ATRIBUTŮ ZASTÁVKY. Uživatel upraví atributy zastávky. Systém novou zastávku včetně jejích atributů uloží. ERR_STOP_EXIST: Pokus o přidání již existující zastávky. Systém zobrazí: "Zastávka se zadaným jménem již existuje. Zadejte prosím jiné jméno." [OK] smazání zastávky Systém zobrazí seznam existujících zastávek a zobrazí ho uživateli. Uživatel vybere právě jednu zastávku. Systém zobrazí výzvu k potvrzení vymazání. Uživatel potvrdí výzvu. 7
Systém nalezne všechny linky a jejich varianty, které danou zastávkou projíždí. Systém provede SMAZÁNÍ VARIANTY pro každou dotčenou variantu. Systém zastávku vymaže včetně jejích atributů. změna atributů zastávky Systém zobrazí seznam existujících zastávek i s jejich atributy. Uživatel si vybere právě jednu zastávku. Systém v přehledné podobě zobrazí její atributy včetně možností, jakých mohou nabývat hodnot. Seznam atributů a jejich přípustných hodnot je uveden v příloze. Uživatel nastaví hodnoty atributů. Systém zkontroluje hodnoty atributů. Systém nové hodnoty atributů uloží. tvorba a editace přestupů přidání nového přestupu smazání přestupu (analogicky jako tvorba a editace zastávek resp. přidání nové zastávky, smazání nové zastávky) tvorba a editace linek Uživatel zvolí právě jednu z možností: VYTVOŘENÍ NOVÉ LINKY, EDITACE LINKY, SMAZÁNÍ LINKY. Systém provede příslušnou akci. vytvoření nové linky Systém zobrazí seznam existujících linek. Uživatel zadá jméno přidávané linky a nastaví atributy linky. Systém provede kontrolu, zda linka již existuje. Pokud existuje, zobrazí chybu ERR_LINE_EXIST a linku nevytvoří. Pokud neexistuje, systém zavolá VYVOŘENÍ NOVÉ VARIANTY Systém novou linku uloží. ERR_LINE_EXIST: Pokus o přidání již existující linky. Systém zobrazí: "Linka se zadaným jménem již existuje. Zadejte prosím jiné jméno." [OK] vytvoření nové varianty Systém přiřadí variantě implicitní jméno TAM a přejde do EDITACE VARIANTY. editace varianty Systém zobrazí seznam existujících zastávek. Uživatel upraví jméno varianty. Uživatel upraví trasu varianty a to tak, že ze seznamu zastávek vybere vždy jednu zastávku a přidá ji do seznamu zastávek varianty. Uživatel potvrdí zadané údaje. Systém zkontroluje, zda varianta linky s příslušným názvem existuje; pokud ano zobrazí výzvu, zda se má varianta přepsat. Systém uloží variantu linky. editace linky Systém zobrazí seznam existujících linek.
8
Uživatel vybere právě jednu linku. Uživatel zvolí právě jednu z možností: VYTVOŘENÍ NOVÉ VARIANTY, EDITACE VARIANTY, SMAZÁNÍ VARIANTY, NASTAVENÍ ATRIBUTŮ LINKY. Systém provede příslušnou akci s danou linkou. nastavení atributů linky Systém zobrazí atributy dané linky. Uživatel nastaví atributům nové hodnoty. Systém zkontroluje hodnoty atributů. Systém nové hodnoty uloží. smazání linky smazání varianty (analogicky jako destruktivní akce u zastávek) tvorba a editace orientace Systém zobrazí seznam linek a jejich variant. Uživatel si vybere právě jednu linku a variantu pomocí VÝBĚR LINKY A VARIANTY. Uživatel zvolí právě jednu z možností: NÁVRH ORIENTACE, EDITACE ORIENTACE, SMAZÁNÍ ORIENTACE. Systém provede příslušnou akci. návrh orientace Uživatel vybere pomocí VÝBĚR TYPU ORIENTACE nejméně jeden typ orientace. Systém podle vybrané linky a podle zadaného typu orientace provede jednu nebo více z následujících akcí: NÁVRH ČELNÍ ORIENTACE NÁVRH ZADNÍ ORIENTACE NÁVRH BOČNÍ VNITŘNÍ ORIENTACE NÁVRH BOČNÍ VNĚJŠÍ ORIENTACE návrh boční vnitřní orientace Systém vygeneruje základní návrh boční orientace. Pokud se jedná o noční linku, systém tento návrh doplní zavoláním NÁVRH BOČNÍ VNITŘNÍ ORIENTACE NOČNÍ LINKY. Pokud má linka nastavený atribut ovlivňujíc vzhled této části orientace, doplní se do návrhu další text podle atributu dané linky. Systém zavolá EDITACE BOČNÍ VNITŘNÍ ORIENTACE. návrh boční vnitřní orientace noční linky Systém najde zastávky dané linky, které jsou označeny jako přestupní a v nich navazující linky. Systém provede zvýraznění těchto zastávek a přidá k nim podrobnější popis možností přestupu (viz příloha). Systém prohledá atributy zastávek dané linky a doplní je do návrhu. návrh boční vnější orientace návrh zadní orientace návrh čelní orientace (analogicky jako návrh boční vnitřní orientace)
9
návrh boční vnitřní orientace noční linky (analogicky jako návrh boční vnější orientace noční linky) editor grafiky Uživatel vybírá jednotlivé grafické prvky návrhu a upravuje je. Pokud uživatel upravuje text, systém zavolá EDITOR TEXTU. editace orientace Uživatel vybere pomocí VÝBĚR TYPU ORIENTACE nejméně jeden typ orientace. Pokud pro zadanou linku a variantu nebyla orientace dosud vytvořena, systém zobrazí upozornění a provede NÁVRH xxx, kde xxx je vybraný typ orientace. Pokud již vytvořena byla, systém podle zvoleného typu orientace provede jednu nebo více z následujících akcí: EDITACE ČELNÍ ORIENTACE EDITACE ZADNÍ ORIENTACE EDITACE BOČNÍ VNITŘNÍ ORIENTACE EDITACE BOČNÍ VNĚJŠÍ ORIENTACE editace boční vnitřní orientace Systém načte a zobrazí navrženou orientaci. Pokud uživatel chce udělat v návrhu změny, systém zavolá EDITOR GRAFIKY. Systém uloží změny provedené uživatelem. editace boční vnější orientace editace zadní orientace editace čelní orientace (analogicky jako editace boční vnitřní orientace) smazání orientace (analogicky jako destruktivní akce u zastávek)
10
Acitivity diagram Pro jednoduchost uveden pouze jeden activity diagram – zachycuje typické použití systému od požadavku na vytvoření nové linky po tisk orientace.
v znik nov é linky v ytv oření nov é linky
přidání nov é zastáv ky
v ytv oření nov é v arianty
náv rh orientace
editace orientace
tisk orientace
hotov á orientace
11
Class diagram Uživatelský class diagram projektu. Opět je v rámci úspory papíru porušeno pravidlo o počtu elementů na stránku; rozdělil bych to na dvě části v místě, kde je VARIANTA_LINKY. Poznámky k třídám: k čemu se daná třída vztahuje je buď zřejmé, nebo je vysvětleno ve VÝKLADU POJMŮ význam metod Load(), Save(), New(), Delete(), Change()/Edit() je zřejmý; ostatní metody a atributy jsou vesměs popsány v poznámkách přímo v diagramu 0 unregistered trial version EA 3.60 unregistered version EA 3.60 unregistered trial version EA 3.60 unregis ČELNÍ_ORIENTACE ZADNÍ_ORIENTACE trial BOČNÍ_VNITŘNÍ_ORIENTACE BOČNÍ_VNĚJŠÍ_ORIENTACE New() : void New() : void New() : void + New() : void 0 unregistered trial ++version EA 3.60 ++unregistered trial++version EA 3.60 unregistered trial version EA 3.60 unregis Edit() : void Edit() : void Edit() : void + Edit() : void + +
Delete() : void SaveChanges() : void
+ +
Delete() : void SaveChanges() : void
+ +
Delete() : void SaveChanges() : void
+ +
Delete() : void SaveChanges() : void
0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis 0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis 0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis ORIENTACE state - určuje stav, ve
ZASTÁVKA
je orientace. state: 0 unregistered trial kterém version EA 3.60 #unregis tered trial version EA 3.60 unregistered trial version EA 3.60 unregis Viz příslušný stavový diagram.
+ + + + + + +
-
Load() : void Save() : void New() : void Edit() : void Delete() : void GetState() : void SetState() : void
ATRIBUT_ZASTÁVKY
name: char
0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial versio-n name: EA char 3.60 unregis + Load() : void + + + + + + 1..* +
Save() : void New() : void Delete() : void CreateAttrib() : void GetAttrib() : void SetAttrib() : void DeleteAttrib() : void
1
value: char
0..*
+ Check() void 0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA :3.60 unregis 1 0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis vytvořena pro tvoří trasu
1
0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis VARIANTA_LINKY 0..*
- name: char 0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis +
Load() : void
Check - kontrola, zda je atribut z přípustné
+ Save() : void množiny. 0 unregistered trial version EA 3.60 unregistered + New() : trial void version EA 3.60 unregistered trial version EA 3.60 unregis + +
Change() : void Delete() : void
Systém atributů je navržen takto obecně, aby bylo možné atributy dále rozšiřovat bez změny
+ + -
SetVarName() : void GetOrientState() : void AddStop() : void
pojmů jsou v obou případech atributy právě dva.
0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered podstatné trial version EAVe3.60 + GetVarName() : void změny systému. smyslu unregis výkladu 0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis 1..* 1 version EA 3.60 unregistered trial version EA 3.60 unregis 0 unregistered trial version EA 3.60 unregistered trial
0 unregistered trial version EA 3.60 unregisteredLINKA trial version EA 3.60 unregistered trial version EA 3.60 unregis PŘESTUP
-
number:
+ + + + + + + + +
Load() : void Save() : void New() : void 0..* Delete() : void CreateAttrib() : void GetAttribs() : void SetAttribs() : void DeleteAttrib() : void AddVariant() : void
ATRIBUT_LINKY
PŘESTUP 0 unregistered trial version EA 3.60 unregistered trial version EA -3.60 unregistered trial version EA 3.60 unregis - line: VARIANTA_LINKY name: char pct (posibility change to) linka, na kterou je možno přestupit
-
stop: ZASTÁVKA pct: VARIANTA_LINKY
+ + +
New() : void Delete() : void Find() : void
-
value: char
0 unregistered trial version EA 3.60 unregistered trial version EA unregistered trial version EA 3.60 unregis 1 +3.60 Check() : void 0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis 0..*
0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis 1 0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis NOČNÍ_LINKA
0 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregistered trial version EA 3.60 unregis + SetPřestup() : void +
GetPřestup() : void
0 unregistered trial version EA 3 60 unregistered trial version EA 3 60 unregistered trial version EA 3 60 unregis
12
State Diagram Stavový diagram třídy ORIENTACE. Zřejmě jediný, který je alespoň trochu netriviální.
0 unregistered trial version EA 3.60 unregistered trial version E 0 unregistered trial version EA 3.60 unregistered trial version E 0 unregistered trial prázdná version EA 3.60 unregistered trial version E 0 unregistered trial version EA 3.60 unregistered trial version E smazání
vytvoření
smazání
0 unregistered trial version EA 3.60 unregistered trial version E editov aná v ytv ořená EA 3.60 unregistered trial 0 unregistered trial version version E editace uživatelem
0 unregistered trial version EA 3.60 unregistered trial version E 0 unregisteredtisk trial version EA 3.60 unregistered trial version E uložení změn smazání
0 unregistered trial version EA 3.60 unregistered trial version E v ytištěná
uloženy změny
0 unregistered trial version EA tisk 3.60 unregistered trial version E 0 unregistered trial version EA 3.60 unregistered trial version E
13
Odhad doby potřebné k realizaci projektu 1. úvodní fáze
3 dny
seznámení se s problematikou, seznam požadavků seznam use-case
1 den 2 dny
2. uživatelská analýza
9 dní
návrh tříd podrobný návrh use-case oponentura konfirmace od klienta (včetně rezervy) dokončení finální podoby uživatelské analýzy
1 den 2 dny 1 den 4 dny 1 den
3 . design
6 dní
vlstní design konzultace s vývojem schůzky s project managerem
3 dny 2 dny 1 den
4. vývoj a testování
24 dní
dekompozice databázová vrstva aplikační a vizuální vrstva
2 dny 2 dny 10 dní
celkem 38 use-case 3 obtížné
= 10 dní
8 středně těžkých = 16 dní 27 lehkých CELKEM
= 20 dní 46 dní / 5 programátorů = 10 dní
testování rezerva dokumentace
3 dny 3 dny 4 dny
5. závěrečná fáze
5 dní
předávání "směrem nahoru" instalace u klienta školení klienta, konfigurace
3 dny 1 den 1 den
6 . opravy
4 dny
každá (optimisticky předpokládáme dvě)
2 dny
CELKEM
51 dní 14
(tj. zhruba 10 pracovních týdnů)
Tedy na projekt celkem (včetně rezervy):
3 měsíce
Odhad nákladů Předpokládám měsíc = 20 pracovních dnů osoba
konzultant uživatelský analytik designér project manager vývojáři a testeři (všichni celkem)
čistý čas strávený prací na projektu (dny)
plat (tis.Kč/měsíc, zaokrouhlený odhad)
5 9 6 5 60
daň z příjmů režijní náklady NÁKLADY CELKEM (tis.Kč/měsíc, (tis.Kč/měsíc) (tis.Kč/měsíc) odhad)
30 40 40 50 20
10 13 13 17 7
5 3 3 5 3
12 25 17 18 90
náklady celkem (tis.Kč)
162
zisk (20 %) (tis. Kč) rezerva (tis. Kč)
32 16
CELKEM
210
+ DPH
K ÚHRADĚ
46
256
Závěr: Odběrateli produktu naúčtujeme 255 900 Kč.
15