BAKALÁŘSKÁ PRÁCE Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Filip Bocek
U ni c or n C ol le ge © 20 11 U ni c or n C ol le ge , V Ka ps l ov n ě 27 67 /2 , Pr aha 3, 1 30 00 N áze v pr á c e v ČJ : N áze v pr á c e v AJ :
A na l ýza a ná vr h s ys t ém u p r o S el fT e s t y A na l ys i s and de s i gn f or S el fT es t s ys t em
A ut or :
F il i p B oc ek
Ak adem ic k ý r ok :
2 010 / 20 1 1
K ont ak t:
E - m ai l: boc ek .f @ em a il.c z T e l.: ( +42 0) 72 1 2 73 49 2
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
1.
ZADÁNÍ
▪3▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
2.
ABSTRAKT Předmětem této bakalářské práce je analýza a návrh rozšíření Informačního systé-
mu (SelfTest systém), který umožňuje vytvářet a řešit testy nanečisto tzv. SelfTesty. Ty slouží studentům jako zpětná vazba při ověřování jejich studijních znalostí. Součástí práce je také implementace prototypové mobilní SelfTest aplikace, která bude se systémem komunikovat. Cílem je vhodně analyzovat požadavky, které jsou na SelfTest systém kladeny, navrhnout způsob, jakým lze stávající SelfTest systém rozšířit, a vyvinout mobilní aplikaci, která s ním bude komunikovat a kolaborovat. Bakalářská práce je rozdělena do tří hlavních částí - teoretickou a dvě praktické. V teoretické části je popsán e-learning jako podoba moderního způsobu vzdělávání, je definováno jeho členění a jsou zachyceny způsoby, jakými lze jeho formy realizovat v praxi, spolu se stanoviskem, které v tomto ohledu zaujímá Unicorn Universe, e-learningový systém Unicorn College. První praktická část se zabývá analýzou a návrhem SelfTest systému. Kapitola zachycuje klíčové požadavky, které musí systém pokrývat, a navrhuje způsob jejich implementace. Je zde navržena architektura, jsou definovány případy užití, komunikační rozhraní pro mobilní aplikace a další funkční body. Druhá praktická část je zaměřena na implementaci mobilní SelfTest aplikace a popisuje způsob, jakým byla řešena implementace nejdůležitějších procesů, včetně ukázek grafického rozhraní. Klíčová slova: SelfTest, SelfTest systém, SelfTest aplikace, Analýza, Návrh, Windows Phone 7, e-learning, Unicorn Universe, Unicorn College
▪4▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
3.
ABSTRACT The bachelor thesis deals with the analysis and design of the Information system
(SelfTest system) and its extension. The system allows you to create and solve the mock tests so-called SelfTests. These SelfTests are used by students as a feedback to verify their knowledge, learning skills. The thesis also includes the implementation of a prototype mobile SelfTest application that will communicate with the system. The aim of the thesis is to suitably analyse the requirements that are laid to SelfTest system, suggest the way to extend existing SelfTest system and develop a mobile application that will cooperate with it. The bachelor thesis has a theoretical and two practical parts. The theoretical part describes e-learning as a form of modern education way. Then is defined its structure/segmentation and there are recorded the ways that can be realized in practice. Unicorn Universe as e-learning system of Unicorn College also have standpoint. The first practical part deals with analysis and design of the SelfTest system. The chapter describes the key requirements that must be cover by the system and suggest the way to implement them. There is proposed architecture. There are also defined cases of use, interfaces for mobile applications and other functional items. The second part aimed at the implementation of a mobile SelfTest application and describes the implementation of the most important processes, including examples of graphical interfaces. Keywords: SelfTest, SelfTest system, SelfTest application, Analysis, Design, Windows Phone 7, e-learning, Unicorn Universe, Unicorn College.
▪5▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
4.
PROHLÁŠENÍ
Prohlašuji, že svou bakalářskou práci na téma Analýza a návrh systému pro SelfTesty jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou v práci citovány a jsou též uvedeny v seznamu literatury a použitých zdrojů. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních 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 Praze dne
…….………………. Filip Bocek
▪6▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
5.
PODĚKOVÁNÍ
Děkuji vedoucímu bakalářské práce Petru Buchlákovi za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce.
▪7▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
6.
OBSAH
1. 2. 3. 4. 5. 6. 7.
Zadání..................................................................................................................................3 Abstrakt...............................................................................................................................4 Abstract...............................................................................................................................5 Prohlášení...........................................................................................................................6 Poděkování.........................................................................................................................7 Obsah...................................................................................................................................8 Úvod...................................................................................................................................10 7.1 Popis jednotlivých kapitol......................................................................................10 7.2 Konvence použité v této práci...............................................................................11 8. E-learning..........................................................................................................................12 8.1 Definice pojmů.........................................................................................................12 8.1.1 Definice v širším slova smyslu..........................................................................12 8.1.2 Definice v užším slova smyslu..........................................................................12 8.1.3 E-reading...............................................................................................................13 8.2 Základní formy e-learningu....................................................................................13 8.2.1 Online e-learning.................................................................................................14 8.2.1.1 Synchronní.........................................................................................................14 8.2.1.2 Asynchronní.......................................................................................................15 8.2.2 Offline e-learning.................................................................................................16 8.3 Vývoj e-learningu....................................................................................................16 8.3.1 Počítačem podporované vzdělávání (1990 – 1999)......................................17 8.3.2 Vzdělávání pomocí webových technologií (1997 – 1999)............................17 8.3.3 Systémy řízeného elektronického vzdělávání (1999 – 2005)......................17 8.3.4 Learning Content Management system...........................................................18 8.4 Výhody a nevýhody e-learningu...........................................................................19 8.5 E-learning na Unicorn College..............................................................................19 8.5.1 Unicorn Universe jako LMS (LCMS).................................................................19 8.5.1.1 Studijní materiály online..................................................................................20 8.5.1.2 Delegování úkolů a schůzek a komunikace.................................................20 8.5.1.3 Kolaborativní spolupráce na projektech.......................................................20 8.5.1.4 Audio a videopodcasty....................................................................................21 8.5.1.5 SelfTesty............................................................................................................21 9. Analýza a návrh SelfTest systému...............................................................................22 9.1 Popis společnosti....................................................................................................22 9.2 Klíčové procesy Unicorn College.........................................................................23 9.2.1 Proces výuky........................................................................................................25 9.3 Záměr........................................................................................................................26 9.4 Shrnutí problému.....................................................................................................27 9.5 Definice projektu.....................................................................................................28 9.5.1 Cíle projektu.........................................................................................................28 9.5.2 Rozsah...................................................................................................................28 9.5.3 Výstupy projektu..................................................................................................29 9.6 Identifikace požadavků...........................................................................................30 9.6.1 Funkční požadavky..............................................................................................30 9.6.2 Nefunkční požadavky..........................................................................................33 9.7 High Level pohled na architekturu.......................................................................34 9.7.1 Popis......................................................................................................................36 9.8 Klíčové funkčnosti...................................................................................................37 10. Implementace SelfTest aplikace.................................................................................39 10.1 Windows Phone 7.................................................................................................39 10.1.1 Platformy pro vývoj aplikací.............................................................................40
▪8▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
10.1.2 Vnitřní struktura WP7........................................................................................41 10.1.3 Persistence dat ve WP7...................................................................................41 10.2 Implementované funkčnosti.................................................................................43 10.3 Persistence dat v SelfTest aplikaci....................................................................44 10.4 Načtení dat při prvním spuštění.........................................................................45 10.5 Vytváření SelfTestů..............................................................................................53 10.6 Programátorská instalace....................................................................................57 11. Závěr................................................................................................................................58 12. Conclusion......................................................................................................................59 13. Seznam použité literatury............................................................................................60 14. Seznam použitých internetových zdrojů....................................................................61 15. Seznam použitých symbolů a zkratek........................................................................62 16. Seznam obrázků............................................................................................................63 17. Seznam tabulek.............................................................................................................64 18. Seznam příloh................................................................................................................65 Příloha 1 – ukázkové xml předmětu..................................................................................66 Příloha 2 – CD obsahující technický projekt, text práce, implementovanou aplikaci a zdrojové kódy........................................................................................................................67
▪9▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
7.
ÚVOD Vzdělávání, proces osvojování dovedností a znalostí, je důležitým aspektem dnešní
doby. Až donedávna zůstával koncept vzdělávání v základu pořád stejný. Za poslední desetiletí můžeme pozorovat, že s technologickým pokrokem a především s masivním rozšířením Internetu, se začíná způsob, jakým se člověk vzdělává, učí nebo sdílí informace, měnit. Unicorn College, soukromá vysoká škola se zázemím a podporou úspěšné softwarové společnosti, se snaží využívat potenciál, který dnešní doba a technika nabízí, a proto nabízí vzdělávání i formou „e-lerningu“. Umožňuje jí to především propracovaný informační systém Unicorn Universe, který je přístupný všem studentům odkudkoli právě prostřednictvím Internetu. Zde studenti najdou všechny studijní materiály a podporu pro vzdělávání. Nyní budou mít k dispozici i možnost testovat nebo ověřovat své znalosti pomocí tzv. SelfTestů (jednoduchý test, ve kterém uživatel odpovídá na otázky vybráním správné odpovědi). Cílem této práce je analyzovat požadavky na systém, který bude SelfTesty poskytovat, provést návrh architektury a definovat rozhraní, které budou moci využívat další podpůrné aplikace, ke komunikaci se SelfTest systémem. Jednou z nich bude i nativní mobilní SelfTest aplikace, implementována pro platformu Windows Phone 7, jejíž prototyp je také jedním z výstupu této práce. Účelem této práce je nabídnout co nejinteraktivnější způsob vzdělávání a docílit v tomto ohledu vyšší efektivity, než tomu bylo doposud. Samozřejmě poté tyto benefity prezentovat jménem školy a docílit vyššího počtu studentů a prestižnějšího jména.
7.1
Popis jednotlivých kapitol •
Kapitola 8: E-learning – v této kapitole se podíváme, jakými způsoby se lze
v dnešní době s využitím Internetu a dostupných technologií vzdělávat. Dále bude rozebrána přidaná hodnota e-learningu včetně SelfTestů. •
Kapitola 9: Analýza a návrh SelfTest systému – zde jsou zachyceny poža-
davky, jež by měl SelfTest systém a SelfTest aplikace splňovat, spolu s návrhem designu. •
Kapitola 10: Implementace SelfTest aplikace – kapitola popisující detailní
implementaci prototypové SelfTest aplikace pro mobilní zařízení.
▪ 10 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
7.2
Konvence použité v této práci Informace obsažené v této práci jsou jak teoretického, tak praktického charakteru.
Obzvláště v praktické části se budou vyskytovat ukázky části kódů nebo návrhové diagramy. Pro odlišení byly použity různé typografické konvence. Pro plné porozumění zde uvádím jejich výčet a popis.
•
Neproporcionální písmo − všechny ukázky zdrojových kódů jsou psaný tímto
písmem. • Tučné písmo – zvýrazňuje důležité informace nebo klíčové pojmy. • Kurzíva – text psavý kurzívou označuje nějakou dodatečnou informaci. V ukázkách zdrojových kódů bývá kurzívou psaná dokumentace. Pokud je tento text navíc ohraničen uvozovkami, jedná se o citaci.
▪ 11 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
8.
E-LEARNING V této kapitole si vysvětlíme, co se pod tímto pojmem skrývá, jakým způsobem lze
e-learning rozdělit a realizovat v praxi.
8.1
Definice pojmů Při čtení různých knížek či Internetových článků zabývajících se problematikou
e-learningu, narazíme na spoustu různých a často nesourodých definic, které se pokouší pojem e-learning co nejvýstižněji popsat. Hlavní příčinou je velká různorodost prostředí, pro které lze tento pojem definovat. Z tohoto důvodu se obeznámíme s definicí e-learningu „v širším a užším slova smyslu“1, tak, jak popisuje Mgr. Kamil Kopecký, Ph. D.
8.1.1
Definice v širším slova smyslu V tomto ohledu je e-learning „aplikace nových multimediálních technologií a Interne-
tu do vzdělávání za účelem zvýšení jeho kvality posílením přístupu ke zdrojům, službám, k výměně informací a ke spolupráci“.2 V tomto pojetí lze za e-learning chápat jakoukoli technologii, službu či médium využívající IT (Informační technologie) ke zvýšení kvality a efektivity vzdělávání. Můžeme tedy v tomto ohledu označit i použití multimediálního CD nebo prezentace během přednášky za e-learning. Jde o „multimediální podporu vzdělávacího procesu za použití moderních informačních a komunikačních technologií (ICT), jejichž primárním úkolem je zvýšit kvalitu a dostupnost vzdělávání“.3
8.1.2
Definice v užším slova smyslu Tato definice vystihuje e-learning jako „vzdělávání, které je podporované moderními
technologiemi a které je realizováno prostřednictvím počítačových sítí – intranetu a zejména Internetu“.4 S tímto popisem spojuje e-learning většina populace. Můžeme říci, že jde o co nejefektivnější využití dostupných technologií k předání informací kdykoli a kdekoli. Samozřejmě intranet a Internet nejsou jediné sítě, které lze využít k sdílení a přístupu k informacím. Můžeme zde zahrnout také mobilní sítě a další. 1
KOPECKÝ, K. E-learning (nejen) pro pedagogy. Olomouc: Hanex, 2006, s. 6.
2
Tamtéž.
3
KOPECKÝ, K. E-learning (nejen) pro pedagogy. Olomouc: Hanex, 2006, s. 6.
4
Tamtéž.
▪ 12 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
E-learning se snaží působit na co nejvíce lidských smyslů. Pro zrak je určen elektronický text (online studijní přednášky) s propracovanou grafikou a názornými ukázkami. Zde je důležité rozeznávat dva pojmy, a to e-learning a e-reading (viz dále). Pro sluch jsou určeny audio podcasty (audio záznam přednášky – mluvené slovo). Další množina podkladů působí na více smyslů zároveň. Jedná se především o video záznamy přednášek, živý streaming (živý přenos přímo z lekce), interakce přes whiteboardy (virtuální tabule, na kterých vidí všichni účastníci cokoli, co se na tuto tabuli napíše nebo nakreslí) nebo živá konference, kde má student, kromě samotného sledování, možnost s lektorem komunikovat psaným textem, nebo mluveným slovem.
8.1.3
E-reading Proces e-learningu je procesem řízeným, znamená to, že se zde vyskytují osoby
(lektor, pedagog, školitel a jiní), které ho usměrňují, popřípadě řídí. Nejedná se tedy o distribuci elektronických studijních materiálů skrze informační sítě. Samotná tato distribuce bývá (tyto studijní materiály) často nazývaná e-reading a ten řízený není.5
8.2
Základní formy e-learningu6 Nejčastěji bývá e-learning rozdělován na online e-learning a offline e-learning.
Obrázek 1: Základní formy e-learningu Zdroj 1: E-learning (nejen) pro pedagogy, vlastní úprava
5
KOPECKÝ, K. E-learning (nejen) pro pedagogy. Olomouc: Hanex, 2006, s. 9–13.
6
Převzato z tamtéž.
▪ 13 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
8.2.1
Online e-learning Do této kategorie se řadí e-learning vycházející z definice užšího pojetí. Jsou to tedy
způsoby vzdělávání, které jsou závislé na počítačových sítích (intranet, Internet, mobilní sítě ad.). Studující má tedy volný přístup k potřebným studijním materiálům, jež se na síti nacházejí. Online e-learning lze dále rozdělit na dvě další podkategorie.
8.2.1.1
Synchronní
Je vyžadováno konstantní připojení a studující je schopen komunikovat s lektorem v reálném čase. Je tedy navázána souvislá virtuální komunikace. Ta může mít různou podobu v závislosti na použitém komunikačním kanálu. Mezi hlavní představitele této kategorie považujeme následující komunikační kanály a komunikátory.7 • Chat – jedná se o jednoho z nejznámějších představitelů synchronní komunikace v reálném čase. Zainteresované osoby spolu komunikují v textové podobě. V dnešní době se k chatování nejčastěji využívá facebook nebo specializované chatroomy.8 Unicorn College a její školní informační systém Unicorn Universe, který je základem pro e-learning v této instituci, nedisponuje přímou implementací chatu. Částečně ji ovšem nahrazuje možnost komunikace v komentačních bodech či nad stavem artefaktu. Z pohledu praktického využití bych ovšem tyto způsoby komunikace zařadil spíše do kategorie asynchronního elearningu (viz následující kapitola). • Audiokonference – dochází k přenosu hlasu v reálném čase mezi účastníky konference. Jednoduše si lze audiokonferenci představit jako telefonát několika lidí najednou, kdy každý slyší každého. Dochází k velice interaktivnímu přenosu informací. Veliké využití nalezneme u týmové práce či tzv. kolaborativního učení.9 Pro realizaci se často využívá telefonování přes Internet (VoIP), nebo jakýkoli jiný software, který disponuje možností uspořádání audiokonferencí. Mezi nejznámější zástupce patří Skype, ICQ, TeamSpeak a další. Informační systém Unicorn Universe tuto funkčnost pro studenty Unicorn College nenabízí. •
Videokonference – její základ tvoří přenos videa mezi účastníky konference.
Součástí je audiokonference, neboť v drtivé většině případů v oblasti vzdělávání nemá video 7
U každého příkladu bude vysvětlen jeho princip a poté bude popsáno několik způsobů, jak této komunikace využívat, spolu s příklady programů, které se realizací této oblasti zabývaji. Nakonec bude popsán způsob, jakým má popřípadě nemá tuto oblast pokryta Unicorn College.
8
Specializovaná webová stránka nabízející chatování nad různými tématy nebo kategoriemi. Je zde možné vytvořit vlastní chatroom jen pro zvané hosty, který může posložit například pro komunikaci lektora s vybranými studenty.
9
Metoda vzdělávání, ve které jsou studenti rozděleni do vícečlenných týmů. Díky společné spolupráci a interakci ve skupině získává student požadované vědomosti nebo zkušenosti.
▪ 14 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
bez audia smysl. Prvek obrazu slouží pro rychlejší a hlubší vtáhnutí do děje či situace. Student má pocit, že se něčeho opravdu účastní. Videokonference má využití jak u přenosů z lekcí nebo přednášek, tak jako podpora kolaborativního studia. Pro realizaci lze vyžít softwarové nástroje jako Skype, ICQ, TeamViewer, Microsoft NetMeeting, Microsoft Office Live Meeting a další. Unicorn Universe tuto funkčnost aktuálně nenabízí. Unicorn College ovšem plánuje do budoucna něco takového zařadit do svého portfolia. • Whiteboard – tento pojem se požívá jako označení virtuální tabule, na kterou mohou všichni zúčastněni v reálném čase kreslit, psát nebo vkládat jiný obsah a jejich výstupy jsou okamžitě viditelné a dostupné pro všechny ostatní. Tuto funkčnost nabízí například Microsoft NetMeeting nebo Microsoft Office Live Meeting. • Sdílení aplikace nebo obrazovky – další způsob synchronního e-learningu využívaný v případech, kdy lektor názorně demonstruje nějakou funkčnost, nebo například v programování implementuje v reálném čase aplikaci spolu se studenty, kteří vidí přesně to samé, co lektor. Tuto funkčnost stejně jako předešlý whiteboard nabízí Microsoft NetMeeting, Microsoft Office Live Meeting, TeamViewer a další. • Instant messaging – funkce velice podobná chatu s rozdílem nutnosti instalace klientské aplikace (messenger) do počítače. Druhou diferenciací je možnost využití i u asynchronního e-learningu, kdy je odeslána zpráva doručena příjemci ihned po jeho připojení k Internetu resp. messengeru. Mezi nejpoužívanější aplikace patří ICQ, Trillian, Miranda nebo Jabber. V systému Unicorn Universe lze využít komunikaci v komentačních bodech, zasílaní zpráv nebo komunikaci nad artefakty. Platí zde ovšem stejné omezení jako v případě chatu.
8.2.1.2
Asynchronní
Tento typ e-learningu je typický pro diskusní fóra. Účastníci komunikace spolu nekomunikují v reálném čase. Komunikace probíhá spíše formou odesílání zpráv popř.e-mailů.10
10 KOPECKÝ, K. E-learning (nejen) pro pedagogy. Olomouc: Hanex, 2006, s. 13.
▪ 15 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
8.2.2
Offline e-learning U tohoto způsobu vzdělávání není nutností nebo podmínkou připojení k síti či In-
ternetu. Offline e-learning svým pokrytím zasahuje do definice v širším slova smyslu. Studijní materiály jsou obsaženy na paměťových discích (CD-ROM, DVD, Flash disc, externí HDD ad.). Tento způsob bývá hojně využíván pro domácí samostudium a přípravu. Patří zde široká škála výukových programů, které bývají často dodávány spolu se zakoupenými knihami, a jsou určeny nejen k efektivnějšímu vstřebání informací, ale často také k otestování nově nabytých znalostí.11
8.3
Vývoj e-learningu Podle využití ICT technologií lze obecně rozdělit e-learning do několika úrovní, které
se postupně v čase vyvíjely a nadále rozvíjely.
Obrázek 2: Úrovně e-learningu Zdroj 2: E-learning (nejen) pro pedagogy, vlastní úprava
11 KOPECKÝ, K. E-learning (nejen) pro pedagogy. Olomouc: Hanex, 2006, s.13.
▪ 16 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
8.3.1
Počítačem podporované vzdělávání (1990 – 1999) Tato úroveň e-learningu je spojena s offline e-learningem. Není tedy zapotřebí počí-
tačové sítě nebo připojení k internetu. Řadí se zde především vzdělávací programy, studijní materiály nebo kurzy, které byly distribuovány na optických discích či jiných přenosných médiích. Nevýhodou CBT je téměř nemožná aktualizace distribuovaného obsahu. Informace nebylo možné aktualizovat po síti ani z Internetu a jedinou možností bylo distribuovat novou (aktualizovanou) verzi programu na přenosných médiích. V dnešní době je využíván většinou jen pro domácí vzdělávání s využitím speciálních offline vzdělávacích programů.12
8.3.2
Vzdělávání pomocí webových technologií (1997 – 1999) Jedná se o jednu z prvních forem elektronického vzdělávání využívající online připo-
jení k Internetu. Vzdělávací materiály, programy nebo kurzy jsou distribuovány přes síť a přístup k nim má tedy každý student s připojením k intranetu či Internetu s patřičným oprávněním. Zde již řadíme jak synchronní, tak asynchronní verzi elektronického vzdělávání. Nejvýraznějším benefitem WBT je okamžitá aktualizace obsahu. Odpadá nutnost složité, časově náročné a nákladné redistribuce. Na druhou stranu má WBT i jednu velkou nevýhodu a tou je absence jednotné standardizace a administračních nástrojů.13 Vlivem zpřístupnění informací široké škále potencionální konzumentů, začal narůstat i tlak na rozvoj a vývoj propracovanější administrace WBT. Začala tedy přicházet doba řízeného vzdělávání.
8.3.3
Systémy řízeného elektronického vzdělávání (1999 – 2005) Pojmem řízené, je myšleno ze strany Informačního Systému (IS) nebo programu.
LMS je tedy IS nebo jiný program, který je nasazen na serveru a poskytuje podporu výuky. Tyto nástroje by měly poskytovat rozhraní pro tvorbu, aktualizací a administraci studijních materiálů nebo kurzů v online prostředí daného IS. Dalšími vlastnostmi by měla být podpora pro synchronní a asynchronní komunikaci mezi studujícími, lektory a školou. Také zde jsou nástroje pro hodnocení studentů a jejich studijních výsledků. Výraznou odlišností od WBT, kromě možnosti propracované administrace, je podpora zavedeným LMS standardů. Je tedy možné exportovat data z jednoho systému a importovat je do jiného.14
12 VOŽENÍLEK, V. a kol. Klimatická změna v e-learningové výuce. Olomouc, 2010, s. 34. 13 KOPECKÝ, K. E-learning (nejen) pro pedagogy. Olomouc: Hanex, 2006, s. 23–24. 14 VOŽENÍLEK, V. a kol. Klimatická změna v e-learningové výuce. Olomouc, 2010, s. 34.
▪ 17 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Neposlední důležitou vlastností LMS je možnost verifikace studentů (testování jejích znalostí), které může být realizováno například pomocí SelfTestů.
8.3.4
Learning Content Management system Jedná se o nástroje (systémy), které slouží k tvorbě a sestavování studijního obsahu
na té nejnižší úrovni a libovolně obsah kombinují. Lze tedy sestavit svůj vlastní kurz, popřípadě textový podklad k přednášce, pomocí kombinace několika již existujících obsahů. Převládá zde myšlenka, že ne všechny části kurzu jsou stejně důležité nebo zajímavé pro všechny studenty. Zvlášť pokud navštěvují stejný kurz studenti různého zaměření. Je tedy možné vytvářet individuální plány a kurzy. Samozřejmě LCMS obsahují také stejné funkčnosti jako LMS, nejsou tedy jejich úzkou specializací, ale spíše nadstavbou.15
15 KOPECKÝ, K. E-learning (nejen) pro pedagogy. Olomouc: Hanex, 2006, s. 27–29.
▪ 18 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
8.4
Výhody a nevýhody e-learningu 16
Obrázek 3: Výhody a nevýhody e-learningu Zdroj 3: Klimatická změna v e-learningové výuce, vlastní úprava
8.5
E-learning na Unicorn College Nyní se podívejme, jakým způsobem realizuje elektronické vzdělávání UCL. Jaký
Informační sytém používá pro podporu vzdělávání, a které druhy e-learningu zaštiťuje.
8.5.1
Unicorn Universe jako LMS (LCMS) Informační systém Unicorn Universe není specializovaný LMS ani LCMS. Jeho vyu-
žití je mnohem širší, ale obsahuje spoustu funkčností, které z něho vytváří dostatečně schopný systém pro řízení elektronického vzdělávání na Unicorn College. Nedostatek má v absenci funkčností pro podporu synchronního e-learningu. Unicorn College ovšem plánuje
16 VOŽENÍLEK, V. a kol. Klimatická změna v e-learningové výuce. Olomouc, 2010, s. 37–38.
▪ 19 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
do budoucna tento nedostatek odstranit. Dále budou stručně popsány vlastnosti, které Unicorn Universe z pohledu e-learningu nabízí.
8.5.1.1
Studijní materiály online
Škola může publikovat přednášky pro studenty online a umožnit jim tak jednodušší přípravu na zkoušky, testy, nebo mohou posloužit v případě studentovy nepřítomnosti na hodině. Výhodou tohoto řešení je veliká úspora času ze strany studenta. Nemusí trávit spoustu času výpisky nebo vypracováváním svých vlastních materiálů. Student díky tomu získá čas, který může věnovat důkladnějšímu studiu nebo seberealizaci. Navíc lze díky tomu získat přehled o přednášce či hodině ještě před jejím samotným začátkem. Student si může dané materiály dopředu nastudovat a svou účast na přednášce nebo hodině využít nejen k poslechu, ale také k následné diskuzi či vysvětlení oblastí, které mu nejsou plně srozumitelné. Tyto materiály lze jednoduše v systému vytvářet, aktualizovat a spravovat. Díky citacím je také velice jednoduché vytvářet vlastní kurzy na míru jako u LCMS.
8.5.1.2
Delegování úkolů a schůzek a komunikace
V systému je možné studentům posílat zprávy, úkoly nebo si domlouvat schůzky. Celý proces docházení na přednášky a semináře, odevzdávání úkolů a komunikace s lektory či studijním oddělením, je tedy plně elektronicky řízen. Student má v systému svůj kalendář, kde vidí všechny nadelegované hodiny, kurzy, schůzky či aktivity. Všechny novinky, které na škole probíhají, a o kterých by měli studenti vědět, jsou publikovány na portále novinek, tím je zaručena aktuální informovanost.
8.5.1.3
Kolaborativní spolupráce na projektech
Pokud studenti pracují na zadaných projektech v týmech, řídí ho přímo v systému, kde si vytvoří projektový portál a postupně vytvářejí výstupní obsah. Díky řízení projektu v systému je zaručena dostupnost aktuálních a stejných dat pro všechny členy týmu. Ti mohou navíc pro komunikaci využít zasílaní zpráv nebo si přímo delegovat úkoly, na kterých budou pracovat.
▪ 20 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
8.5.1.4
Audio a videopodcasty
Téměř každý předmět, který je na škole vyučován, má na svém portále předmětu v Unicorn Universe odkazy na stažení audio a video záznamů z přednášek. Ty jsou vhodné obzvláště pro samostudium a také jako doplnění a oživení k e-learningu. Po nahrání těchto záznamů do telefonu se může student vzdělávat kdekoli.
8.5.1.5
SelfTesty
Aktuálně vyvíjeným projektem na Unicorn College a zároveň předmětem této práce je systém na testování znalosti (SelfTest systém). Ten umožňuje jednoduchý a rychlý způsob ověření znalostí tím, že studentovi zobrazí test složený z několika vybraných otázek a student poté vybírá dle svého nejlepšího uvážení správné odpovědi. Nakonec se dozví výsledek. Výhodou je rychlé zmapování znalostní situace. Student poté ví, kde má mezery, a které části přednášek by si měl ještě dostudovat nebo zopakovat.
▪ 21 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.
ANALÝZA A NÁVRH SELFTEST SYSTÉMU V této praktické části se zaměříme SelfTest systém. Podíváme se, jakým způsobem
tento systém ovlivní dosavadní procesy UCL a jaký bude mít přínos.
9.1
Popis společnosti Unicorn College s.r.o. sídlí v Praze. „Je velmi dobře materiálně vybavenou soukro-
mou vysokou školou, která deklaruje těžiště svého vzdělávání do oblasti profesního bakaláře. Značný důraz klade na propojení vzdělávací a tvůrčí činnosti s praxí (výraznou podporu má v tomto ohledu ve firmě Unicorn). UCL dbá na transparentnost procesů, včetně procesu přijímacího řízení (tj. na jasné dodržování nároku na kvalitu). Na velmi dobré úrovni je systém elektronických opor studia, což umocňuje transparentnost celého vzdělávacího procesu. Tyto skutečnosti považuje sama vysoká škola za své silné stránky spolu se zdůrazněním, že absolventi školy zůstávají v oboru. UCL získala v roce 2006 státní souhlas k oprávnění působit jako soukromá vysoká škola a akreditaci pro vzdělávací činnost v následujících studijních programech a oborech: Bakalářský studijní program Ekonomika a management studijní obor Ekonomika a management Bakalářský studijní program Systémové inženýrství a informatika studijní obor Informační technologie studijní obor Management ICT projektů
Oba studijní programy jsou akreditovány pro uskutečňování v prezenční i kombinované formě.“ (Geršlová a kol., 2010).
▪ 22 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.2
Klíčové procesy Unicorn College Všechny procesy Unicorn College jsou spojeny se vzděláváním. Nemusí s ním sou-
viset přímo, ale svou podstatou umožňují jeho realizaci (proces akreditace nových oborů, Imatrikulace nových studentů, přijímací řízení a další). Mezi klíčové procesy patří především ty, které sehrávají důležitou roli v podpoře vzdělání. Následující obrázek zachycuje 4 hlavní procesy, jejich vazby, vstupy, výstupy a cíle.
▪ 23 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Obrázek 4: Klíčové procesy Unicorn College Zdroj 4: Vlastní ilustrace
▪ 24 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Žlutě zvýrazněný proces vzdělávání studentů, je pro nás z pohledu této práce naprosto klíčový. Navrhovaný SelfTest systém a SelfTest aplikace svou podstatou právě tento proces obohatí. Detailně se na tento proces zaměříme v následující podkapitole.
9.2.1
Proces výuky Jedná se o klíčový proces školy. Tento proces bude obohacen a rozšířen o navr-
hovaný SelfTest systém. Jak je z následujícího obrázku patrné, systém bude mít vliv na přípravu (samostudium) v období zkoušek a testů. Bude tedy umožňovat testování znalostního portfolia studenta.
Unicorn ES Powered University SelfTesty
Přednáška Přednáška Projekt Studenti
Nárust Know How
Proces výuky v průběhu semestru Zahájení výuky Seminář
Seminář Workshop
Přidaná hodnota
Příprava na zkoušky a testy
Lektoři
Uzavření semestru
Promoce
Absolvent s přidanou hodnotou
Obrázek 5: Proces - Výuka na UCL, vlastní ilustrace Zdroj 5: Vlastní ilustrace
▪ 25 ▪
Složení zkoušek
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.3
Záměr UCL chce svým studentů a partnerům nabídnout v rámci studijních materiálů, které
již má k dispozici v systému Unicorn Universe, také možnost otestovat znalosti v kontextu daných studijních materiálů. UCL chce disponovat uceleným vzdělávacím balíčkem, jehož součástí by měl být i způsob otestovat nabyté znalosti. Proto jsem si po konzultaci s vedoucím katedry IT, zvolil jako téma své bakalářské práce analýzu a design systému pro SelfTesty. Tento systém bude umožňovat studentům skládat SelfTesty (testy nanečisto) nebo ostré testy z vybraných studijních okruhů (přednášek, topiců). Lektorům systém nabídne, pomocí jednoduchého uživatelského rozhraní, sestavování testů dle vybraných studijních oblastí a kritérií. SelfTest systém doplní současné univerzitní vzdělávací materiály a dopomůže k vytvoření kompletního balíčku, jenž umožní studentům přednášky nejen přečíst nebo zhlédnout, ale následně také otestovat své znalosti, případně si samotný SelfTest sestavit. STS bude dostupný prostřednictvím webového rozhraní, ale UCL chce, aby byla jedna funkční část systému (vytváření a skládání SelfTestů) přístupná i přes nativní mobilní aplikaci. Tato aplikace bude schopná pracovat v offline i online režimu. STS bude integrován i s klíčovým firemním systémem Unicorn Universe (dále jen UU). UCL již základní verzi STS provozuje. V první fázi projektu, o které pojednává tato práce, chce UCL rozšířit dosavadní verzi o nové vlastnosti a funkčnosti, včetně podpory nativních mobilních aplikací. V rámci této etapy bude vytvořena prototypová mobilní aplikace pro platformu Windows Phone 7. Cílem je co nejefektivněji podpořit a zjednodušit způsob vzdělávání a přípravy na testy studentům UCL. Udržuje
Prohlížeč
Selftest system
Mobilní telefon
Mobilní aplikace
Uživatel
Obrázek 6: High level pohled na navrhované řešení Zdroj 6: Vlastní ilustrace
▪ 26 ▪
Synchronizace dat
Administrátor
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.4
Shrnutí problému UCL disponuje sofistikovaným e-learningovým systémem, který studentům nabízí
veškeré studijní předměty online. Chybí však možnost otestování znalostí a lektoři nemohou efektivně vytvářet testy tak, aby je studenti v systému rovnou mohli vypracovat.
Obrázek 7: Očekávané přínosy pro zákazníka Zdroj 7: Vlastní ilustrace
▪ 27 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.5
Definice projektu V této kapitole budou popsány cíle, které očekáváme, že tento projekt naplní. Dále
se stanoví, co vše bude tímto projektem řešeno (definuje se rozsah) a nakonec bude uveden seznam výstupů práce.
9.5.1
Cíle projektu
1. Zvýšení efektivity procesu vzdělávání na Unicorn College. 2. Zvýšení atraktivity vzdělávání. 3. Finanční přínos pro školu. 4. Vytvoření kompletního vzdělávacího balíčku (audio a video přednášky, textové podklady a SelfTesty).
9.5.2
Rozsah Realizování projektu (nasazení nové verze SelfTest systému) ovlivní všechny lektory
na Unicorn College, včetně vedení. Bude nutné provést školení, kde bude demonstrován způsob požívání a administrace systému. Spolu se s ním bude předán všem zúčastněným krátký uživatelský manuál. Školení pro studenty nebude nutné. Uživatelské rozhraní je velice jednoduché a intuitivní. Hlavními požadavky, z pohledu systému, jsou schopnost vytvářet, generovat, řešit a vyhodnocovat SelfTesty. S tím úzce souvisí nutnost rozhraní, které umožní lektorů plnit systém daty (otázkami), z kterých budou SelfTesty generovány. Z pohledu nativní mobilní aplikace jsou klíčovými požadavky generování a vyhodnocení SelfTestů, aktualizace a synchronizace se systémem. Mobilní aplikace je určená především pro studenty, proto zde není implementováno rozhraní pro administraci ze strany lektorů. Veliký důraz je kladen na spolupráci se systémem, ze kterého bude aplikace získávat data. Nasazení STS do produkčního prostředí neovlivní, z pohledu studenta, dosavadní zavedené procesy. Dojde pouze k jejich doplnění. V rámci procesu vzdělávání budou mít studenti navíc možnost využít funkčností tohoto systému k přípravě na testy či zkoušky.
▪ 28 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
K výraznějšímu ovlivnění dojde ze strany lektora. Ten bude muset (na popud vedení školy) plnit systém daty, což zabere jeho čas. SelfTest systém je významný benefit, který může ovlivnit potenciální zájemce o studium na škole. Pomocí reportů, které systém nabízí, bude mít vedení možnost porovnat úspěšnost studentů, jež systém využívali jako přípravu na testy, se studenty, kteří systém nevyužili. Pokud budou úspěšnější studenti využívající systém, lze jej za určitých podmínek (předešlé výsledky studenty, počet studentů) prohlásit jako faktor, který prokazatelně přispívá ke zvýšení vědomostí. Nejvyšší prioritou je bezproblémová spolupráce mezi systémem a všemi doplňujícími aplikacemi, které s ním budou komunikovat a spolupracovat. Poté bude tento systém (benefit) prezentován zájemcům o studium. Pokud nasazení proběhne hladce a studenti systém přijmou, dojde k zefektivnění výuky a přípravy na testy čí zkoušky. Unicorn College bude disponovat kompletním vzdělávacím systémem a dojde k upevnění jejího postavení jak na poli soukromých, tak veřejných vysokých škol.
9.5.3
Výstupy projektu
Název
Popis
SelfTest mobilní aplikace
Nativní mobilní aplikace, která umožňuje studentům a partnerům školy testovat a ověřovat jejich znalosti ve vybraných oblastech. Na rozdíl od systému nenabízí administrační rozhraní pro lektory. Aplikace je na systému závislá, protože zde dochází k synchronizaci dat.
Analýza a design Dokument zachycuje dosavadní funkčnosti a schopnosti systému rozšíření SelfTest a detailně analyzuje a popisuje navrhovaná rozšíření. systému Technický projekt
Dokument kompletně popisující navrhovaný systém ve všech úrovních abstrakce. Popisuje jak SelfTest systém, tak mobilní aplikaci.
Dokumentace
Dokumentace k projektu, která bude složit jako specifikace popisující kompletně celý IS.
Zdrojové kódy
Veškeré zdrojové kódy včetně knihoven, které jsou nutné pro nasazení do produkčního prostředí.
Tabulka 1: Výstupy projektu
▪ 29 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.6
Identifikace požadavků Požadavky na software se standardně dělí do dvou kategorií – funkční a nefunkční.
Mezi funkční se řadí především ty požadavky, které kladou nároky na funkce software. Nefunkční požadavky se naopak zaměřují na výkonnost, podporu, bezpečnost, grafické rozhraní a další aspekty.
9.6.1
Funkční požadavky Funkční požadavky jsou rozděleny do dvou kategorií. První jsou požadavky na celý
systém a druhou kategorií jsou požadavky na nativní mobilní aplikaci, která je také součásti zadání.
Absolvování cvičných testů Student si vybere oblast (předmět, topicy), ze které si chce nechat vygene-
rovat test, počet otázek a test se automaticky vygeneruje. Po zodpovězení všech otázek se test vyhodnotí a ihned informuje studenta o dosaženém výsledku. Evidence historie Všechny absolvované testy se ukládají na daný studentský účet, kde je
možno shlédnout historii všech dosažených výsledků. Reporty pro univerzitu Statistické údaje, jako počet absolvovaných testů na předmět, úspěšnost
studentů, nejaktivnější studenti atp., by měly být v podobě přehledných reportů dostupné pro vedení školy. Evidence testových otázek Univerzitní lektoři vytvářejí testovací otázky v externích souborech, které
mají předem danou strukturu. Tyto dokumenty jsou nahrány do systému a dále zpracovávány. Otázky mohou být vytvářeny přímo v prostředí systému. Úprava nebo mazání otázek je možné pouze v systému.
▪ 30 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Vytvoření SelfTestu SelfTest muže být vytvořen dvěma způsoby: Vytvoření vlastního testu – Lektor sám vybere, které otázky v tes-
tu chce. Každá otázka má definovanou bodovou hodnotu. Výsledkem je na míru vytvořený SelfTest. Vytvoření testu podle šablony – Tento způsob je jednodušší. Lek-
tor vybere oblasti, ze kterých chce test vygenerovat a počet otázek. Systém poté sám SelfTest vygeneruje. U tohoto způsobu ztrácí lektor kontrolu nad vybranými otázkami. Nově vytvořený SelfTest je na své vlastní webové adrese, na kterou je
možné jednoduše odkázat hypertextovým odkazem například v UU. Absolvování ostrých testů v systému Lektor sestaví test a ten uloží v systému. Studenti se v den konání testu
(přednáška, test, zkouška) přihlásí do systému a otevřou si připravený test. Během časem vymezené doby, studenti odpoví na všechny otázky a odešlou test k vyhodnocení. Obratem zjistí, jakého dosáhli výsledku. Výsledek se uloží a bude k dispozici lektorům. Automatické generování SelfTestů SelfTest se sám rychle a jednoduše vygeneruje a poté i vyhodnotí. Vše pro-
bíhá automatizovaně a uživatelé systému mohou věnovat svůj čas a pozornost pouze na absolvování testů. Navíc systém šetří čas i lektorům, kteří si mohou nechat test rychle vygenerovat a poté ho jen vytisknou, nebo jej dají studentům napsat přímo na počítači a nemusí se starat ani o vyhodnocování. Administrace uživatelských účtů Vlastník účtu bude mít možnost měnit své údaje. Administrátor bude moci
kompletně spravovat (CRUD) všechny uživatelské účty. Administrace SelfTestů Lektor bude moci vyhledávat, editovat či mazat jím vytvořené SelfTesty.
▪ 31 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Načtení (vytvoření) SelfTestu z externího souboru Lektor bude mít možnost vytvořit test např. v excelu, kde vyplní data do při-
pravené šablony, a tento soubor se poté nahraje do systému, který ho následně zpracuje a vygeneruje SelfTest, nebo jen uloží nové otázky do databáze.
Mobilní aplikace bude obsahovat, oproti systému, pouze některé funkčnosti. Je zbytečné umožňovat v mobilní aplikaci například vytvářet testovací otázky. Mobilní platforma není vhodná pro psaní rozsáhlejších textů, proto bude tato aplikace podporovat jen následující oblasti:
Sestavování a absolvování SelfTestů Student si vybere předmět a topicy (témata), ze kterých chce test vygene-
rovat a aplikace ho sestaví. Uživatel poté vybere správné odpovědi (dle svého uvážení), následuje vyhodnocení a uložení SelfTestu do historie. Prohlížení historie Aplikace obsahuje historii vyřešených SelfTestů. Ty je možné prohlížet.
Ukládá se kompletní SelfTest, ne jen údaje o počtu dosažených bodů. Lze tedy vidět všechny otázky a odpovědi. Synchronizace Při prvním spuštění aplikace, dojde k navázání komunikace se systémem
a stažení vybraných předmětů, spolu s jejich topicy a otázkami. Aplikace má poté svou vlastní databázi testovacích otázek, ze kterých je
možno generovat SelfTesty. Díky tomu je možné aplikaci plně využívat i v režimu offline. Uživatel má možnost si dodatečně stáhnout další data (otázky) nebo aktua-
lizovat stávající.
▪ 32 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.6.2
Nefunkční požadavky
Dostupnost prostřednictvím internetu Systém bude dostupný pomocí internetu a běžně používaného webového
prohlížeče.
Dostupnost 24x7 Systém bude dostupný 24x7 (přesná hodnota bude specifikována v SLA),
případné odstávky systému budou předem oznámeny a budou prováděny v době, kdy bude systém vytížen nejméně. Systém by měl být dostupný po celý den, ovšem předpokládá se, že na začátku semestru bude systém celkově vytížen mnohem méně než v polovině a ke konci semestru, kdy se píšou testy. Větší vytížení se očekává i v průběhu noci před zkouškami a testy. Zvláště v zápočtových týdnech a v průběhu zkouškového období, musí být systém dostupný.
Integrace s mobilními zařízeními Systém bude mít multiplatformní komunikační API, díky kterému nebude
problém vytvářet nové nativní aplikace, které budou se systémem komunikovat a umožňovat tak provádět SelfTesty na různých koncových zařízeních.
Snadná rozšiřitelnost a škálovatelnost Systém bude připraven na růst testovaných studijních oblasti a počet
uživatelů. Systém musí být připraven na podporu (komunikační API) pro více než
jednoho mobilního zařízení. Do budoucna se plánuje vývoj nativních aplikací pro ostatní mobilní
platformy.
Reportován pro vedení Vedení školy bude mít k dispozici informace o výsledcích a úspěšnosti
studentů.
▪ 33 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Jazyková mutace Mobilní aplikace bude dostupná ve třech jazykových mutacích (CZ, EN, SK),
především kvůli zahraničním studentům studujících v anglickém jazyce. SelfTesty budou přístupné jak českým a slovenským studentům, tak studentům studujících v anglickém jazyce.
Dostatečný výkon Systém by měl bez problému generovat a vyhodnocovat testy pro všechny
studenty. Především musí zvládnout větší vytížení ve výše zmíněných termínech.
Zabezpečený „role based“ přístup Pro přístup do systému bude nutné přihlášení, každý uživatel bude obsazen
v definované roli (viz. Aktéři v kapitole o UC).
9.7
High Level pohled na architekturu Následující obrázek zachycuje základní pohled na architekturu SelfTest systému
a SelfTest aplikace. Je zde znázorněna vnitřní struktura komponent, vrstvy, ze kterých se systém a aplikace skládají a základní koncept komunikace mezi těmito systémy.
▪ 34 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Seftest systém Prezentační vrstva
Browser
GUI
Business vrstva
Vytváření testů
Správa testů
Databázový Controller
Komunikační Reportovací Controller Controller
Controller Uživ. účtu
Integrační vrstva
Datová vrstva Uživatel Databáze Databáze testových otázek uživatelů
Webové služby
Synchronizace dat
Mobilní aplikace Integrační vrstva
Prezentační vrstva
Smartphone
Webové služby
GUI
Business vrstva
Správa testů
Datová vrstva
Controller Komunikační Databázový uživatelského Controller Controller účtu
Obrázek 8: Přehled architektury Zdroj 8: Vlastní ilustrace
▪ 35 ▪
Databáze testových otázek
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.7.1
Popis Podle aktuálně nasazené verze bude systém postaven na frameworku Ruby on
Rails, jako databáze bude využita mySQL. Mobilní aplikace bude vyvinuta pro platformu Windows Phone 7, která je postavena na technologii Silverlight ve verzi 3, jež je speciálně upravena právě pro WP7. Data budou v mobilní aplikaci ukládaná ve formátu XML, stejný formát budou mít i data, která si mezi sebou systém a aplikace budou zasílat. Pro práci s XML daty na straně aplikace bude využito rozšíření Linq to XML, které poskytuje .NET Framework.17 Webová služba sloužící pro komunikaci s mobilní aplikací bude nasazena na stejném serveru jako samotný systém. Bližší detaily ohledně navržené architektury naleznete v technickém projektu, který je na v příloze na CD.
17 Detailní popis komunikace a práce s daty na straně aplikace je popsán v kapitole 10.
▪ 36 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
9.8
Klíčové funkčnosti V této kapitole budou představeny klíčové Use Cases 18, které jsou, nebo budou
v systému obsaženy. Následující obrázek je Use Case diagram komponenty Správa testů. Jedná se pouze o jednu z několika komponent. Zbylé diagramy a detailní popis všech UC naleznete v technickém projektu, který je součástí přílohy této práce.
<< inc l ud e> >
Vytvoř vlastní test clud << in
Uživatel
Admin
e >>
Vygeneruj test
Vytvoř test podle šablony
Lektor
Importuj data
Vygeneruj odkaz
Unicorn Universe
Zobraz test z odkazu
Uživatel
ude >> << incl << i nclu d
Udělej test
Vyhodnoť test e >>
Aktualizuj historii Student
Partner
Obrázek 9: Use Case diagram - Komponenta Správa testů Zdroj 9: Vlastní ilustrace
18 Use Case (dále UC) slouží k popsání sady akcí spouštěných systémem, které vedou k očekávaným výsledkům. Tyto výsledky vyžaduje příslušný Actor nebo zainteresovaná osoba, UC popisuje, co systém má dělat, nikoliv jak se to má dělat. Zachycuje konkrétní funkčnost či chování v systému, včetně všech možných variant. Popisuje chování systému, komponenty, podsystému či třídy a to bez ohledu na jeho vnitřní strukturu. UC se obvykle označuje elipsou a jménem.
▪ 37 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
V tabulce níže jsou stručně popsány Use Cases, které jsou zachyceny na obrázku 9. Detailní popis všech UC naleznete v příloze.
Kód
Název
Popis
UC01
Vytvoř vlastní test
Lektor vytvoří test způsobem, při kterém sám vybírá otázky, které budou obsažené v testu. Nejdříve se určí oblast, ze které bude test vytvořen. Poté systém zobrazí všechny otázky obsažené v této oblasti. Lektor vybírá z otázek, které mu systém nabízí. Každé otázce se přiřadí bodová hodnota.
UC02
Jednodušší verze předešlého UC. lektor vybere pouze oblast, ze které bude test sestaven, počet otázek, Vytvoř test podle šablony počet bodových hodnot otázek a celkový počet bodů testu.
UC03
Vygeneruj test
Vygenerování samotného testu podle parametrů zadaných uživatelem. Výsledkem je sestavený testový formulář. U každé otázky je možné zaškrtnout správnou odpověď.
UC04
Vygeneruj odkaz
Systém vygeneruje hypertextový odkaz, skrze který se můžou studenti, například z UU, jednoduše a rychle dostat na SelfTest.
UC05
Zobraz test z odkazu
Po kliknutí na hypertextový odkaz je student přesměrován na webovou adresu, na které se zobrazí připravený SelfTest.
UC06
Udělej test
Zobrazí vygenerovaný testový formulář. Vybrání správných odpovědí na otázky v testovém formuláři.
Vyhodnoť test
Systém zpracuje vyplněný testový formulář. Dojde ke kontrole všech zvolených možností podle správných odpovědí. Následně se vypočítá počet dosažených bodů. Uživateli se zobrazí opravený formulář, na kterém jsou navolené odpovědi spolu se správnými odpověďmi na všechny otázky. Nechybí bodové ohodnocení.
Importuj data
Proces načtení a zpracování otázek a odpovědí z externího souboru. Načtená data jsou převedena a uložena do systémové databáze k dalšímu používání.
UC07
UC08
Tabulka 2: Stručný popis UC, komponenty Správa testů
▪ 38 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
10.
IMPLEMENTACE SELFTEST APLIKACE V této kapitole se bude popsán na způsob, jakým byly výše zmíněné funkce imple-
mentovány v SelfTest aplikaci. Nebudou chybět ukázky uživatelského rozhraní a vybraných kusů zdrojového kódu (všechny zdrojové kódy včetně aplikace jsou v příloze na CD). Nejprve se ale blíže podívejme na platformu Windows Phone 7.
10.1
Windows Phone 7 Windows Phone 7 je nově nastupující mobilní platformou do společnosti Microsoft.
Její předchůdce Windows Mobile již přestal stačit konkurenčním mobilním platformám, které přinášely propracované grafické rozhraní, jednoduché a velmi moderní uživatelské rozhraní a možnost jednoduchého ovládání pouze prsty. Společnost HTC sice nad Windows Mobile stavěla svou vlastní grafickou nadstavbu (jak tomu ostatně dělá dodnes například nad Androidem), ale ani to tomuto systému nepomohlo od úpadku. Microsoft musel začít hledat cestu, jak se udržet na poli mobilních operačních systémů. Padlo rozhodnutí o vývoji úplně nové mobilní platformy, ne pouhé další verze Windows Mobile, nebo její nadstavby či upgrade, ale úplně nového mobilního operačního systému. To je také jedním z důvodů nekompatibility aplikací, které byly vyvinuty pro Windows Mobile 6.5. V roce 2008 došlo k reorganizaci týmu, který se zabýval vývojem Windows Mobile, a začal vývoj Windows Phone 7 (dále jen WP7). Vývoj probíhal rychle a v únoru 2010 byl odhalen. K jeho vydání došlo 21. října 2010 v Evropě a o měsíc později v Severní Americe. Hlavní historické body shrnuje obrázek 10.
Zdroj 10: en.wikipedia.org, Převzato
Obrázek 10: Historie Windows Phone 7
▪ 39 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
10.1.1
Platformy pro vývoj aplikací
Pro WP7 nebyl vyvinut žádný nový nebo speciální programovací jazyk či Fra19
mework . Microsoft pouze přizpůsobil již existující. K vývoji aplikací můžete použít programovací jazyk C#, nebo Visual Basic, které zaštiťuje .NET Framework 20. Navrch se platforma WP7 skládá z dvou hlavních Frameworků: Silverlight a XNA. Silverlight se používá převážně k vývoji business aplikací a jednoduchých 2D transformací. K vývoji her a složitějších 3D transformací a vizualizací se naopak využívá XNA.21 Silverlight používá XAML22 a návrháři mají poměrně volnou ruku při výběru nástroje, ve kterém budou uživatelské rozhraní navrhovat. Ukázku jednoduchého XAML kódu zachycuje následující obrázek.
19 Softwarová struktura, která slouží jako podpora při programování, vývoji a organizaci jiných softwarových projektů. Může obsahovat podpůrné programy, knihovny, API, návrhové vzory nebo doporučené postupy při vývoji. 20 Framework vyvíjený Microsoftem, společný pro většinu jejich vývojových platforem. 21 LEE, H., CHUVYROV, E. Beginning Windows Phone 7 Development. New York: Apress, 2010, s. 7. 22 XAML (Extensible Application Markup Language), deklarativní značkovací jazyk pro vytváření grafického uživatelského rozhraní.
▪ 40 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
10.1.2
Vnitřní struktura WP7
Struktura projektu, který je vyvíjen pro WP7, se skládá z XAML souborů, jež vytvářejí uživatelské rozhraní a grafiku. „Code behind“ souborů, které daným XAML souborům definují obsluhu událostí a logické chování. Každý XAML soubor má jeden „code behind“. Složitější funkce a algoritmy je vhodné implementovat v separátních třídách nebo knihovnách. Při kompilaci projektu dojde k vytvoření .xap souboru, který je ve finále nahráván na cílového zařízení, kde bude aplikace spuštěna. Je to tedy obdoba klasického .exe souboru ve Windows.
10.1.3
Persistence dat ve WP7
Data, která aplikace využívá, mohou být uložena na několika místech. První možností je lokálně, jako součást .xap souboru, to v případě, že existují data již při kompilaci a poté jsou přístupná pouze v režimu pro čtení. Pokud budou data získávána až za běhu aplikace, tak druhou možností je ukládání do izolovaného úložiště (Isolated Storage). Třetím způssobem je persistence do cloudové databáze přes webové služby. Izolované úložiště není fyzicky ve spouštěcím souboru aplikace. Tento prostor je udělován a spravován systémem. Můžeme tedy jednoduše říci, že se jedná o externí databázi aplikace v zařízení. Pojem databáze ovšem není příliš vhodný, neboť WP7 nenabízí podporu pro žádnou databázi v pravém slova smyslu. Na rozdíl od Windows Mobile, kde mohli využívat vývojáři SQL Server Compact, ve Windows Phone 7 tato podpora chybí. Pro ukládání dat lze tedy využít pouze XML, JSON, textové nebo binární soubory. V izolovaném úložišti jsou ukládány dva druhy dat. Lokální nastavení (Local Settings) a uživatelské datové soubory. Lokální nastavení je soubor, do kterého jsou ukládány informace ve tvaru klíč – hodnota. Vývojáři mohou v tomto úložišti také vytvářet složky a složkové struktury, které slouží pro větší přehlednost při ukládání dat. Přehled možností persistence dat a logickou organizaci izolovaného úložiště zachycuje následující obrázek. Zdroje, které má aplikace k dispozici, jsou samozřejmě omezené. Proto by měla být v paměti zařízení ukládána jen ta nejdůležitější data. Pokud bude mít telefon k dispozici 10% a méně volné paměti, obdrží uživatel zprávu o nedostatku paměti pro aplikaci a ta může být i okamžitě ukončena.23
23 ZHU, X. dotnetslackers.com [online]. 8.3.2011 [cit. 2011-03-20]. Windows Phone 7 Silverlight Programming – Isolated Storage. URL:
▪ 41 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Obrázek 11: Možnosti persistence dat ve WP7 Zdroj 11: http://dotnetslackers.com/articles/silverlight/Windows-Phone7-Silverlight-Programming-Isolated-Storage.aspx, Upravená ilustrace
▪ 42 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
10.2
Implementované funkčnosti Mobilní aplikace disponuje pouze funkčnostmi, které využije student. Není zde
implementováno žádné rozhraní pro administraci či editaci. Umožňuje tedy především testování znalostí SelfTesty, které si sám student na mobilním zařízení vygeneruje. Data, ze kterých se SelfTesty generují, jsou stažena ze systému. Uživatel má možnost si SelfTesty ukládat do historie a zpětně si je procházet.
Obrázek 12: Use Case diagram SelfTest Aplikace Zdroj 12: Technický projekt, Vlastní ilustrace
▪ 43 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Všechny stažené předměty se zobrazují v nabídce při vytváření SelfTestu. Pokud uživatel zapomněl nějaký předmět vybrat, nebo ho v danou chvíli nepotřeboval, může v nabídce Aktualizace v hlavním menu daný předmět nalézt a dodatečně stáhnout.
10.3
Persistence dat v SelfTest aplikaci Aplikace neukládá žádná data lokálně přímo do aplikace. Všechna data a nastavení
jsou uložena v izolovaném úložišti. Data se tedy přenáší mezi cloudovou databází (SelfTest systém database) a izolovaným úložištěm aplikace. Při prvním spuštění aplikace, dojde k navázání komunikace se SelfTest systémem a k následnému stažení seznamu dostupných předmětů. Uživateli se tento seznam zobrazí a vybere si ty předměty, o které v tu chvíli jeví zájem (nedochází tedy ke stažení všech). Poté se tyto předměty se všemi jejich otázkami stáhnou ze systému a uloží do zařízení. Všechna data jsou ukládaná ve formátu XML. K operacím nad nimi je využit Linq to XML. Data, která jsou přijímána aplikací, jsou již ze systému odesílána ve formátu XML. Systém sám podle přijatého požadavku sestaví požadovaný soubor a odešle ho SelfTest aplikaci, která ho poté uloží do svého izolovaného úložiště. Detailní struktura dat v aplikaci je zachycena na následujícím obrázku.
Obrázek 13: Izolované úložiště SelfTest Aplikace Zdroj 13: Vlastní ilustrace
▪ 44 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
10.4
Načtení dat při prvním spuštění Jedná se o jeden z klíčových procesů, který aplikace realizuje. Dochází k navázání
komunikace se SelfTest systémem a ukládání dat do aplikace. Stručně je tento proces zachycen na následujícím obrázku.
Obrázek 14: Proces prvního spuštění
▪ 45 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Při prvním spuštění aplikace dochází k ukládání defaultního nastavení do Local Settings. Přitom dojde i k identifikaci, že se jedná o první spuštění aplikace, a místo zobrazení hlavního menu, se zobrazí obrazovka prvního spuštění.
//Pokud se aplikace spouští poprvé, zobrazí se obrazovka Prvního //spuštění if (Settings.CheckFirstStart() == true) { //Uložení nastavení aplikace Settings.SetLocalSettings(); Uri nUri = new Uri("/FirstStart.xaml", UriKind.Relative); ((App)Application.Current).RootFrame.Navigate(nUri); }
Jako první se tedy objeví obrazovka FirstStart.xaml, na které je zobrazena informace o následujících krocích a tlačítko, jehož událost OnClick vyvolá odeslání požadavku na seznam předmětů. Uživatelské rozhraní obrazovky FirstStart.xaml ilustruje následující obrázek.
Obrázek 15: Uživatelské rozhraní obrazovky FirstStart.xaml
▪ 46 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Při procesech, které mohou trvat delší dobu, jako generování ST nebo právě stahování dat ze systému, je uživateli zobrazena obrazovka indikující načítání nebo zpracovávání dat. Této obrazovce říkáme BackGroundWorker (Loading...). Po kliknutí na tlačítko Stáhni předměty (Get subjects), se zobrazí BackGroundWorker a odešle požadavek skrze webovou službu na seznam dostupných předmětů (metoda GetListOfSubjects).
//Vyvolání webové služby a čekání na zpracování požadavku //Mezi tím je zobrazen Loading... void backroungWorker_DoWork(object sender, DoWorkEventArgs e) { //Asynchronní vyvolání metody webové služby na //seznam dostupných předmětů client.GetListOfSubjectsAsync(); // backroungWorker je zobrazen dokud, není ukončena tato metoda //Po 50ms intervalech kontrolujeme, zda došlo //ke stažení seznamu předmět (down = true) while (down == false) { Thread.Sleep(50); } }
Jakmile dojde ke stažení XML souboru se seznamem dostupných předmětů, je spuštěna událost GetListOfSubjectsCompleted. Ta vyvolá metodu, která zpracuje přijatý XML soubor. Poté nastaví příznak stažení na true (podle toho pozná BackGroundWorker, že došlo ke dokončení stahování a ukončí se) a nakonec dojde k přesměrování na následující obrazovku, kde již bude zobrazen seznam dostupných předmětů.
//Metoda je vyvolána pokud dojde k úspěšnému stažení dat ze systému void client_GetListOfSubjectsCompleted(object sender, ServiceReference.GetListOfSubjectsCompletedEventArgs e) { //Načtení předmětů z XML souboru Store.aktualniPredmety = XMLManager.LoadPredmety(XDocument.Parse(e.Result)); //Nastavení příznaku, že došlo ke stažení down = true; //Přesměrování na obrazovku s výběrem dostupných předmětů NavigationService.Navigate(new Uri("/FirstStartSubjects.xaml", UriKind.Relative)); }
▪ 47 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Metoda LoadPredmety třídy XMLManager zpracovává přijatý XML soubor a zpět vrací objektovou podobu seznamu dostupných předmětů. K práci se souborem je využito Linq to XML. Soubor se neukládá ihned do izolovaného úložiště, k uložení dojde až v příštím kroku, kde uživatel specifikuje, které předměty chce stáhnout. /// <summary> /// Na základě načteného XDocumentu z XML souboru vytvoří objektový List předmětů /// /// <param name="loaded">XML XDocument předmětů /// List objektů předmětu public static List LoadPredmety(XDocument loaded) { //Načtení listu předmětů z přijatého XDocumentu pomocí do Linq dotazu. //Načítá se vše co je v elementu "subject" výsledný dotaz je rovnou přetypován na generický list List result = (from c in loaded.Descendants(predmet) select new Predmet { Nazev = (string)c.Attribute(nazev), Topicy = (from b in loaded.Descendants(topic) where (string)b.Parent.Parent.Attribute(nazev) == (string)c.Attribute(nazev) select new Topic { Nazev = (string)b.Attribute(nazev) }).ToList() }).ToList(); return result; }
Je důležité, aby přijatý XML soubor měl definovanou strukturu, protože jinak by nebylo možné tento soubor zpracovat. Při dotazování nad souborem definujeme, kde hledáme (element nebo atribut). Soubor, který dodržuje definovanou strukturu a může být tedy odeslán k zpracování do aplikace, zachycuje následující ukázka. <subjects> <subject name="Bezpecnost a ochrana dat"> <subject name="Matematika 1">
▪ 48 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Po zpracování souboru a načtení seznamu předmětů dojde k přesměrování na obrazovku FirstStartSubjects.xaml, na které je zobrazen seznam dostupných předmětů ve formě ListBoxu, ze kterého je možné vybrat libovolný počet předmětů.
Uživatel si vybere předměty, o které má zájem a zmáčkne tlačítko Potvrdit (Submit), které
spustí
obslužnou
metodu
pro
událost
OnClick.
Dojde
opět
k
zobrazení
BackGroundWorkeru a k navázání komunikace s webovou službou. Volána je metoda GetSubject, která jako parametr přijímá název předmětu, pro který má aplikaci odeslat jeho XML soubor. Tato metoda je volána v cyklu, pro každý vybraný předmět zvlášť. Detailní popis chování po zmáčknutí tlačítka Potvrdit (Submit) zachycuje následující kód. //Vyvolání webové služby a čekání na zpracování požadavku //Mezi tím je zobrazen Loading... void backroungWorker_DoWork(object sender, DoWorkEventArgs e) { //Vytvoření nového prázdného listu předmětů List vybranePredmety = new List();
▪ 49 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
//Procházení seznamu vybraných předmětů foreach (var s in lstPredmety.SelectedItems) { //Do vybraných předmětů uložíme ty, které si uživatel vybral. vybranePredmety.Add(Store.aktualniPredmety.First (a => s.ToString() == a.Nazev)); //Pro každý předmět komunikujeme s webovou službou, //která zpětně odešle XML soubor pro požadovaný předmět client.GetSubjectAsync(s.ToString()); } //Do listu aktuálních předmětů uložíme vybrané Store.aktualniPredmety = vybranePredmety; //Pokud se nejedná o první spuštění, ale o aktualizaci //stare - list již stažených předmětů, //pokud se aplikace spouští poprvé je prázdný if (stare.Count != 0) { //Vybrané předměty se zaktualizují přes referenci aktuálních Store.aktualniPredmety.AddRange(stare); } //Uložení seznamu vybraných předmětů s jejich topicy do souboru "Predmety.xml" XMLManager.SavePredmety(vybranePredmety); //BackroungWorker je zobrazen, dokud není ukončena tato metoda //Po 50ms intervalech kontrolujeme, zda došlo //ke stažení seznamu předmět; (down = true) while (down == false) { Thread.Sleep(50); } }
Až zde dochází k uložení seznamu vybraných předmětů do souboru Predmety.xml. O vytvoření XML souboru z objektového listu předmětů se stará metoda SavePredmety třídy XMLManager. Jakým způsobem k vytvoření souboru dochází, popisuje následující kód. /// <summary> /// Uložení Listu předmětů do XML souboru /// /// <param name="subjects">List předmětů, který chceme uložit do XML public static void SavePredmety(List subjects) { using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication()) { //Vytvoření základní kostry XML dokumentu - hlavička a root element "predmety" XDocument _doc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XElement(predmety));
▪ 50 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
//Procházení všech předmětů, které jsou uloženy v seznamu foreach (Predmet sub in subjects) { //Pro každý předmět se vytvoří nový XElement "predmet" a vytvoří se mu atribut "nazev" a child element "topicy" XElement Xsub = new XElement(predmet, new XAttribute(nazev, sub.Nazev), new XElement(topicy)); //Procházení všech topiců, které předmět má foreach (Topic top in sub.Topicy) { //Pro každý topic se vytvořen nový element "topic" a jeho atribut "nazev" XElement Xtop = new XElement(topic, new XAttribute(nazev,top.Nazev)); //Vytvořený elemetnt topicu se přidá do elementu "topics" daného předmětu Xsub.Element(topicy).Add(Xtop); } //Vytvořený element předmětu i s jeho všemi topicy se přidá do root elementu "subjects" _doc.Element(predmety).Add(Xsub); } //Uložení sestaveného XDocumentu do XML souboru v izolovaném úložišti using (IsolatedStorageFileStream location = new IsolatedStorageFileStream(Files.PredmetyFile, FileMode.OpenOrCreate, storage)) { _doc.Save(location); location.Close(); } } }
Výsledkem je XML uložený soubor, který přesně odpovídá definovanému standardu, jenž byl ukázán výše. Mezitím dochází ke stahování dat jednotlivých předmětů. Ve třídě FirstStartSubjects.xaml.cz je definován delegát pro událost GetSubjectCompleted, která se vyvolá, pokud dojde k úspěšnému stažení souboru. Ihned po úspěšném stažení dojde k vyvolání metody SavePredmet třídy XMLManager, která přijatá data uloží do XML souboru v izolovaném úložišti (Ukázka XML souboru předmětů je v příloze). Jakmile dojde ke stažení všech vybraných předmětů a jejich uložení, skončí loadingová simulace BackGroundWorkeru a dojde k zobrazení hlavní nabídky. Ukládání přijatých dat do souboru zachycuje následný kód.
▪ 51 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
/// Uložení jednoho předmětu do souboru /// <param name="_doc">XDocument, který byl sestaven z přijatého XML (v textové podobě) ze systému. public static void SavePredmet(XDocument _doc) { //Získání přístupu a místa v izolovaném úložišti using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication()) { //Název předmětu poslouží jako název souboru pro daný předmět string path = (string)_doc.Element(predmet).Element(nazev); //Pokud soubor neexistuje, bude vytvořen, jinak přepsán using (IsolatedStorageFileStream location = new IsolatedStorageFileStream(path + ".xml", FileMode.OpenOrCreate, storage)) { _doc.Save(location); location.Close(); } } }
Tímto je proces prvního spuštění ukončen a při každém dalším spuštění aplikace se zobrazí rovnou hlavní nabídka (MainPage.xaml). Uživatelské rozhraní této obrazovky zachycuje následující obrázek.
Obrázek 17: Uživatelské rozhraní obrazovky MainPage.xaml
▪ 52 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
10.5
Vytváření SelfTestů Proces vytvoření (sestavení) nového SelfTestu, jeho vyřešení a vyhodnocení, začíná
stisknutím tlačítka SelfTests v hlavní nabídce. Poté dojde k načtení seznamu předmětů. Ty se při prvním zobrazení načítají ze souboru Predmety.xml, při každém následujícím načtení (až do ukončení aplikace) je již tento seznam uložen v paměti. Uživatelské rozhraní obrazovky se seznamem předmětů je na obrázku 20. Uživatel si vybere předmět, ze kterého si chce sestavit SelfTest, kliknutím na jeho název. Poté se zobrazí obrazovka se seznamem témat (topiců), které vybraný předmět nabízí (Obrázek 21). Uživatel vybírá kliknutím topicy, které chce mít v SelfTestu obsaženy. Svůj výběr potvrdí stiskem tlačítka Submit. Obslužná metoda události OnClick tlačítka Submit odešle vybraná kritéria (předmět a topicy) k zpracování a vygenerování SelfTestu.
Obrázek 18: Uživatelské rozhraní obrazovky VyberPredmet.xaml
Obrázek 19: Uživatelské rozhraní obrazovky VyberTopic.xaml
▪ 53 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
K vygenerování nového SelfTestu je volána metoda GenerateQuestionsFromFile třídy StManager. Ta vyvolá načtení otázek ze souboru .xml (metoda NactiOtazky třídy XMLManager). Podrobné chování aplikace je zachyceno následujícím kódem. /// /// /// ///
<summary> Vygenerování otázek pro SelfTest ze souboru <param name="predmet">Předmět, ze kterého chceme ST vygenerovat /// <param name="topicy">Topicy pro které chceme ST vygenerovat /// Požadovaný počet otázek náhodných otázek, pro ST public static List GenerateQuestionsFromFile(string predmet, List<string> topicy) { //Načtení všech otázek, které odpovídají vybraným kritériím, ze souboru Store.otazkyVPameti = XMLManager.NactiOtazky(predmet, topicy); //Vygenerování požadovaného počtu náhodných otázek ze všech načtených return GenerateQuestions(); }
Metoda NactiOtazky přebírá jako parametry název vybraného předmětu (tento název je shodný s názvem XML souboru, ve kterém jsou uloženy všechny otázky tohoto předmětu) a seznam názvů vybraných témat (topiců). Metoda načte odpovídající soubor a pomocí Linq to XML je sestaven dotaz, který z daného souboru načte pouze ty otázky, které odpovídají vybraným kritériím. Zpět metoda vrací list odpovídajících otázek. Z těchto otázek je náhodně vybrán uživatelem specifikovaný počet (v nastavení si může uživatel specifikovat z kolika náhodně vybraných otázek se má SelfTest skládat; defaultní hodnota je 20). Tyto náhodně vybrané otázky jsou poté metodou RenderClearSelfTest zpracovány a výsledkem je vygenerovány SelfTest. (Obrázek 22)
Nově sestavený SelfTest uživatel řeší vybíráním správných odpovědí. Po ukončení vybírání zmáčkne tlačítko vyhodnotit, které je zobrazeno na aplikační liště. ST je odeslán k vyhodnocení, o které se stará metoda VyhodnotST. Ta nastaví odpovědím, podle toho zda byly či nebyly správně vybrány, různé příznaky, které barevně odlišují, zda byla zvolená odpověď správná, nebo špatná. Vyhodnocený ST je zobrazen obrázcích 23 a 24. Pokud je v nastavení zapnuto automatické ukládání historie, dojde ihned po vyhodnocení ST k jeho uložení do historie (History.xml). O tuto funkci se stará metoda SaveToHistory třídy XMLManager. Ta z vyhodnoceného ST (jeho objektu), sestaví Xdocument
(objektová podoba XML dokumentu), který je přidán jako nový element do stávajícího souboru History.xml.
▪ 54 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Obrázek 21: Uživatelské rozhraní obrazovky SelfTest.xaml (vyhodnocený)
Obrázek 20: Uživatelské rozhraní obrazovky SelfTest.xaml (nově vygenerovaný)
Aplikační lišta na spodní části obrazovky, nabízí spoustu dalších funkcí. Tlačítko Retry (Znovu), které sestaví nový ST, ze stejného předmětu i topiců (při generování se otázky již nenačítají ze souboru, ale z paměti, což šetří čas). Dalším tlačítkem je Menu, které nás vrátí do hlavní nabídky. Aplikační lišta dále nabízí vysouvací menu, kde se nacházejí tři užitečné odkazy. Prvním je Změnit předmět, který nás odkáže na obrazovku pro výběr jiného předmětu. Druhým odkazem je Změnit topicy, který nám umožní definovat jiné topicy pro stejný předmět. Třetí je Změnit nastavení, které uživatele odkáže na obrazovku Nastaveni.xaml, kde je možné upravovat nastavení aplikace. Aplikační lišta i s nabídkou je zachycena na obrázku 25.
▪ 55 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
Obrázek 22: Uživatelské rozhraní obrazovky SelfTest.xaml (vyhodnocený 2)
Obrázek 23: Uživatelské rozhraní obrazovky SelfTest.xaml (aplikační lišta)
Detailní informace o ostatních funkcích, které aplikace nabízí, jsou popsány v technickém projektu, který je součástí přílohy. Jedná se stále ještě o prototypovou aplikaci, proto se může zdát, že nejsou dotaženy všechny detaily do úplného konce. Vývoj dále pokračuje tak, aby bylo možné odhalit finální verzi již v akademickém roce 2011 / 2012.
▪ 56 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
10.6
Programátorská instalace Pokud budete chtít SelfTest aplikaci testovat, emulovat nebo dále vyvíjet, neobejde-
te se bez následujícího software a jeho doplňků: 1. Microsoft Visual Studio 2010 Express for Windows Phone http://www.microsoft.com/visualstudio/en-us/products/2010-editions/windows-phonedeveloper-tools 2. Windows Phone Developer Tools January 2011 Update http://www.microsoft.com/downloads/en/details.aspx?FamilyID=49b9d0c5-65974313-912a-f0cca9c7d277 3. Zune Software http://www.zune.net/en-us/products/software/download/ 4. SQL Server 2008 Express nebo SQL Server 2008 R2 Express http://www.microsoft.com/express/Database 5. Azure Tools for Visual Studio (Updated April 2011) http://www.microsoft.com/windowsazure/getstarted/
Windows Azure je potřebný pro vytvoření lokální webové služby, která bude simulovat komunikaci s STS. Pro spuštění této služby nainstalujte výše jmenovaný software, otevřete projekt WAT1 (součást přílohy na CD) ve Visual Studiu a spusťte ho stisknutím klávesy F5. Pokud se podaří službu úspěšně nasadit (chvíli to trvá, mějte proto strpení), zobrazí
se
její
rozhraní
v
okně
webového
prohlížeče.
Zkontroluje,
zda
je
URL
http://127.0.0.1:81/Service1.svc. Pokud je vaše adresa jiná, upravte nastavení reference na tuto službu v projektu SelfTest aplikace (Solution Explorer → Service references → kliknout pravým tlačítkem myši na → ServiceReference → Confiruge Service Reference... → do pole Address vložte Vaší URL).
▪ 57 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
11.
ZÁVĚR Cílem této práce bylo analyzovat požadavky na SelfTest systém, provést návrh ar-
chitektury a definovat rozhraní, které budou moci využívat další podpůrné aplikace ke komunikaci a výměně dat. Jednou z nich bude i nativní mobilní SelfTest aplikace implementovaná pro platformu Windows Phone 7. V rámci této práce došlo k vytvoření technického projektu, který popisuje stávající SelfTest systém, požadavky, které jsou na něj kladeny, a navrhuje rozšíření, která by bylo vhodné implementovat. K významnému kroku došlo v oblasti podpory dalších aplikací. Bylo navrženo komunikační rozhraní poskytující API, které mohou využívat další aplikace. Jednou z aplikací, která toto rozhraní realizuje, je nativní mobilní SelfTest aplikace pro platformu Windows Phone 7, jejíž implementace je dalším výstupem této práce. Struktura dat, která jsou v rámci komunikace vyměňována, byla navržena tak, aby toto rozhraní mohly bez problému implementovat i aplikace vyvinuté pro jiné mobilní platformy. SelfTest aplikace umožňuje uživatelům vytváření SelfTestů, jejich vyhodnocování, ukládání do historie a aktualizování dat. Práce s aplikací je velice interaktivní a jednoduchá. Aplikace stahuje data přímo ze SelfTest systému a ukládá si je lokálně. Připojení k internetu je tedy nutné pouze při prvním spuštění aplikace, kdy dojde ke stažení požadovaných dat a při případných aktualizacích. SelfTest systém spolu s mobilní aplikací doplňují Unicorn Universe, jakožto e-learningový systém Unicorn College, a dohromady vytvářejí komplexnější podporu vzdělávání, nabízejí studentům efektivnější způsob učení, rozšiřují nabídku benefitů, které škola svým studentům nabízí, a zvyšují celkovou atraktivitu studia. V rámci této bakalářské práce došlo k naplnění všech stanovených cílů a požadavků, které na ni byly kladeny. Výstupy této práce budou v nejbližší době použity k produkčnímu nasazení a přínos, který tato práce nabízí, budou moci využít všechny zainteresované strany. Oficiální představení SelfTest aplikace je plánováno v akademickém roce 2011 – 2012.
▪ 58 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
12.
CONCLUSION The aim of this thesis was to analyse the requirements for SelfTest systém, design
architecture and to define an interface that will be used by other applications to communicate and exchange data. One of this applications will be native mobile SelfTest appliation for Windows Phone 7 platform. As a part of this thesis has been created a technical project, witch describes the current SelfTest system, requirements that are laid to it and suggest extensions, witch should be implemented. A significant step was taken in support of other applications. Communication interface was designed to provide an API that can use other applications. One of the applications that implements this interface is a native mobile SelfTest application, witch implementation is another outcome of this work. Data that are exchanged in the communication are designed so that this interface can be implemented by other applications without any problems. SelfTest application allowes users to create SelfTests, evaluate them, store them in a history and update data. Working with the application is highly interactive and easy. The application downloads data directly from SelfTest systém and stores them localy. An internet connection is only neccessary when you launch application for the first time or when you want to update the data. During first start all required data will be downloaded. SefTest system with the SetfTest application supply Unicorn Universe as a elearning system of Unicorn College and together create more complex support for education, offer students more effective way of training, expand the range of benefits with school offers for its students and overall attractiveness of the study. The bachelor thesis meets all the objectives and requirements that were placed on it. The outputs of this thesis will be soon deployed into production and contribution offered by the thesis offers will be available for all involved parties.
▪ 59 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
13.
SEZNAM POUŽITÉ LITERATURY
1. CAMERON, R. Pro Windows Phone 7 Development, New York: Apress, 2011. 2. KOPECKÝ, K. E-learning (nejen) pro pedagogy. Olomouc: Hanex, 2006. 3. LEE, H., CHUVYROV, E. Beginning Windows Phone 7 Development. New York: Apress, 2010. 4. PETZOLD, CH. Programming Windows Phone 7. Redmond: Microsoft Press, 2010. 5. RANDOLPH, N., FAIRBAIRN, CH. Professional Windows Phone 7 Application Development: Building Applications and Games Using Visual Studio, Silverlight, and XNA. Indianapolis: Wiley Publishing, Inc., 2011. 6. THURRATT, P. Windows Phone 7 Secrets. Indianapolis: Wiley Publishing, Inc., 2011. 7. VOŽENÍLEK, V. a kol. Klimatická změna v e-learningové výuce. Olomouc: Univerzita Palackého v Oomouci, 2010.
▪ 60 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
14.
SEZNAM POUŽITÝCH INTERNETOVÝCH ZDROJŮ
1. MARSHALL, K. Clarity Consulting [online]. 3.11.2010 [cit. 2011-03-25]. WP7 Serialization Comparison. URL: . 2. Msdn [online]. 28.1.2011 [cit.2011-03-11]. How to: Handle Orientation Changes on Windows Phone. URL: . 3. STRICKLAND, N. Msdn [online]. 30.7.2010 [cit. 2011-04-01]. Windows Phone 7 in 7: The Application Bar. URL: . 4. STRICKLAND, N. Msdn [online]. 13.8.2010 [cit. 2011-03-28]. Windows Phone 7 in 7: Globalization and Localization. URL: . 5. STRICKLAND, N. Msdn [online]. 30.7.2010 [cit. 2011-04-03]. Windows Phone 7 in 7: Connecting to Web Services. URL: . 6. STRICKLAND, N. Msdn [online]. 30.7.2010 [cit. 2011-03-10]. Windows Phone 7 in 7: Using Isolated Storage. URL: . 7. WindowsPhoneGeek [online]. 10.3.2011 [cit. 2011-03-13]. All aboud WP7 Isolated Storage – intro to Isolated Storage. URL: . 8. WindowsPhoneGeek [online]. 10.3.2011 [cit. 2011-03-14]. All aboud WP7 Isolated Storage – Store data in IsolatedStorageSettings. URL: . 9. ZHU, X. dotnetslackers.com [online]. 8.3.2011 [cit. 2011-03-20]. Windows Phone 7 Silverlight Programming – Isolated Storage. URL: . 10. Stackoverflow [online]. 8.12.2010 [cit. 2011-05-12]. WP7 – How to set start page to external page (in library). URL: .
▪ 61 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
15.
SEZNAM POUŽITÝCH SYMBOLŮ A ZKRATEK
Zkratka
Popisek
STS
SelfTest systém
STA
SelfTest aplikace
ST
SelfTest
UCL
Unicorn College
UU
Unicorn Universe
UC
Use Case – případ užití
ICT
Informační a komunikační technologie
REQ
Požadavek
LMS
Learning Management System
LCMS
Learning Content Management System
CBT
Computer Based Training
WBT
Web Based Training
WP7
Windows Phone 7
WS
Webová služba
XML
Datový soubor, jehož možná struktura je znázorněna v příloze 1
▪ 62 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
16.
SEZNAM OBRÁZKŮ
Obrázek 1: Základní formy e-learningu...................................................................................13 Obrázek 2: Úrovně e-learningu...............................................................................................16 Obrázek 3: Výhody a nevýhody e-learningu...........................................................................19 Obrázek 4: Klíčové procesy Unicorn College..........................................................................24 Obrázek 5: Proces - Výuka na UCL, vlastní ilustrace.............................................................25 Obrázek 6: High level pohled na navrhované řešení..............................................................26 Obrázek 7: Očekávané přínosy pro zákazníka.......................................................................27 Obrázek 8: Přehled architektury..............................................................................................35 Obrázek 9: Use Case diagram - Komponenta Správa testů...................................................37 Obrázek 10: Historie Windows Phone 7.................................................................................39 Obrázek 11: Možnosti persistence dat ve WP7......................................................................42 Obrázek 12: Use Case diagram SelfTest Aplikace.................................................................43 Obrázek 13: Izolované úložiště SelfTest Aplikace..................................................................44 Obrázek 14: Proces prvního spuštění.....................................................................................45 Obrázek 15: Uživatelské rozhraní obrazovky FirstStart.xaml.................................................46 Obrázek 16: Uživatelské rozhraní obrazovky FirstStartSubjects.xaml...................................49 Obrázek 17: Uživatelské rozhraní obrazovky MainPage.xaml................................................52 Obrázek 18: Uživatelské rozhraní obrazovky VyberPredmet.xaml.........................................53 Obrázek 19: Uživatelské rozhraní obrazovky VyberTopic.xaml..............................................53 Obrázek 20: Uživatelské rozhraní obrazovky SelfTest.xaml (nově vygenerovaný)................55 Obrázek 21: Uživatelské rozhraní obrazovky SelfTest.xaml (vyhodnocený)..........................55 Obrázek 22: Uživatelské rozhraní obrazovky SelfTest.xaml (vyhodnocený 2).......................56 Obrázek 23: Uživatelské rozhraní obrazovky SelfTest.xaml (aplikační lišta).........................56
▪ 63 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
17.
SEZNAM TABULEK
Tabulka 1: Výstupy projektu....................................................................................................29 Tabulka 2: Stručný popis UC, komponenty Správa testů.......................................................38
▪ 64 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
18.
SEZNAM PŘÍLOH
1. Ukázkový XML soubor předmětu. 2. CD obsahující technický projekt, text práce, implementovanou aplikaci a zdrojové kódy
▪ 65 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
PŘÍLOHA 1 – UKÁZKOVÉ XML PŘEDMĚTU <subject code="SEC"> Bezpecnost a ochrana dat Jaká je podstata útočníka typu insider? Jedná se o element peoplewaru IS, který se stává sám útočníkem Jedná se o hackera, který nejprve propašuje trojského koně dovnitř do IS a poté útočí Jedná se o elektronického útočníka útočícího nejčastěji z internetových červů Jedná se o hackera, který má přístup k vnitřní zoně za firewallem
▪ 66 ▪
Bakalářská práce Analýza a návrh systému pro SelfTesty Analysis and design for SelfTest system
PŘÍLOHA 2 – CD OBSAHUJÍCÍ TECHNICKÝ PROJEKT, TEXT PRÁCE, IMPLEMENTOVANOU APLIKACI A ZDROJOVÉ KÓDY CD je přiloženo do vazby tištěné verze bakalářské práce. Struktura CD: 1. Složka: Bakalářská práce ◦ Soubor: Bakalarska_prace_Filip_Bocek.odt ◦ Soubor: Bakalarska_prace_Filip_Bocek.pdf 2. Složka: Technický projekt ◦ Zde se nacházejí veškeré dokumenty popisující SelfTest systém ◦ Zde se nacházejí veškeré dokumenty popisující SelfTest aplikaci 3. SelfTest aplikace 1. Složka: STA – aplikace ◦ Obsahuje spouštěcí .xap soubor pro mobilní telefon. 2. Složka: STA – zdrojové kódy ◦ Obsahuje projekt STA vytvořený v Microsoft Visual Studiu 2010 3. Složka: Webová služba ◦ Obsahuje projekt WAP1 vytvořený v Microsoft Visual Studiu 2010. Jedná se o testovací webovou službu, kterou lze simulovat komunikaci s SelfTest systémem.
▪ 67 ▪