i
ii
České vysoké učení v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce
Bakalářská práce Mobilní aplikace na podporu výuky staročeštiny na platformě Windows 8
Jakub Kopřiva
Vedoucí práce:
Ing. Martin Klíma, PhD.
Studijní program: Softwarové technologie a management, Bakalářský Studijní obor: Web a multimedia 20. května 2013
iv
v
Poděkování V první řadě bych rád poděkoval vedoucímu práce Ing. Marinu Klímovi, PhD. za příležitost být součástí tohoto projektu a za jeho spolupráci během mé práce. Rád bych také poděkoval Mgr. Jiřímu Danihelkovi, který mi byl skvělým konzultantem a spolupracovníkem na serverové části projektu. Dále bych rád poděkoval mé rodině, za morální podporu, bez které by moje studium nebylo tak příjemné.
vi
vii
Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně a výhradně s použitím citovaných pramenů, literatury a dalších odborných zdrojů. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona v platném znění, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle §60 odst. 1 autorského zákona.
V Praze dne 23. 5. 2013
……………………………………………...
viii
Abstract Thanks to grant from The Ministry of Culture and cooperation with Department of Czech Language at Science Academy of Czech Republic which creates possibilities for software development of new educational applications. Main task of this paper is to create expandable system for education at czech high schools. My task was to create two aapplications for this system. In this paper is the whole process of development, from analysis through design, implementation and testing to the end product.
Abstrakt Díky grantu Ministerstva kultury a spolupráci s Ústavem pro jazyk český Akademie věd ČR, v. v. i. vzniká nová možnost pro vývoj aplikací na podporu výuky, tato práce si dává za úkol vytvoření rozšiřitelného informačního systému pro podporu výuky na středních školách, konkrétně dvou výukových aplikací pro tento informační systém. V práci je uveden celý proces vývoje systému od jeho analýzy přes návrh až po jeho implementaci a testování.
ix
x
OBSAH ÚVOD ......................................................................................................................................................... 1 1
MOTIVACE ..................................................................................................................................... 1
2
SCÉNÁŘE POUŽITÍ ....................................................................................................................... 2 2.1 2.2
APLIKACE SYNCHRONIZOVANÉ ČTENÍ............................................................................................ 2 APLIKACE PRO LUŠTĚNÍ KŘÍŽOVEK................................................................................................. 2
ANALÝZA.................................................................................................................................................. 3 3
ANALÝZA STÁVAJÍCÍHO STAVU ............................................................................................. 3 3.1 ARCHITEKTURA STÁVAJÍCÍHO SYSTÉMU......................................................................................... 3 3.2 FUNKCIONALITA STÁVAJÍCÍHO SYSTÉMU ....................................................................................... 4 3.2.1 IT Jakub Service .................................................................................................................. 4 3.2.2 Lemmatizace, Stematizace ................................................................................................... 4 3.2.3 Lístková kartotéka ................................................................................................................ 4 3.2.4 SearchService ....................................................................................................................... 4 3.2.5 WebClient ............................................................................................................................ 4 3.2.6 MobileApplication ............................................................................................................... 4 3.2.7 MS Office pagin ................................................................................................................... 5 3.3 DATA ............................................................................................................................................. 5 3.3.1 XML dokumenty v Exist databázi ....................................................................................... 5 3.3.2 Lístková kartotéka ................................................................................................................ 6
4
ANALÝZA UŽIVATELSKÝCH ROLÍ MOBILNÍ APLIKACE ................................................ 6 4.1 4.2 4.3 4.4
5
ROLE I: ŘEDITEL ŠKOLY ................................................................................................................. 6 ROLE II: ZÁSTUPCE ŘEDITELE ŠKOLY ............................................................................................. 6 ROLE III: VYUČUJÍCÍ ...................................................................................................................... 6 ROLE VI: STUDENT ........................................................................................................................ 7
PLATFORMA .................................................................................................................................. 7 5.1 SROVNÁNÍ PLATFOREM .................................................................................................................. 7 5.2 EDICE WINDOWS 8 ......................................................................................................................... 7 5.3 WINDOWS AZURE .......................................................................................................................... 8 5.3.1 Databáze Windows Azure SQL ........................................................................................... 9
6
POŽADAVKY NA ŘEŠENÍ ............................................................................................................ 9 6.1 FUNKČNÍ ........................................................................................................................................ 9 6.1.1 Změna role uživatele v systému ......................................................................................... 10 6.1.2 Funkční požadavky aplikace Synchronizovaného čtení ..................................................... 10 6.1.3 Funkční požadavky aplikace Křížovky .............................................................................. 11 6.1.4 Shrnutí funkčních požadavků ............................................................................................. 11 6.2 NEFUNKČNÍ .................................................................................................................................. 13 6.2.1 Rychlost odezvy ................................................................................................................. 13 6.2.2 Platforma ............................................................................................................................ 13 6.2.3 Stabilita .............................................................................................................................. 13 6.2.4 Použitelnost ........................................................................................................................ 13 6.2.5 Připojení k internetové síti ................................................................................................. 13 6.2.6 Rozšiřitelnost ..................................................................................................................... 13
7
PŘÍPADY POUŽITÍ SYSTÉMU .................................................................................................. 14 7.1 7.2 7.3 7.4
ÚVOD APLIKACE ........................................................................................................................... 14 UŽIVATEL PŘIHLÁŠENÝ V SYSTÉMU ............................................................................................. 15 APLIKACE SYNCHRONIZOVANÉHO ČTENÍ ..................................................................................... 19 APLIKACE KŘÍŽOVKY ................................................................................................................... 22
NÁVRH..................................................................................................................................................... 25 8
NÁVRH ARCHITEKTURY ......................................................................................................... 25
xi
xii
OBSAH
9
DATOVÝ MODEL ......................................................................................................................... 25
10
SERVEROVÁ ČÁST SYSTÉMU ................................................................................................. 27 10.1
11
NÁVRH DATABÁZE ................................................................................................................... 28
KLIENTSKÁ ČÁST SYSTÉMU................................................................................................... 29 11.1 FUNKCE SPOLEČNÉ PRO VŠECHNY VÝUKOVÉ APLIKACE ........................................................... 29 11.2 FUNKČNOST APLIKACE SYNCHRONIZOVANÉ ČTENÍ ................................................................. 29 11.3 FUNKČNOST APLIKACE KŘÍŽOVKY .......................................................................................... 30 11.4 NÁVRH SYSTÉMU Z HLEDISKA TŘÍD ......................................................................................... 30 11.4.1 Namespace Views ......................................................................................................... 30 11.4.2 Namespace Classes ........................................................................................................ 32 11.5 NÁVRH UŽIVATELSKÉHO ROZHRANÍ ........................................................................................ 36 11.5.1 AppBar .......................................................................................................................... 36 11.5.2 Titulek zobrazení ........................................................................................................... 37 11.5.3 Návrh pro dotykové obrazovky ..................................................................................... 37 11.5.4 Návrh jednotlivých obrazovek systému mobilní aplikace. ............................................ 38
IMPLEMENTACE .................................................................................................................................. 45 11.6 11.7
VERZE POUŽITÉHO SOFTWARE ................................................................................................. 45 DETAILY IMPLEMENTACE ........................................................................................................ 45
TESTOVÁNÍ ............................................................................................................................................ 47 12
TEST POUŽITELNOSTI SYSTÉMU .......................................................................................... 47 12.1 CÍLOVÁ SKUPINA ..................................................................................................................... 47 12.2 PARAMETRY ZAŘÍZENÍ, NA KTERÉM BYL SYSTÉM TESTOVÁN ................................................... 47 12.3 SCREENER DOTAZNÍK .............................................................................................................. 47 12.4 PRE-TEST DOTAZNÍK ................................................................................................................ 48 12.5 SCÉNÁŘE UŽITÍ ........................................................................................................................ 48 12.6 VYHODNOCENÍ TESTOVÁNÍ ...................................................................................................... 50 12.6.1 Nalezené problémy ........................................................................................................ 50 12.7 POST-TEST DOTAZNÍK .............................................................................................................. 50
ZÁVĚR ..................................................................................................................................................... 51 12.8 12.9
ZHODNOCENÍ SPLNĚNÍ CÍLŮ ..................................................................................................... 51 PRÁCE BUDOUCÍ ...................................................................................................................... 51
SEZNAM REFERENCÍ .......................................................................................................................... 53 PŘÍLOHA A.
VÝSLEDKY DOTAZNÍKŮ ....................................................................................... 55
PŘÍLOHA B.
SEZNAM ZKRATEK ................................................................................................. 59
PŘÍLOHA C.
INSTALAČNÍ A UŽIVATELSKÁ PŘÍRUČKA ...................................................... 61
PŘÍLOHA D.
OBSAH PŘILOŽENÉHO CD .................................................................................... 67
SEZNAM OBRÁZKŮ Obrázek 1 - Architektura současného stavu ..................................................................... 3 Obrázek 2 - Změna role uživatele v systému .................................................................. 10 Obrázek 3 - Případy užití stavu systému po otevření aplikace ....................................... 14 Obrázek 4 - Případy užití stavu systému po přihlášení uživatele ................................... 15 Obrázek 5 - Případy užití aplikace Synchronizované čtení ............................................ 19 Obrázek 6 - Případy užití aplikace Křížovky.................................................................. 22 Obrázek 7 - Návrh architektury ...................................................................................... 25 Obrázek 8 - Doménový model systému .......................................................................... 26 Obrázek 9 - Návrh databáze serveru ............................................................................... 28 Obrázek 10 - Windows AppBar [5] ................................................................................ 37 Obrázek 11 - Titulek stránky [5]..................................................................................... 37 Obrázek 12 - Minimální doporučená velikost [5] ........................................................... 38 Obrázek 13 - Minimální doporučená velikost pokud je vyžadována vyšší přesnost uživatele [5] .................................................................................................................... 38 Obrázek 14 - Úvodní obrazovka aplikace ....................................................................... 38 Obrázek 15 - Obrazovka přihlášení do systému ............................................................. 39 Obrázek 16 - Obrazovka zobrazující seznam sezení ...................................................... 40 Obrázek 17 - Obrazovka pro vytvoření nového sezení................................................... 40 Obrázek 18 - Obrazovka pro výběr typu sezení ............................................................. 41 Obrázek 19 - Obrazovka synchronizovaného čtení ........................................................ 41 Obrázek 20 - Obrazovka aplikace Křížovky (Flyout pro otevření souboru) .................. 42 Obrázek 21 - Obrazovka znázorňuje výběr uživatele ke sledování ................................ 42 Obrázek 22 - Obrazovka zobrazuje sledování řešení vybraného uživatele .................... 43 Obrázek 23 - Obrazovka při otevření zadávacího Flyoutu ............................................. 43 Obrázek 24 - Zobrazení nápovědy křížovky................................................................... 44 Obrázek 25 - Seznam odevzdaných řešení uživatelů...................................................... 44 Obrázek 26 - Deploy IT Jakub z Visual Studia .............................................................. 61 Obrázek 27 - Start menu Windows 8 s deploynutou aplikací IT Jakub ......................... 61 Obrázek 28 - Instalační okno aplikace Windows PowerShell ........................................ 62 Obrázek 29 - Přihlašovací tlačítko .................................................................................. 63 Obrázek 30 - Seznam sezení ........................................................................................... 64 Obrázek 31 - Aplikace Synchronizované čtení............................................................... 64 Obrázek 32 - Aplikace Křížovky .................................................................................... 65 Obrázek 33 - Vyhodnocení řešení uživatelů aplikace Křížovky .................................... 66
xiii
xiv
SEZNAM OBRÁZKŮ
SEZNAM TABULEK Tabulka 1 - Funkce rozdílných edic systému Windows 8 ................................................ 7 Tabulka 2 - Ceník služeb Windows Azure Mobile Services [2] [3] [4] ........................... 9 Tabulka 3 - Tabulka atributů objektu uživatele aplikace ................................................ 26 Tabulka 4 - Tabulka atributů sezení ............................................................................... 27 Tabulka 5 - Tabulka atributů třídy příkazů ..................................................................... 27 Tabulka 6 - Tabulka nalezených problémů..................................................................... 50 Tabulka 7 - Výsledky Screener dotazníku ...................................................................... 55 Tabulka 8 - Výsledky Pre-test dotazníku ........................................................................ 56 Tabulka 9 - Výsledky Post-test dotazníku ...................................................................... 57 Tabulka 10 - Tabulka uživatelských účtů ....................................................................... 63
xv
xvi
SEZNAM TABULEK
1
ÚVOD Moje bakalářská práce vznikla ve spolupráci s projektem „Informační technologie ve službách jazykového kulturního bohatství“, dále již jen IT JAKUB, který je podmnožinou grantového projektu „Program aplikovaného výzkumu a vývoje národní a kulturní identity“, dále jen NAKI, financovaného ze zdrojů Ministerstva kultury. V projektu IT JAKUB spolupracuje Fakulta elektrotechnická ČVUT v Praze přímo s Ústavem pro jazyk český Akademie věd ČR, v. v. i., dále již jen ÚJČ AV ČR. Jedná se o dlouhodobý projekt řešený v období let 2010 – 2015, během této doby by měla vzniknout celá řada softwaru pro odbornou i širokou veřejnost. Tato sada softwaru má vzniknout na platformách pro počítače, tablety a další multimediální zařízení. Spolupráce ČVUT na tomto projektu zahrnuje mimo jiné vytvoření aplikací pro podporu výuky staročeštiny na tabletech a počítačích. Mým úkolem bylo vytvořit aplikace, které by pomohly studentům středních škol přiblížit tento jazyk moderní formou. Během práce na projektu IT JAKUB mají vzniknout datové podklady, ze kterých bude možné získávat data. S těmito daty bude možné dále pracovat a připravit je tak pro výukové aplikace systému, který mám za úkol navrhnout a implementovat.
1 Motivace Výstupem této práce bude informační systém pro podporu výuky zejména na středních školách. Tento systém bude dále obsahovat několik výukových nástrojů, her a aplikací pro interaktivní výuku na středních školách. Mým cílem bylo přispět k řešení projektu IT JAKUB, vytvořením dvou aplikací na platformě, která bude stejná jak pro mobilní zařízení, tak i pro stolní počítače a notebooky. Tyto aplikace by měly nenásilnou formou pomáhat ve výuce jazyků, zejména staročeštiny, pomocí různých her a výukových nástrojů.
ÚVOD
2
2 Scénáře použití Při zadávání projektu nebyla jasná představa ÚJČ AV ČR, v. v. i. o funkčnosti těchto aplikací. Musel jsem proto vymyslet scénáře použití, které by splnily funkční požadavky
(viz
kapitola 6.1).
Měl
jsem
zadané
dvě
aplikace:
aplikaci
pro synchronizované čtení a aplikaci pro luštění křížovek.
2.1 Aplikace Synchronizované čtení Aplikací Synchronizované čtení se rozumí aplikace, která umožňuje studentům zobrazit text na displejích jejich zařízení. S tímto textem umožňuje studentům pracovat ve skupině tak, aby akce vytvořené jedním studentem, kterého vyučující vybere, byly zobrazeny i dalším přihlášeným uživatelům v této skupině.
2.2 Aplikace pro luštění křížovek Tato aplikace má umožnit práci jednotlivců s automatickým vyhodnocováním výsledků, přičemž vyučující může v reálném čase pozorovat práci ostatních studentů ze svého zařízení. Zároveň má možnost zobrazit vyhodnocení výsledků a dle toho rozhodnout o klasifikaci z daného cvičení.
3
ANALÝZA 3 Analýza stávajícího stavu V současné době se pracuje na nové implementaci webové aplikace „Vokabulář webový1“ a serverové části systému, která by měla jednotlivým klientům poskytovat data. Tuto práci má na starosti především Bc. Martin Mudra ve spolupráci s panem Borisem Lehečkou. Jedná se o novou implementaci systému, jelikož starší verze nesplňovala nynější požadavky ÚJČ AV ČR.
3.1 Architektura stávajícího systému Pro tuto implementaci byla navržena nová architektura serveru, která komunikuje s klienty pomocí REST rozhraní. SearchService I Exist DB I
Lemmatizace Stematizace
Bc. Martin Mudra
IT JAKUB SERVICE
SearchService II
Boris Lehečka Exist DB II Bc. Martin Mudra Lístková kartotéka
. . .
Bc. Martin Mudra ÚJČ AV ČR
. . .
SearchService N
Exist DB N Bc. Martin Mudra
Klienti WebClient Bc. Martin Mudra Ing. Michal Strelec
MobileApplication Jakub Kopřiva Mgr. Jiří Danihelka Václav Purchart
MS Office Plugin Aleš Podskalský Zdeněk Obst
Obrázek 1 - Architektura současného stavu
Chyba! Nenalezen zdroj odkazů. znázorňuje současný stav navržení rchitektury. Klientské aplikace by měly mít možnost komunikovat s „IT Jakub Service“ pomocí rozhraní REST. Tato služba by se měla starat o poskytování dat těmto klientům.
1
Vokabulář webový (Úvodní strana)
ANALÝZA
4
3.2 Funkcionalita stávajícího systému 3.2.1 IT Jakub Service Tato služba zajišťuje přes své REST rozhraní poskytnutí dat uložených na serveru klientovi. V případě konkrétního dotazu získá informace od ostatních služeb a klientovi zprostředkuje patřičná data. Vývoj této služby má na starost Bc. Martin Mudra stejně jako SearchService a BackEnd webového klienta.
3.2.2 Lemmatizace, Stematizace Služba, kterou v tuto chvíli vyvíjí pan Boris Lehečka má za úkol vrátit službě „IT Jakub Service“ Lemma a Stema z požadovaného výrazu. Toho se dále může využít k vyhledávání ve službách „SearchService“ a „Lístkové kartotéce“.
3.2.3 Lístková kartotéka Databáze přístupná přes REST rozhraní, kterou spravuje ÚJČ AV ČR. Data v databázi jsou reprezentována obrázky, které obsahují metadata, podle kterých se vyhledává.
3.2.4 SearchService SearchService je služba, která má za úkol vyhledávat data v XML databázi založené na databázovém stroji Exist2. Celková databáze má být ve finále rozdělena na několik databázových strojů, aby se tak odlehčilo databázovým strojům samotným.
3.2.5 WebClient Webový klient pro webovou aplikaci „Vokabuláře webového“ má na starosti Bc. Martin Mudra (BackEnd) společně s Ing. Michalem Strelcem (FrontEnd). Tato webová aplikace má za cíl usnadnit přístup k datům uloženým v „Lístkové kartotéce“ a Exist databázích.
3.2.6 MobileApplication Klient mobilní aplikace, který by měl zprostředkovat interaktivní výuku staročeštiny formou her a výukových aplikací či nástrojů. Na tomto klientu jsem začal 2
Exist-db (Home page)
5 pracovat ve chvíli, kdy nebyl daný přesný návrh. V současné chvíli se návrhu aplikace věnuje Václav Purchart společně s Mgr. Jiřím Danihelkou. Návrh, který jsem vytvořil, je možné spojit dohromady s návrhem pana Purcharta, jelikož se scénáře použití aplikace v mnohých bodech spojují.
3.2.7 MS Office pagin Plugin vytvořený v minulosti Alešem Podskalským a Zdeňkem Obstem má na starosti z dokumentů napsaných v aplikaci a typu dokumentu Microsoft Office (.doc) vytvořit XML dokument, který je možný vložit do Exist databáze pomocí služby „IT Jakub Service“. Tento plugin je nutné poupravit, aby struktura nynějšího XML dokumentu vyhovovala potřebám Exist databáze.
3.3 Data 3.3.1 XML dokumenty v Exist databázi V současnosti se v projektu IT JAKUB pracuje na vytvoření datových podkladů. Datové podklady jsou uloženy v XML databázi Exist, ve které jsou jednotlivé dokumenty uloženy ve formátu TEI 5. Tento formát obsahuje velké množství dat. Mimo metadata, která určují základní vlastnosti dokumentu i formátování textu samotného, jazykovědná data pro jednotlivá slova pomocí XML atributů a elementů, kterými jsou například (Lemma, Hyperlemma, Stema, rod, číslo, pád, vzor a další). Tato databáze zatím obsahuje pouze část textů, které budou postupem času přibývat. Jedná se o texty ze starých rukopisů, slovníků a dalších zdrojů. Tyto texty, bylo nejprve nutné přepsat do elektronické podoby a následně je integrovat do formátu TEI 5. Operace nad takovýmto množstvím dat jsou časově náročné, jelikož text o několika stovkách slov může obsahovat až několik tisíc řádků formátovaného XML. Na druhou stranu díky formátu XML databáze zdrojových textů je možné nad daty pracovat s transformací XSLT a dotazovacím jazykem XQUERY pro XML databáze a tak získávat pouze data, která jsou potřebná pro samotné použití v aplikacích. Nicméně tyto transformace v současné době neexistují.
ANALÝZA
6
3.3.2 Lístková kartotéka Data uložená v této databázi spravuje ÚJČ AV ČR. Jedná se o obrázky s rukopisnými poznámkami. Tyto obrázky dále obsahují metadata, podle kterých je možné v databázi vyhledávat. Přístup k této databázi není přímý, je poskytnuto pouze REST API, přes které je možné provádět operace nad těmito daty.
4 Analýza uživatelských rolí mobilní aplikace Uživatelské role pro tento systém jsou odvozeny od rolí, se kterými je možné se setkat na středních školách. Je potřeba od sebe odlišit několik kategorií uživatelů, kteří výuku pravidelně navštěvují. Jedná se zejména o ředitele školy a jeho zástupce, dále lektory a v neposlední řadě studenty.
4.1 Role I: Ředitel školy Ředitel školy je nejvyšší zaměstnanec středních škol, měl by tak mít nejvyšší oprávnění v informačním systému pro podporu výuky. S tím souvisí stejná práva, jako mají vyučující a dále by v systému měl mít právo vytvářet uživatele s podřízenou rolí (vyučující a studenty).
4.2 Role II: Zástupce ředitele školy Roli „Zástupce ředitele školy“ a roli „Ředitel školy“ je z mého pohledu možné sloučit do jedné role, jelikož obě tyto role mají v systému stejná oprávnění. Pokud by se tato práva v budoucnu měnila, je možné tuto roli přidat, ale v současné době neexistuje scénář, kde by bylo důležité tyto role odlišovat.
4.3 Role III: Vyučující Tato role se může chovat jako student, zejména pro hospitace vedoucích katedry v hodinách svých kolegů. Dále má oproti studentovi zvýšená oprávnění z důvodu řízení systému v době výuky. Vyučující má možnost vést hodinu a tím pracovat se skupinou studentů. Během této práce se studenty může pověřit studenty vypracováním některé úlohy samostatně, či zadat samostatnou práci všem studentům ve třídě. Má také možnost vytvářet a editovat uživatele s rolí student a to například studenty ve své třídě, ve které je třídním učitelem.
7
4.4 Role VI: Student Student je nejrozšířenější role na škole. Je přidělen do třídy a může pracovat ve skupině s ostatními studenty či samostatně na vypracování přidělené úlohy. Také se výuky může účastnit jako posluchač. Záleží jen na vyučujícím, jakou roli pro studenta vybere.
5 Platforma 5.1 Srovnání platforem Na začátku projektu bylo potřeba vybrat platformu, která bude splňovat požadavky na implementaci aplikace pro tablety i počítače. V současné době existuje celá řada platforem pro mobilní zařízení (iOS, Android, Windows 8). iOS je produktem společnosti Apple a nepodporuje použití mobilních aplikací na počítačích vybavených operačním systémem MacOS. Android přišel těsně před Vánoci 2012 s povedeným zařízením Mini PC, které je velikosti flashdisku a je možné jej připojit pomocí HDMI k zobrazovacímu zařízení. Nicméně ani platforma Android nesplňuje požadavky integrace systému na běžné počítače. Vybrána mi proto byla platforma Windows 8.
5.2 Edice Windows 8 Existují tři edice: Windows 8, Windows 8 Pro a Windows RT. Přehled jejich funkcí zobrazuje tabulka 1Chyba! Nenalezen zdroj odkazů.. Tato tabulka byla zkrácena pro zobrazení pouze důležitých řádků. Tabulka 1 - Funkce rozdílných edic systému Windows 8 Windows
Windows 8
Windows
8
Pro
RT
Ano
Ano
Ne
Upgrade z Windows 7 Professional a Ultimate
Ne
Ano
Ne
Úvodní obrazovka, sémantické přiblížení, aktivní dlaždice
Ano
Ano
Ano
Katalog aplikací Windows Store
Ano
Ano
Ano
Funkce
Upgrade z Windows 7 Starter, Home Basic a Home Premium
ANALÝZA
8
Dotekové aplikace (např. Mail nebo Reader)
Ano
Ano
Ano
Microsoft Office (Word, Excel, PowerPoint, OneNote)
Ne
Ne
Ano
Internet Explorer 10
Ano
Ano
Ano
Šifrování obsahu zařízení
Ne
Ne
Ano
Pohotovostní režim
Ano
Ano
Ano
Desktopový režim
Ano
Ano
Ano
Instalace desktopových aplikací
Ano
Ano
Ne
Nový Průzkumník
Ano
Ano
Ano
Ze zvýrazněných položek je jasné, že pokud budeme chtít vytvořit aplikaci, která bude dostupná jak na tabletech s platformou Windows RT, tak na počítačích s Windows 8 / Windows 8 Pro, musíme vytvářet aplikaci pro Windows Store. Dalším neopomenutelným aspektem je, že mobilní zařízení nemusí mít pevně danou IP adresu, tudíž není možné zajistit komunikaci mezi nimi pomocí běžného TCP protokolu. Zprávy o běhu aplikace je tak možné předávat pouze přes databázový server, který bude mít pevnou adresu a zajistí nám tak stabilní připojení mezi jednotlivými zařízeními. Pro tento účel byla po dohodě s Jiřím Danihelkou vytvořena databáze na cloudu Windows Azure, pro mobilní služby.
5.3 Windows Azure Windows Azure je cloudová služba společnosti Microsoft. Tato služba umožňuje efektivní vytváření, nasazování, škálování, vysoká míra dostupnosti (99,9%) [1] a správu aplikací v rámci globální sítě společnosti Microsoft. Služba lze využít k mnoha účelům, mezi které patří i využití pro mobilní aplikace [1]. S touto službou je také spojena cenová politika, kterou je dobré znát a při návrhu systému ji zohlednit, aby provoz aplikace nebyl zbytečně drahý.
9
5.3.1 Databáze Windows Azure SQL Naše aplikace bude potřebovat uchovávat data, která budou sdílena mezi uživateli. Pro tento účel byla, po konzultaci s Mgr. Jiřím Danihelkou, vybrána Azure SQL databáze. Pro tuto konkrétní službu platí, v některých ohledech, výhodná cenová politika. Základní a důležitý údaj je, že se neplatí za transakce, ale platí se za velikost dat stahovaných ze serveru ke klientovi. Dále se platí za velikost databáze paušálně do určitého limitu, který je možné v budoucnosti měnit a tím aplikaci škálovat dle potřeby. Ceník znázorňuje tabulka 2. Tabulka 2 - Ceník služeb Windows Azure Mobile Services [2] [3] [4]
Cena příchozích dat
zdarma Ceník odchozích dat
Prvních 5 GB / měsíc
zdarma
5 GB – 10 TB / měsíc
0,12 $ / GB
Dalších 40 TB / měsíc
0,09 $ / GB
Dalších 100 TB / měsíc
0,07 $ / GB
Dalších 350 TB / měsíc
0,05 $ / GB
Více jak 500 TB / měsíc
Individuální
Ceník za velikost databáze 0 – 100 MB
4,995 $
100 MB – 1 GB
9,99 $
1 GB – 10 GB
9,99$ za první GB + 3,996 $ za každý další GB
10 GB – 50 GB 50 GB – 150 GB
45,954 $ za prvních 10 GB + 1,996$ za každý další GB 125,874 $ za prvních 50 GB + 0,999 $ za každý další GB
6 Požadavky na řešení 6.1 Funkční Požadavky na funkčnost byly dány funkčními požadavky jednotlivých aplikací. Z těchto aplikací se dále odvíjely požadavky na funkčnost celé aplikace. Všechna sezení
ANALÝZA
10
by měla udržovat svůj stav v případě pádu či zavření aplikace. Po jejím znovuotevření by se měl uživatel dostat do stejného bodu, kdy k pádu či zavření aplikace došlo. Všichni uživatelé, by měli mít možnost připojit se či se odpojit do/ze založeného sezení. Dále by uživatelé měli mít možnost odhlášení se z aplikace a úpravy svého uživatelského účtu.
6.1.1 Změna role uživatele v systému S následujícími funkčními požadavky úzce souvisí role uživatelů. Obrázek 2 znázorňuje přechod mezi těmito rolemi za běhu aplikace. Role uživatele se vždy mění jen dočasně, mohli bychom tak mluvit o stavu uživatele. O role se jedná z důvodu uživatelských oprávnění, která souvisí s přidělenou rolí uživatele. stm Změna role uživ atele v systému Preferov aný student
Maj itel sezení [Odhlásí se ze sezení]
[Byl majitelem sezení suspendován]
[Byl majitelem sezení povýšen] Student
[Přihlásí se do sezení, které založil.] [Odhlásí se ze sezení]
Vyučuj ící
[Přihlásí se do sezení, které bylo založené jiným uživatelem]
Obrázek 2 - Změna role uživatele v systému
6.1.2 Funkční požadavky aplikace Synchronizovaného čtení Role „Majitel sezení“ Vyučující by měl mít možnost vytvořit sezení pro studenty tak, aby se mohli připojit. Tím se dostává do role „Majitel sezení“. Měl by mít možnost vybrat knihu, která se bude číst. V této knize by se měl zobrazovat ukazatel právě čteného textu, se kterým by měl mít vybraný student či učitel možnost hýbat a měla by zde být možnost zvýrazňovat části textu. Dále by měl uživatel, který toto sezení vytvořil, mít možnost „povýšit“ konkrétního studenta a předat mu tak práva k posouvání kurzorem a zvýrazňování textu.
11
Role „Preferovaný student“ Do této role se dostane účastník sezení, jenž není jeho majitelem povýšením od „Majitele sezení“. Tento uživatel má možnost hýbat kurzorem a zvýrazňovat části textu.
Role „Student“ Student je účastník sezení, jenž nemá žádná vyšší oprávnění. Má tedy možnost sledovat polohu kurzoru, s kterým jiný uživatel může hýbat v reálném čase. V reálném čase může také sledovat označování částí textu a dále má možnost vypnout aktualizaci aplikace a tím se v textu libovolně posouvat dopředu či dozadu.
6.1.3 Funkční požadavky aplikace Křížovky Role „Majitel sezení“ Má možnost vytvářet nové křížovky otevřením nového souboru. Tato křížovka se následně předá všem uživatelům, kteří jsou v sezení přihlášení nebo se do sezení přihlásí později. „Majitel sezení“ uvidí konečné řešení křížovky, ostatní uživatelé vidí pouze prázdnou křížovku s políčky nápovědy pro řádky a sloupce. „Majitel sezení“ může přepínat mezi řešeními právě přihlášených uživatelů. Ve chvíli kdy uzná za vhodné, může hromadně shromáždit řešení křížovky, které je možné následně vyhodnotit. Ve vyhodnocení křížovky uvidí jak všechna řešení, která odevzdali studenti, tak i řešení, které vyžádal „majitel“ sám. U těchto řešení systém spočítá procentuální úspěšnost správného vyplnění.
Role „Student“ Studentovi se zobrazí křížovka předem vybraná vyučujícím pro toto sezení. Student má možnost tuto křížovku vyplňovat jak po jednotlivých polích, tak po celých slovech. Student má možnost odevzdat řešení křížovky, do kterého se zapíše časové razítko.
6.1.4 Shrnutí funkčních požadavků Obecné funkční požadavky na systém
Nepřihlášený uživatel
ANALÝZA
12 o Přihlášení do systému
Přihlášený uživatel o Odhlášení ze systému o Přihlašování do sezení o Odhlašování ze sezení o Správa uživatelského účtu
Vyučující o Správa uživatelských účtů role „Student“ o Vytváření sezení o Odstraňování sezení
Funkční požadavky na aplikaci Synchronizované čtení
Student / Vyučující (není majitelem sezení) o Sledování pozice kurzoru v textu v reálném čase o Volné pročítání textu, nezávisle na kurzoru o Sledovaní zvýraznění částí textu
Preferovaný student o Pohybovaní kurzorem a v reálném čase tak upravovat jeho pozici na všech zařízeních v sezení o Zvýrazňování částí textu
Majitel sezení o Otevírat sobory knih o Pohybovaní kurzorem a v reálném čase tak upravovat jeho pozici na všech zařízeních v sezení o Zvýrazňování částí textu o Zvyšování práv uživatelů, z role „Student“ vytvářet dočasnou roli „Preferovaný student“
Funkční požadavky na aplikaci Křížovky
Student / Vyučující (není majitelem sezení) o Zobrazení a vyplnění křížovky o Odeslání řešení křížovky
Majitel sezení
13 o Otevírat soubory křížovek o Prohlížení v reálném čase řešení ostatních uživatelů sezení o Odevzdání řešení všech uživatelů v sezení najednou o Vyhodnocení výsledků jednotlivých uživatelů
6.2 Nefunkční 6.2.1 Rychlost odezvy V situacích, kde je potřeba zajistit plynulost aplikace jako je například sledování změn v reálném čase, musí aplikace reagovat do jedné vteřiny. V případě stahování velkých dat ze sítě bude vždy odezva záviset na rychlosti připojení k internetové síti.
6.2.2 Platforma Systém bude spustitelný zároveň na platformě Windows 8 pro počítače a na platformě Windows RT pro dotyková zařízení. Aplikace vyžaduje, pro svůj provoz, Azure SQL databázi, která musí být nasazena podle požadavků v kapitole 10.1.
6.2.3 Stabilita Systém nesmí být náchylný k chybným datovým vstupům. Systém by neměl „zamrzat“, či být výkonově náročný. Systém bude použit na dotykových zařízeních.
6.2.4 Použitelnost Systém musí splňovat základy použitelnosti na mobilních zařízeních (tablet, dotykové obrazovky), stejně tak jako na počítačích ovládaných pomocí standardních IO zařízení.
6.2.5 Připojení k internetové síti Vzhledem k charakteru aplikace je vyžadováno neustálé připojení k síti. Aplikace by měla komunikovat se serverem. V případě ztráty spojení musí uživatele o této chybě informovat.
6.2.6 Rozšiřitelnost Systém musí být snadno rozšiřitelný i pro další aplikace pro usnadnění výuky.
ANALÝZA
14
7 Případy použití systému 7.1 Úvod aplikace Stav systému po jeho otevření. Systém v tuto chvíli nemá o uživateli žádná data. Neví, ke kterým částem systému jej může připustit a tak má uživatel pouze nízká oprávnění, která mu dovolují následující úkony. uc Úv od aplikace
Přihlásit se
Host Zobrazit nápov ědu
Obrázek 3 - Případy užití stavu systému po otevření aplikace
Přihlásit se Uživatel se přihlásí pomocí svého uživatelského jména a hesla a jsou mu přidělena práva konkrétní role. Scénáře Standardní cesta 1. Uživatel se rozhodne přihlásit 2. Systém zobrazí seznam aktuálně běžících serverů. 3. Uživatel vybere server a potvrdí výběr 4. Systém vyzve uživatel k zadání uživatelského jména a hesla 5. Uživatel vyplní uživatelské jméno a heslo 6. Uživatel odešle informace 7. Systém vyhodnotí informace 8. Zadané informace jsou správné a Systém přihlásí uživatele a udělí mu roli v systému 8a. Nezdařilá autentifikace Nezdařilá autentifikace 1. Systém vyhodnotí zadané informace jako chybné a uživatele nepřihlásí 2. Systém vypíše chybové hlášení o nesprávně vyplněném uživatelském jménu a heslu
15
Zobrazit nápovědu Zobrazení nápovědy pro celý průchod aplikací. Jedná se o jakýsi obrázkový manuál aplikace. Scénáře Standardní cesta 1. Uživatel se rozhodne zobrazit nápovědu 2. Systém zobrazí nápovědu
7.2 Uživatel přihlášený v systému uc Po přihlášení uživ atele do systému
Uprav it sv ůj uživ atelský účet
Odhlásit se
Přihlásit se k třídnímu sezení Student Zobrazit nápov ědu
Vytv ořit uživ atele
«extend» Odebrat sezení třídy Odebrat uživ atele
«extend»
Sprav ov at uživ atele
Vyučuj ící «extend»
Editov at data uživ atele
Obrázek 4 - Případy užití stavu systému po přihlášení uživatele
Vytv ořit sezení třídy
ANALÝZA
16
Vytvořit sezení třídy Uživatel vytvoří sezení pro třídu, kde vybere typ sezení, název a heslo pro toto sezení. Ostatní uživatelé jej nadále mohou vidět v seznamu sezení a přihlásit se do tohoto sezení. Scénáře Standardní cesta 1. Uživatel se rozhodne vytvořit sezení třídy 2. Systém se zeptá uživatele na jméno a heslo sezení 3. Uživatel vyplní jméno a heslo sezení a potvrdí zadaná data 4. Uživatel vybere typ sezení 5. Systém ověří jméno sezení 6. Systém vytvoří sezení 6a. Jméno sezení již existuje Jméno sezení již existuje 1. Systém nevytvoří sezení a poprosí uživatele o změnu jména sezení 2. Uživatel opakuje krok 3 ve scénáři "Standardní cesta"
Odebrat sezení třídy Uživatel, jenž vytvořil sezení třídy, jej může odebrat ze seznamu a tak jej zrušit. Potřebuje k tomu znát heslo sezení a musí být uveden jako vlastník tohoto sezení. Scénáře Standardní cesta 1. Uživatel se rozhodne odebrat sezení ze seznamu 2. Systém nabídne seznam sezení 3. Uživatel vybere konkrétní sezení 4. Systém zkontroluje, zda je toto sezení vytvořené přihlášeným uživatelem 5. Systém se znovu dotáže, zda chce uživatel opravdu sezení odebrat ze seznamu 6. Uživatel potvrdí volbu 6a. Uživatel zruší volbu 7. Systém odebere sezení ze seznamu a smaže jeho údaje ze serveru Uživatel zruší volbu 1. Systém uvede stav aplikace, do stavu před výběrem sezení k odebrání
Spravovat uživatele Vyučující má právo k upravování, vytváření a odebírání studentů ze systému. Scénáře Standardní cesta 1. Uživatel se rozhodne spravovat uživatelské účty 2. Systém dá na výběr možnosti správy uživatelských účtů
17
Vytvořit uživatele Vyučující může vytvářet nové uživatele s rolí student. Scénáře Standardní cesta 1. Uživatel se rozhodne vytvořit nového uživatele 2. Systém se dotáže na potřebné údaje 3. Uživatel vyplní tyto údaje a rozhodne se tyto údaje uložit 4. Systém validuje a uloží údaje
Odebrat uživatele Vyučující může odebrat uživatele s rolí student. Scénáře Standardní cesta 1. Uživatel se rozhodne odebrat jiného uživatele ze systému 2. Systém nabídne seznam uživatelů 3. Uživatel vybere konkrétního uživatele, kterého si přeje odebrat 4. Systém se dotáže na potvrzení smazání vybraného uživatele 5. Uživatel volbu potvrdí 5a. Uživatel se rozhone konkrétního uživatele neodebírat 8. Systém odebere vybraného uživatele ze systému Uživatel se rozhone konkrétního uživatele neodebírat 1. Uživatel se rozhone konkrétního uživatele neodebírat 2. Systém se vrátí do stavu, ve kterém se nacházel v kroku 2
Editovat data uživatele Vyučující může editovat data o uživatelích, kteří mají roli student. Scénáře Standardní cesta 1. Uživatel se rozhodne upravit údaje o jiném uživateli 2. Systém nabídne seznam uživatelů 3. Uživatel vybere konkrétního uživatele a potvrdí volbu 4. Systém zobrazí data k editaci 5. Uživatel změní data a rozhodne se tato data uložit 6. Systém validuje data a uloží je na server
ANALÝZA
18
Přihlásit se k třídnímu sezení Uživatel se s použitím hesla přihlásí do sezení třídy Scénáře Standardní cesta 1. Přihlášený uživatel se rozhodne přihlásit do třídního sezení 2. Systém uživateli zobrazí seznam založených sezení 3. Uživatel vybere jedno sezení ze seznamu a potvrdí přihlášení k tomuto sezení 4. Systém se zeptá na heslo k sezení (pokud je toto sezení chráněno heslem) 4a. Uživatel vyplní heslo k sezení a potvrdí volbu 4b. Systém ověří heslo sezení se zadáním 5c. Pokud se hesla shodují, pokračuje systém krokem 5. V opačném případě pokračuje podle scénáře „Heslo se neshoduje s heslem sezení“ 5. Systém přihlásí uživatele k sezení Heslo se neshoduje s heslem sezení 1. Systém uživatele nepřihlásí a nabídne uživateli volbu opakovat
Upravit svůj uživatelský účet Uživatel může editovat svůj uživatelský účet a tak měnit některé své údaje. Scénáře Standardní cesta 1. Uživatel se rozhodne změnit své údaje v profilu 2. Systém zobrazí údaje uživatele a umožní vybrané údaje editovat 3. Uživatel upraví údaje a rozhodne se je uložit 4. Systém uloží data na server
Odhlásit se Uživatel se odhlásí z aplikace. Jsou mu následně přidělena práva role „Host“. Scénáře Standardní cesta 1. Přihlášený uživatel se rozhodne odhlásit 2. Systém se zeptá, zda se uživatel opravdu chce odhlásit 3. Uživatel volbu potvrdí 3a. Uživatel nepotvrdí odhlášení ze systému 4. Systém uživatele odhlásí a přidělí mu roli "Host“ Uživatel nepotvrdí odhlášení ze systému 1. Systém se vrátí do stavu před vyvoláním akce pro odhlášení
19
7.3 Aplikace Synchronizovaného čtení uc Synchronizov ané čtení
Mazat zv ýraznění textu
Maj itel sezení
Vybrat publikaci Označov at text který čte
Dočasně zv ýšit uživ atelská opráv nění v ybraného uživ atele Preferov aný student Zv ýrazňov at části textu
Odebrat dočasně zv ýšená uživ atelská opráv nění v ybraného uživ atele
Vrátit se na živ ý náhled čteného textu
Listov at v knize po j edné straně Student
Přej ít na libov olnou stranu textu
Obrázek 5 - Případy užití aplikace Synchronizované čtení
Tento návrh vznikal v době, kdy jsem ještě nebyl seznámen s tvorbou GUI pro Windows Store aplikace. Z důvodu plynulosti aplikace byly některé případy užití modifikovány tak, aby byla zachována jejich primární funkce.
ANALÝZA
20
Listovat v knize po jedné straně Uživatel může listovat v knize vpřed a vzad, přičemž vidí i zvýraznění textu, které v minulosti proběhlo. Scénáře Standardní cesta 1. Uživatel se rozhodne listovat v knize po jednotlivých stranách (vpřed/vzad) 2. Systém uživateli zobrazí předchozí či následující stranu Zrovna tento případ užití byl implementován jinak: procházení v knize neprobíhá pomocí listování stran, ale díky podpoře dotykového displeje je možné v knize listovat posuvem (scrollováním) textu samotného.
Přejít na libovolnou stranu textu Uživatel zadá číselně stranu, na kterou chce přejít a aplikace jej přesune. Scénáře Standardní cesta 1. Uživatel zadá číselnou hodnotu strany publikace a potvrdí volbu 2. Systém zkontroluje, zda strana existuje 3. Systém se dotáže uživatele, zda chce opravdu pokračovat na tuto stranu 3a. Zadaná strana neexistuje 4. Uživatel volbu potvrdí 5. Systém uživateli zobrazí požadovanou stranu Zadaná strana neexistuje 1. Systém uživatele informuje, že zadaná strana neexistuje a umožní mu opakovat zadání čísla strany Tento případ užití byl v implementaci vypuštěn, jelikož kniha je souvislý text, tak jako například webová stránka a listování na konkrétní stranu nemá význam.
Vrátit se na živý náhled čteného textu Uživatel se může jednoduše vrátit k živému náhledu čteného textu. Scénáře Standardní cesta 1. Uživatel se rozhodne vrátit na text, který se právě čte 2. Systém přesune uživatele na text, který se právě čte
Označovat text, který čte Uživatel, může označovat místo v textu, kde se právě nachází pomocí ukazatele textu.
21 Scénáře Standardní cesta 1. Uživatel používá nástroj k označení právě čteného textu posuvem tohoto nástroje.
Zvýrazňovat části textu Uživatel může zvýrazňovat vybraný text. Scénáře Standardní cesta 1. Uživatel vybere text, který si přeje zvýraznit 2. Uživatel potvrdí zvýraznění 3. Systém uloží zvýraznění
Dočasně zvýšit uživatelská oprávnění vybraného uživatele Uživatel udělí práva některému ze studentů a udělí mu roli "Preferovaný student". Scénáře Standardní cesta 1. Uživatel se rozhodne přidělit vyšší práva některému z uživatelů sezení 2. Systém zobrazí seznam účastníků přihlášených k sezení 3. Uživatel vybere konkrétního účastníka sezení a potvrdí výběr 4. Systém udělí vybranému uživateli roli "Preferovaný student"
Odebrat dočasně zvýšená uživatelská oprávnění vybraného uživatele Uživatel odebere roli "Preferovaný student" konkrétnímu studentovi a přidělí mu opět roli "Student". Scénáře Standardní cesta 1. Uživatel se rozhodne odebrat práva související s rolí "Preferovaný student" uživateli s těmito oprávněními 2. Uživatel provede výběr uživatelů pro odebrání práv a potvrdí volbu 3. Systém odebere práva role "Preferovaný student" a přidělí jiná práva
Mazat zvýraznění textu Uživatel může odebírat zvýraznění textu, které bylo v minulosti provedeno. Scénáře Standardní cesta 1. Uživatel vybere text, u kterého chce zrušit označení 2. Uživatel potvrdí volbu pro odebrání zvýraznění textu
ANALÝZA
22
Vybrat publikaci Uživatel vybere publikaci z databáze a ta se zobrazí celé třídě (sezení). Scénáře Standardní cesta 1. Uživatel vybere volbu pro vybrání publikace 2. Systém zobrazí pole pro zadání adresy publikace na webu 3. Uživatel zadá adresu a potvrdí volbu 4. Systém zobrazí publikaci
7.4 Aplikace křížovky uc Křížov ky
Vyplňov at křížov ku
Student
Odev zdat sv é řešení k v yhodnocení
Vyžádat odev zdání řešení v šech uživ atelů Maj itel sezení
Zobrazit v yhodnocení
«include»
Spočítat procentuální hodnocení Systém
Obrázek 6 - Případy užití aplikace Křížovky
23
Vyplňovat křížovku Uživateli aplikace je umožněno vyplňovat křížovku po jednotlivých polích, či zadáním celých slov, které patří do řádku či sloupce příslušného nápovědního pole. Scénáře Vyplnění po celých slovech 1. Uživatel se rozhodne vyplnit část křížovky po celých slovech. 2. Uživatel vybere nápovědu, pro kterou chce slovo vyplnit 3. Systém zobrazí nápovědu a umožní uživateli zadat vstup celého slova 4. Uživatel vyplní slovo 5. Systém slovo zobrazí v křížovce Vyplnění po jednotlivých písmenech 1. Uživatel se rozhodne vyplnit část křížovky po písmenech 2. Uživatel vybere pole k vyplnění znaku 3. Systém se dotáže na znak, který chce vložit 4. Uživatel zadá znak 5. Systém znak zobrazí
Odevzdat své řešení k vyhodnocení Uživateli je umožněno odevzdat své řešení k pozdějšímu vyhodnocení. Scénáře Standardní cesta 1. Uživatel se rozhodne odevzdat své řešení 2. Systém uloží uživatelovo řešení
Vyžádat odevzdání řešení všech uživatelů Uživateli je umožněno automaticky vyžádat odevzdání řešení od všech uživatelů najednou. Scénáře Standardní cesta 1. Uživatel se rozhodne "vybrat" řešení od všech uživatelů 2. Systém uloží aktuální řešení všech uživatelů
Zobrazit vyhodnocení Uživateli je umožněno zobrazit hodnocení pro jednotlivé účastníky sezení. Toto vyhodnocení bude odpovídat procentuálnímu vyplnění křížovky. Scénáře Standardní cesta 1. Uživatel se rozhodne zobrazit vyhodnocení řešení uživatelů 2. Systém zobrazí seznam uživatelů s odevzdaným řešením 3. Uživatel vybere jednoho uživatele s řešením
ANALÝZA
24
4. Systém zobrazí seznam jeho řešení 5. Uživatel vybere jedno řešení 6. Systém zobrazí vyplněnou křížovku uživatelem a procentuální úspěšnost řešení
Spočítat procentuální hodnocení Systém automaticky spočítá procentuální vyhodnocení křížovek odevzdaných uživateli sezení i křížovek vybraných automaticky majitelem sezení. Scénáře Standardní cesta 1. Systém na vyžádání spočítá procentuální úspěšnost řešení křížovky
25
NÁVRH 8 Návrh architektury Pro mobilní aplikace a jejich nestálé připojení k internetu (automobil projíždějící tunelem, výpadek mobilní sítě, změna klientské IP adresy poskytovatelem) nelze využít TCP protokol pro komunikaci mezi jednotlivými klienty. Řešení je v použití databázového serveru s pevnou adresou, přes tento server mohou klienti komunikovat mezi sebou. Klient Klient Klient Klient Klient Klient Klient
Microsoft Azure
Azure SQL
Obrázek 7 - Návrh architektury
Zároveň aplikace respektuje architekturu Model-View-Controller (MVC), ve které prezentační vrstva GUI vyžádá data od řídící vrstvy, která vytáhne data z databáze a připraví je prezentační vrstvě v požadované formě.
9 Datový model Pro účely komunikace mezi serverem a klientem bylo zapotřebí vymyslet datový model, který bude sloužit jako prostředník pro výměnu informací. Tento model jsem se snažil vymyslet tak, aby mohl být co nejuniverzálnější, použitelný i v dalších aplikacích, pro které se systém může rozšiřovat. Každá aplikace má vymyšlený vlastní skriptovací jazyk, který je předáván v podobě příkazů mezi serverem a klienty. Aplikace tak fungují
NÁVRH
26
v reálném čase (zanedbáme-li odezvu serveru), jelikož data jsou od uživatele posílána na server a ostatní uživatelé si je ihned stahují a zpracovávají podle potřeby dané aplikace. class Doménov ý model User 0..* 0..1 -
Vytváří
id: int name: String lastName: String nickname: String username: String dateOfBirth: Date email: String password: String openId: String serviceName: String role: int className: string yearOfGraduation: int 0..* classTeacher: string
přihlašuje se
1
zadává
0..* Session
-
1
id: int name: String password: String ownerUserId: int
Command obsahuje 1
0..* -
id: int command: String userId: int sessionId: int
Obrázek 8 - Doménový model systému
User Obecná třída uživatele, která obsahuje veškeré atributy potřebné k evidenci uživatelů systému a uživatelskou roli. Tabulka 3 - Tabulka atributů objektu uživatele aplikace Název Datový typ Poznámka id int Jednoznačný identifikátor sezení - aplikace name String Jméno uživatele lastName String Příjmení uživatele nickname String Přezdívka uživatele username String Uživatelské jméno dateOfBirth Date Datum narození ve formátu dd/mm/rrrr email String Emailová adresa password String Heslo v zahashované podobě openId String Identifikátor pro služby openId serviceName String Název služby openId role int Enumerace role, 0 – Vyučující, 1 – Student, 2 - Ředitel className string Název třídy ve, které je student veden. Či
27
yearOfGraduation classTeacher
int string
název třídy, ve které je vyučující třídním učitelem. Rok předpokládaného ukončení studia. Název třídy, ve které je vyučující třídním učitelem.
Session Třída reprezentující studijní skupinu: do této skupiny se mohou přihlašovat uživatelé a spolupracovat tak mezi sebou pomocí příkazů předávaných přes server. Tabulka 4 - Tabulka atributů sezení Název Datový typ id int name String password String ownerUserId int
Poznámka Jednoznačný identifikátor sezení Název sezení Heslo sezení Identifikátor uživatele, který založil toto sezení.
Command Tato třída reprezentuje příkazy, které se v rámci sezení předávají mezi uživateli a tak řeší komunikaci klient-klient. Tabulka 5 - Tabulka atributů třídy příkazů Název Datový typ Poznámka id int Jednoznačný identifikátor příkazu command String Text příkazu v předem naskriptovaném jazyce. userId int Identifikátor uživatele, který příkaz zadal. sessionId int Identifikátor sezení, ke kterému je příkaz určen.
10 Serverová část systému Po dohodě s Mgr. Jiřím Danihelkou byla vytvořena Microsoft SQL Azure databáze. Tato databáze byla vytvořena podle mého návrhu, ale její implementaci zajistil právě Mgr. Danihelka tak, aby splňovala požadavky klientských aplikací podle mého návrhu.
NÁVRH
28
10.1 Návrh databáze class Řízení sezení
Session -
id: int name: String password: String ownerUserId: int
+sessionId
+id
SessionCommands -
Command +id
sessionId: int commandId: int
+sessionId
+commandId
+lastCommandId -
id: int command: String userId: int sessionId: int
+id +id
+userId
SessionUpdate
+id -
+id
id: int sessionId: int lastCommandId: int
+userId Uživ atelské role::User +userOwnerId +id UsersInSession -
+id
userId: int sessionId: int
+userId -
id: int name: String lastName: String nickname: String username: String dateOfBirth: Date email: String password: String openId: String serviceName: String role: int className: string yearOfGraduation: int classTeacher: string
Obrázek 9 - Návrh databáze serveru
Databázové entity Session, User a Command jsou stejné jako v kapitole 9. Pro správnou funkčnost databáze bylo zapotřebí přidat několik entit, které nám zajistí správnou referenci na konkrétní objekty. Tyto entity jsou vytvořeny k propojení tabulek s kardinalitou 0:M. Entita UsersInSession představuje uživatele, kteří jsou v sezení přihlášeni. SessionCommands je entita pro příkazy přiřazené konkrétnímu sezení. Entita SessionUpdate byla vytvářena pro tzv. Push notifikace, která se v současné chvíli z ekonomických důvodů nepoužívá. Jejím cílem bylo periodicky kontrolovat řádek sezení a sledovat, zda nastala změna. Pokud by změna nastala, stáhnout nová data z tabulky SessionCommands. Toto je nakonec řešeno přímo na serveru, kde se aplikace dotazuje pouze na příkazy, které jsou novější než je poslední přečtený příkaz. Uvádět vysvětlení k atributům těchto entit není důležité, jelikož se opravdu jedná pouze o doplňkové entity.
29
11 Klientská část systému 11.1 Funkce společné pro všechny výukové aplikace V systému je potřeba mít rozdělené uživatele do jednotlivých výukových skupin (sezení). Tato sezení může vytvářet uživatel v roli „Vyučující“ nebo v roli nadřazené. Při vytváření sezení vybírá uživatel typ aplikace, kterou v tomto sezení chce provozovat. Dále zadává její název a případně heslo, pokud nechce, aby se mohli přihlásit i ostatní uživatelé bez znalosti hesla. V tomto sezení nadále pracuje s konkrétní výukovou aplikací, podle jejích možností.
11.2 Funkčnost aplikace Synchronizované čtení Tato aplikace má za úkol nahradit formu tištěného textu. Klade si za cíl zatraktivnit výuku při čtení knih a jejich jazykovědných rozborů. V současné době jsou studenti či učitelé nuceni používat mnohdy těžké učebnice (čítanky) českého jazyka. Se staročeskými texty je to ještě složitější. Tyto texty jsou ve velké míře vzácné a často neexistují ani jejich kopie, které by se studentům daly distribuovat. Pomocí této aplikace stačí mít texty v digitální formě a studenti a vyučující k nim získají snadnější přístup. Tyto datové podklady jsou v rané fázi příprav. Některé texty již existují a mají být součástí internetového Vokabuláře. Aplikace by zároveň měla splňovat současnou funkci čítanky, vylepšenou o synchronizaci studentů ve třídě. Každý student nemusí pilně sledovat text v knize, aby se „neztratil“ v textu, čímž šetří energii potřebnou k vstřebávání informací. Kurzor sleduje text za něj a on tedy vidí, v jaké části knihy se třída nachází. Zároveň pozdě příchozí student se pouze přihlásí do sezení a je mu vše předpřipraveno. Aplikace stáhne požadovaný text a zobrazí kurzor na správném místě. Digitální knihy mají další řadu výhod. V těchto knihách není problém zvýrazňovat text, jelikož se publikace nijak neznehodnotí a okamžitě se text označí na všech zařízeních v daném sezení. Mezi další výhody patří to, že aplikace neustále drží svůj stav, takže pokud studenti zanechají práce v některém bodě, mohou se k tomuto bodu v nadcházející hodině vrátit a pokračovat tam, kde přestali.
NÁVRH
30
11.3 Funkčnost aplikace Křížovky Aplikace má přiblížit staročeštinu studentům formou hry. Tato hra se skládá z vyplňování křížovky. Pro tuto aplikaci neexistují datové zdroje, a proto bylo na mně, abych formu tohoto datového zdroje vymyslel. Zvolil jsem zápis v jazyce XML přesně definovaný podle mnou vytvořeného DTD. Jedná se o jednoduchý formát pro procházení textu a jeho tvorba je také velice jednoduchá. Funkce pro studenty jsou velice jednoduché. Studenti mají možnost předepsanou křížovku vyplňovat buď po znacích jednotlivých políček, či přímo celých slov při zobrazení nápovědy. K zobrazení nápovědy je potřeba využít GUI prvky tak, aby text v nápovědách byl čitelný. Jelikož jsme limitováni rozlišením displejů, které je u běžných monitorů pouhých 72 DPI, do políčka pro nápovědy by se nám delší textové řetězce nemusely vejít. V neposlední řadě mají studenti možnost své řešení odeslat k vyhodnocení. Vyučující, který sezení založil „Majitel sezení“ má možnost sledovat práci jednotlivých studentů. Dále má možnost vybrat najednou všechna aktuální řešení. A tato řešení i odeslaná řešení studentů vyhodnotit. V tomto hodnocení mu pomáhá systém sám tím, že počítá správné vyplnění v procentech. Vždy je vidět, zda bylo dané řešení odesláno studentem nebo vyučujícím.
11.4 Návrh systému z hlediska tříd Podle návrhu architektury MVC, jsem se snažil striktně odlišit prezentační vrstvu od vrstvy řídící logiky a datové vrstvy. Datovou vrstvu reprezentuje databáze Azure SQL. Díky této architektuře se mi povedlo zpřehlednit kód a ušetřit si tak práci při testování (Test-To-Fail) aplikace. Celý systém byl také zasazen do namespace, ve kterém se nachází celá řada pomocných i datových tříd.
11.4.1 Namespace Views Při vývoji pro platformu Windows RT (Windows Store aplikace) je již od společnosti Microsoft dána vrstva View-Controller, jelikož při vytváření GUI se automaticky vytváří ovládací třída, která se stará o interakci s uživatelem. V případě, že uživatel vykoná akci, třída schovaná za tímto View vykoná požadované příkazy. Pro každou používanou obrazovku je tedy nutné mít Controller, který nám zajistí
31 správnou funkčnost těchto akcí. Seznam těchto tříd vznikal při samotném vývoji systému a všechny níže uvedené třídy tedy můžeme chápat jako obrazovky GUI systému.
Třída ApplicationStart Tato třída má na starosti ovládání aplikace a případů užití viditelných na obrázek 3. Stará se zejména o přihlášení uživatele a jeho autentifikaci. O autorizaci se stará každá vlastní třída namespace Views sama.
Třída SessionsList V případě úspěšného přihlášení je uživatel přesunut na toto zobrazení, kde vidí seznam sezení a má přidělena oprávnění podle své role k přístupu do sezení, jejich vytváření, či odstraňování. V tomto zobrazení jsou umožněny uživateli akce, které definují případy užití, které zobrazuje obrázek 4 v kapitole 7.2.
Třída CreateSession V případě, že má uživatel oprávnění k vytváření sezení, může se ze seznamu sezení přesunout k tomuto zobrazení, kde je mu umožněno pomocí formuláře vytvořit nové sezení. Po úspěšném vyplnění tohoto formuláře je přesunut na obrazovku pro výběr typu aplikace.
Třída ChooseApp V tomto zobrazení uživatel vybere typ aplikace, kterou chce v sezení provozovat. Až po tomto kroku je sezení založeno v datové vrstvě a ostatní uživatelé se k tomuto sezení mohou připojit.
Třída SyncReadinApp Tato třída se již stará o samostatný běh výukové aplikace pro synchronizované čtení. Díky ovládacím prvkům jsou uživateli umožněny případy užití, které znázorňuje obrázek 5 v kapitole 7.3.
Třída Crosswords Třída, která se stará o běh aplikace pro vyplňování křížovek. Z této třídy je možné se přesunout do zobrazení výsledků a vyhodnocení odeslaných odpovědí uživatelem.
NÁVRH
32
11.4.2 Namespace Classes Všechny nadcházející nadpisy v této kapitole reprezentují název třídy. Je tedy zbytečné u každého nadpisu psát klíčové slovo „Třída“. Zároveň je tento namespace dále stromově dělen na další namespacy. Při popisu těchto namespace se budu držet tečkové konvence (NázevNamespace.NázevTřídy).
Authentification.Authenticator Tato třída má pouze jediný účel: ověřit správnost přihlašovacích údajů. Jedná se o porovnání údajů zadaných uživatelem s daty, která jsou uložena v databázi.
DatabaseModels.CommandTable Třída reprezentující tabulku databáze Command. Nad touto tabulkou umí třída provádět potřebné operace jako je vkládání záznamů, odstranění záznamů, aktualizace záznamů a získávání záznamů z databáze. Tato data následně převede do potřebné formy a předává je zpět žadateli.
DatabaseModels.SessionTable Tato třída reprezentuje databázovou tabulku Session, ve které jsou uloženy záznamy o právě aktivních sezeních. Samozřejmostí je zde práce nad touto tabulkou, stejně jako tomu je u třídy CommandTable a dalšími třídami v namespace DatabaseModels.
DatabaseModels.SessionUserTable Třída reprezentuje tabulku databáze, ve které jsou uloženy záznamy o uživatelích, přesněji jsou zde uloženy záznamy o tom, který uživatel je přihlášen do konkrétního sezení.
DatabaseModels.UserTable Jedná se opět o třídu reprezentující data z databáze, tentokrát se jedná o tabulku, ve které jsou uložena data o uživatelích a jejich rolích.
33
Enumerations.UserRights Pomocná enumerační třída, která reprezentuje práva uživatele v sezení. Rozdělují se zde tyto kategorie:
Standardní uživatel sezení
Preferovaný uživatel
Majitel sezení
Enumerations.UserRole Opět se jedná o pomocnou třídu, která pomáhá při enumeraci. Zde jsou rozděleny role systému.
Vyučující
Student
Ředitel / zástupce ředitele
Models.CrosswordsApp.CrosswordField Abstraktní třída, která si klade za cíl vytvořit rodiče pro dva různé typy polí, které se mohou v křížovce objevit. Jsou jimi nápověda nebo volné pole pro znak.
Models.CrosswordsApp.CrosswordHint Tato třída reprezentuje nápovědu křížovky, je potomkem abstraktní třídy Models.CrosswordsApp.CrosswordField. Nápovědu může obsahovat buď horizontální pro řádek, nebo vertikální pro sloupec, či kombinaci obou.
Models.CrosswordsApp.CrosswordChar Třída reprezentující prázdné pole pro znak v křížovce je potomkem abstraktní třídy Models.CrosswordsApp.CrosswordField.
Models.CrosswordsApp.Crossword Tato třída reprezentuje křížovku jako takovou, skládá se z dvojrozměrného pole typu Models.CrosswordsApp.CrosswordField. Díky dědičnosti tříd CrosswordHint a CrosswordChar může toto pole obsahovat oba dva typy najednou, což dává velkou výhodu při generování uživatelského rozhraní. Zároveň má třída metodu, která
NÁVRH
34
vygeneruje uživatelské rozhraní a je možné tedy tuto třídu zobrazovat v prezentační vrstvě.
Models.CrosswordsApp.CrosswordSolution Třída reprezentující řešení jednoho uživatele, toto řešení je porovnáno se správným řešením a třída automaticky při vytváření počítá procentuální úspěšnost řešení.
Models.ICommand Abstraktní třída, která sjednocuje příkazy jednotlivých aplikací pod jeden typ. Má abstraktní metodu procedeCommand(), kterou musí obsahovat všechny její potomci. Díky tomu se může chování této třídy lišit podle jejího typu.
Models.Command Jedná se o třídu, která představuje právě jeden příkaz, má tedy atributy stejné jako má tabulka Command v databázi. Při provádění metody procedeCommand() se dále určuje typ příkazu a následně se vytváří daný typ příkazu, na který se opět volá metoda procedeCommand().
Models.Commands.GeneralCommand Třída, která vykonává příkaz, který může být společný pro všechny aplikace, například přihlášení/odhlášení uživatele, zvýšení dočasných práv uživatele atp.
Models.Commands.CrosswordsAppCommand Tato třída se stará o správné provedení příkazů, které jsou specifické pro aplikaci Křížovky. Pro aplikaci křížovky není velké množství příkazů, ale je dobré mít možnost je obsloužit z vlastní třídy.
Models.Commands.SyncReadingAppCommand Třída obstarává správnou funkčnost aplikace synchronizovaného čtení. Pro tuto aplikaci je vytvořena zvláštní sada příkazů, kterou je nutné správně obsloužit.
Models.LoggedUser Jedná se o “jedináčka“, který v sobě nese údaje o přihlášeném uživateli napříč celým systémem.
35
Models.Session Třída odpovídá entitě v databázi se stejným jménem. Jedná se o třídu, která reprezentuje právě jedno sezení.
Models.SessionUser Opět třída odpovídá přímo entitě v databázi SessionUser, jedná se o uživatele, který je přihlášený v některém sezení.
Models.SignedSession „Jedináček“ třídy právě přihlášeného sezení, nese v sobě informace o sezení, ve kterém je uživatel systému přihlášen.
Models.User Třída, která odpovídá entitě v databázi se stejným názvem. Reprezentuje konkrétního uživatele.
Networking.FileDownloader FileDownloader je třída, která se stará o stažení souboru z internetu, tento soubor je následně uložen do dočasné složky aplikace a zároveň tuto složku promazává při spuštění systému, aby se tak nezahlcovala paměť zařízení.
Networking.MobileService „Jedináček“ třídy, který je vytvořen při prvním kontaktování databáze, je tedy vytvořeno přímé spojení s Azure SQL databází.
Networking.CommandBuilder Jedná se o statickou třídu, jež je zodpovědná za správné vytvoření příkazů, které jsou
zapisovány
do
databáze.
O
tento
zápis
se
stará
třída
DatabaseModels.CommandTable.
Utils.Generator Statická třída, která má na starosti správně generovat některá data pro GUI elementy a vytváření hashe hesla.
NÁVRH
36
Utils.MyDialogs V případě přihlášení je použito defaultního Windows 8 RT (Metro) dialogu pro přihlášení. Tento dialog se obsluhuje z této třídy, stejně jako některé uživatelské dialogy.
Utils.RtfFileOpener Třída, která se stará o správné otevření dokumentu ve formátu RTF a jeho následnému zobrazení v aplikaci Synchronizované čtení.
Utils.TaskKiller Jelikož v aplikacích pro Windows Store, se navigace řeší hierarchicky, tak některá vlákna, která vznikají zejména ve výukových aplikacích, je potřeba skončit. Tato vlákna by se jinak mohla hromadit a zatěžovat tak výpočetní výkon systému. Pro tyto účely je vytvořena tato třída, která má na starosti správně ukončit všechna běžící vlákna, která již dále nejsou potřeba.
Utils.Validator Třída, která se stará o validaci formuláře při vytváření nebo editaci uživatele. Má metody, které zjistí jedinečnost uživatelského jména, emailu a správnost kontrolního hesla.
11.5 Návrh uživatelského rozhraní Pro návrh uživatelského rozhraní pro mobilní aplikaci na platformě Windows 8 a Windows RT je nutné dodržovat některé principy. Tyto principy jsou popsané v PDF souboru od společnosti Microsoft „Windows 8 User experience guidelines“ [5]. Několik zásadních principů designu uvádím v kapitolách níže.
11.5.1 AppBar Windows 8 nabízí ovládací prvek, který umožní uživateli skrývat a zobrazovat tzv. Windows AppBar. Tento prvek se může nacházet na horním, či dolním okraji obrazovky, přičemž konvence praví, že horní AppBar by se měl používat pro navigaci skrz aplikaci, spodní může sloužit k ovládání aktuálního zobrazení. [5]
37
Obrázek 10 - Windows AppBar [5]
11.5.2 Titulek zobrazení Uživatel aplikace by vždy měl vědět, ve které části aplikace se v současné chvíli nachází. K tomu slouží titulek stránky, jeho pozice i velikost je přesně definovaná. Linka, na které leží písmena titulku, by měla být 100px od vrchního kraje obrazovky. Zleva by měl být titulek odsazen o 120px. Velikost tohoto titulku by měla být 20px. [5]
Obrázek 11 - Titulek stránky [5]
11.5.3 Návrh pro dotykové obrazovky Jelikož se předpokládá použití aplikace na dotykových zařízeních, je nutné volit ovládací prvky dostatečně velké. Minimální doporučená velikost ovládacího prvku je
NÁVRH
38
40x40px. Pokud je vyžadována vyšší přesnost, tak Microsoft doporučuje velikost ovládacího prvku minimálně 50x50px. [5]
Obrázek 12 - Minimální doporučená velikost [5]
Obrázek 13 - Minimální doporučená velikost pokud je vyžadována vyšší přesnost uživatele [5]
Díky dodržení těchto pokynů popsaných v publikaci „Windows 8 User experience guidelines“ [5] vývojář docílí Windows Store App designu známého také jako „Metro“.
11.5.4 Návrh jednotlivých obrazovek systému mobilní aplikace. Úvodní obrazovka Úvodní obrazovka uživateli dovolí několik voleb pro pokračování v práci s aplikací.
Obrázek 14 - Úvodní obrazovka aplikace
39
Přihlášení do systému Obrazovka pro přihlášení do systému. Aplikace autentizuje uživatele, v případě chybně zadaných dat uživatele upozorní. V případě úspěšného přihlášení pokračuje aplikace na zobrazení seznamu sezení.
Obrázek 15 - Obrazovka přihlášení do systému
NÁVRH
40
Seznam sezení Zobrazení seznamu založených sezení. Uživatel má možnost pomocí ovládacích prvků ve spodním AppBaru, které se odvíjejí od jeho role v systému, vykonávat akce související se seznamem sezení.
Obrázek 16 - Obrazovka zobrazující seznam sezení
Vytváření nového sezení Obrazovka sloužící pro vytvoření nového sezení v systému. Po úspěšném vyplnění je uživatel přesunut na obrazovku pro výběr typu aplikace viz obrázek 18.
Obrázek 17 - Obrazovka pro vytvoření nového sezení
41
Obrázek 18 - Obrazovka pro výběr typu sezení
Aplikace Synchronizovaného čtení Obrazovka
aplikace
Synchronizované
čtení.
V aplikaci
může
uživatel
zvýrazňovat text, pohybovat kurzorem a další operace, ke kterým má oprávnění s ohledem na scénáře.
Obrázek 19 - Obrazovka synchronizovaného čtení
NÁVRH
42
Aplikace Křížovky Zobrazení pro aplikaci křížovky je po načtení aplikace prázdné, nejprve je třeba vybrat soubor křížovky. To lze buď z lokálního umístění, nebo z adresy na webu.
Obrázek 20 - Obrazovka aplikace Křížovky (Flyout pro otevření souboru)
V případě, že se uživatel rozhodne sledovat ostatní uživatele, má možnost tak učinit jejich výběrem a potvrzením volby v horním AppBaru.
Obrázek 21 - Obrazovka znázorňuje výběr uživatele ke sledování
43 Obrazovka, kterou zobrazuje obrázek 22, znázorňuje sledování řešení jiného uživatele, který je přihlášen v sezení.
Obrázek 22 - Obrazovka zobrazuje sledování řešení vybraného uživatele
Při klepnutí na tlačítko tužky se otevře Flyout, který umožní uživateli zadat celé slovo pro vyplnění v požadovaném směru.
Obrázek 23 - Obrazovka při otevření zadávacího Flyoutu
NÁVRH
44
Pro zobrazení nápovědy křížovky může uživatel využít ikonu otazníku v levém horním rohu křížovky.
Obrázek 24 - Zobrazení nápovědy křížovky
Obrázek 25 zobrazuje seznam odevzdaných řešení uživatelů. V levém sloupci se nachází seznam uživatelů, kteří odevzdali řešení. V pravém sloupci se nachází seznam řešení, které tento uživatel vytvořil. K dispozici je také náhled na řešení a spočítání procentuálního vyplnění křížovky.
Obrázek 25 - Seznam odevzdaných řešení uživatelů
45
IMPLEMENTACE 11.6 Verze použitého software Aplikace byla implementována za použití rozhraní Microsoft Visual Studio 2012 v11.50727.1 RTMREL, které podporuje tvorbu aplikací pro Windows Store, tedy aplikací jak pro plnou verzi systému Windows 8/Windows 8 Pro tak pro verzi Windows RT. Použit byl jazyk C# v5.0 2012 a .NET Framework v4.5. Bylo využito několik rozšiřujících balíčků pro usnadnění práce s grafickým rozhraním a balíčku pro komunikaci s Windows Azure serverem pro mobilní aplikace.
Callisto v1.2.7.0 – Výborná podpora Flyoutů a dalších zjednodušení GUI
WinRTCamlToolkit v1.3.8.0 – Balíček využíván zejména k přístupu ke scrollbaru u grafického elementu RichEditBox
Windows Azure Mobile Services Managed Client v0.2.0.0 – Podpora pro komunikaci s Windows Azure serverem pro mobilní aplikace
.NET for Windows Store apps v4.5.0.0 – balíček .NET Frameworku pro aplikace určené pro Windows Store
SDK pro Windows v8.0.0.0 – Vývojářské nástroje pro tvorbu aplikací pro Windows 8
11.7 Detaily implementace Pozice kurzoru na obrazovce je řešena pomocí ukazatele indexu písmene v textu, takže pro různá rozlišení aplikace funguje bez problému. Pro zpracování příkazů a jednotlivých polí křížovky je využito polymorfismu, kde aplikace sama vytváří korektní typ pro příkazy a pole podle potřeby. Text příkazu aplikace vypadá například takto: 501:Text:Highlight(RGBA(0, 255, 255, 255); 0; 50) 501 = Typ aplikace Text = Objekt, na který se příkaz zaměřuje, v tomto případě je to samotný text knihy. Highlight() = Příkaz a jeho parametry, v tomto případě příkaz pro zvýraznění textu žlutou barvou v rozsahu znaků 0 - 50.
46
IMPLEMENTACE
// Metoda pro zpracování příkazu internal async override Task
procedeCommand() { // Rozporcování příkazu na jednotlivé položky this.commandArray = CommandText.Split(SEPARATOR); this.appCommand = commandArray[0]; this.commandObject = commandArray[1]; this.command = commandArray[2]; switch (appCommand) { case Command.SYNCHRONIZED_READING_APPLICATION: this.commandState = new SyncReadingAppCommand(this); break; case Command.CROSSWORDS_APPLICATION: this.commandState = new CrosswordsAppCommand(this); break; case Command.GENERAL: this.commandState = new GeneralCommand(this); break; } // Zpracování správného typu příkazu await this.commandState.procedeCommand(); // Nastavení ID posledního zpracovaného příkazu z databáze ss.setLatestCommandId(this.Id); return true; }
47
TESTOVÁNÍ 12 Test použitelnosti systému 12.1 Cílová skupina Uživatelé systému budou převážně studenti a vyučující na středních školách. Snažil jsem se z této skupiny vybrat reprezentativní vzorek tak, abych pokryl co nejširší publikum uživatelů systému.
12.2 Parametry zařízení, na kterém byl systém testován
CPU: Intel Core 2 Duo T5800 (2,0 GHz), 2 MB L2 cache, FSB 800 MHz
RAM: 2+1 GB DDR 2, 667 MHz
HDD: 320 GB SATA, 5400 RPM
Monitor: 15,4“ (1280 x 800 px) + 27“ (1920 x 1080 px)
GPU: nVidia GeForce 9200M GS, 256 MB
Síť: WiFi 802.11b/g
12.3 Screener dotazník Dotazník byl sestaven tak, aby co nejlépe zaměřil cílovou skupinu uživatelů systému. Čísla v závorkách jsou požadovaný počet participantů v jednotlivých kategoriích.
Pohlaví o Muž (3x) o Žena (3x)
Věk o 15-17 let (1x) o 18-20 let (1x) o 21-25 let (0x) o 26-30 let (1x)
TESTOVÁNÍ
48 o 31-35 let (1x) o 35-40 let (1x) o 41-45 let (1x) o Jiné
Povolání o Student (4x) o Vyučující (2x) o Jiné (0x)
Zkušenosti s Windows 8 o Ano (3x) o Ne (3x)
Zkušenost s dotykovými zařízeními o Ano (3x) o Ne (3x)
Výsledky dotazníku Z oslovených studentů a vyučujících středních škol jsem vybral šest osob tak, aby co nejlépe splňovaly moje požadavky. Výsledky dotazníku uvádí tabulka 7 v kapitole Příloha A. Bohužel sehnat participanty se znalostí prostředí Windows 8 nebylo možné. Stejně obtížné bylo sehnat účastníky testování, kteří nemají zkušenosti s dotykovým zařízením.
12.4 Pre-test dotazník Pre-test dotazník byl sestaven tak, abych zjistil, jakou představu o systému mají jeho potenciální uživatelé. Dále jsem se snažil zjistit co od systému a jeho aplikací očekávají při stručném popisu tohoto systému. Výsledky dotazníku uvádí tabulka 8 v kapitole Příloha A.
12.5 Scénáře užití Scénáře užití aplikace byly pro všechny účastníky testu stejné. Jelikož se jedná o aplikaci, ve které je nutná interakce s ostatními uživateli, poprosil jsem další osobu, aby simulovala tohoto dalšího uživatele systému. Tento člověk dostal předem řádné poučení
49 o používání aplikace, aby nenastal problém z jeho strany a přístupové údaje k mému uživatelskému účtu aplikace. 1. Přihlášení do aplikace a. Zapněte aplikaci IT Jakub b. Přihlaste se s přihlašovacími údaji: (test, test) 2. Vytvoření sezení a. Vytvořte sezení s názvem SyncReading a typem aplikace Synchronizované čtení 3. Otevření publikace a. Otevřete
publikaci
dostupnou
na
adrese
http://stipanidreva.cz/testRTF.rtf 4. Zvýraznění textu a. Označte první slovo prvního odstavce a předposlední slovo posledního odstavce. 5. Pohyb kurzoru a. Posuňte kurzor na začátek třetího slova třetího odstavce. 6. Zvýšení práv uživatele a. Zvyšte práva uživatele Jakub Kopřiva b. Pozorujte akce, které vykonává 7. Odhlášení ze sezení a odstranění tohoto sezení a. Vraťte se na předchozí obrazovku. b. Odstraňte sezení, které jste právě vytvořil(a). 8. Vytvoření sezení pro aplikaci Křížovky a. Vytvořte nové sezení s libovolným názvem a typem Křížovky 9. Otevření křížovky a. Otevřete
soubor
dostupný
na
http://stipanidreva.cz/cross.xml 10. Vyplňování křížovky a. Vyplňte libovolná pole křížovky 11. Prohlédnutí řešení ostatních uživatelů a. Prohlédněte si řešení uživatele Jakub Kopřiva 12. Vyhodnocení řešení a. Vyberte řešení od všech uživatelů a zobrazte si vyhodnocení 13. Ukončení aplikace
adrese
TESTOVÁNÍ
50 a. Ukončete aplikaci
12.6 Vyhodnocení testování Testování ve všech případech činilo problémy zejména v nalezení komponent uživatelského rozhraní ve Windows 8 AppBaru. To si vysvětluji neznalostí prostředí Windows 8, kde je AppBar běžným prvkem uživatelského rozhraní. Rozhraní pro Windows 8 bylo následně účastníkům vysvětleno a již neměli s ovládáním aplikace problém. Dále činilo účastníkům problém zvýrazňování textu, po otevření AppBaru se odstranilo označení textu a uživatelé tak nebyli schopni určit, zda se text opravdu označí či nikoliv. V aplikaci Křížovky měli účastníci problém s vymazáním znaku v poli křížovky, dokázali jej pouze přepsat.
12.6.1 Nalezené problémy
Pořadové číslo problému
Název problému
Priorita odstranění
Tabulka 6 - Tabulka nalezených problémů
1
V aplikaci synchronizované čtení se ztrácí označení textu, který chce uživatel zvýraznit při otevření AppBaru.
Kritická
2
V celé aplikaci se nenachází žádný navigační prvek, který by uživateli sděloval, ve které části aplikace právě pracuje.
Kosmetická
3
Při vyplňování křížovky uživatelé nevěděli jak vymazat písmeno z pole křížovky, dařilo se jim toto písmeno pouze přepsat.
Kritická
12.7 Post-test dotazník Neprodleně po testu byli účastníci testování vystaveni dalšímu dotazníku. Tento dotazník měl za úkol zjistit, jak byli uživatelé spokojeni se systémem, zda splnil jejich očekávání, co jim v aplikacích chybělo a co je naopak mile překvapilo. Tyto informace uvádí tabulka 9 v kapitole Příloha A.
51
ZÁVĚR 12.8 Zhodnocení splnění cílů Cílem práce bylo vytvořit nejméně dvě aplikace pro podporu výuky na platformě Windows 8. Tyto aplikace měly být spustitelné na všech edicích Windows 8 z důvodu použití na počítačích i tabletech. V průběhu bakalářské práce jsem vytvořil dvě aplikace. Aplikaci pro synchronizované čtení a aplikaci pro luštění křížovek. Aplikace pro synchronizované čtená umožňuje práci s textem ve skupině více uživatelů. Uživatelé mohou zvýrazňovat části textu a pohybovat kurzorem, který ukazuje na právě čtené místo. Aplikace pro luštění křížovek umožní uživatelům vyplnění křížovky a její následné odeslání k vyhodnocení. Systém byl zároveň testován na simulátoru dotykového zařízení pomocí vývojového prostředí Microsoft Visual Basic 2012. Díky testu na tomto simulátoru byla otestována bezproblémová funkčnost aplikace na dotykovém zařízení.
12.9 Práce budoucí Při vývoji jsem se zaměřil hlavně na funkcionalitu jednotlivých aplikací. Pro finální nasazení systému je potřeba grafická úprava aplikace a rozmístění GUI elementů. Dále je systém velice snadno rozšiřitelný, přidáním dalších výukových aplikací a nástrojů. V současné době pracuje Václav Purchart s Ústavem pro jazyk český Akademie věd ČR, v. v. i. na vytvoření seznamu těchto aplikací, které je možné do systému následně přidávat. V současné době neexistují podklady a serverové API k získání textů z Vokabuláře. Pro budoucí integraci systému je zapotřebí aby existovala XSLT transformace, či XQUERY dotaz pro získání souboru ve formátu RichTextFormat pro aplikaci Synchronizované čtení a zároveň seznam této literatury, aby bylo umožněno snadné vybírání publikací pro četbu.
52
ZÁVĚR
53
SEZNAM REFERENCÍ [1]. MICROSOFT. Windows Azure. Intro to Windows Azure - Windows Azure fundamentals [online]. 2013 [cit. 2013-05-22]. Dostupné z: http:// www.windowsazure.com/en-us/develop/net/fundamentals/intro-to-windows-azure/ [2]. MICROSOFT. Windows Azure. Pricing Details - SQL Database [online]. 2013 [cit. 2013-05-19]. Dostupné z: http://www.windowsazure.com/en-us/pricing/details/sqldatabase/ [3]. MICROSOFT. Windows Azure. Pricing Details - Data Transfers [online]. 2013 [cit. 2013-05-19]. Dostupné z: http://www.windowsazure.com/en-us/pricing/details/ data-transfers/ [4]. MICROSOFT. Windows Azure. Pricing Details - Mobile Services [online]. 2013 [cit. 2013-05-19]. Dostupné z: http://www.windowsazure.com/en-us/pricing/details/ mobile-services/ [5]. Windows 8 User experience guidelines [online]. Microsoft, 2012 [cit. 2013-05-20]. Dostupné z: http://go.microsoft.com/fwlink/p/?linkid=258743 [6]. URBAN, P. Cnews.cz / Windows. Srovnání edic dle funkcí: Windows 8, Windows 8 Pro a Windows RT [online]. 2012 [cit. 2013-05-18]. Dostupné z: http:// extrawindows.cnews.cz/clanky/srovnani-edic-dle-funkci-windows-8-windows-8pro-windows-rt
54
SEZNAM referencí
55
Příloha A. Výsledky dotazníků
Povolání
15-17 35-40 18-20 26-30 18-20 18-20
Student Vyučující na SŠ Student Vyučující na SŠ Student Student
Tělesná výchova Český jazyk
Zkušenosti s dotykovými zařízeními
Věk
Muž Muž Muž Žena Muž Muž
Zkušenosti s Windows 8
Pohlaví
1 2 3 4 5 6
Vyučovaný předmět
Pořadové číslo participanta
Tabulka 7 - Výsledky Screener dotazníku
Ne Ne Ne Ne Ne Ne
Ano Ne Ano Ano Ano Ano
VÝSLEDKY DOTAZNÍKŮ
56
2
Ne
Ne
3
Ne
Ano
4
Ne
Ano
5
Ne
Ne
6
Ne
Ano
Wolfram Alpha
1x týdně
Zobrazit text, a umožnit jeho interaktivní čtení s ostatními studenty Čtení textu, všech studentů najednou. Úpravy tohoto textu pro jazykové rozbory. Umožnit studentům číst text a zobrazovat nějaký ukazatel na místo, kde se přestalo číst.
Co by podle Vás měla aplikace Křížovky umožňovat?
Ne
Co by podle Vás měla aplikace Synchronizované čtení umožňovat?
Využíváte nějaký počítačový program či mobilní aplikaci k výuce?
Ne
Jak často využíváte tyto programy?
Účastnil jste se někdy testu uživatelského rozhraní?
1
Jaký/é programy či aplikace k výuce využíváte?
Pořadové číslo participanta
Tabulka 8 - Výsledky Pre-test dotazníku
Vyplnit křížovku
Nevím, křížovky nejsou zrovna mým koníčkem.
Měl bych mít možnost vyplnit křížovku, za správně vyplněné slovo bych měl dostat bod. Tyto body bych měl mít možnost "utratit" v případě že nevím odpověď v některé části křížovky. Interaktivní 1x Studenti by měli mít Křížovku by mělo tabule měsíčně možnost číst stejný text, být možné vyplnit a přičemž by jeden následně student četl a ostatním automaticky by se ukazovalo, ve vyhodnotit kterém místě se jednotlivé studenty. nachází. Zvýrazňování textu, interaktivní jazykové rozbory. Nevím Vyplňování křížovky a následné bodování Zobrazení 3x Aplikaci si nedokážu Zobrazit a vyplnit grafů na týdně představit. Nevím, co by křížovku. iPhone měla umět.
57
Návrhy na změny a vylepšení.
Bylo pro Vás používání této aplikace frustrující?
Dokážete si použití těchto aplikací představit ve výuce?
Jaká funkčnost Vám v systému chyběla?
Splnila aplikace vaše očekávání?
Pořadové číslo participanta
Tabulka 9 - Výsledky Post-test dotazníku
1
Ano Rozvrh a aktuální informace z dění na škole (odpadlé hodiny, suplování atp.)
Ano, myslím, že by takováto aplikace dokázala zatraktivnit výuku.
Rozhodně ne.
Více barev pro zvýraznění textu.
2
Ano Žádná.
Nevím, asi ano.
Nebylo.
Nevím, myslím, že to ukáže až reálné používání.
3
Ne
Ano, nevěděl jsem si rady s tím AppBarem.
Přidat více aplikací, automatické vyhodnocování písemných testů.
4
Ano Chyběla mi funkce pro zvýraznění textu jinou barvou, při jazykových rozborech by tato funkce byla užitečná.
Ano, setkávám se Ne. denně při hodinách s tím, že studenti se v textu ztrácí a automatické vyhodnocení křížovky je také příjemná věc.
5
Ano Nic mi v aplikaci nechybělo
Ano
Po vysvětlení co je Nevím AppBar a jak se ve Windows 8 otevírá, jsem s aplikací neměl problém
6
Ano V aplikaci křížovky jsem nevěděl jak vyprázdnit dříve vyplněný řádek, musel jsem jej mazat znak po znaku.
Nevím.
Myslím, že ne.
Vyplňování křížovky Ne, nevidím v této na mne působilo aplikaci efektivní krkolomně. využití.
Jak jsem již říkala, více barev pro zvýraznění textu. Při vyhodnocení křížovek zobrazit správné řešení.
Přidal bych několik dalších barev pro zvýraznění textu a také možnost smazat celé vyplněné slovo v křížovkách.
58
VÝSLEDKY DOTAZNÍKŮ
59
Příloha B. Seznam zkratek Win 8 Windows 8 AV ČR v.v.i Akademie věd České republiky veřejná výzkumná instituce CPU Procesorová jednotka RAM Operační paměť HDD Pevný disk GPU Grafická karta GUI Grafické uživatelské rozhraní MS Microsoft ÚJČ AV ČR Ústav pro jazyk český Akademie věd ČR, v. v. i., DB – Databáze px – pixel; Nejmenší obrazový bod zobrazovacího zařízení API – Application Programming Interface; Rozhraní pro programování aplikace. REST – Representational State Transfer; Architektura rozhraní, navržená pro distribuované prostředí.
60
SEZNAM ZKRATEK
61
Příloha C. Instalační a uživatelská příručka Instalace aplikace s využitím MS Visual Studio 2012 Aplikace je možné nainstalovat pomocí projektu VisualStudia, který je uložen na přiloženém CD v adresáři „\Sources\IT Jakub“. Pro tuto instalaci je potřeba mít nainstalované MS Windows 8 a MS Visual Studio 2012 s platnou vývojářskou licencí. 1. Otevřete projekt IT Jakub.sln 2. V aplikaci MS Visual Studio 2012 zvolte z menu položku „Build“ -> „Deploy IT Jakub“ viz obrázek 26.
Obrázek 26 - Deploy IT Jakub z Visual Studia
3. Následně je možné aplikaci spustit ze „Start menu“ („Dlaždic“) operačního systému Windows 8 viz Obrázek 27
Obrázek 27 - Start menu Windows 8 s deploynutou aplikací IT Jakub
INSTALAČNÍ A UŽIVATELSKÁ PŘÍRUČKA
62
Instalace aplikace s využitím instalačního balíčku Aplikaci je také možné nainstalovat s pomocí instalačního balíčku, který je přiložen na CD. Pro tuto instalaci je zapotřebí mít platnou vývojářskou licenci Windows 8. Výhodou je, že není vyžadována nainstalovaná verze MS Visual Studia. Nicméně instalace touto cestou vyžaduje stažení a instalaci Microsoft PowerShell3 1. Vyhledejte soubor „\PowerShellPackage\Add-AppDevPackage.ps1“ 2. Otevřete kontextovou nabídku souboru. 3. Zvolte volbu „RunWithPowerShell“ 4. Zobrazí se instalační okno aplikace Windows PowerShell viz obrázek 28.
Obrázek 28 - Instalační okno aplikace Windows PowerShell
5. Po skončení instalace stiskněte klávesu „Enter“ podle instrukcí PowerShellu. 6. Následně je možné aplikaci spustit ze „Start menu“ („Dlaždic“) operačního systému Windows 8 viz obrázek 27.
3
Windows PowerShell (Download page)
63
Uživatelská příručka aplikace Pro funkčnost aplikace je nutné připojení k databázi Azure SQL. V současné chvíli je tato databáze zapůjčena od Mgr. Jiřího Danihelky nejméně do 30. 6. 2013. V databázi jsou vytvořeny uživatelské účty, které je možné využít pro testování aplikace a samozřejmostí je vytvoření dalších účtů. Tabulka 10 obsahuje přihlašovací údaje k těmto účtům. Tabulka 10 - Tabulka uživatelských účtů
Uživatelské jméno
Heslo
Uživatelská role
milan
123456
Ředitel
petr
123456
Vyučující
emil
123456
Student
Ovládání základu aplikace Pro přihlášení do aplikace použijte tlačítko na úvodní obrazovce „Přihlásit se“. Následně budete vyzván k zadání uživatelského jména a hesla. Zadejte některý z uživatelských účtů, které uvádí tabulka 10 a potvrďte zadání tlačítkem „OK“.
Obrázek 29 - Přihlašovací tlačítko
INSTALAČNÍ A UŽIVATELSKÁ PŘÍRUČKA
64
Následně budete přesunuti do seznamu sezení, kde se můžete přihlásit do již existujícího sezení - označení sezení probíhá pravým tlačítkem myši. Poté otevřete AppBar a stiskněte tlačítko „Přihlásit k sezení“. Na této obrazovce můžete také za pomoci AppBaru vytvářet sezení vlastní či mazat existující sezení.
Obrázek 30 - Seznam sezení
Ovládání aplikace Synchronizované čtení Posun kurzoru je realizován pomocí tažení myši. Pro označení textu vyberte část textu, otevřete AppBar a stiskněte tlačítko „Zvýraznit vybraný text“. Pro zvýšení práv některého uživatele zvolte uživatele ze seznamu uživatelů a stiskněte tlačítko „Zvýšit práva“. Snížení práv funguje obdobně. Pro otevření nového souboru je zapotřebí zadat absolutní cestu k souboru (.rtf) na webu. Pomocí tlačítka „Vypnout aktualizaci“ vypnete stahování nových příkazů ze serveru a aplikace se tak bude jevit offline a můžete volně prohlížet text, zatímco ostatní s textem pracují.
Obrázek 31 - Aplikace Synchronizované čtení
65 Ovládání aplikace Křížovky Pro vyplňování křížovky využijte jednotlivé textové buňky uvnitř křížovky, nebo po stisknutí některého tlačítka s ikonou tužky zadejte celé slovo v horizontálním či vertikálním směru. Pro zobrazení nápovědy použijte tlačítko s ikonou otazníku. Pro vybrání řešení od všech uživatelů v sezení použijte tlačítko „Vyžádat odevzdání“ v AppBaru. Pro otevření souboru můžete využít zdroje souborů z webu po zadání absolutní cesty, či otevřít soubor (.xml) z lokálního úložiště. Vzorový soubor křížovky a jeho DTD definice je také součástí CD v adresáři „\Resources\Crossword“.
Obrázek 32 - Aplikace Křížovky
Pokud chcete zobrazit řešení některého uživatele, který je přihlášen v sezení, můžete tak učinit pomocí horního AppBaru. Po kliknutí na některého uživatele ze seznamu uživatelů máte možnost „Zobrazit řešení uživatele“. Po stisknutí tlačítka „Vyhodnotit výsledky“ máte možnost zobrazit odevzdaná řešení uživatelů v sezení. Levý seznam uživatelů obsahuje uživatele, kteří odevzdali zadání. Pravý seznam se zobrazí po výběru některého z uživatelů. V tomto seznamu lze zobrazit konkrétní řešení. Současně aplikace spočítá správné vyplnění křížovky v procentech.
66
INSTALAČNÍ A UŽIVATELSKÁ PŘÍRUČKA
Obrázek 33 - Vyhodnocení řešení uživatelů aplikace Křížovky
67
Příloha D. Obsah přiloženého CD CD ├───PowerShellPackage // Adresář s balíčkem PowerShell │ └───Add-AppDevPackage.ps1 // PowerShell instalační balíček │ ├───Resources // Adresář s vzorovými soubory │ └───Crossword // Adresář s vzorovými soubory pro aplikaci křížovky │ ├───crossword.xml // XML dokument definující konkrétní křížovku │ └───crossword.dtd // DTD dokument definující syntax XML pro křížovku │ ├────Sources // Adresář se zdrojovými soubory │ └───IT Jakub // Adresář projektu │ └───IT Jakub.sln // Projekt MS Visual Studia 2012 │ ├───Jakub_Kopřiva.docx // Text práce ve zdrojovém formátu └───Jakub_Kopřiva.pdf // Tisknutelný formát práce