UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE

Podobné dokumenty
Obsah. Zpracoval:

Když jde řídit podnik formou SaaS, tak proč by to nemělo jít v případě státu

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

InternetovéTechnologie

Formy komunikace s knihovnami

Vývoj informačních systémů. Obecně o IS

Informační média a služby

Znalostní systém nad ontologií ve formátu Topic Maps

PŘÍLOHA C Požadavky na Dokumentaci

RESTful API TAMZ 1. Cvičení 11

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

1. Integrační koncept

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Komunikace mezi businessem a IT

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

Úvod. Klíčové vlastnosti. Jednoduchá obsluha

Testing as a Service. Přístupné, flexibilní a cenově výhodné řešení pro ověření kvality softwaru. Kompletní portfolio služeb testování softwaru

IS pro podporu BOZP na FIT ČVUT

Podnikové informační systémy

Outsourcing v podmínkách Statutárního města Ostravy

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Moderní metody automatizace a hodnocení marketingových kampaní

Návrh softwarových systémů - architektura softwarových systémů

EXTRAKT z technické normy ISO

Integrace datových služeb vědecko-výukové skupiny

Problémové domény a jejich charakteristiky

Výčet strategií a cílů, na jejichž plnění se projektový okruh podílí: Strategický rámec rozvoje veřejné správy České republiky pro období

Úvod do projektu. Standardizace provozních funkcí ÚSC. Součást projektu Korporátní styl řízení ve veřejné správě

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

TÉMATICKÝ OKRUH Softwarové inženýrství

MBI - technologická realizace modelu

Stav řešení Enterprise Architektury na Moravskoslezském kraji

PRODUKTY. Tovek Tools

P R O FIL U NICO RN CO LLEGE

Desigo Control Point řešení pro ovládání a monitorování budov siemens.cz/desigo

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Metodika analýzy. Příloha č. 1

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Operační program Lidské zdroje a zaměstnanost

VIZE INFORMATIKY V PRAZE

Slovenská spořitelna:

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Vývoj informačních systémů. Přehled témat a úkolů

Damas User Fórum Unicorn Universe. Hotel Senec, 28. března Lukáš Pavlica

SMART GRID SYSTEM TECHNOLOGIE PRO ANALYTIKU A SPRÁVU ENERGETICKÝCH SÍTÍ. Představení společnosti Analyzátor sítě

EXTRAKT z české technické normy

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Veřejné cloudové služby

INFORMAČNÍ SYSTÉMY (IS) Ing. Pavel Náplava Katedra počítačů K336, ČVUT FEL Praha 2004/2005

Cloud Slovník pojmů. J. Vrzal, verze 0.9

Vývoj informačních systémů. Přehled témat a úkolů

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

EXTRAKT z technické normy CEN ISO

Seznámení s přípravou platformy pro zajištění služeb dodávaní dokumentů včetně MVS: ZÍSKEJ

Česká zemědělská univerzita v Praze

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

Komponentový návrh SW

Webové portály pro Hlavní město SR a Dopravní podnik Bratislava

INFORMAČNÍ SYSTÉMY , Ing. Jiří Mráz

Lotus Quickr - ECM Integrace s LD/LN aplikacemi. Ing. Josef Homolka VUMS Legend

PRODUKTY. Tovek Tools

CA AppLogic platforma typu cloud pro podnikové aplikace

Analýza a Návrh. Analýza

Využití ADONIS a APP v podmínkách banky

WORKFLOW. Procesní přístup. Základ perspektivního úspěšného podnikového řízení. Funkčnířízení založené na dělbě práce

ArcGIS Online Subscription

Hynek Cihlář Podnikový architekt Od Indoše ke Cloudu

Jak se bude vyvíjet Tvá kariéra?

End-to-end testování. 26. dubna Bořek Zelinka

Vytvoření portálu odboru strukturálních fondů Ministerstva vnitra a zajištění jeho hostingu na serveru dodavatele

CineStar Černý Most Praha

Elektronické formy vzdělávání úředníků

Konsolidace zálohování a archivace dat

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

Jan Horák. Pilíře řešení

MANAGEMENT Procesní přístup k řízení organizace. Ing. Jaromír Pitaš, Ph.D.

Business Intelligence

Procesní přístup k projektům informačních systémů. RNDr. Vladimír Krajčík, Ph.D.

Wonderware Information Server 4.0 Co je nového

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Datová věda (Data Science) akademický navazující magisterský program

Návrhář podnikových procesů

CISAŽP. Celostátní informační systém pro sběr a hodnocení informací o znečištění životního prostředí

Firemní profil FG Forrest

BEZPEČNÁ SPRÁVA KLÍČŮ POMOCÍ HSM. Petr Dolejší Senior Solution Consultant

Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje

Implementace cloudové aplikace

Cíle a měřitelné parametry budování a provozu egc. Příloha č. 1 Souhrnné analytické zprávy

Vliv evaluací ESF MPSV na systémové změny

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Aplikační programové vybavení

Efektivnější systém pro vyřizování požadavků na IT v ČMSS

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

Transkript:

UNICORN COLLEGE Katedra informačních technologií BAKALÁŘSKÁ PRÁCE Návrh aplikace +4U Lovecký klub dle standardu UAF Autor BP: Vedoucí BP: Štěpán Král Ing. Marek Beránek, Ph.D. 2018 Praha

Čestné prohlášení Prohlašuji, že jsem svou bakalářskou práci na téma Návrh aplikace +4U Lovecký klub dle standardu UAF vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím výhradně odborné literatury a dalších informačních zdrojů, které jsou v práci citovány a jsou také uvedeny v seznamu literatury a použitých zdrojů. Jako autor této bakalářské práce dále prohlašuji, že v souvislosti s jejím vytvořením jsem neporušil autorská práva třetích osob a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb. V. Dne.... (Štěpán Král)

Poděkování Děkuji vedoucímu bakalářské práce Ing. Markovi Beránkovi, Ph.D. za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce.

Návrh aplikace +4U Lovecký klub dle standardu UAF Design of application +4U Hunting Club according to UAF standards 6

Abstrakt Tato bakalářská práce se zabývá návrhem aplikace Lovecký klub dle standardu UAF. Jedná se o aplikaci na správu lovů, úlovků a lovců v rámci jedné honitby. V první části je představen Unicorn Application Framework, zejména pak jeho technická část uuapp Framework, včetně technologií souvisejících s aplikací a jejím návrhem. Déle je představena struktura technické dokumentace, jak ji UAF předepisuje a v závěru této části je čtenář uveden do problematické domény lovectví. V druhé části je formou rozšířeného shrnutí představen postup samotné tvorby návrhu a technické dokumentace pro tuto konkrétní aplikaci. Nedílnou součástí této práce je příloha A obsahující kompletní technickou dokumentaci aplikace +4U Lovecký klub. Klíčová slova: UAF, uuapp Framework, technická dokumentace, design aplikace, lovectví Abstract This bachelor thesis deals with the design of the Hunting Club application according to the UAF standards. It is an application for management of hunts, catches and hunters in one hunting ground. The first part introduces the Unicorn Application Framework, especially its uuapp Framework technical part, including application-related technologies and its design. The structure of the technical documentation is also presented, as the UAF prescribes it, and at the end of this section, the reader is introduced to the problematic domain of hunting. The second part describes the procedure of the application design and the technical documentation for this particular application in form of the extended summary. An integral part of this work is a supplement containing the complete technical documentation of the application Hunting Club. Keywords: UAF, uuapp Framework, technical documentation, application design, hunting 7

Obsah Úvod... 12 Teoretická část... 13 1 Unicorn Application Framework... 13 1.1 O společnosti Unicorn... 13 1.1.1 Unicorn Systems... 14 1.1.2 Plus4U... 14 1.1.3 Unicorn Universe... 15 1.1.4 Unicorn College... 15 1.2 Představení UAF... 15 1.2.1 Klíčové principy... 18 1.2.2 Výrobní linky... 20 1.2.3 Evangelisté... 21 2 Dekompozice uuapp... 23 2.1 uuapp Framework... 23 2.1.1 Slovník pojmů v uuapp Frameworku... 24 2.1.2 Vývojový proces uuapp... 28 2.1.3 uuapp Team... 29 2.2 Architektura uuapp... 30 2.2.1 Více vrstvá architektura uuapp... 31 2.2.2 Logický pohled na uuapp architekturu... 33 2.3 Topologie uuapp... 34 3 Technologie v uuapp... 36 3.1 Klientská část uuapp... 36 3.1.1 Single Page Application... 36 3.1.2 Responzivní design... 37 3.1.3 Knihovna komponent uu5... 38 3.1.4 Další knihovny komponent pro tvorbu uživatelských rozhraní... 40 3.2 Serverová část uuapp... 40 8

3.2.1 uuappserver... 41 3.2.2 Datové úložiště uuappdatastore... 43 3.2.3 uucloud... 43 3.3 Komunikace klient server... 44 4 Principy tvorby technické dokumentace dle UAF... 46 4.1 Technologie pro tvorbu designu uuapp... 46 4.1.1 Aplikace uubookkit... 46 4.1.2 Knihovny komponent uuappdesignkit a uucodekit... 48 4.1.3 uubml Draw... 49 4.2 Struktura designu uuapp... 50 4.2.1 Vítejte... 51 4.2.2 Obsah... 51 4.2.3 Abstrakt... 51 4.2.4 Předmluva... 51 4.2.5 Koncepty... 51 4.2.6 Business model... 51 4.2.7 uuappstructure... 52 4.2.8 uusubapp... 52 4.2.9 Deployment, provoz... 53 4.2.10 Vývojové prostředí... 54 4.2.11 Návody... 54 4.2.12 Komponenty... 54 4.2.13 Release Notes... 54 4.2.14 V přípravě... 54 4.2.15 O knize... 54 4.2.16 O aplikaci uubookkit... 54 5 Představení problematické domény lovectví... 55 5.1 Základní pojmy... 55 5.1.1 Lovectví a myslivost... 55 5.1.2 Honitba... 55 5.1.3 Lovec... 55 9

5.1.4 Zvěř... 56 5.1.5 Lovecké zbraně... 56 5.1.6 Lovecká kynologie... 56 5.1.7 Lovecká zařízení... 56 5.2 Způsoby lovu zvěře... 56 5.2.1 Čekaná... 56 5.2.2 Šoulačka... 57 5.2.3 Hon... 57 5.3 Překlad pojmů do angličtiny... 57 Praktická část... 58 1 Návrh vhodného řešení... 58 1.1 Zadání a požadavky zákazníka... 58 1.1.1 Hlavní požadavky na aplikaci... 58 1.1.2 Doplňující požadavky na aplikaci... 59 1.2 Průběh projektu... 59 2 Samotná dokumentace - Rozšířené shrnutí... 61 2.1 Business Model... 61 2.1.1 Business role a procesní dekompozice... 63 2.2 2.3 Struktura aplikace... 65 Serverová část... 65 2.3.1 uuappobjectstore primary... 66 2.3.2 uu5cmd List... 67 2.4 Klientská část... 67 2.4.1 uu5route List... 68 2.4.2 uu5component List... 70 2.4.3 Mock up... 72 Závěr... 75 Conclusion... 76 Seznam použitých zdrojů... 78 Seznam obrázků... 83 10

Seznam tabulek... 84 Seznam příloh... 85 11

Úvod Téma bakalářské práce jsem si zvolil proto, že návrh aplikací či informačních systémů je mi velice blízký. Je zapotřebí skloubit technické znalosti, kreativitu a v neposlední řadě komunikovat se zadavatelem zakázky. S nadšením jsem tedy využil možnosti navrhnout aplikaci pro reálného klienta a získat tak cenné praktické zkušenosti. Rovněž mne motivovala možnost blíže se seznámit s progresívními technologiemi, které Unicorn Application Framework (UAF) zahrnuje. K získání potřebných znalostí pro zpracování tématu jsem ve společnosti Unicorn absolvoval několik interních školení pro návrháře i vývojáře UAF aplikací. Hlavním cílem této práce je vytvoření návrhu aplikace +4U Lovecký klub formou technické dokumentace podle standardu Unicorn Application Framework v takové míře, aby bylo možno aplikaci podle návrhu začít vyvíjet. Vedlejší cíl je předpokladem pro splnění cíle hlavního, a tím je důkladné seznámení mne jako autora práce, tak čtenáře, s velkým množstvím technologií, jenž UAF obsahuje. Práce se skládá z části teoretické, praktické části a z přílohy. V teoretické části uvádím čtenáře do problematiky Unicorn Application Framework a kompletní sadu teoretických znalostí, nutných pro návrh aplikace nad UAF. Tedy postupně představuji dekompozici aplikací vyvíjených nad tímto frameworkem, používané technologie, princip tvorby samotné technické dokumentace dle UAF a business prostředí, kde bude navrhovaná aplikace používána Nejrozsáhlejší částí práce je samotná technická dokumentace aplikace +4U Lovecký klub, tzv. design. Jelikož UAF jasně předepisuje formu a použité technologie pro návrh aplikace, je dokumentace vytvořena v online aplikaci uubookkit a exportována do PDF souboru jako příloha A této práce. V praktické části shrnuji požadavky na aplikaci, postup tvorby dokumentace a formou rozšířeného shrnutí poté představuji obsah technické dokumentace. Práce je mi přínosem zejména v získaných znalostí UAF a nasměrování mé další kariéry jako designéra a vývojáře UAF aplikací. Pro zadavatele je přínosem technická dokumentace, podle které bude moci být implementována zadaná aplikace. 12

Teoretická část 1 Unicorn Application Framework Na samotném začátku představím Unicorn Application Framework (UAF), vysvětlím, čím je tento framework jedinečný a uvedu tak celou práci do kontextu s UAF. Nejprve však představím samotnou společnost Unicorn, jenž za vývojem a rozvojem této progresívní technologie stojí. 1.1 O společnosti Unicorn Unicorn je dynamická skupina společností poskytující komplexní služby v oblasti informačních systémů a informačních a komunikačních technologií. Již od roku 1990 je jejím posláním přinášet klientům prostřednictvím špičkových informatických produktů a služeb dodávaných v dohodnuté kvalitě, kvantitě, termínu a rozpočtu konkurenční výhodu a vysokou přidanou hodnotu. 1 Skupina Unicorn byla založena v roce 1990 Vladimírem Kovářem, jenž je předsedou představenstva Unicorn a. s. Jak jsem již uvedl, společnost poskytuje komplexní služby v IT, zejména v oblasti software, a je jednou z nejúspěšnějších českých IT firem. Unicorn dodává svá IT řešení největším českým i zahraničním partnerům. Hlavní odvětví, pro která společnost dodává informační systémy, jsou: Finančnictví (36%), energetika (27,9%), výroba (7,8%), informační technologie (5,8%), obchod (4,7%). Nejvýznamnějšími zákazníky jsou tyto konkrétní společnosti: Česká spořitelna (7,6%), Komerční banka (7,5%), Home Credit (7,4%), ŠKODA AUTO (6,3%) 1 UNICORN. Skupina Unicorn. Unicorn [online]. 2018 [cit. 2018-11-04]. Dostupné z: https://unicorn.com/cz/unicorn-group/ 13

Fakt, že tato česká společnost je skutečně mezinárodním hráčem, dokazuje podíl produkce z pohledu zemí, kam Unicorn dodává své služby a produkty, kde 59% je Česká republika a zbylých 41% jsou státy Evropy a také například Asie. 2 Holding se skládá z velkého počtu společností, níže představím ty nejvýznamnější z pohledu této práce. Ostatní firmy však neméně významnou měrou přispívají k celkovém chodu holdingu, ať se jedná o lidské zdroje, vybavení a provoz a další. 1.1.1 Unicorn Systems Dodavatel komplexních IT řešení pro ty největší zákazníky, zejména korporace, kterým dodává špičkové a velice rozsáhlé systémy, zejména z oblastí bankovnictví, pojišťovnictví, energetiky, výroby, obchodu, komunikace a médií nebo veřejné správy. Unicorn Systems je koncipován a řízen jako softwarová továrna, rozdělená na menší celky, jednotlivé výrobní linky. Díky tomu dokáže společnost vytvářet nezávisle na sobě produkty a systémy pro velký počet zákazníků (v současnosti více než 300) a v takovém rozsahu. Mezi nejvýznamnější produkty společnosti patří: ACMart řešení pro správu a údržbu infrastruktury provozovatelů přenosových soustav. Damas platforma pro tvorbu informačních systémů v energetice. Finno produktová řada podporující business procesy v bankovnictví. FlowArt produktová řada pro digitalizaci, sdílení a správu dokumentů a informací. Lancelot řešení pro podporu obchodování s energetickými komoditami. Sinis produktová řada podporující business procesy v pojišťovnictví. Inca řešení pro řízení podmořských kabelů. Unicorn Universe digitální stavebnice informačních systémů. 3 1.1.2 Plus4U Společnost provozuje stejnojmennou službu Plus4U, která poskytuje jednotlivcům, živnostníkům, firmám a dalším subjektům on-line řešení pro komunikaci, sdílení i ukládání informací a spolupráci. Služba umožňuje interakci mezi těmito subjekty, ale také jejich 2 UNICORN. Unicorn Quarter Assessment 2018/Q3. Unicorn [online video]. 2018 [cit. 2018-11-04]. Dostupné z: https://www.youtube.com/watch?v=e4sgylnthee 3 UNICORN SYSTEMS. Profil společnosti. Unicorn [online]. 2018 [cit. 2018-10-30]. Dostupné v PDF z: https://unicorn.com/files/unicorn-company-profile-cz.pdf 14

řízení, správu a organizaci. Služba Plus4U je postavena na již zmíněné digitální stavebnici Unicorn Universe. 1.1.3 Unicorn Universe Společnost vyvíjí zejména vlastní technologie, jenž jsou využívány jak uvnitř Unicornu, tak na projektech pro jeho zákazníky. Technologie jsou také prostřednictvím dalších společností nabízeny koncovým uživatelům i společnostem jako samostatné produkty. Unicorn Universe stojí zejména za vývojem Unicorn Application Framework (UAF), na jehož základech a principech ze založen návrh aplikace pro tuto práci. Na vývoji UAF se však podílí přímo i nepřímo také týmy z ostatních společností Unicornu. UAF je progresivní framework, využívající nejmodernější informační technologie a bude blíže představen v další kapitole. 4 1.1.4 Unicorn College Unicorn College je soukromá vysoká škola, která nabízí vysokoškolské vzdělání v oblasti informačních a komunikačních technologií, ekonomie a managementu. Vysoká škola v současnosti nabízí bakalářské studijní obory Management ICT projektů, Informační technologie a Ekonomika a management. 5 Pod Unicorn College spadá také organizace Top Gun Academy, jenž zajišťuje systematické vzdělávání všech spolupracovníků ve společnostech skupiny Unicorn. V současnosti je většina školících programů zaměřena právě na novou technologii UAF. 1.2 Představení UAF V této podkapitole představím základní principy UAF, ze kterých dále podrobněji rozeberu ty, které jsou důležité pro samotný návrh aplikací. Přesné znění definice frameworku zní následovně. Unicorn Application Framework (UAF) je referenční základ znalostí každého IT specialisty ve společnosti Unicorn. Řeší komplexně potřeby Unicornu s ohledem na naši klíčovou schopnost - dobře vyrábět software. Každá část výroby software je v Unicornu standardizována, resp. pokud ještě není, tak se pracuje výhradně v souladu s dobrou odvětvovou praxí a ke standardizaci směřujeme. 6 4 UNICORN. Skupina Unicorn. Unicorn [online]. 2018 [cit. 2018-11-04]. Dostupné z: https://unicorn.com/cz/unicorn-group/ 5 UNICORN COLLEGE. unicorncollege.cz. Unicorn [online]. 2018 [cit. 2018-11-04]. Dostupné z: https://www.unicorncollege.cz/ 6 Kolektiv autorů. Úvod do UAF. Unicorn [online]. 2018 [cit. 2018-11-08]. Dostupné z: 15

Architektura UAF je definována slovním spojením Unicorn Mobile-First IoT- Ready Cloud Architecture. To znamená, že vyvíjené aplikace jsou vyvíjeny primárně pro potřeby mobilních zařízení, jelikož ta jsou dnes uživateli preferována (více než 60% 7 ) oproti desktopovým zařízením a notebookům. Samozřejmě i pro tato zařízení jsou aplikace přizpůsobeny a uživatelsky přívětivé. Pojem IoT-Ready znamená, že architektura již nyní počítá s masovým nástupem internetu věcí, který odborníci z celého Světa predikují (miliardy zařízená využívající IoT). UAF primárně počítá s nasazením aplikací v cloudu, konkrétně v uucloud, který je součástí frameworku. Nicméně aplikace lze provozovat i na klasických serverech. Jedním ze strategických cílů společnosti Unicorn je začlenění UAF do co největšího počtu jeho projektů, jelikož standardizace procesů přináší úspory na straně časové náročnosti vývoje i údržby software. S tím úzce souvisí potřeba proškolení všech IT pracovníků na tuto novou technologii. V aktuálním třetím kvartálu roku 2018 již úspěšně absolvovalo některé z technologických školení 300 IT specialistů. Dalších 202 spolupracovníků z řad podpůrných rolí, zejména administrativních, absolvovalo školení UAF Introduction, jelikož dílčí technologie UAF jsou využívány ve všech částech společnosti, nejen ve vývoji. Dalších 351 studentů se účastní některého z aktuálních běhů školení. Dohromady tedy bylo na UAF proškoleno již 853 ze všech 2189 pracovníků společnosti Unicorn (údaje jsou k datu 19. 10. 2018). 8 UAF je platforma pro tvorbu zejména cloudových aplikací a informačních systémů s bohatým uživatelským rozhraním, založeným primárně na nejmodernějších webových technologiích. Mezi klíčové vlastnosti patří možnost vyvíjet a provozovat aplikace univerzálně a jednotně pro zařízení všech velikostí a způsobů ovládání. 8 Odpadá tak nutnost vyvíjet verze aplikace pro různé platformy zvlášť. Unicorn Application Framework je více než jen softwarovým frameworkem, tím je jeho část zvaná uuapp Framework. UAF obsahuje klíčové principy a myšlenky pro návrh, vývoj, provoz a servis softwarových řešení. Pro jednotlivé výrobní linky definuje dvanáct podnikových procesů a postupy pro výrobu informačních systémů. Zahrnuje popis referenční architektury, poskytuje již zmíněný uuapp Framework, komponenty a nástroje https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-86b4d5a4a030400784764ebdb972bbda/book/page?code=introduction_00 7 ENGE, Eric. Mobile vs Desktop Usage in 2018: Mobile takes the lead. stonetemple.com [online]. 2018 [cit. 2018-11-08]. Dostupné z: https://www.stonetemple.com/mobile-vs-desktop-usage-study/ 8 UNICORN. Unicorn Quarter Assessment 2018/Q3. Unicorn [online video]. 2018 [cit. 2018-11-08]. Dostupné z: https://www.youtube.com/watch?v=e4sgylnthee 16

pro tvorbu software s důrazem na kvalitní a kompletní dokumentaci a praktické příklady. Zahrnuje také školicí programy na UAF technologie, databázi znalostí zvanou Knowledge Base a je podporován týmem UAF Evangelistů, který se stará jak o rozvoj technické i uživatelské dokumentace, tak o pomoc jednotlivým týmům a projektům vyvíjejícím produkty pro konečné zákazníky Unicornu. 9 9 UNICORN. Unicorn Application Framework. Unicorn [online]. 2018 [cit. 2018-11-10]. Dostupné z: https://unicorn.com/cz/unicorn-application-framework 17

Obrázek 1 zobrazuje dekompozici UAF na jednotlivé části, které dále popisuji. Obrázek 1: Dekompozice UAF Zdroj: https://unicorn.com/img/unicornapplicationframework/unicorn-uaf-cz.png 1.2.1 Klíčové principy Unicorn Approach Definuje přístup k podniku a podnikání. Na základě zvoleného portfolia produktů a služeb s ohledem na preferovanou dělbu práce, technologie a odhadovaná rizika je odvozena organizační struktura, pracovní postupy podnikových procesů pro všechny zúčastněné role. Dále jsou zdůrazněny klíčové produkty a 18

meziprodukty a jejich struktura a popis. Podnik pak předvídatelně a přehledně plní účel, pro který byl zřízen. 10 Dekompozice ICT Hierarchický rozpad komplexní problematiky na jednotlivé základní, snadno uchopitelné elementy. Díky tomu lze transformovat přístup Unicornu na dekompozici podniku a ICT zákazníka, což vede k lepší a efektivnější spolupráci. 11 Procesy zajišťující funkční IS Konzultace Integrace Vývoj Provoz Primární podpora Sekundární podpora Infrastruktura Vzdělávání 5 + 1 znalostí při vývoji software Proces proces vývoje software IT informační technologie Business znalost problematické domény zákazníka Klient pochopení konkrétních procesů a prostředí společnosti klienta Týmová práce schopnost řídit a být řízen Znalost jazyků mezinárodní spolupráce je des v IT klíčová. 10 klíčových principů Unicornu Systémový přístup Udržování pořádku zvyšuje výkonnost. Delegace kompetencí Delegování vede k růstu jak jednotlivců, tak podniku. Zaměření na zákazníky a spolupracovníky kvalitní produkty a služby pro zákazníky stojí na spokojených spolupracovnících. 10 Kolektiv autorů. Unicorn 2018. Unicorn [online]. 2018 [cit. 2018-11-10]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- a399f9781bea43e8a88d015338d54620/book/page?code=89849591 11 Kolektiv autorů. Úvod do UAF. Unicorn [online]. 2018 [cit. 2018-11-10]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-86b4d5a4a030400784764ebdb972bbda/book/page?code=introduction_00 19

Orientace na cíl V kterýkoli okamžik musí všichni vědět, co je jejich cílem. Standardizace procesů Standardy vedou k efektivnějšímu řešení opakujících se problémů a vyšší efektivitě. Zbývá více času na nestandardní situace. Průběžné hodnocení Jasně měřitelné plány a cíle jsou lépe vyhodnocovány. Sdílení informací Je třeba zajistit všem přiměřené informace k jejich práci, pro dosažení vysoké samostatnosti. Paměť a poučení Učení se z chyb a eliminace těch opakujících se. Soustavné zlepšování Je třeba věci nejen dobře dělat, ale také zlepšovat a zefektivňovat. Stabilita a bezpečnost - Růst podniku musí vycházek z pevných a stabilních základů a musí být postaven na bezpečné struktuře. 12 1.2.2 Výrobní linky Výrobní linky zapadají do konceptu Unicornu jako softwarové továrny. Cílem výrobních linek je schopnost vytvářet opakovaně, predikovatelně a efektivně softwarová řešení přinášející vysokou přidanou hodnotu pro naše zákazníky. 13 Preferovaná architektura je již zmíněná Unicorn Mobile-First IoT-Ready Cloud Architecture a je implementována ve čtyřech serverových variantách pro jazyky NodeJS, Java,.NET a Ruby. Tyto implementace jsou sdruženy v technologii uuapp Framework, kterou dekomponuji a blíže představím v dalších kapitolách. Proces Metodika Unicorn Universe Process (uup) pro řízení podniků a organizací s cílem řídit podrobněji, nežli je to na trhu obvyklé a za využití informačních technologií. Metodika uup v každém podniku Unicornu zavádí 5 klíčových a 7 podpůrných procesů. Klíčové procesy: Strategie Marketing Prodej 12 Kolektiv autorů. Úvod do UAF. Unicorn [online]. 2018 [cit. 2018-11-10]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-86b4d5a4a030400784764ebdb972bbda/book/page?code=10_klicovych_principu_unicorn_systems 13 Kolektiv autorů. Úvod do UAF. Unicorn [online]. 2018 [cit. 2018-11-10]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-86b4d5a4a030400784764ebdb972bbda/book/page?code=introduction_00 20

Produkce Péče Podpůrné procesy: Management Rozvoj, věda, výzkum Lidé Finance Know-how Majetek Systém a podpora 14 Komponenty a knihovny Zahrnuje samotnou architekturu, připravené komponenty a knihovny, ze kterých se staví samotný software. Kromě zdrojových kódu obsahuje také kompletní technickou i uživatelskou dokumentaci a odborná školení na konkrétní technologie. Nástroje Definuje výběr a konfiguraci konkrétních technologie a nástroje pro návrh, vývoj, testování, nasazení, provoz a podporu aplikace. Databáze znalostí Knowledge Base vstupní portál sdružující technickou i uživatelskou dokumentaci pro všechny role podílející se na vývoji aplikací nad Unicorn Application Framework. Obsahuje kompletní seznamy knih dokumentací, sdružené do logických kapitol Základní informace, Návrh, včetně ukázky návrhů referenčních aplikací, Uživatelská rozhraní, Aplikační server, uucloud a šablony projektů a dokumentací. Obsahuje také novinky z UAF a Fórum a je dostupná na URL https://docs.plus4u.net. 1.2.3 Evangelisté Tým UAF Evangelistů je dedikovaný tým seniorních odborníků, jejichž hlavní pracovní náplní je podpora všech, kteří používají Unicorn Application Framework a zejména jeho 14 Kolektiv autorů. Unicorn 2018. Unicorn [online]. 2018 [cit. 2018-11-10]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- a399f9781bea43e8a88d015338d54620/book/page?code=89849591 21

klíčovou produkční linku uuapp Framework. Členové týmu mají hlubokou aktivní znalost podporovaných produktů a technologií UAF. Hlavní náplní UAF Evangelistů popisuji níže. Certifikace aplikací Proces certifikace je nutný před uvedením produktu či služby do ostrého provozu. Certifikace se týká kategorií High-Level-Concept, implementace, zadání migrace, migrace, přípravy testů a testování. UAF Support Řešení problémů a eliminace technických rizik na konkrétních projektech a pomoc při startování projektů nových formou workshopů. UAF Forum Moderování diskuze na Knowledge Base, včasná reakce na dotazy. UAF Knowledge Base Tým UAF Evangelistů přímo zodpovídá za znalostní bázy. UAF Training Programs Garance školících programů UAF v rámci Top Gun Academy uuapp Sales Representative školení pro obchodníky. uuapp Qualified Stakeholder školení pro zadavatele aplikací. uuapp Designer školení pro návrháře aplikací či analytiky. uuapp Developer školení pro vývojáře. uuapp Architect školení pro softwarové architekty. UAF Overview školení pro ostatní role mimo IT v rámci společnosti. UAF Open Sessions Organizace Open Sessions, které pravidelně přinášejí informace ze světa UAF na různá témata, ať se jedná o novinky v UAF a uuapp Framework, rady či postupy, technologické zajímavosti nebo prezentace realizovaných aplikací. UX Evangelisté Dedikovaný tým evangelistů zaměřený na User Experience (uživatelská zkušenost). Kromě konzultací a certifikací také přímo definují vhled komponent v UAF a podílejí se na realizaci klíčových projektů. 22

2 Dekompozice uuapp Jak jsem již zmínil v předešlé kapitole, Unicorn Application Framework obsahuje sadu klíčových principů pro řízení společnosti, procesů vývoje software i samotnou technologii. Pro účely této práce se dále zaměřím právě na technologickou část celého UAF, která je reprezentována uuapp Frameworkem, též označovaným jako hlavní výrobní linka UAF. Zkratka uuapp znamená Unicorn Universe Application, tedy nazýváme tak aplikaci založené na UAF. Zatímco Unicorn Application Framework je výše popsaná sada principů a postupů, uuapp Framework je pak framework v pravém slova smyslu. Framework (aplikační rámec) je softwarová struktura, která slouží jako podpora při programování a vývoji a organizaci jiných softwarových projektů. Může obsahovat podpůrné programy, knihovny API, podporu pro návrhové vzory nebo doporučené postupy při vývoji. 15 2.1 uuapp Framework Tento framework kromě samotného zdrojového kódu zahrnuje také zejména rozsáhlou dokumentaci obsahující komplexní sadu návodů, komponent, nástrojů, referenčních aplikací a přímé podpory formou školících programů a již zmíněného týmu UAF Evangelistů. Cílem frameworku je standardizovat proces výroby software od návrhu přes vývoj až po nasazení, provoz a údržbu aplikací. Díky standardizaci všech procesů vývoje lze znovu používat již v minulosti vytvořené komponenty, jak ty jenž framework obsahuje v základu, tak vytvořené v rámci jiných projektů. Standardizace také usnadňuje případy, kdy náhle vývojový tým opustí vývojář a ten je pak snadněji nahrazen novým, jelikož ten již zná potřebnou technologii a může plynule pokračovat v práci na projektu. Díky tomu je možné například i předat vývoj aplikace zcela jinému týmu. Standardizace zvyšuje efektivitu na všech úrovních, což přináší značné úspory na straně zdrojů a tedy konkurenční výhodu jak pro Unicorn, tak jeho zákazníky. UAF architektura je popisována jako Unicorn Mobile-First IoT-Ready Cloud Architecture. Níže vysvětlím jednotlivé složky tohoto označení. 16 Unicorn Tato společnost stojí za vývojem frameworku. 15 WIKIPEDIA. Framework. Wikipedia [online]. 2018 [cit. 2018-11-12]. Dostupné z: https://cs.wikipedia.org/wiki/framework 16 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-13]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book 23

Mobile-First Aplikace, ale i informační systém, jsou vyvíjeny primárně pro mobilní zařízení, desktopové verze front-endu jsou až druhotné, ovšem nikoliv opomenuté. Tato potřeba vyvíjet software primárně pro mobilní zařízení vychází z aktuálního podílu mobilních a desktopových zařízení, kdy v roce 2016 bylo k přístupu k aplikacím uživateli využito těch mobilních v 57%, v roce 2017 pak již v 63% případů. 17 Dle stávajícího trendu lze také na konci roku 2018 očekávat 6% nárůst v použití mobilních zařízení. Mobilní zařízení jsou využívaný již také ve firemní sféře a výrobě, zejména ve formě tabletů. IoT-Ready Zkratka znamená Internet of Things, neboli internet věcí. Jedná se o systém vzájemně propojených zařízení, mechanických či digitálních strojů a jiných objektů, která jsou opatřena jedinečným identifikátorem a schopností přenášet data přes síť, jak vnitřní tak například internet, aniž by vyžadovala interakci s člověkem. Příkladem může být například chytrá lednička, která sama objednává chybějící potraviny. Dle odhadu společnosti Gartner bude aktivních v roce 2020 kolem 20 miliard zařízení z kategorie IoT. 18 Cloud - Obecný termín pro poskytování hostovaných služeb přes internet. V případě uuapp Frameworku hovoříme o úložišti, kde nejen provozujeme aplikace a informační systémy, ale jsou zde ukládána data již během vývoje a testování. Výhodou je jednoduchost pro nasazení a provoz, elasticita a tedy snadné horizontální škálování a v neposlední řadě nižší cena, jelikož lze zákazníkům cloudu účtovat pouze ty zdroje, které k provozu aplikací a systémů skutečně využívají. V uuapp Frameworku je zahrnut cloud vlastní pod názvem uucloud a popíši jej později v kapitole o technologiích. 19 2.1.1 Slovník pojmů v uuapp Frameworku V uuapp Frameworku se používá mnoho pojmů a zkratek, které je třeba si představit. Některé z nich jsou obecně známé, ale v uuapp Frameworku často používané, většina z nich je však velice specifická. V tabulce 1 popíši tyto všechny pojmy, aby nebylo zapotřebí je dále vysvětlovat. Pojmy obsahující v názvu uuapp se mohou uvádět i bez tohoto slova, tedy například uuappbinarystore je to samé jako uubinarystore. 17 ENGE, Eric. Mobile vs Desktop Usage in 2018: Mobile takes the lead. stonetemple.com [online]. 2018 [cit. 2018-11-13]. Dostupné z: https://www.stonetemple.com/mobile-vs-desktop-usage-study/ 18 ROUSE, Margaret. Internet of things (IoT). techtarget.com [online]. 2018 [cit. 2018-11-13]. Dostupné z: https://internetofthingsagenda.techtarget.com/definition/internet-of-things-iot 19 ROUSE, Margaret. Cloud computing. techtarget.com [online]. 2012 [cit. 2018-11-13]. Dostupné z: https://searchcloudcomputing.techtarget.com/definition/cloud-computing 24

Tabulka 1: Slovník pojmů v uuapp Frameworku Pojem API uuapp uuappbinarystore uuappclient uuappdatatype uuapperrormap uuappnodeset uuappobjectstore uuappprofile uuappserver Popis Application Programming Interface. Rozhraní aplikace, které umožňuje s aplikací komunikovat zvenčí. Software navržený tak, aby poskytoval sadu funkčností, úloh nebo aktivit, které přidají uživateli přidanou hodnotu. Často se jedná o aplikaci nebo informační systém. Datové úložiště pro perzistentní ukládání a správu binárních dat uuapp. Komponenta poskytuje API pro volání commandů (uucmd) na server a přijímání dat zpět ze serveru. Datový typ. uuapp Framework podporuje kromě standardních datových typů také vlastní, specifické pro tuto technologii, jako například uuidentity, uu5string a další. Nezbytný atribut všech dtoout. Jsou zde zapisovány veškeré chyby a varování, které nastanou během vykonávání u commandu (uucmd) na serveru. Definuje sadu logicky identických serverů, které duplikují specifickou uusubapp. Může sloužit například jako laod-balancer (vyrovnávač zátěže), může dynamicky spravovat aktuální potřeby aplikačních serverů na zvýšení výpočetního výkonu v případě větší zátěže. Datové úložiště pro perzistentní ukládání a správu strukturovaných dat uuapp zvaných uuobject. Seskupuje sadu funkčností (případů užití) specifické uusubapp, které k sobe logicky patří v rámci business procesu. Tuto sadu funkčností přidělujeme konkrétním uživatelům, jenž ji mohou tyto funkčnosti spouštět. Poskytuje prostředí pro spouštění případů užití. Typicky poskytuje správu příchozích požadavků, validaci, autorizaci a autentizaci uživatelů, správu chyb, monitoring, perzistenci, logování a cachování. 25

uuappworkspace Virtuální prostor, který logicky propojuje strukturovaná a nestrukturovaná (binární) data pro potřeby konkrétních uživatelů, přiřazených do jednoho či více uuappprofilů. asid uusubapp Id. Unikátní identifikátor instance uusubapp. asidowner uuidentita (obvykle uuee), která je oprávněna inicializovat uuapp. awid uuappworkspace Id. Unikátní identifikátor uuappworkspace. awidowner uuidentita (obvykle uuee), která je oprávněna inicializovat uuappworkspace. uubaseregistry Aplikace zodpovědná za vytváření, údržbu a integraci asid, awid, asidowner, awidowner atd. bsid uuappbinarystore Id. Unikátní identifikátor uuappbinarystore. uucloud Cloudové uložiště pro provoz, testování i vývoj uuapp. Postavený nad cloudovou službou MS Azure. uucmd Command. Volání aplikační logiky zahrnutá v případech užití, které využívají uuappserver v uucloudu. uu5component Komponenta pro budování responzivních uživatelských rozhraní, založená na technologii ReactJS a HTML5. Může obsahovat složitou logiku provozovanou na klientu či komunikovat se serverem. V uuapp Frameworku je velké množství knihoven sdružujících tyto komponenty do logických celků dle určení komponent. CRUD Create (vytvořit), Read (číst), Update (aktualizovat), Delete (mazat). Reprezentuje čtyři základní operace nad záznamem v trvalém úložišti dat. DAO Data Access Object. Jedna z logických vrstev v uuapp architektuře, zajišťující komunikaci mez business logikou a perzistencí uuapp. Jednotlivé DAO entit komunikují s perzistencí pomocí DAO metod. dtoin Data Transfer Object In. Reprezentuje vstupní data uucmdu posílaná na server. dtoout Data Transfer Object Out. Reprezentuje výstupní data uucmdu, jež vrací server. 26

uuee Specifický typ uživatele uuapp. Reprezentuje neživou entitu, například systém, jinou aplikaci atd. Není schopen ovládat koncová uživatelská zařízení a využívá pro komunikaci výhradně API. uugateway Nezbytná součást typologie uuappserveru. Obsahuje router, který na základě uuuri vybírá odpovídající uuappnodeset. uuidentity Unikátní identifikátor v rámci UAF. Může být provázána s identifikací aplikací třetích stran jako je Google nebo Facebook. Může reprezentovat lidi, věci či umělou inteligenci. uunode Nejmenší logický celek provozující uuappserver. uuobject Specifický elementární zápis, reprezentující objekt. Ty jsou ukládány v objektovém úložišti uuappobjectstore. uuperson Pro naší aplikaci nejdůležitější uživatel patřící pod uuidentity. Reprezentuje člověka. REST Representational State Transfer. Způsob, jak jednoduše vytvořit, číst, editovat nebo mazat informace ze serveru pomocí jednoduchých HTTP metod. Typ požadavku říká serveru, jakou operaci vlající požaduje. V uuapp Frameworku používáme dvě HTTP metody GET a POST. uu5route Typ uu5componenty, reprezentující vizuální část uu5uve, adresovatelná pomocí uuuri. uuschema Schéma pro uložení uuobjectu v perzistentním úložišti. uusubapp Logická část uuapp. Obsahuje sadu případů užití a perzistenci, díky čemu je uusubapp samostatně fungujícím celkem. uuapp se může skládat z N počtu uusubapp. uuterritory Virtuální prostor virtuálních objektů skupin uživatelů. Lze zde spravovat organizační strukturu a role. tid uuterritory Id. Unikátní identifikátor uuterritory. uutuc Thing Use Case. Případ užití, kde aktérem je uuthing, reprezentující uživatele z řad IoT zařízení. uuuc Use Case případ užití. Seznam kroků, který definuje interakci mezi aktérem, jenž případ užití spouští a systémem. uuapp rozlišuje tři typy případů užití - uucmd, uu5uve, and uutuc. 27

uuuri Klíčová komponenta uuappserveru. Uniform Resource Identifier uu5uve identifikátor zdroje. Definována specifickým formátem, obsahující informace o cílovém serveru a volaném uuuc. V hlavičce obsahuje informaci o uuidentitě volajícího. Typ uuuc, User Visual Entry-Point Vstupní vizuální bod uživatele do uuapp. Zdroj: Tabulku sestavil autor na základě informací dostupných na adrese: https://uuos9.plus4u.net/uubookkitg01-main/78462435-58d23c00b3b64ea99b2f7df3274e08ff/book/page?code=19838004 2.1.2 Vývojový proces uuapp Proces výroby aplikací a informačních systémů pomocí uuapp Frameworku probíhá nejčastěji ve třech fázích: High Level Concept (HLC) návrh, v UAF nazýván anglickým slovem Design. Construction tedy samotná výroba software na základě HLC Pilot testovací provoz. Fáze se mohou také překrývat, tedy lze již implementovat nějakou navrženou část HLC, například serverovou část aplikace, i když design nemá například dokončené rozhraní pro uživatele. Práce na jednotlivých fázích pak probíhají v etapách a iteracích. Etapa musí mít viditelnou přidanou hodnotu pro koncového zákazníka. Jedná se například o samostatnou funkčnost, která funguje nezávisle a lze ji samotnou již používat. Délka etapy se zpravidla pohybuje v řádu měsíců, neměla by však překročit délku tři čtvrtě roku a to i v případě rozsáhlých projektů. Poté se již doporučuje takovouto etapu rozdělit na více. Jednotlivé etapy se dělí na dílčí iterace, nazývané sprinty. Sprint je cyklus, který má předem definované limity ukazatelů KKTR (kvalita, kvantita, termíny a rozpočet). Délka sprintu je standardně jeden týden. Na denní bázi pak probíhají porady členů vývojového týmu, tzv. standupy. 20 Proces výroby uuapp je dekomponován na obrázku 2. 20 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-15]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a45c 28

Obrázek 2: Etapy a iterace Zdroj: https://widget.plus4u.net/vph-bt/uu-uubmldraw/image/5a26ca2a5f15030001a096d3/1 2.1.3 uuapp Team Pojem uuapp Team definuje role, které se podílí na vývoji aplikací a informačních systémů v rámci uuapp Frameworku. Všechny tyto role mají v rámci UAF připravené standardizované školící programy, díky kterým jsou absolventi připraveni zastat svou roli ve vývojovém týmu okamžitě po začlenění i do již probíhajícího projektu. Jednotlivé role stručně popisuji níže. uuappstakeholder Majitel problému, který má uuapp řešit. Absolvent školícího programu UAF Overview, který má za cíl seznámit studenty s UAF, s důrazem na znalost zadání zakázek na výrobu uuapp. uuapparchitect Softwarový architekt, který má jak hlubokou znalost UAF z pohledu uuappdesignera i uuappdevelopera, tak bohaté zkušenosti v návrhu i výrobě software obecně. Absolvent školícího programu uuapp Software Architect Program, který je kromě návrhu architektury schopen také například rozšiřovat samotný UAF. uuappdesigner Návrhář aplikace, autor HLC. Jedná se o roli, kterou jako autor simuluji při tvorbě praktické části této práce. Absolvent školícího programu uuapp Designer, je schopen psát design pro UAF aplikace. 29

uuappdeveloper Vývojář aplikace. Absolvent školícího programu uuapp Developer, který zahrnuje dvě části tvorbu front-endu uuapp a tvorbu back-endu, kde si účastník kurzu volí jednu ze čtyř serverových implementací uuapp Frameworku: uuappdevelopernodejs uuappdeveloperjava uuappdeveloperruby uuappdeveloperdotne uuappevangelists Je třeba připomenout také již zmíněné členy UAF Evangelistů, kteří se aktivně účastní vývoje uuapp v případě složitějších řešení jako odborní poradci s nevyšší znalostí UAF technologií, případně provádí certifikace již dokončených projektů. 21 2.2 Architektura uuapp Architektura uuapp původně vychází z obecné architektury MVC (Model-View- Controller) ovšem již od počátku navíc řeší také perzistenci, čímž má oproti klasické MVC architektuře přidanou hodnotu. Nejprve představím jednotlivé vrstvy obecné MVC architektury. Model Datový a funkční základ celé aplikace. Obsahuje celou aplikační business logiku. Jakákoliv akce uživatele je řízena modelem a představuje jeho akci. Mode udržuje svůj vlastní stav a posykuje rozhraní pro práci s ním. Neřeší však samotnou perzistenci. Model neví o existenci view nebo controlleru. View Neboli pohled, představuje vrstvu pro zobrazení výsledku požadavku uživatele. Také jeho požadavky předává controlleru pomocí ovládacích prvků. 21 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-15]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a44b 30

Controller Řídící jednotka, která deleguje požadavky uživatele na model a předává data view pro vykreslení. 2.2.1 Více vrstvá architektura uuapp Klasická MVC architektura vznikla na základě potřeby oddělit při konstrukci systémů s grafickým uživatelským rozhraním jednotlivé části, tedy obsluhu grafického rozhraní controller, aplikační business logiku model a část zobrazující data model. Jednotlivé vrstvy lze vyvíjet odděleně, což usnadňuje návrh, implementaci i testování. MVC se nachází celá na aplikačním serveru a tedy ve velké míře využívá serverové zdroje. Ukázkový případ užití MVC je načtení webové stránky pro uživatele. Ten z tenkého klienta, který neobsahuje žádnou složitou logiku, zavolá controller na serveru, který volání analyzuje a rozhodne, jak s požadavkem naložit. V tomto případě zavolá model, který provede veškerou business logiku a získá potřebná data a entity pro vykreslení stránky. Tato data jsou následně předána view (pohledu) a na serveru vygenerována celá stránka pro uživatele, která je mu skrze controller delegována zpět. Zařízení uživatele, tenký klient, pak jen vygenerovanou stránku zobrazí uživateli. Architektura uuapp MVC používá specificky. Controller se nachází na rozmezí klienta a serveru a lze jej definovat spíše jako API, které formou datově nenáročných JSON souborů předává data z modelu na klienta. View se ze serveru přesunul čistě na klienta, což rozkládá zátěž mezi server a koncová zařízení uživatelů, která v současnosti disponují obrovským výkonem (mobilní telefony, tablety, ale také chytré televize, desktopy a další). Práce s view na klientovi je násobně rychlejší a efektivnější, jsou tak maximálně využity specifické výhody jednotlivých zařízení. Controller získá z modelu pouze čistá data a teprve view z nich sestaví již přímo na klientském zařízení požadovanou stránku. Pokud máme na klientovi potřebná data, při změně pohledu není třeba server znovu volat, což přináší úsporu na straně času, zdrojů serveru i datového přenosu. 22 Obrázek 3 znázorňuje pohled na architekturu uuapp, vycházející z klasické MVC architektury. 22 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-16]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a47bc 31

Obrázek 3: Pohled na architekturu uuapp Zdroj: https://widget.plus4u.net/vph-bt/uu-uubmldraw/image/5af0587b5f15030001a15af9/0 Na obrázku 3 je vidět horizontální čárkovaná čára, která znázorňuje přechod mezi klientskou částí (dole) a serverovou částí (nahoře). Jak jsem již uvedl, v klasické MCV architektuře se všechny vrstvy nachází na straně serveru. V horní části také přibyla vrstva persistence. Persistence uuapp Framework poskytuje již připravenou perzistentní vrstvu. Model tedy nekomunikuje s databází (perzistencí) přímo, ale pomocí DAO vrstvy. Ta obsahuje konkrétní metody pro CRUD operace v databázi, respektive přímo pro konkrétní implementaci. Poskytuje to například výhodu, kdy při úplné změně databázového systému za jinou technologii není třeba upravovat model, stačí upravit pouze DAO vrstvu pro komunikaci s jinou perzistentní technologií. 32

2.2.2 Logický pohled na uuapp architekturu Na architekturu uuapp lze pohlížet také logickým pohledem, který je znázorněn na obrázku 4. Obrázek 4: Logický pohled na uuapp architekturu Zdroj: https://widget.plus4u.net/vph-bt/uu-uubmldraw/image/5b7163055908010001af9ffd/0 Popis jednotlivých logických vrstev: HI a TI Human Interface a Thing Interface, tedy vrstva určená uživatelům pro komunikaci s aplikací. HI je určen lidem, TI pro IoT zařízení. API Application Programming Interface, rozhraní aplikace. ABL Application Business Logic, tedy vrstva obsahující samotnou aplikační logiku. 33

DAO Data Access Objects, tedy vrstva pro komunikaci s perzistencí dat. 23 2.3 Topologie uuapp Každá uuapp obsahuje minimálně jednu uusubapp logický celek, který se již dále nedělí a zahrnuje v sobě funkčnosti a objekty a lze jej samostatně použít. Složité aplikace a informační systému se v uuapp Frameworku mohou skládat z většího počtu uusubapp, například jedna může zajišťovat část aplikace pro běžné uživatele aplikace, další správu samotné aplikace pro autority. Pokud není třeba uuapp dále dekomponovat, její jediná uusubapp bývá pojmenována jako Main. Na obrázku 5 je zobrazena celá topologie uuapp. Jednotlivá uusubapp se skládá z uuappserveru, obsahující zdrojové kódy klientské části a té serverové s aplikační business logikou. Většina aplikací vyžaduje perzistenci svých dat. K tomu slouží knihovna uuappdatastore, která v sobě obsahuje dvě podknihovny uuappobjectstore pro perzistenci strukturovaných dat formou uuobject a uubinarystore pro perzistenci nestrukturovaných dat formou uubinary, tedy binárních dat, například obrázků, dokumentů atd. 24 Obrázek 5: Dekompozice uuapp Zdroj: https://widget.plus4u.net/vph-bt/uu-uubmldraw/image/5b1fb68e5f15030001a18e35/0 23 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-16]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=00576393 24 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-16]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a44d 34

Každá uusubapp má tedy vlastní aplikační server (uuappserver) a perzistenci dat (uuappdatastore). Jednotlivým uusubapp jsou přidělovány aplikační prostory uuappworkspace, určeny svým identifikátorem awid. Každý uuobject v uusubapp je pak jasně tímto awid oznčen, čímž je zajištěno, že k objektům nelze přistupovat napřímo zvenčí. uusubapp může být buď jednoinstanční, označená číslovkou 1, nebo více instanční s označením N. V případě uusubapp typu N má každá jednotlivá instance přidělený vlastní awid. Komplexní uuapp se pak může skládat z více uusubapp, které mohou být každá jiného typu. Na obrázku 6 je ukázka takové uuapp. Jedná se o referenční aplikaci uucoursekit, jenž je vzdělávacím systémem na bázi kurzů. Hlavní uusubapp Course je typu N a každá jednotlivá instance, identifikovaná svým awid, reprezentuje každý jednotlivý kurz. Druhá uusubapp SME slouží jako centrální evidence studentů. Tato uusubapp je tedy jednoinstanční a s označením 1. 25 Obrázek 6: Dekompozice referenční aplikace uucoursekit Zdroj: https://widget.plus4u.net/vph-bt/uu-uubmldraw/image/5babedc05908010001afeb36/0 25 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-16]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a46c 35

3 Technologie v uuapp V této kapitole naváži na dekompozici uuapp a představím nejdůležitější technologie UAF, které již představují samotný zdrojový kód aplikací navrhovaných a implementovaných v technologii UAF. Již z předchozí kapitoly o uuapp Frameworku vyplynulo, že uuapp se skládají ze dvou logických částí, a to z klientské, tedy té části systému, kterou používají uživatelé, respektive různé uuidentity, a ze serverové, která obsahuje aplikační business logiku a perzistenci. Vývoj obou částí může probíhat nezávisle na sobě. Obě části uuapp Frameworku mohou být také použity v projektu samostatně, tedy nad UAF můžeme vytvořit jen klientskou část aplikace, nebo pouze serverovou, v té nemusíme nutně využít defaultní perzistenci uuappdatastore, ale libovolnou databázovou technologii. Kapitola tedy obsahuje dvě hlavní podkapitoly a reflektuje technologie klientské a serverové části, ve třetí podkapitole popíši komunikaci mezi klientskou a serverovou částí uuapp. 3.1 Klientská část uuapp Tu část aplikace, kterou používají uživatelé, nazýváme klientskou, nebo také front-endem. Jak jsem již uvedl, nad UAF lze stavět například jen tuto část a napojit ji na serverovou část informačního systému založeném na jiné technologii. V této práci se však zabývám návrhem aplikace kompletně nad UAF. 3.1.1 Single Page Application V první řadě je zapotřebí uvést trend, který v současnosti definuje způsob, jakým uživatelé aplikace a informační systémy používají, a z toho vyplývající technologie, kterými vývojáři na potřeby uživatelů reagují. Jak jsem již uvedl, ve více než 60% případů uživatelských interakcí s aplikacemi využívají uživatelé mobilní zařízení. Ta mají svá specifika, zejména způsob ovládání pomocí dotykových obrazovek a potřebu datové efektivity z důvodu mobilního připojení k síti internet, jelikož v dnešní době je již standard, že aplikace komunikuje online s okolním světem. Je tedy žádoucí, aby byl datový provoz mezi klientem a serverem co nejefektivnější. V klasické MVC architektuře je uživateli posílána při každém kliknutí na odkaz nová HTML stránka, obsahující často již data posílaná ve stránce předchozí. Jednoduše řečeno, při jakékoliv interakci uživatele se systémem byla posílána znovu veškerá data pro vykreslení nové obrazovky. Single Page Application (SPA) je přístup, kdy je uživateli při prvním načtení aplikace poslána HTML stránka se uživatelským vstupním bodem (uu5uve), obsahující 36

např. nějakou domovskou stránku. V té chvíli vstoupil do aplikace a v jednoduchých případech tuto stránku již neopustí, i když se z jeho pohledu pohybuje na další části aplikace. Tedy uživatelské rozhraní se načte jen jednou, další průchod aplikací jen načítá další potřebná data ze serveru. Layout SPA se obvykle skládá z více částí, některé se však nemění (menu a navigace aplikace, záhlaví či zápatí) a zde nastává značná datová úspora v komunikaci se serverem. Další části aplikace se pak dočítají dynamicky dle potřeby, ovšem jedná se často o datově nenáročné JSON soubory, které blíže popíši v podkapitole komunikace klienta a serveru. Omezení potřeby všechna data neustále stahovat ze serveru výrazně zlepšuje také uživatelskou zkušenost, SPA běžící v prohlížeči mohou být k nerozeznání od nativních aplikací. 26 Pochopení tohoto principu je nezbytné proto, aby mohl uuappdesigner správně navrhovat klientskou část uuapp, jelikož přístup SPA je v uuapp Frameworku klíčový. 3.1.2 Responzivní design Responzivita je v dnešní době naprostou samozřejmostí, pokud mají uživatelé chtít aplikaci rádi používat. Opět se odkáži na více než 60% podíl mobilních zařízení v přístupu k aplikacím. Rozměry obrazovek těchto zařízení mají velký rozsah, od nejmenších mobilních telefonů, přes tablety, které mají také různé velikosti, až po desktopová zařízení, která samozřejmě také nelze opomenout. V minulosti se pro tyto různá zařízení tvořil front-end zvlášť, vedlo to však k nekonzistenci v uživatelské zkušenosti, jelikož jeden uživatel může v různých případech přistupovat k aplikaci z více typů zařízení a některé aplikace byly v klientské části pro různá zařízení naprosto odlišná. Navíc nejde pouze o rozměry obrazovek, různá zařízení jsou také různě ovládána (mobilní telefon dotykem, PC myší či klávesnicí). Vývoj takto oddělených různých front-endů je také finančně a časově náročný, je také delší proces změny, atd. V UAF je cílem, aby se front-endy stavěly z již připravených komponent, které jsou responzivní defaultně. Pokud jsou pro projekt uuapp vytvářeny komponenty vlastní, jsou pro jejich grafické prvky ve většině případů požity ty již připravené, tedy UAF řeší do značné míry responzivitu za vývojáře. 26 Kolektiv autorů. Knihovna uu5 - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-17]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- ed11ec379073476db0aa295ad6c00178/book/page?code=spa 37

Řada principů v typografii a responzivitě byla převzata z frameworku Bootstrap. 27 Bootstrap definuje 5 mezních velikostí zařízení podle jejich šířky v pixelech, a to XS, S, M, L a XL (znázorněno na obrázku 7). Rozděluje obrazovku do pomyslných dvanácti sloupců a v komponentách, ze kterých obrazovku tvoříme, definujeme pro jednu z pěti velikostí počet sloupců, které komponenta na odpovídajícím zařízení bude zabírat. Responzivita neřeší pouze šířku komponenty, ale také vzájemné uspořádání všech zobrazených komponent a v neposlední řadě také jejich styl nebo vzhled (např. na PC jsou velká tlačítka s popisem, na mobilním telefonu jen ikona s obrázkem, který jasně udává účel tlačítka). 28 Obrázek 7: Mezní rozměry obrazovky zařízení dle frameworku Bootstrap Zdroj: Obrázek vytvořil autor z obrázků dostupných na adrese https://uuos9.plus4u.net/uu-bookkitg01- main/78462435-ed11ec379073476db0aa295ad6c00178/book/page?code=basicsofresponsivity 3.1.3 Knihovna komponent uu5 Klíčovým problémem, na který se knihovna uu5 zaměřuje, je rychlý a efektivní vývoj uživatelského rozhraní, které má ale všechny vlastnosti progresivní webové aplikace. 29 Knihovna uu5 je založena nad frameworkem React od společnosti Facebook a grafickým systémem Material Design od společnosti Google. React, postavený na JavaScriptu a HTML5, zajišťuje velice rychlý vykreslovací engine a podporu nejmodernějších standardů webového vývoje. Material Design patří mezi nejpoužívanější standardy v oblasti responzivity, typografie a celkové vizuální stránky grafických rozhraní. Zásadní výhodou z hlediska dlouhodobého rozvoje je fakt, že klientská část uuapp běží v prohlížeči koncového zařízení a je tak platformě zcela nezávislá. Není třeba vyvíjet 27 Kolektiv autorů. Knihovna uu5 - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-17]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- ed11ec379073476db0aa295ad6c00178/book/page?code=abstract_00 28 Kolektiv autorů. Knihovna uu5 - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-17]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- ed11ec379073476db0aa295ad6c00178/book/page?code=basicsofresponsivity 29 Kolektiv autorů. Knihovna uu5 - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-17]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- ed11ec379073476db0aa295ad6c00178/book/page?code=abstract_00 38

URI. 31 Samotná knihovna uu5 je postavena na uuapp Frameworku a je tedy sama určitým front-end pro jednotlivé typy zařízení a různé jejich operační systémy. Všechna zařízení jsou obsloužena z jednoho zdrojového kódu, což značně zrychluje vývoj i další rozvoj aplikace. Dle analýzy Unicornu je takovýto vývoj front-endu minimálně o 50% rychlejší než klasický postupům vývoje platformě závislých aplikací. 30 Elementární jednotkou knihovny uu5 je komponenta (uu5component). Komponentový přístup vychází právě z Reactu. Komponentou se rozumí prvek ve stránce či aplikaci, který má vlastní funkčnost. Komponenta se může skládat z jiných komponent, HTML elementů a JavaScriptového kódu. Komponenty mohou mít jak grafickou podobu, tak pouze nějakou funkčnost bez grafického zobrazení. Mohou mít v sobě složitou logiku a výpočty nebo jen zobrazovat jim předaná data. Mají životní cyklus a vnitřní stav, čímž lze komponenty kontrolovat a řídit, jak se v dané fázi svého životního cyklu a stavu mají chovat. Komponentou může být základní rozvržení celého okna uuapp, jednotlivá sekce obrazovky (menu, záhlaví, hlavní obsah stránky), tlačítko nebo vstupní pole formuláře. Jakýkoliv logický prvek může být samostatnou komponentou. Samotná knihovna uu5 obsahuje více než 70 již připravených komponent, ze kterých lze stavět front-endy jednoduše jako digitální stavebnici. Pokud vlastní komponentu registrujeme v centrálním registru komponent uu5libraryregistry, mohou naše komponenty ihned využívat vývojáři zcela jiných uuapp toto je klíčová výhoda a vlastnost podporující principy UAF. Pro účely technické dokumentace, kterou řeší tato práce, je třeba představit speciální typ uu5 komponenty a tou je uu5route. Její potřeba pramení z principu SPA, která běží v prohlížeči zpravidla z jedné HTML stránky, tedy nelze se v takové aplikaci (zejména, jedná-li se o webovou prezentaci) navigovat v historii tlačítky zpět a vpřed. Nelze také používat či sdílet URI odkaz na konkrétní významný vizuální případ užití, jelikož vše běží z jedné fyzické URI. Pro tento případ obsahuje uu5 komponentu Router, která poskytuje podporu routování, tedy možnost adresovat vybraný případ užité pomocí typem uuapp. 30 Kolektiv autorů. Knihovna uu5 - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-18]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- ed11ec379073476db0aa295ad6c00178/book/page?code=abstract_00 31 Kolektiv autorů. Knihovna uu5 - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-18]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- ed11ec379073476db0aa295ad6c00178/book/page?code=spa_router_01 39

3.1.4 Další knihovny komponent pro tvorbu uživatelských rozhraní Knihovna uu5 je základní knihovnou komponent pro stavbu front-endů uuapp, avšak existuje mnoho dalších knihoven komponent, které jsou pro uuapp využitelné. Všechny knihovny komponent vychází z uu5. Některé z nich jsou použity pro tvorbu technické dokumentace (Design) nebo budou využity přímo v navrhované aplikaci, proto níže uvádím přehled a popis: uu5libraryregistry centrální registr uu5 komponent. Plus4U5 knihovna pro vývoj uživatelského rozhraní uuapp. uu5codekit komponenty pro zobrazení a úpravu zdrojového kódu. uucontentkit grafické komponenty pro tvorbu obsahu. uuappdesignkit komponenty pro tvorbu technické dokumentace uuapp. uu5math umožňuje psát matematické výrazy do uu5. uu5paramquery umožňuje vytvářet tabulky pomocí externí knihovny třetí strany ParamQuery Grid Pro. uuproductcatalogue komponenta pro zobrazení náhledů jiných technických dokumentací a odkazování na ně. uu5imaging komponenty pro práci s obrázky. uu5calendar knihovna pro práci s kalendářem. uu5datatable tabulka přijímací velké množství dat s možností filtrování atd. uu5tree umožňuje uživatelsky přívětivou manipulaci s datovou strukturou. uu5chart vykreslování grafů na základě přijatých dat. uu5tiles umožnuje práci s rozsáhlými a responzivními seznamy dlaždic. uuplus4u5files komponenty pro snadnou a uživatelsky přívětivou práci se soubory. uu5richtext umožňuje základní editaci a formátování textu (WYSIWYG). 32 3.2 Serverová část uuapp Tu část aplikace, se kterou uživatelé nepřijdou do styku a odehrává se zde veškerá aplikační business logika a jsou zde perzistentně ukládána data, nazýváme serverovou, 32 Kolektiv autorů. Knihovna uu5 - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-17]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435- ed11ec379073476db0aa295ad6c00178/book/page?code=booksuaf 40

nebo také back-endem. Stejně jako v případě klientské části, nad UAF lze stavět například jen tuto část a napojit na ni front-end založený na jiné technologii. Serverová část je v UAF reprezentována knihovnou uuappserver. Jedná se o velice komplexní problematiku, pro potřeby uuappdesignéra je však nutná znalost základních principů a komponent které v této podkapitole přestavím. uuapp Framework nabízí čtyři implementace uuappserveru pro programovací jazyky NodeJS, Ruby, Java a.net. Z hlediska Designu uuapp však není zvolená serverová technologie rozhodující a obecné principy jsou pro všechny implementace společné. Tedy spíše jako zajímavost uvedu, že back-end aplikace Lovecký klub bude s největší pravděpodobností implementován na technologii NodeJS, jenž je preferovanou technologií v rámci UAF, jednak pro svoji současnou oblibu, tak výhody, jako je společný jazyk s front-endem (JavaScript), odlehčenost zdrojového kódu a nativně podporované asynchronní operace. 3.2.1 uuappserver Logická struktura uuappserveru se skládá zejména ze tří důležitých konfiguračních souborů ve formátu JSON a nezbytných adresářů: mapping.json struktura definující jednotlivé případy užití (uucmd, uu5uve, uutuc) a jejich mapování na příslušné metody příslušných controllerů (z uuuri na metody) profiles.json struktura definující uuappprofily a jejich přiřazení k příslušným případům užití persistence.json definuje schémata všech použitých datových úložišť. Controllers balíček obsahující controllery. Ty slouží k definici API a jsou důležité pro zajištění případné zpětné kompatibility, jelikož není žádoucí udržovat API v modelu, např. z důvodu potřeby úpravy API. Models balíček s modely. V modelech se odehrává veškerá aplikační business logika. DAO balíček se všemi DAO pro ukládání perzistentních objektů (uuobject či uubinary). Zajišťuje přístup k datovým úložištím a CRUD operace (zejména uuobjectstore a uubinarystore). Errors balíček pro výjimky uuapp. 41

Standard Libraries obsahuje další nezbytné nebo případně doplňkové knihovny, které se obvykle automatizovaně přidávají do výsledného kódu, ze kterého se skládá uuappserver. 33 uuappserver poskytuje prostředí pro volání případů užití. Tyto případy užití obvykle představují operace spojené s konkrétním uuobject. Slouží jako abstrakční vrstva pro implementaci funkcionalit, jako je vazba na komunikační protokol HTTP, správa autorizace a autentizace, což umožňuje vývojářům zaměřit se více na řešení konkrétních business problémů než na obecné implementační funkce, které se více méně opakují v každém projektu. 34 Tyto komponenty poskytované uuappserverem jsou: uuappclient poskytuje API pro vzdálené volání uucmdům např. z jiných uuapp. Routing obsahuje uuuri, klíčovou komponentu uuapp architektury. Souží pro adresování funkcionalit uuapp. Command Protocol zajišťuje komunikaci mezi klientskou a serverovou částí uuapp pomocí datových struktur dtoin a dtoout. Validation poskytuje validace vstupních dat, definuje datové typy uuapp. Error Handling zajišťuje vypořádání se s chybami během provozu uuapp. Chyby a varován ukládá do struktury dtoout v jeho povinné části uuapperrormap. Authentication poskytuje autentizaci uživatele na základě jeho uuidentity. Authorization poskytuje autorizaci na základě porovnání uuidentity volajícího a definovaných práv ve struktuře profiles.json. Configuration slouží jako centralizovaná konfigurace uuapp, kde je vhodné konfigurovat např. komponenty, externí zdroje (připojení k databázi atd.), oprávnění externích služeb nebo konfiguraci nezbytnou pro start aplikace. Monitoring zajišťuje monitorování aplikace a to zejména na úrovni uucloudu (využití zdrojů), uulogstore (veškeré logy spuštěné uuapp) a dalších. Cache zajišťuje správu mezipaměti. 35 33 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-18]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a44f 34 Kolektiv autorů. Knihovna uuappserver - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-18]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-34df77ebe0a04adda6dcd62d32c4f513/book/page?code=uuappserver_00 35 Kolektiv autorů. Knihovna uuappserver - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-17]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-34df77ebe0a04adda6dcd62d32c4f513 42

3.2.2 Datové úložiště uuappdatastore uuappserver obsahuje implementaci perzistentního ukládání dat, jelikož však není perzistence na aplikační business logice přímo závislá, popisuji ji odděleně. Datové úložiště v UAF je realizováno na preferované technologii MongoDB, což je nerelační (též souborový) databázový systém. V současnosti je tento typ databází velice oblíbený ve spojení s cloudem, jelikož takový databáze je velice jednoduše horizontálně škálovatelná. Technologie je postavená na BSON dokumentech (binární forma JSON) a tedy lze měnit datovou strukturu kdykoliv během provoz aplikace. Dokumentový model se snadno mapuje na objekty v kódu aplikace a v neposlední řadě je databáze zdarma a opensource. 36 uuapp může využívat větší množství databází naráz, všechny však musí být definovány ve struktuře persistence.json. Datové úložiště uuappdatastore uchovává a spravuje data aplikace ve formě elementárních a nedělitelných záznamů. Tyto entity jsou spravovány v rámci svého schéma a to je určeno navzájem souvisejícími částmi: strukturou samotná struktura entity limity různá omezení na velikost dat nebo počet instancí indexy pro rychlejší vyhledávání v databázi metodami DAO pro operace nad entitami Rozlišujeme dva typy uuappdatastore, a to uuappobjectstore a uuappbinarystore (viz slovník pojmů). Oba typy úložišť jsou provozovány na technologii MongoDB. 37 3.2.3 uucloud uuapp Framework řeší také samotné nasazení a provoz uuapp ve vlastním cloudu. V kontextu této práce a samotného Designu uuapp není uucloud předmětem návrhu uuapp, nicméně uucloud řeší důležitou funkci a tou je adresování uuapp, kterou je třeba zmínit. Adresování probíhá pomocí uuuri, což je dohodnutý formát obecné URI pro potřebu uuapp, využívající REST. Skládá se z hlavičky, textového řetězce reprezentujícího cestu k volanému případu užití a může obsahovat i tzv. tělo (body) 36 MONGODB. What is MongoDB?. Mongodb.com [online]. 2018 [cit. 2018-11-19]. Dostupné z: https://www.mongodb.com/what-is-mongodb 37 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-19]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a44h 43

s přenášenými daty směrem k serveru. Textový řetězec má následující formát: https://{gateway}/{vendor}-{uuapp}-{uusubapp}/{tid}-{asid awid}/{usecase} gateway adresa gateway, např. plus4u.net vendor kód vendora (např. provozovatel uuapp) uuapp kód uuapp uusubapp kód uusubapp včetně označení její generace tid identifikátor tenanta, tedy majitele aplikačního prostoru asid identifikátor konkrétní uusubappinstance (kolekce sad specializovaných aplikačních serverů obsluhující jednu provozní instanci uusubapp) awid identifikátor uuappworkspace usecase identifikátor případu užití (uucmd, uu5uve, uutuc, případně požadavek na získání statického zdroje) 38 3.3 Komunikace klient server Komunikaci mezi klientem a serverem zajišťují již zmíněné commandy (uucmd). Jedná se o takové případy užití, které volá klient směrem k serveru za účelem volání aplikační business logiky, nejčastěji je součástí případu užit také CRUD operace v perzistentním úložišti dat. Komponenty autentizace a autorizace na straně uuappserveru ověřují, zda může uživatel volání případu užití provést (platí pro uucmd, uu5uve i uutuc). Volaný případ užití zahrnuje REST, v UAF používáme dvě HTTP metody a to GET (operace, které nemají za účelem upravovat data, typicky operace čtení) a POST (pro vše ostatní, jelikož zde často posíláme data v těle požadavku). uucmd typu GET typicky neobsahuje data posílaná na server v těle volání, posílá informace v uuuri ve formě parametrů, nejčastěji se jedná o identifikátory pro vyhledání nějaké informace v databázi. uucmd typu POST naopak obsahuje vstupní data, která jsou posílána v těle volání a v datové struktuře JSON dtoin. 38 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-18]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a44z 44

Oba typy již mají společná pravidla pro validaci vstupních dat (jsou validována pomocí validačního schéma dtointype) a vždy je jejich výsledkem výstup ve formě 39, 40 dtoout. Zdrojový kód commandů je uložen v části uuappserveru, volán je z klienta. Klientem může být buď uuperson využívající vlastní grafické rozhraní téže uuapp, uuiot či uuee, jiná aplikace, pokud to uucmd umožňuje, případně lze použít jakýkoliv REST klient. Více se budu věnovat commandům v následující kapitole o tvorbě technické dokumentace (designu). 39 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-18]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-34df77ebe0a04adda6dcd62d32c4f513/book/page?code=uuappserver_00 40 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-18]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a45s 45

4 Principy tvorby technické dokumentace dle UAF Technická dokumentace v UAF je nazývána design, toto slovo budu dále v textu také pro dokumentaci používat. Jejím autorem je zejména uuapp Designer (zkráceně designer), který musí absolvovat již zmíněné standardizované školení uuapp Designer. V prvotní fázi tvorby designu se designer účastní úvodních schůzek k požadavkům na aplikaci a dle rozsahu projektu buď samostatně, případně ve spolupráci s uuapp Architektem, připraví základní High-Level Concept (HLC) s popisem řešení základních problémů aplikace a business procesů, které uuapp řeší. V pozdější fázi vývoje může také designer komunikovat již s uuapp Developery, kteří v případě potřeby mohou také v omezené míře upravovat design. Jakékoliv změny v designu je však nutno řešit koordinovaně přes interní systém Request Management. uuapp Designér musí kromě principů a technologií pro tvorbu designu znát také samotné technologie uuapp popsané v předchozí kapitole, aby byl jeho návrh co nejvíce proveditelný a efektivní. Čím více technických znalostí UAF a uuapp Frameworku má, tím je design přesnější a detailnější a vývojáři se mohou díky tomu více soustředit na tvorbu samotného zdrojového kódu. Mnoho částí z designu je již částečně připravený zdrojový kód (například schémata uuappobjectstore uuschema, předpisy dtoin včetně jejich validace, dtoout, připravené chybové hlášky uuapp a podobně). Dle standardu UAF je aplikace (uuapp) dokončena, pokud je k ni vytvořena také kompletní technická dokumentace (design). 4.1 Technologie pro tvorbu designu uuapp UAF poskytuje nástroje a knihovny přímo určené pro psaní technické dokumentace. Níže popisuji ty nejčastěji využívané a specializované právě pro design uuapp. Samozřejmě jsou však využívány také další knihovny uu5 komponent, které jsem již zmínil dříve. Možnost používat a kombinovat libovolné komponenty je jednou z hlavních přidaných hodnot UAF. 4.1.1 Aplikace uubookkit Aplikace uubookkit je primárně určena ke psaní technické dokumentace, ovšem pro své vlastnosti ji lze využít ke tvorbě jakýchkoliv strukturovaných online textů. Aplikaci využívá například i vysoká škola Unicorn College pro tvorbu školního portálu pro studenty a studijních materiálů. 46

Každá dokumentace je kniha (book) a skládá se z jednotlivých stránek (page), které lze ještě dělit na sekce (section) sloužící pro logické dělení obsahu stránek. K hlavní navigaci mezi stránkami slouží levé menu, které může autor knihy libovolně přizpůsobit své potřebě. Sekundární navigace umožňuje posun na předchozí nebo další stranu. Hierarchii stránek lze libovolně zanořovat až do šesté úrovně, knihy lze tedy dělit do kapitol a podkapitol. 41 Obrázek 8: Ukázka aplikace uubookkit Zdroj: Snímek obrazovky dostupné na adrese https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-71f8d7b5cfdc4336b0abfe47b3cb237b/book Aplikace uubookkit je zároveň uuapp vytvořená na uuapp Frameworku, pomocí frontend uu5 komponent a uuappserveru. Autoři knih obsah stránek tvoří také pomocí těchto samých uu5 komponent a například nově vytvořené komponenty pro aplikace nebo informační systémy lze často znovu využít zpětně pro psaní obsahu knih, mají-li to logické využití. Aplikace je samozřejmě dle principů UAF plně responzivní a mobile-first. Prochází neustálým vývojem, například ještě v nedávné době znamenala tvorba obsahu stránek kódování pomocí komponent přímo ve zdrojovém kódu, zatím co v současnosti je již k využití novinka uudcc (Dynamic Component Content), umožňující tvorbu obsahu velice uživatelsky přívětivým způsobem. 42 41 Kolektiv autorů. uubookkit - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-22]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-e3f5c648e85f4319bd8fc25ea5be6c2c/book 42 Kolektiv autorů. uudynamiccomponentcontentg02 - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-22]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-9ef0bd22bb9243429a78dfad2a1543a2/ 47

4.1.2 Knihovny komponent uuappdesignkit a uucodekit Knihovna komponent uuappdesignkit Jedná se o uu5 knihovnu obsahující komponenty určené přímo pro technickou dokumentaci (design) uuapp. Standardizace designu uuapp umožňuje všem cílovým skupinám čtenářů snadnou orientaci v její struktuře a nalezení potřebných informací v předem známém formátu. Použití komponent pro specifické, opakující se případy tuto standardizaci podporuje a také usnadňuje tvorbu obsahu designérům, kteří vyplňují v těchto komponentách předem definované části syrovými daty a nemusí se zabývat formátováním výstupu. 43 Knihovna komponent uucodekit uu5 komponenty této knihovny jsou založené na technologii Ace Editor pro psaní a zobrazování zdrojového kódu. Komponent pro psaní kódu obsahují validaci a jsou použity v uuapp uubookkit pro tvorbu obsahu. Komponenty pro zobrazení zdrojového kódu pak slouží v designu pro zobrazení schémat, která popíší v další kapitola o samotném designu uuapp. Komponenty formátují zobrazený kód na základě zvoleného jazyka, na výběr jsou prakticky veškeré programovací, skriptovací i značkovací jazyky. 44 Obrázek 9: Ukázka editoru pro tvorbu obsahu stánky v aplikaci uubookkit Zdroj: Snímek obrazovky dostupné na adrese https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-71f8d7b5cfdc4336b0abfe47b3cb237b/book 43 Kolektiv autorů. uuappdesignkit - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-22]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-eaef66592e2a40b09d97837df52e0bd5/book 44 Kolektiv autorů. uucodekit - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-22]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-f2142743693e4b22b1753c9fb761e945/book 48

4.1.3 uubml Draw Aplikace uubml Draw slouží k online vytváření, editaci a zobrazení schémat, která lze vkládat kamkoliv, kde je použita technologie uu5. Aplikace je založená na vizuálním jazyku uubml (Unicorn Universe Business Modeling Language), částečně vycházejícího z jazyka UML. Jazyk však neslouží pouze pro prezentaci technických schémat, ale k prezentaci libovolných myšlenek z jakékoliv sféry. Obsahuje mnoho sad tematických ikon a dalších entit pro znázornění vazeb mezi objekty, popisků a dalšího. 45 Obrázek 10: Ukázka schéma vytvořeného pomocí jazyka uubml Zdroj: https://unicorn.com/img/unicornuniverse/image-uu-business-modeling.jpg Základní pravidla jazyka uubml jsou následující: Barva ikon Znázorňuje významnost entity ve schématu: Objective (zelená) hlavní objekt, zpravidla jen jeden. Highest (žlutá) nejdůležitější entity v diagramu. High (modrá) důležité entity. Normal (šedá) výchozí barva běžných objektů. 45 UNICORN SYSTEMS. Unicorn Universe. Unicorn [online]. 2018 [cit. 2018-11-23]. Dostupné z: https://unicorn.com/cz/unicorn-universe 49

Low (světle šedá) doplňující entity, zpravidla symbolizující okolí diagramu. Problem (červená) problematická entita v kontextu diagramu. Vysvětlující prvky Textové entity vysvětlující kontext diagramu: Callout často nedílná součást daného diagramu, vysvětlující jeho detail. Anotace doplňující popisek. Blok vizuálně sdružuje související prvky diagramu, čistě pro zvýšení srozumitelnosti. Label menší ikona v horním rohu ikon doplňující přesný význam ikony v určitých případech. Vazby mezi objekty Podobně jako v jazyce UML, v uubml jsou definovány tyto vazby mezi objekty: Asociace 1:n spojuje právě jeden objekt A s více objekty B. Asociace 1:1 spojuje právě jeden objekt A s právě jedním objektem B. Asociace m:n spojuje více objektů A s více objektů B pomocí vazebních objektů. Agregace 1:n objekty B jsou nedílnou součástí objektu A. Pokud objekt A zaniká, zanikají také objekty B. Agregace 1:1 objekt B jsou nedílnou součástí objektu A. Pokud objekt A zaniká, zaniká také objekt B. 46 Další pravidla jazyka uubml popíši u konkrétních schémat a diagramů v kapitole o struktuře designu uuapp. 4.2 Struktura designu uuapp V uuapp Frameworku je několik definovaných a standardizovaných typů knih a to technická dokumentace uuapp, uživatelská dokumentace uuapp, technická dokumentace knihovny a uživatelská dokumentace knihovny. V této kapitole představím právě strukturu technické dokumentace uuapp (design), kterou se tato práce zabývá. 46 Kolektiv autorů. Knowledge Base - Dokumentace. Unicorn [online]. 2018 [cit. 2018-11-22]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-58d23c00b3b64ea99b2f7df3274e08ff/book/page?code=uubmlcheetsheetapp 50

Kniha je určena všem kompetentním rolím, které působí v celém životním cyklu aplikace. Tedy od myšlenky, až po provoz. Struktura knihy a rozvržení stránek je logicky odvozeno od komplexního procesu, který životní cyklus uuapp doprovází. Respektuje jednotlivé fáze vývoje a provozu. 47 4.2.1 Vítejte Povinná stránka každé knihy. Obsahuje přesný název aplikace, ke které se vztahuje, její stručný popis, označení generace a odkaz na GIT repositář se zdrojovými kódy. Dále stručný popis knihy samotné, její určení a diskuzní fórum. 4.2.2 Obsah Povinná stránka každé knihy, obsahuje strukturovaný seznam jejích kapitol a stránek. Obsah knihy je generován automaticky pomocí komponenty UuBookKit.Bricks.Contents. 4.2.3 Abstrakt Volitelná stránka, slouží čtenáři zejména pro rychlou orientaci v knize, případně stručně pojednává o jejím účelu a podobně. 4.2.4 Předmluva Volitelná stránka, obsahuje úvodní slovo autora dokumentace. 4.2.5 Koncepty Volitelná kapitola. Samostatné podstránky mohou vysvětlovat základní principy a myšlenky, na kterých je aplikace založena. 4.2.6 Business model Povinná stránka technické dokumentace uuapp. Popisuje obchodní (business) problematiku aplikace pomocí okomentovaných uubml schémat. Obsahuje sekci s vysvětlením základních pojmů či entit v aplikaci, dále seznam hlavních procesů, uživatelských rolí a seznam případů užití (business use case). 48 Aplikace v UAF navrhujeme na základě myšlenky Use-Case Driven Approach. Na aplikaci nebo informační systém nahlížíme jako na soustavu funkčností (use case, 47 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-23]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a45n 48 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-23]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a45o 51

případ užití) řešících konkrétní problematiku uživatelů, seskupených do logických skupin (aktéři). Po návrhu entit aplikace tedy postupně navrhujeme tyto jednotlivé případy užití. Z toho důvodu se jeví definování business use casů jako klíčové. 49 4.2.7 uuappstructure Povinná stránka technické dokumentace uuapp. Popisuje základní dekompozici uuapp na uusubapp včetně jejich datových perzistentních úložišť. Dekompozice je popsána na obrázku 6 v kapitole 2.3. 4.2.8 uusubapp Povinná kapitola technické dokumentace uuapp, je také nejrozsáhlejší, jelikož obsahuje samotný návrh jak serverové, tak klientské části. Jak jsem již uvedl, uuapp je spíše abstraktní aplikace seskupující jednu či více uusubbapp, teprve ty jsou již definovány zdrojovým kódem. Stránka obsahuje základní popis uusubapp, uživatelských profilů a uu5uve, seznam commandů (uucmd) s popisem, odhadem pracnosti a jejich implementační prioritou, seznam externích commandů, které uusubapp využívá a seznam všech uuappdatastore. Kapitola má následující strukturu: uuappobjectstore obsahuje diagram schémat objektového úložiště s jejich vazbami a popisem. o uuschema každá entita reprezentována uuobjectem, která je perzistentně uložena v databázi, má vlastní podstránku. Ta obsahuje popis entity, diagram s vazbami na další entity, samotný předpis pro schéma v databázi, návrh limit, indexů a DAO metod pro komunikaci mezi modelem a perzistentním objektovým úložištěm. 50 uuappbinarystore zpravidla obsahuje odkaz na obecnou dokumentaci uuappbinarystore, jelikož již obsahuje připravená schémata a DAO metody pro běžné binární typy souborů. uucmdlist obsahuje seznam všech commandů (uucmd) navržených pro uusubapp. 49 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-23]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a47b 50 Kolektiv autorů. uuapp Framework. Unicorn [online]. 2018 [cit. 2018-11-25]. Dostupné z: https://uuos9.plus4u.net/uu-bookkitg01-main/78462435-25d3b166760a44b7be70e5c2eb2abaaa/book/page?code=25d3b166760a45r 52

o uucmd každý uucmd má vlastní podstránku, která obsahuje základní popis, schémata pro vstup (dtoin), validaci dtoin a výstup (dtoout), výchozí hodnoty, happy day scénář (hds) popisující průběh commandu v ideálním případě, seznam alternativních scénářů a jejich chybových hlášek pro případy, kdy se hds odkloní od ideálního průběhu. uu5uvelist kapitola obsahující klientskou část uusubapp (front-end). Na stránce je seznam všech uu5uve a jejich popis. o uu5uve každý uu5uve má vlastní podkapitolu. Na této stránce je detailně popsán, včetně seznamu jeho uu5route, diagramu komponent, ze kterých je složen a obsahuje technické detaily, které až během implementace doplňují vývojáři, jelikož design neslouží pouze k návrhu aplikace pro vývoj, ale také ji zároveň dokumentuje. uu5routelist obsahuje seznam všech uu5route. uu5route každá uu5route má svou vlastní podstránku se základními informacemi, diagramem komponenty a technických detailů. Může obsahovat mock up nebo grafický návrh. uu5componentlist obsahuje seznam všech uu5 komponent, které jsou pro aplikaci vyvíjeny. uu5component každá uu5 komponenta má svou podstránku se stejnými údaji jako stránka pro uu5route. V praktické části práce tyto stránky detailně popíši na konkrétních příkladech, které vyberu z mnou vytvořeného designu aplikace Lovecký klub, jenž je nedílnou částí této práce. 4.2.9 Deployment, provoz Povinná kapitola technické dokumentace uuapp, tvoří se však až v průběhu implementace. Osahuje níže uvedené podstránky: Produkční nasazení popisuje proces nasazení uuapp do produkce. Lokální nasazení popisuje proces nasazení uuapp lokálně. Inicializace aplikace popisuje proces inicializace uuapp. 53

4.2.10 Vývojové prostředí Volitelná kapitola technické dokumentace uuapp, popisující například specifika nastavení vývojového prostředí, doporučené aplikace třetích stran pro vývoj či testování a podobně. 4.2.11 Návody Volitelná kapitola technické dokumentace uuapp. Jednotlivé podstránky mohou obsahovat různé návody či doporučení. Obsah není stadnardizován. 4.2.12 Komponenty Volitelná kapitola, obsahuje seznam komponent, které autoři aplikace považují za znovu použitelné v jiných aplikacích. Samostatné podstránky popisují jednotlivé uu5 komponenty navržené v rámci aplikace. Zveřejněny zde mohou být jen již plně funkční komponenty, aby je bylo možno v jiných aplikacích skutečně použít. 4.2.13 Release Notes Povinná kapitola technické dokumentace uuapp, vniká až po nasazení do produkce. Obsahuje následující podstránky: Licence pojednává o licenci aplikace. Major verze jednotlivé stránky popisují změny a opravy ve verzích aplikace. Dělí se na sekce s minor verzemi a patchy. 4.2.14 V přípravě Volitelná kapitola. Obsahuje rozpracované stránky knihy, které budou po dokončení zařazeny do struktury knihy. 4.2.15 O knize Povinná kapitola. Obsahuje velice stručné shrnutí účelu knihy a obsahuje seznam nejdůležitějších autorů aplikace či systému (vedoucí role projektu, designéry, vývojáře a další). Může obsahovat také rok vydání, vydavatele a ISBN. 4.2.16 O aplikaci uubookkit Povinná kapitola. Obsahuje základní informace o aplikaci uubookkit, jejích autorech a použitých technologiích. 54

5 Představení problematické domény lovectví Návrh aplikace vyžaduje znalost problematické domény na potřebné úrovni. Je zapotřebí seznámit se s prostředím zákazníka, hlavními procesy, aktéry a jednotlivými případy užití. Sám klient má vlastní specifické požadavky, nutno je také brát v úvahu vnější omezení, která nelze ovlivnit, například legislativa, normy a zvyky vztahující se k dané problematice. V této kapitole představím základní pojmy a principy lovectví, potřebné pro návrh aplikace Lovecký klub. 5.1 Základní pojmy 5.1.1 Lovectví a myslivost Lovectví je jednou z nejstarších činností člověka. Lovecký úspěch je závislý na znalosti lovené zvěře a prostředí. Bylo by tedy vhodné, aby aplikace poskytovala také základní informace jak o lovné zvěři, tak prostředí. Myslivost znamená souhrn znalostí a činností, kterými lidé záměrně upravují poměr k volně žijící zvěři. Problematikou se zabývá zákon o myslivosti a aplikace bude navržena v souladu s tímto zákonem. Aplikace je primárně určena ke správě a plánování lovů a evidenci úlovků a lovců, nicméně v další etapě je možno ji rozšířit také o správu honitby ve smyslu podrobné evidence a výkaznictví. 51 5.1.2 Honitba Právo myslivosti lze vykonávat pouze na pozemcích k tomu určených, pojmenovaných jako honitba. V honitbě hospodaří fyzická osoba nebo myslivecký spolek, označený jako uživatel honitby. Lov podléhá plánu mysliveckého hospodaření, který každý rok musí správce honitby vypracovat a vykázat. Rozlišujeme rok hospodářský (od 1. 1. do 31. 12.) a rok myslivecký (lovecká sezóna, začínající lovem sluk a končící lovem černé zvěře). 51 5.1.3 Lovec Dle zákona o myslivosti se lovcem rozumí myslivec účastnící se lovu na zvěř. Lov typu hon vede vedoucí honu, zpravidla hospodář nebo vlastník honitby, další lovečtí účastníci jsou označeni jako lovečtí hosté. Dalšími účastníky lovů jsou pomocné role, jako nabíječi a nosiči zvěře. 51 51 Kolektiv autorů. Penzum znalostí z myslivosti. Praha: Druckvo, 2016, s. 55-56. ISBN 978-80-87668-22-1 55

5.1.4 Zvěř Pojem zvěř zahrnuje jen ta zvířata z řad savců (zvěř srstnatá) a ptáků (zvěř pernatá), která jsou vyjmenována v zákoně o myslivosti. Z hlediska zákona je zvěř rozdělena na chráněnou (nelze lovit), hájenou (lze lovit jen v určitém období v roce) a nehájenou (lze volit po celý rok). V první fázi návrhu aplikace není na toto rozdělení brán zřetel, je však možno přidat tuto informaci do popisku druhů lovné zvěře. 52 5.1.5 Lovecké zbraně Lovecké zbraně se dělí na chladné (ostré, tedy sečné a řezné) a palné (ručnice například kulovnice a brokovnice). K lovu lze používat také další nástroje, jako jsou různé druhy pastí. V aplikace budou všechny tyto nástroje označeny jako zbraň. 52 5.1.6 Lovecká kynologie Též psářství neboli věda o loveckých psech, se zabývá jejich chovem, výcvikem a uplatněním při lovu. Lovecky upotřebitelný pes je čistokrevný pes, který složil předepsanou zkoušku z výkonu. Plemena loveckých psů dělíme dle využití na ohaře, přinášeče, slídiče, honiče, barváře a norníky. 52 5.1.7 Lovecká zařízení Lovecká zařízení poskytují výhodu lovci při lovu zvěře, zejména výhled z vyvýšeného místa a jistou míru maskování a ochrany před povětrnostními vlivy. Nejčastějším zařízením je posed, žebříky opatřené sedátkem a pozorovatelny. Pro účely aplikace tato zařízení označujeme obecným pojmem stanoviště. 52 5.2 Způsoby lovu zvěře Cílem lovu je získání úlovku odstřelem (nejběžnější) či odchytem. Podle počtu střelců rozlišujeme lov osamělý a společný (průvodce lovce se nepočítá do seznamu lovců). Společný lov řídí jeho vedoucí. V aplikaci bude za každý lov zodpovídat tzv. organizátor. Druhů lovu je velké množství, pro účely aplikace je seznam zjednodušen na tři základní, které popisuji níže. 52 5.2.1 Čekaná Lov osamělý, který se odehrává na konkrétním místě (stanovišti), kde lze očekávat zvěř. 52 Kolektiv autorů. Penzum znalostí z myslivosti. Praha: Druckvo, 2016, s. 57-76. ISBN 978-80-87668-22-1 56

5.2.2 Šoulačka Osamělý způsob lovu, kdy lovec, často doprovázen loveckým psem, opatrně prochází honitbou. Zahrnuje také stopování. 53 5.2.3 Hon Skupinový lov, kterého se musí účastnit minimálně tři lovci a jeden lovecký pes. Zpravidla se jej však účastní větší počet lovců i hostů lovu. Hon se může skládat z několika naháněk nebo lečí. Ty se mohou odehrávat postupně na různých místech v honitbě. 53 5.3 Překlad pojmů do angličtiny Jelikož zdrojové kódy aplikací navrhovaných a implementovaných v uuapp Frameworku se řídí konvencí psaní v anglickém jazyce, bylo zapotřebí pro tvorbu designu zajistit překlad všech používaných entit (tabulka 2). Tabulka 2: Překlad loveckých pojmů do anglického jazyka Pojem v českém jazyce Lovecký klub Honitba Stanoviště Lov Čekaná Šoulačka Hon Leč Úlovek Druh zvěře Účastnící lovu Lovec Zbraň Lovecký pes Pojem v anglickém jazyce Hunting club Hunting ground Hunting post Hunt Stand hunt Stalking Group hunt Drive hunt Catch Animal species Hunt participants Hunter Gun Hunting dog Zdroj: Vlastní zpracování 53 Kolektiv autorů. Penzum znalostí z myslivosti. Praha: Druckvo, 2016, s. 77-78. ISBN 978-80-87668-22-1 57

Praktická část 1 Návrh vhodného řešení Cílem této práce je vytvoření návrhu aplikace +4U Lovecký klub formou technické dokumentace podle standardu Unicorn Application Framework. V této kapitole popíši, jak probíhal proces zadání projektu, komunikace se zadavatelem a samotný průběh projektu. 1.1 Zadání a požadavky zákazníka Na úvodní schůzce ze zadavatelem byl definován účel požadované aplikace a základní požadavky. Cílem aplikace +4U Lovecký klub je poskytnout systém pro správu lovů a lovců a evidenci úlovků v rámci jedné honitby. Původní záměr zadavatele počítal s tím, že cílová skupina aplikace budou samotní lovci, kteří by si evidovali své úlovky v rámci více honiteb. V průběhu projektu se však zadavatel aplikace rozhodl zacílit spíše na provozovatele či majitele jednotlivých honiteb, kteří aplikaci využijí pro evidenci své honitby a budou aplikaci dále distribuovat mezi samotné lovce, kteří i po změně záměru aplikace zůstali jako nejpočetnější skupinou uživatelů. 1.1.1 Hlavní požadavky na aplikaci Hlavním předpokladem akceptace zakázky zadavatelem je, že klientská i serverová část aplikace bude navržena a implementována dle standardu a za užití technologií UAF. V první etapě, kterou se zabývá tato práce, bude zpracována technická dokumentace v takovém rozsahu, aby bylo možno zašít implementaci serverové části v rámci další etapy. Hlavní požadavky zadavatele na aplikaci jsou definovány formou následujících problémů, které má aplikace řešit: Správa honitby. Správa stanovišť v rámci honitby. Správa lovců, jejich zbraní a loveckých psů. Správa lovů. Pokryté typy lovu: číhaná, šoulačka a hon. Evidence úlovků v rámci lovů. Správa druhů zvěře. Profily uživatelů budou Authorities, Executives, Hunters a Guests. 58

Zajištění vytvoření uubml ikon a povinné grafiky pro uubookkit. 1.1.2 Doplňující požadavky na aplikaci Následující požadavky byly definovány v průběhu projektu na pravidelných schůzkách se zadavatelem: Další požadavky na aplikaci: uuapp je typu N a tedy každý awid reprezentuje jednu unikátní honitbu. Front-end profily Hunters vidí všechna data, mažou a editují jen data týkající se jich samotných. Lovec může použít zbraň jiného účastníka lovu. Lov typu hon zakládají jen profily Executives. Založení úlovku: kontrola času lovu (čas úlovku >= začátek lovu čas úlovku <= konec lovu). Stavy lovu active, passive a closed. Následující požadavky jsou ve stádiu nápadu pro rozvoj v dalších etapách: o Úlovek a lov používají zatím pouze stav active (stav closed bude používán do budoucna pro uzavírání loveckého roku v dalších etapách rozvoje). o Statistiky entit grafy. o Práce hospodáře honitby výkaznictví. 1.2 Průběh projektu Dle standardu UAF je projekt vývoje aplikace rozdělen na etapy, které musí mít po dokončení viditelnou přidanou hodnotu pro koncového zákazníka. V tomto případu je tedy první etapa tvorba technické dokumentace, kterým se tato práce zabývá. Etapa byla rozdělena na jednotlivé sprinty o délce jednoho až dvou týdnů, dle aktuální potřeby projektu. Na závěru každého sprintu jsem jako autor návrhu konzultoval aktuální stav se zadavatelem, vzhledem k jeho vytíženosti nejčastěji prostřednictvím jím určených zástupců. Zásadní milníky projektu byly prezentovány a konzultovány s vedoucím bakalářské práce. Průběh etapy lze rozdělit na čtyři logické fáze, které blíže představím v následující kapitole o samotné dokumentaci. Jelikož v UAF probíhá vývoj v neustálých iteracích, jednotlivé části byly zpětně upravovány pro potřeby nově vzniklých částí návrhu: 59

Business model bylo zapotřebí definovat základní business problematiku. Kterou aplikace bude řešit. K tomu slouží kapitola dokumentace Business model, obsahující Business schéma, kde jsou znázorněny a popsány všechny entity aplikace a jejich vztahy, role (odpovídající profilům v aplikaci), procesy a jednotlivé případy užití. V této fázi jsem také na přání zadavatele zajistil tvorbu a nasazení nových uubml ikon pro potřeby business modelu a grafickou tvorbu log a přebalů knihy pro dokumentaci v aplikaci uubookkit. Struktura aplikace jakmile byla definována aplikace z business pohledu, začal samotný návrh technického řešení. Vzhledem k rozsahu aplikace je v první etapě zapotřebí dekompozice na jednu uusubapp, která bude využívat jedno objektové a jedno binární perzistentní úložiště. Návrh serverové části logicky jsem nejprve navrhl strukturu schémat perzistence všech entit (uuschema). Zde již bylo zapotřebí získat detailní požadavky na vlastnosti a ukládané informace entit. Po revizích a odsouhlasení zadavatele jsem navrhl veškeré potřebné commandy (uucmd), pokrývající potřeby definované v případech užití. Návrh klientské části front-end aplikaci byl rozebírán již během schůzek k backendu. Se zadavatelem bylo dohodnuto, že aplikace bude mít jedno uu5uve a uu5route pokrývající potřebné procesy definované v business modelu. Zejména v této fázi bylo zapotřebí často upravovat již navržené commandy pro potřeby uživatelského rozhraní. Poté jsem vytvořil mock upy těchto obrazovek a hlavních formulářů. V závěru této fáze již bylo možno etapu považovat za dokončenou. Zejména pro účely této práce jsem pro entitu lovu (hunt) vytvořil návrh všech vizuálních komponent (uu5component). Kompletní návrh všech komponent je však předmětem až dalších etap. 60

2 Samotná dokumentace - Rozšířené shrnutí Jak jsem již uvedl v úvodu této práce, její hlavní částí je vypracovaná technická dokumentace aplikace +4U Lovecký klub (design). UAF jasně předepisuje použití nástroje uubookkit pro tvorbu dokumentace, tedy i dokumentace vytvořená pro účely této práce se nachází v aplikaci uubookkit. Odkaz na technickou dokumentaci se nachází pod QR kódem na obrázku 11. Export celé dokumentace do formátu PDF je nedílnou součástí této práce jako její příloha A. V této kapitole shrnu její obsah a představím její nejdůležitější nebo nejzajímavější části. Obrázek 11: QR kód odkazující na technickou dokumentaci aplikace +4 Lovecký klub 2.1 Business Model Zdroj: Vlastní zpracování V této části dokumentace je důležitý diagram Business schema, který znázorňuje všechny entity aplikace a jejich vztahy (obrázek 12) a na který navazují další schémata, např. ta k persistenci. Sada uubml ikon s názvy šoulačka, hon, leč a stanoviště byla vytvořeny přímo pro potřeby této dokumentace. 61

Obrázek 12: Business schema - Lov Entity z obrázku 12 jsou popsány v tabulce 3. Zdroj: Vlastní zpracování Tabulka 3: Popis entit Business schema Název Honitba Lov Popis Hlavní entita aplikace. Pozemek či oblast, ve které probíhají lovy. Honitba obsahuje libovolné množství stanovišť. Eviduje jméno honitby a její stavy: "active" - plně funkční stav bez omezení funkcionalit, "passive" - na objektech nelze provádět operace CUD, možný pouze Read, "warning" a "problem" - informativní charakter pro využití v dalších etapách vývoje, "closed" - uzavřená honitba, nelze provádět žádné operace na objektech uvnitř aplikace ani je číst. Událost, kdy účastnící lovu loví zvěř. Rozlišujeme typy lovu čekaná, šoulačka a hon. Lov probíhá na území honitby. Eviduje zejména úlovky a účastníky lovu. Lovu se navíc můžou zúčastnit hosté, kteří při lovu neloví zvěř. 62

Čekaná Šoulačka Hon Leč Úlovek Druh zvěře Stanoviště Účastnící lovu Lovec Zbraň Lovecký pes uuidentity Potomek lovu, kterého se účastní alespoň jeden lovec. Ten vyhledává vhodné stanoviště, kde čeká, až se mu zvěř objeví. Čekaná se odehrává na konkrétním stanovišti. Potomek lovu, kterého se účastní alespoň jeden lovec. Lovec se pohybuje honitbou a vyhledává kořist. Úlovek tak nemusí být vázán na konkrétní stanoviště. Potomek lovu, kterého se účastní minimálně tři lovci a minimálně jeden lovecký pes. Hon se skládá z jedné či více lečí. Jedná se o samotný jeden lov v rámci honu, dílčí událost honu. Hlavní entita, cíl lovu. Úlovkem je právě jeden typ zvěře, náležící právě jednomu lovci (určeného metodou "První kule, poslední brok") a konkrétní GPS souřadnici, případně konkrétnímu stanovišti v honitbě. Obsahuje veškeré informace o úlovku. Obsahuje seznam možné lovné zvěře s hlavními informacemi o dané zvěři. Pokud je druh zvěře ve stavu "closed", nelze jej již přiřadit novému úlovku, ale u stávajících úlovků zůstává zobrazen. Místo na mapě, definované souřadnicemi GPS, náležící do honitby. V honitbě je zpravidla více stanovišť. Jedná se např. o posed či jinak definovaný bod na mapě. Entita seskupující veškeré účastníky lovu, tedy lovce a lovecké psy. Entita je součástí lovu. Hlavní účastník lovu a hlavní uživatel aplikace. Eviduje lovy, kterých se zúčastnil, úlovky, zbraně, lovecké psy a vybrané statistiky. Patří konkrétnímu lovci a je nezbytný pro získání úlovku. Lovec může k uskutečnění úlovku použít zbraň jiného účastníka lovu. Účastník lovu, patří konkrétnímu lovci. Nezbytný pro lov typu hon. Majitel loveckého psa nemusí být účastníkem lovu. Unicorn Universe ID, unikátní identifikátor lovce. Zdroj: Vlastní zpracování 2.1.1 Business role a procesní dekompozice Z business modelu bych rád zmínil ještě business role a hlavní procesy, které aplikace řeší (obrázek 13). Seznam business případů užití lze dohledat v dokumentaci (kapitola Business model). 63

Obrázek 13: Business role a procesní dekompozice Zdroj: Vlastní zpracování Business role jsou popsány v tabulce 4 a procesy v tabulce 5 níže. Tabulka 4: Popis business rolí aplikace Název AwidOwner Authorities Executives Hunters Guests Popis Reprezentuje uživatele, kteří mohou zřídit instanci honitby, inicializovat ji pro další užívání a případně instanci honitby zrušit. Obvykle bude tyto uživatele reprezentovat specifikovaný uuee. Reprezentuje majitele loveckého klubu. Reprezentuje skupinu uživatelů, kteří mohou kvalifikovaně spravovat Lovecký klub a honitbu (vytvářet, aktualizovat, rušit lovce, zbraně, lovecké psy, stanoviště, druhy zvěře, lovy a úlovky všem lovcům). Reprezentuje skupinu uživatelů, kteří mohou kvalifikovaně spravovat (vytvářet, aktualizovat, rušit) lovy a úlovky v rámci svého profilu. Správa lovu zahrnuje také správu jeho účastníků. Reprezentuje skupinu uživatelů, kteří si mohou pouze zobrazovat statistiky o lovcích a jejich loveckých statistikách, zbraních, loveckých psech, lovech, úlovcích, druzích zvěře, honitbě a stanovištích. Zdroj: Vlastní zpracování 64

Tabulka 5: Popis business procesů aplikace Název Správa aplikace Správa Loveckého klubu Správa lovů a úlovků Čtení obsahu Popis Proces zajistí vytvoření instance honitby a její plnou přípravu k dalšímu použití. Honitba bude ve stavu "active", kdy je již možno spouštět další procesy. Umožňuje změnu parametrů honitby. Proces zajistí CRUD operace uživatelů loveckého klubu, lovců, zbraní, loveckých psů, stanovišť a druhů zvěře. Proces zajistí CRUD operace lovů a úlovků. Proces zajistí uživatelům zobrazení informací o lovcích a jejich loveckých statistikách, zbraních, loveckých psech, lovech, úlovcích, druzích zvěře, honitbě a stanovištích. 2.2 Struktura aplikace Zdroj: Vlastní zpracování Obrázek 14 znázorňuje topologii aplikace +4U Lovecký klub. uuapp +4U Lovecký klub se skládá u jedné uusubapp s názvem main, která využívá jedno objektové perzistentní úložiště s názvem primary a jedno perzistentní úložiště binárních dat (zejména obrázky) s názvem Binary. Profily aplikace odpovídají business rolím v business modelu. Aplikace je navržena tak, že profily poskytují práva uživatelům na konkrétní procesy (respektive skupiny případů užití) a tedy jeden uživatel může být obsazen ve více profilech. Obrázek 14: Topologie aplikace Zdroj: Vlastní zpracování 2.3 Serverová část Tato část technické dokumentace se nachází v nejrozsáhlejší kapitole s názvem uusubapp main, která kompletně popisuje technickou stránku aplikace. Serverovou částí se zabývá podkapitola uuappobjetstore primary (popis struktury objektového persistentního úložiště) a podkapitola uucmd List (popis commandů navržených pro aplikaci). 65

2.3.1 uuappobjectstore primary Kapitola obsahuje jednotlivá schémata persistence (uuschema) strukturovaných dat (uuobject). Objekty a jejich vazby odpovídají entitám v business modelu, není zapotřebí je tedy znovu popisovat. Obrázek 15 znázorňuje strukturu schémat objektového úložiště. V obrázku vyobrazené objekty se značkou složených závorek {} značí, že takovýto objekt má popsané vlastní schéma. Například schéma Hunt participants je dle schématu součástí schéma Hunt. Obrázek 15: Schema diagram objektového úložiště primary Zdroj: Vlastní zpracování Jednotlivá schémata objektů obsahují základní popis entity, pro kterou je schéma určeno, zdrojový kód schématu v jazyce JavaScrip, který je již použitelný v samotné implementaci úložiště při vývoji (ukázka v obrázku 16) a seznam limitů, indexů a DAO metod pro dané schéma. 66

Obrázek 16: Ukázka zdrojového kódu schéma Hunt - type T02 Zdroj: Vlastní zpracování Obrázek 15 znázorňuje zdrojový kód schématu pro objekt lovu (hunt), konkrétně pro lov typu šoulačka. Návrh obsahuje strukturu schématu včetně klíčů a popisem jejich hodnot. Zásadní výhoda návrhu schéma designérem uuapp je ta, že šetří čas vývojářů, kteří se nemusí návrhem struktury schéma již zabývat. 2.3.2 uu5cmd List Kapitola obsahuje stránky s jednotlivými commandy (uucmd), Každý návrh commandu obsahuje jeho základní informace (důležité je zejména definování profilu, který má právo uucmd volat), zdrojové kódy vstupu (dtoin), validace dtoin, a výstupu (dtoout), seznam výchozích hodnot, které nejsou povinné v dtoin a program je doplní sám, happy day scénář s hlavním tokem commandu, alternativní scénáře a seznam možných výjimek, které mohou při vykonávání commandu na serveru nastat. Rovněž jako v případě návrhu uuschema, také zdrojové kódy z návrhu uucmd lze rovnou požít vývojáři při implementaci. 2.4 Klientská část Stejně jako serverová část designu, také ta klientská se nachází v nejrozsáhlejší kapitole s názvem uusubapp main, která kompletně popisuje technickou stránku aplikace. 67

Klientskou částí se zabývá podkapitola uu5uve List, obsahující seznam uu5uve (uživatelských vstupních bodů). V případě aplikace +4U Lovecký klub je navrženo použití jednoho uu5uve s názvem huntingclub, sloužícího pro vstup do aplikace jak běžným uživatelům z profilů Hunters a Guests, tak správcům loveckého klubu (respektive honitby) z profilů Authorities a Executives. Jak jsem již uvedl, uu5uve slouží jako vstupní bod uživatele do aplikace typu SPA (Single Page Application). Po načtení aplikace je uživatel odkázán na jím zadanou uu5route (adresovatelná část SPA), případně je přesměrován na defaultní, pokud žádnou v URI prohlížeče nezadal. uu5route se dále skládají z vizuálních i nevizuálních uu5 komponent. Popisu navržených uu5route a vybraných uu5component jsou věnovány dvě následující podkapitoly. Ve fázi návrhu aplikace jsou komponenty navrhovány v rozsahu jejich popisu, uubml schéma znázorňující dekompozici na dílčí komponenty (navrhované v aplikaci i ty z již poskytovaných uu5 knihoven) a případně lze může designér vytvořit mock up jejich zamýšleného vzhledu. 2.4.1 uu5route List Jednotlivé stránky této podkapitoly obsahují popis uu5 komponent typu uu5route. Jsou to komponenty, které lze adresovat pomocí URI, a často obsahují logiku načítání dat ze serveru, která dále předávají podřazeným komponentám, která data již zobrazují, filtrují, případně umožňují uživateli aplikaci dále ovládat (vytvářet, editovat či mazat entity). Obrázek 17 znázorňuje vazby všech uu5route na uu5uve huntingclub a tabulka 6 tyto uu5route popisuje. 68

Obrázek 17: Route diagram aplikace Zdroj: Vlastní zpracování Tabulka 6: Popis všech uu5route aplikace Název welcome hunts catches Popis Zobrazí uvítací stránku aplikace. Obsahuje menu ikon s odkazy na další routy pro zobrazení seznamu lovů, seznamu úlovků a seznamu lovců, detail honitby a uživatelům z profilu Hunters je zobrazen také odkaz na detail jejich loveckého profilu. Zobrazí seznam lovů, které lze filtrovat podle data, stavu, lovce, zbraně, loveckého psa a stanoviště. Ze seznamu si lze zobrazit detail lovu. Položky ve stavu "closed" jsou defaultně skryty. Umožňuje profilům Authorities, Executives a Hunters lovy vytvářet, editovat a mazat, Hunters mohou spravovat pouze svoje lovy (kde jsou vedeni jako Organizátor lovu). Zobrazí seznam úlovků, které lze filtrovat podle data, stavu a lovců, zbraně, loveckého psa a stanoviště. Ze seznamu si lze zobrazit detail úlovku. Položky ve stavu "closed" jsou defaultně skryty. Umožňuje profilům Authorities, Executives a Hunters úlovky vytvářet, editovat a mazat, Hunters mohou spravovat pouze svoje úlovky. 69

hunters huntingground huntdetail catchdetail hunterdetail gundetail huntingdogdetail huntingpostdetail animalspeciesdetail Zobrazí seznam lovců, které lze filtrovat podle stavu. Ze seznamu si lze zobrazit detail lovce. Položky ve stavu "closed" jsou defaultně skryty. Umožňuje profilům Authorities a Executives lovce vytvářet, editovat a mazat, Hunters mohou své profily editovat. Zobrazí detail honitby včetně seznamů stanovišť a druhů zvěře. Role Executives mohou stanoviště a druhy zvěře spravovat, role Authorities navíc může honitbu editovat. Zobrazí detail lovu včetně jeho účastníků, hostů a úlovků. Profily Authorities, Executives a Hunters mohou lov také spravovat. Zobrazí detailní informace o úlovku a umožňuje rolím Executives a Hunters jeho editaci. Zobrazí detailní informace o lovci, včetně jeho zbraní, loveckých psů, úlovků a lovů, kterých se účastnil. Umožňuje jeho editaci a smazání. Zobrazí detailní informace o zbrani včetně seznamu jejích úlovků. Umožňuje rolím Executives a Hunters její editaci. Zobrazí detailní informace o loveckém psovi včetně seznamu jeho úlovků a lovů, kterých se účastnil. Umožňuje rolím Executives a Hunters jeho editaci. Zobrazí detailní informace o stanovišti včetně seznamu úlovků a lovů, které se na něm uskutečnily. Umožňuje rolím Executives jeho editaci. Zobrazí detailní informace o druhu zvěře včetně seznamu úlovků tohoto druhu. Umožňuje rolím Executives jeho editaci. Zdroj: Vlastní zpracování 2.4.2 uu5component List Stejně jako v případě seznamu uu5route, také zde jednotlivé podstránky obsahují popis uu5component navržených pro potřeby aplikace. Obrázek 18 znázorňuje digram dekompozice komponenty HuntingClubReady, která se vykresluje v situaci, kdy se uživateli řádně načtou data honitby a zvolené uu5route. Kromě směrování na konkrétní uu5route pomocí komponenty UU5.Common.Router také komponenta vykresluje samotnou stránku aplikace pomocí 70

standardní komponenty Plus4U5.App.Page. Tabulka 7 popisuje jednotlivé části dekomponované komponenty. Obrázek 18: Diagram komponenty HuntingClubReady Zdroj: Vlastní zpracování Tabulka 7: Popis komponent tvořících komponentu HuntingClubReady Název HuntingClubSpaAuth enticated HuntingClubReady goto{route} Plus4U5.App.Page //bottom Popis Nadřazená komponenta, představuje stránku HuntingClub pro přihlášeného uživatele. Navrhovaná komponenta. Metoda rozhraní komponenty HuntingClubReady zajišťující zavolání uživatelem požadované uu5route. Standardní komponenta knihovny Plus4U5 pro vykreslení okna aplikace. Komponenta obsahuje patičku okna aplikace. 71

//top //left UU5.Common.Router {route} Komponenta obsahuje hlavičku okna aplikace. Komponenta obsahuje navigační menu aplikace. Standardní komponenta knihovny UU5, která zajišťuje směrování na uu5route. Představuje uživatelem zvolenou uu5route, případně defaultní. Zdroj: Vlastní zpracování 2.4.3 Mock up Jak jsem již uvedl, součástí návrhu uu5route nebo uu5component může být také mock up komponenty nebo obrazovky, který napomáhá její vizualizaci. Kompletní přehled mock upů je k nalezení v příloze B, na obrázcích 19 až 23 představím několik z nich. Moc kupy jsou vytvořeny v knize technické dokumentace pomocí knihovny UU5 a dalších knihoven uu5 komponent. Obrázek 19: Mock up - Detail honitby (desktopová verze) Zdroj: Vlastní zpracování 72

Obrázek 20: Mock up - Seznam úlovků v honitbě (desktopová verze) Zdroj: Vlastní zpracování Obrázek 21: Mock up - Vytvoření zbraně (desktopová verze) Zdroj: Vlastní zpracování 73

Obrázek 22: Mock up - Seznam lovů v honitbě (mobilní verze) Zdroj: Vlastní zpracování Obrázek 23: Mock up - Vytvoření lovu (mobilní verze) Zdroj: Vlastní zpracování 74