IB053 Analýza úspěšnosti předpovědi počasí  poskytované webovou službou  Zadávací dokumentace                                                Název projektu: IB053 Analýza úspěšnosti předpovědi počasí poskytované webovou  službou  Účel projektu: zápočtový příklad  Verze dokumentu: 1.0  Datum: 29.2.2016  Autor: Petr Steinmetz  Zadavatel: Petr Steinmetz  Řešitel: studenti IB053      1  Obsah Obsah  Cíl projektu  Úvod projektu  Součásti řešení projektu  Analytická část  Vývojová část (programování)        2        Cíl projektu Cílem projektu je vytvoření aplikace, která je napojená na webovou službu poskytující  aktuální stav počasí a předpověď. Aplikace zaznamenává dlouhodobě aktuální stav počasí a  aktuální předpověď na zvolený počet dnů a z tohoto záznamu spočítá průměrnou úspěšnost,  nejmenší a největší odchylku skutečného stavu od předpovědi za sledované období.  Aplikace komunikuje se službou přes její API.     Úvod projektu Projekt vytvoří (až) tříčlenný tým, úkoly pro jednotlivé členy jsou označeny [A] [B] [C]. Dílo je  rozděleno do několika modulů. Součástí řešení projektu je návrh jednotlivých modulů, který  řešitel sepíše do samostatného dokumentu a vytvoření modulů v souladu s návrhem.  Jednotlivé moduly je možné vytvořit v libovolném programovacím jazyku. Pokud ale půjde o  jiný jazyk než Java, C/C++, C# nebo Python, je nutno výběr konzultovat se zadavatelem.  Předání díla spočívá v předvedení funkčnosti, předání zdrojových textů mailem a obhájení  zdrojových textů před zadavatelem (bude velmi šťouravý) :­)    Součásti řešení projektu Projekt se skládá z části analytické a vývojové.    Analytická část ­ zvolit vhodnou webovou službu, např. OpenWeatherMap  ­ nastudovat API této služby [A]  ­ zvolit veličiny, jejichž úspěšnost se bude analyzovat (max. denní teplota, min. noční  teplota, déšť, oblačnosti, tlak, …?) [A]  ­ nastudovat základy komunikace v závislosti na API (SOAP/REST, XML/JSON, ...) [A]  ­ zvolit typ aplikace (GUI, WEB, služba OS/deamon) [A]  ­ zvolit způsob ukládání aktuálního stavu počasí a aktuální předpovědi [A]  ­ zvolit způsob prezentace výsledku v závislosti na zvoleném typu aplikace [A]  ­ rozdělit aplikaci na nezávislé moduly a sepsat zadání podle kterého bude možné  jednotlivé moduly naprogramovat (modul pro komunikaci s konkrétní webovou  službou by měl být naprosto samostatný a co nejmenší s jasným rozhraním, aby bylo  možné ho jednoduše nahradit jiným, který komunikuje s jinou webovou službou) [A]  ­ najít dostupné knihovny pro zvolený programovací jazyk, které usnadní vývoj [A]  ­ sepsat strategii testování aplikace [A]  ­ naplánovat programování modulů jednotlivým členům týmu se zohledněním  pracnosti ([A]­20%,  [B]­40%, [C]­40%) a zohledněním rozhraní mezi moduly (tj.  moduly mezi nimiž není přímé rozhraní nebude programovat stejná osoba)  ­ stanovit konfigurovatelné údaje aplikace (GPS souřadnice, délka předpovědi,  případně další údaje dle API, např. login/heslo apod.) [A]  3    Výsledkem této části jsou dokumenty. Dokumentaci každého modulu a plán postupu  testování je potřeba v průběhu řešení zaslat zadavateli k odsouhlasení.    Vývojová část (programování) ­ programování modulů dle rozdělení [A,B,C]  ­ testování, koordinace [A]    Úkolem koordinátora (osoba [A]) je   ­ rozdělit projekt mezi řešitele (včetně sebe)  ­ sledovat a mít přehled o průběhu práce jednotlivých řešitelů  ­ určit časový harmonogram a zajistit jeho dodržení  ­ přebírat a kontrolovat dokumenty s návrhem modulů  ­ přebírat a testovat dodané moduly    Předání hotového řešení je věcí všech řešitelů.    4