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