FH JOANNEUM Gesellschaft mbH Konzepte einer Web-App anhand des Beispiels einer Quiz-Marketing-App Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science in Engineering (BSc) eingereicht am Fachhochschul-Studiengang Software Design Betreuer: DI Johannes Feiner eingereicht von: Michael Mayer Personenkennzahl: 1210418040 April 2015 Abstract Mobile devices are not an upcoming trend, they are in any form clearly preva- lent in our society. As a result, mobile app development has become popular for companies to serve their products state of the art. Although many compa- nies aim at providing di(cid:27)erent apps for their customers, they usually face one major obstacle: due to di(cid:27)erent platforms for these devices such as iOS, An- droid and Windows Phone, an app has to be developed for each of them. To meet this discrepancy, in contrast of this discrepancy, HTML5 and CSS3 with JavaScript provide a cross platform frontend technology which enables the devel- opment of one web app available on all devices. This bachelor thesis deals with concepts of such mobile web apps by focusing on modern JavaScript frameworks making it possible to build structured web applications. The research provides insights into the building of modularized applications which ensure extensibility and testability. For demonstrating the concept of mobile web apps, a prototype with the AngularJS framework has been developed. In this context basic infor- mation about AngularJS is provided and a comparison to similar frameworks has been drawn. Generally, AngularJS as well as backbone.js provides a well (cid:28)tted skeleton for structured and modularized application architecture. New features and technologies, like data binding, make it easier to separate the presentation logic from their actual representation. In conclusion, mobile web apps are worth considering when building cross platform apps. Nevertheless, many JavaScript- based web applications still have problems in terms of maintainability, testability, or extensibility. AngularJS or backbone.js can help to build these apps much more structured. Beyond question, architecture pays o(cid:27), especially within a long application lifecycle. Zusammenfassung Smartphones und mobile Endger(cid:228)te sind kein aufstrebender Trend, sondern be- reits Alltagsgegenst(cid:228)nde unserer Gesellschaft. Die Mobile-App-Entwicklung wur- de, als Ergebnis davon, f(cid:252)r viele Unternehmen immer beliebter, um Ihre Produkte auf diesen Plattformen anzubieten. Viele Unternehmen stehen jedoch vor einem grundlegenden Hindernis: Um die App m(cid:246)glichst breit einsetzen zu k(cid:246)nnen, muss diesef(cid:252)rjededer3gro(cid:255)enPlattformeniOS,AndroidundWindowsPhoneseparat entwickelt werden. Dabei sind 3 verschiedene Programmiersprachen und Archi- tekturenzuber(cid:252)cksichtigen.ImGegensatzdazubietenHTML5,CSS3undJavaS- cript plattformunabh(cid:228)ngige Frontend-Technologien, die es erm(cid:246)glichen, eine App f(cid:252)r nahezu alle mobilen Endger(cid:228)te zu entwickeln. Diese Bachelorarbeit fokussiert auf Konzepte einer mobilen Web-App und im Speziellen auf den Einsatz moder- ner Frameworks. Die Arbeit gibt Einblick in den Aufbau einer Web-App, um eine m(cid:246)glichst strukturierte und modulare Applikation im Sinne der Erweiterbarkeit und Testbarkeit zu scha(cid:27)en. Um das Konzept zu erl(cid:228)utern, wurde in Form einer Quiz-Marketing-App ein Prototyp mit dem AngularJS-Framework entwickelt. In diesem Kontext wird das AngularJS-Framework im Detail vorgestellt und die ver- wandten Bibliotheken backbone.js und JavaScriptMVC damit verglichen. Sowohl AngularJS als auch beispielsweise backbone.js bieten ein Grundger(cid:252)st f(cid:252)r eine m(cid:246)glichst modulare und strukturierte Architektur einer Web-App. Dabei machen es vor allem neue Konzepte wie Data-Binding einfacher, die Pr(cid:228)sentationsschicht von der Dom(cid:228)nenlogik zu trennen. Zusammengefasst sind Web-Apps de(cid:28)nitiv ei- neOptionf(cid:252)rdieEntwicklungeinerplattformunabh(cid:228)ngigenApp.Dennochhaben viele JavaScript-basierte Applikationen Probleme in Bezug auf die Erweiterbar- keit und Testbarkeit. Bibliotheken wie AngularJS oder backbone.js k(cid:246)nnen dabei helfen, die Applikationen strukturierter zu entwerfen. Dar(cid:252)ber hinaus zahlt sich eine Investition in Architektur meist aus, vor allem bei Ber(cid:252)cksichtigung eines langen Applikations-Lebenszyklus. Inhaltsverzeichnis 1 Einleitung 1 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Stand der Technik 4 2.1 HTML5 und JavaScript . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Single Page Application . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 AngularJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Frameworks im Vergleich zu AngularJS . . . . . . . . . . . . . . . 14 2.5 Codequalit(cid:228)t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 Umsetzung 21 3.1 Idee, Aufbau und Ablauf . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Konzept und Implementierung . . . . . . . . . . . . . . . . . . . . 25 3.3 Erweiterbarkeit und Testbarkeit . . . . . . . . . . . . . . . . . . . 39 3.4 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4 Res(cid:252)mee 47 Literaturverzeichnis 52 i Abbildungsverzeichnis 2.1 Vergleich zwischen Stereotypen- und Dom(cid:228)nenstruktur . . . . . . 10 2.2 Typischer Software Application Lifecycle. (vgl. Tripathy & Naik 2014, S. 84) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1 Prototyp Web-Applikation System Ansicht . . . . . . . . . . . . . 24 3.2 Prozessablauf der Quiz-App im Erstentwurf . . . . . . . . . . . . 26 3.3 Module und Struktur des Prototypen . . . . . . . . . . . . . . . . 29 3.4 Abh(cid:228)ngikeiten und Beziehungen der Quiz-App . . . . . . . . . . . 31 3.5 Screenshot der Quiz Web-App . . . . . . . . . . . . . . . . . . . . 41 ii Tabellenverzeichnis 3.1 Quiz-App Basis Routenkon(cid:28)guration und Modulzugeh(cid:246)rigkeit . . 32 3.2 Source Code Metriken des Prototypen nach JSComplexity . . . . 44 3.3 Jasmine Unit Test des Prototypen . . . . . . . . . . . . . . . . . . 45 iii Kapitel 1 Einleitung Diese Bachelorarbeit befasst sich mit den Konzepten moderner, modularer und strukturierter Web-Apps. Mobile Plattformen und Endger(cid:228)te sind aus der heu- tigen Zeit nicht mehr wegzudenken. Immer mehr Unternehmen bieten f(cid:252)r ihre Applikationen und Dienste mittlerweile auch eine mobile Version an. Aus dem Paper von Alex Nicolaou (2013) geht hervor, dass der Datenverkehr auf mobi- len Ger(cid:228)ten drastisch steigt. Die Prognose f(cid:252)r 2017 soll erstmal die 10-Exabyte- Marke (cid:252)bersteigen. Daran ist deutlich zu erkennen, dass mobile Software und Apps l(cid:228)ngst keine Marktl(cid:252)cke mehr sind. 1.1 Motivation 1 Die Marketingabteilung des steirischen Unternehmens INTECO GmbH hat sich strategisch dazu entschieden, bei Messeauftritten die modernen Aspekte einer App f(cid:252)r sich zu nutzen. Besonders im Bereich von Klein- und Mittelunterneh- men stellt sich oft die Frage nach der Wahl der richtigen mobilen Plattform. F(cid:252)r die Entwicklung von Apps f(cid:252)r die drei wichtigsten Plattformen iOS, Android und Windows Phone (cid:252)bersteigen die Kosten oft den Nutzen. Das Unternehmen beherbergt unter anderem selbst eine Softwareabteilung f(cid:252)r ihre Produkte; das Budget f(cid:252)r eine neue App ist darin jedoch nicht enthalten. Die Alternativen zur Entwicklung einzelner nativer Apps z(cid:228)hlen Hybrid-Apps, interpretierte Apps, ge- 1 INTECO special melting technologies GmbH 1 KAPITEL 1. EINLEITUNG 2 nerierte Apps sowie Web-Apps (vgl. Xanthopoulos & Xinogalos 2013, S. 215(cid:27).). Alle Alternativen bieten Plattformunabh(cid:228)ngigkeit, wobei in den letzten Jahren durch HTML5 die Web-App-Sparte stark forciert wird. Die Europ(cid:228)ische Uni- on hat mit MobiWebApp ein eigenes F(cid:246)rderprogramm f(cid:252)r Web-Applikationen gescha(cid:27)en. Dies soll sowohl die Standardisierung steigern, als auch europ(cid:228)ische Unternehmen in diesem Segment st(cid:228)rken (vgl. Forgue & Hazaºl-Massieux 2012, S. 255(cid:27).). Aus den genannten Gr(cid:252)nden f(cid:252)r Web-Apps hat sich INTECO im Zuge der Quiz-Marketing-App f(cid:252)r die Webtechnologie entschieden. Daraus entstand die Motivation f(cid:252)r diese Bachelorarbeit, ein nachhaltiges Konzept f(cid:252)r Web-Apps zu entwerfen. 1.2 Problem Die Problemstellung ergibt sich aus der raschen Entwicklung des Webs. Fr(cid:252)here Konzepte f(cid:252)hren in der heutigen Zeit zu wenig Akzeptanz. Statische Websei- ten mit einem hohen Grad an Wartezeit ver(cid:228)rgern zusehends die AnwenderIn- nen. Dadurch ergeben sich f(cid:252)r moderne Web-Applikationen neue Anforderun- gen an die Softwarearchitektur. Viele Web-Applikationen, welche mit JavaScript- Bestandteilen dynamischer wurden, haben durch historisches Wachstum viele Schwierigkeiten in den genannten Bereichen. Vor allem die Erweiterbarkeit und die fehlende Testbarkeit f(cid:252)hrten oft langfristig zu hohen Kosten. Durch geringe Struktur im Projekt und im Quellcode wurden einige Web-Apps zu wenig wart- baren Softwareprodukten. Diesem Problem soll die Arbeit mit einem Konzept und L(cid:246)sungsans(cid:228)tzen entgegenwirken. 1.3 Zielsetzung Die Arbeit verfolgt das Ziel einer modernen Architektur, sowie eines durchdach- ten Konzepts einer Web-App. In welchem Ma(cid:255) k(cid:246)nnen durch neue Konzepte und Architekturen, sowie der Einsatz von Frameworks wie AngularJS die Software (cid:29)e- xibel, erweiterbar und testbar gestaltet werden? - Diese Frage ist der Kernaspekt KAPITEL 1. EINLEITUNG 3 diesesKonzepts.DieZielsetzungwirdmitHilfederPrototypenentwicklungausge- arbeitet. Daf(cid:252)r wird eine Web-App vom Beginn der Konzepterstellung bis hin zu denletztenTestsinjederPhasedokumentiert.DieAuswertungdesKonzeptsbzw. der erstellten Architektur geschieht anhand der Testbarkeit und Erweiterbarkeit des Prototypen. Dies sind wichtige Bestandteile der Codequalit(cid:228)t. Gemessen wer- den die Ziele unter anderem durch Verwendung sogenannter Softwaremetriken. Dies sind Kennzahlen, welche Auskunft (cid:252)ber die Bescha(cid:27)enheit des Quellcodes bringen. F(cid:252)r die Erreichung der genannten Struktur und Organisation des JavaScript- Projektsgibtesmittlerweileeinegro(cid:255)eAuswahlanBibliothekenundFrameworks. Viele davon werben mit diesen Funktionalit(cid:228)ten, eines davon ist das AngularJS- Web-Framework. Dieses wird f(cid:252)r die Entwicklung des Prototypen verwendet und erh(cid:228)lt besondere Aufmerksamkeit. Im Literaturteil wird auf die verwendeten Technologien eingegangen, sowie AngularJS n(cid:228)her erl(cid:228)utert. Des Weiteren wer- den backbone.js und JavaScriptMVC im Vergleich zu AngularJS kurz pr(cid:228)sentiert. Aufbauend darauf wird in Kapitel 3 die Umsetzung des Prototyps mit den Er- gebnissen der Arbeit dargestellt. Kapitel 2 Stand der Technik Die Arbeit beruht in ihrem Grundaufbau auf der Methodik der Prototypenent- wicklung. Dabei entsteht in Form einer Web-Applikation eine ausf(cid:252)hrbare Soft- ware, welche hinsichtlich der Problemstellung und Zielsetzung ausgewertet wird. Dieser Web-Applikation liegen grunds(cid:228)tzlich die Technologien HTML und Ja- vaScript zugrunde. Der Prototyp soll letztlich einer modernen Web Applikation entsprechen,welchesichf(cid:252)rdieAnwenderInnensehr(cid:228)hnlichzueinernativenApp verhalten soll. Um dies zu erreichen, kommen w(cid:228)hrend der Entwicklung Konzepte wie Single-Page-Applications zum Einsatz. Als grundlegende Architektur f(cid:252)r den Prototypen wird auf AngularJS gesetzt. Das folgende Kapitel bietet eine grund- legende Einf(cid:252)hrung sowie Verweise auf weiterf(cid:252)hrende Literatur der genannten Technologien. Zus(cid:228)tzlich wird das AngularJS Framework im letzten Unterkapitel mit verwandten Bibliotheken wie backbone.js oder JavaScriptMVC verglichen. 2.1 HTML5 und JavaScript Beim Entwurf einer modernen Rich-Internet-Application (RIA) kommt man um zwei Technologien nicht herum: HTML5 und JavaScript. HTML5 bezeichnet dabei den aktuellen Standard des World-Wide-Web-Consortium (W3C). Durch JavaScript-Code, der im Browser ausgef(cid:252)hrt wird, bekommt eine sonst statische Webseite ihre Dynamik. HTML ist die Beschreibungssprache der Benutzerober(cid:29)(cid:228)che im Web. Das W3C 4
Description: