konzeption und implementierung eines mobile crowd sensing...

83
Universität Ulm | 89069 Ulm | Germany Fakultät für Ingenieurwissenschaften, Informatik und Psychologie Institut für Datenbanken und Informationssysteme Konzeption und Implementierung eines Mobile Crowd Sensing Frameworks Masterarbeit an der Universiät Ulm Vorgelegt von: Tim Wiederhake [email protected] Gutachter: Prof. Dr. Manfred Reichert Dr. Vera Künzle Betreuer: Johannes Schobel, M.Sc. 2015

Upload: others

Post on 04-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Universität Ulm | 89069 Ulm | Germany Fakultät fürIngenieurwissenschaften,Informatik und PsychologieInstitut für Datenbanken undInformationssysteme

Konzeption und Implementierung einesMobile Crowd Sensing FrameworksMasterarbeit an der Universiät Ulm

Vorgelegt von:Tim [email protected]

Gutachter:Prof. Dr. Manfred ReichertDr. Vera Künzle

Betreuer:Johannes Schobel, M.Sc.

2015

Page 2: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

„Konzeption und Implementierung eines Mobile Crowd Sensing Frameworks“Fassung vom 10. März 2016

c© 2015 Tim Wiederhake

Dieses Werk ist unter der Creative Commons Attribution-NonCommercial-ShareAlike 3.0 GermanyLicense lizensiert: http://creativecommons.org/liceses/by-nc-sa/3.0/deSatz: PDF-LATEX 2ε

Page 3: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kurzfassung

Ein Großteil der Bevölkerung trägt täglich Geräte mit Internetverbindung und einer Vielzahl

an Sensoren wie Mikrofon, Kamera, Beschleunigungsmesser und GPS-Empfänger bei sich:

Smartphones.

Werden diese Geräte zu Sensornetzwerken verknüpft, können qualitativ und quantitativ

hochwertige Daten gesammelt werden, deren Analyse vielfältig genutzt werden kann: Steue-

rung des Verkehrsflusses, Ausbalancierung von Stromnetzen, Erkennen von medizinischen

Notfällen, Verbrechensbekämpfung und Marktanalyse sind nur einige von vielen Beispie-

len.

Dem Nutzen solcher Daten steht das Eindringen in die Privatsphäre und die Gefahr des

Missbrauchs dieser Daten gegenüber, weswegen die Erhebung von persönlichen Daten

durch das Bundesdatenschutzgesetz eingeschränkt ist.

In dieser Arbeit wird ein Framework zur massenhaften Erhebung von Daten durch aus

Smartphones gebildeten Sensornetzen (Mobile Crowd Sensing), das mit den rechtlichen

Vorgaben konform geht, konzipiert und implementiert.

iii

Page 4: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 5: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Inhaltsverzeichnis

1 Einleitung 1

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Grundlagen 5

2.1 Domänenwissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Datenschutz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 Verwandte Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Anforderungen an ein Mobile Crowd Sensing Framework 11

3.1 Funktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2 Nichtfunktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Systemarchitektur 15

4.1 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.2 Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.3 Datenformat der Fragebögen . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.4 REST-Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Implementierung der Server-Software 31

5.1 Laravel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.2 Verwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Implementierung der Client-Software 39

6.1 Aufbau einer Android-Anwendung . . . . . . . . . . . . . . . . . . . . . . . . 39

6.2 Hauptmenü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

v

Page 6: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Inhaltsverzeichnis

6.3 Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.4 Bearbeiten der Fragebögen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7 Fazit und Ausblick 47

7.1 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Literatur 53

A Beispielfragebogen 59

Abbildungsverzeichnis 75

vi

Page 7: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 1

Einleitung

Smartphones sind ein Teil des täglichen Lebens geworden. In Europa war 2012 jedes zwei-

te Mobiltelefon ein solches Gerät [26]. Diese Smartphones können Programme ausführen,

ermöglichen mobilen Zugang zum Internet und besitzen unterschiedlichste Zusatzkom-

ponenten. GPS-Empfänger, Kompass, Beschleunigungsmesser, Mikrofon, hochauflösende

Kameras, Helligkeits- und Temperaturmesser gehören zur Palette der Sensoren, die auf

modernen Smartphones fest verbaut und von Anwendungen ausgelesen und deren Daten

verarbeitet werden können [2].

Die Erfassung, Nutzung, Verarbeitung und Auswertung dieser Daten ist Gegenstand der

momentanen Forschung und Entwicklung. Einsatzgebiete sind beispielsweise psycholo-

gische Studien [30] und die Erfassung und Lenkung von Menschenmassen bei Großer-

eignissen [29]. Abbildung 1.1 zeigt die Visualisierung der Positionsdaten der Teilnehmer

einer Veranstaltung als Heatmap. Erkennbar sind die Dichte und Bewegung der einzelnen

Teilnehmer. Mit derartigen Systemen sollen Überfüllung von Räumen und möglicherweise

entstehende Paniken verhindert werden.

1

Page 8: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 1 Einleitung

Abbildung 1.1: Visualisierung von mobil erfassten Positionsdaten als Heatmap an einemhypothetischen Beispiel.

1.1 Motivation

Die massenhafte Erhebung und Verarbeitung von Daten birgt das Risiko des Missbrauchs.

Dem wissenschaftlichen und kommerziellen Interesse an der Nutzbarmachung dieser Sen-

soren steht das Recht auf Privatsphäre, informeller Selbstbestimmung und der Schutz

des Persönlichkeitsrechtes, formuliert im Bundesdatenschutzgesetzes (BDSG) [40], gegen-

über.

In bisherigen Systemen ist der Nutzer kaum oder gar nicht in der Lage, nachzuvollziehen,

welche Daten erhoben werden und wo diese Daten wie lang gespeichert werden. Der

Datenerheber sieht sich seinerseits vor der Schwierigkeit, die Nutzung dieser Daten rechts-

konform abzuwickeln, da die verwendeten Systeme nicht oder nur teilweise darauf ausgelegt

sind, erhobene Daten gemäß ihrer rechtlichen Bedeutung zu filtern.

2

Page 9: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

1.2 Aufbau der Arbeit

Ziel dieser Arbeit ist die Konzeption und Implementierung einer Plattform zur mobilen, mas-

senhaften Datenerhebung, unter Berücksichtigung der gesetzlichen Auflagen zur Speiche-

rung personenbezogener Daten, sowohl auf dem Server als auch auf dem Client.

1.2 Aufbau der Arbeit

Diese Arbeit ist in 8 Kapitel unterteilt. Nach dieser Einleitung werden in Kapitel 2 einige

Grundlagen für das weitere Verständnis erläutert. Dazu werden zunächst einige Begriffe

aus dem Themenfeld des Mobile Crowd Sensing erläutert. Anschließend wird die Bedeu-

tung und Relevanz des Datenschutzes diskutiert. Schließlich wird auf verwandte Arbeiten

verwiesen.

In Kapitel 3 werden Anforderungen für die zu erstellende Software erarbeitet. Die aus diesen

Anforderungen abgeleitete Systemarchitektur wird in Kapitel 4 vorgestellt. Insbesondere

wird dabei auf den Aufbau der Datenbank, die interne Repräsentation der Fragebögen

und deren Datenformat sowie die Webschnittstelle zur Kommunikation mit den Endgeräten

eingegangen.

Anschließend wird in Kapitel 5 auf Details der Implementierung der Server-Software ein-

gegangen. Neben der verwendeten Software wird die Verwendung des Webinterfaces vor-

gestellt. Kapitel 6 beschäftigt sich mit der Client-Software. Zunächst wird der generelle

Aufbau einer Android-Anwendung dargelegt und dann die Benutzung der Client-Software

erläutert.

Abschließend wird in Kapitel 7 ein Fazit dieser Arbeit gezogen und die Ergebnisse mit

den anfangs gestellten Anforderungen abgeglichen. Schlussendlich wird ein Ausblick auf

mögliche weitere Entwicklungen und Erweiterungen gegeben.

3

Page 10: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 11: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 2

Grundlagen

In diesem Kapitel werden zunächst einige Grundbegriffe erklärt. Anschließend wird die

Bedeutung des Datenschutzes erläutert und schließlich werden verwandte Arbeiten vorge-

stellt.

2.1 Domänenwissen

Dieser Abschnitt dient der Erläuterung und Bestimmung einiger Begriffe, die für das Ver-

ständnis der folgenden Kapitel benötigt werden:

Sensor Sensoren oder Messgrößen-Aufnehmer sind definiert als der Teil einer Mess-

einrichtung, der auf eine Messgröße unmittelbar anspricht [27]. Diese technischen Bauteile

messen bestimmte physikalische oder chemische Eigenschaften, etwa Temperatur, Druck,

Beschleunigung oder elektrische Spannung.

Crowd Sensing Unter Crowd Sensing versteht man das Erheben von Daten durch eine

Menschenmenge [13]. Entweder werden durch die einzelnen Personen mitgeführte oder

stationäre Sensoren ausgelesen oder aber die Personen fungieren selbst als Sensoren.

5

Page 12: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 2 Grundlagen

Dadurch können auch nichttechnische Messgrößen wie Stimmung, subjektive Eindrücke

und Wahrnehmungen erhoben werden.

Smartphone Als Smartphone bezeichnet man ein Mobiltelefon, das nahezu die Funktio-

nalität eines Computers besitzt und Programme installieren und ausführen kann [42]. Häufig

besitzen Smartphones eine Reihe von internen Sensoren wie etwa Mikrofon, Kamera, Be-

schleunigungsmesser und GPS-Empfänger. Zumeist ist eine USB-Schnittstelle vorhanden,

mit der das Smartphone mit einem Computer oder Zusatzgeräten wie externen Sensoren

oder USB-Festplatten verbunden werden kann.

Mobile Crowd Sensing Werden beim Crowd Sensing Smartphones als Sensoren einge-

setzt, so spricht man von Mobile Crowd Sensing [13]. Mobile Crowd Sensing unterscheidet

sich von Crowd Sensing mit anderen Sensortypen insbesondere dadurch, dass durch die

eingesetzten Smartphones die gesammelten Daten direkt vorverarbeitet und gefiltert, hoch-

geladen und Ergebnisse empfangen werden können. Dies ermöglicht ein unmittelbares

Feedback für die Benutzer.

JSON Die JavaScript Object Notation [8], kurz JSON, ist ein menschenlesbares, schlan-

kes Datenformat. JSON ist deutlich weniger komplex als beispielsweise XML und produziert

weniger Overhead. Softwarebibliotheken zum Lesen und Schreiben von JSON-Daten sind

für jede gängige Programmiersprache vorhanden, insbesondere PHP und Java. Die Pro-

grammiersprache JavaScript stellt hierbei eine Besonderheit dar, da JSON-Daten valide

JavaScript-Programme darstellen und daher ohne zusätzlichen Aufwand direkt gelesen und

verarbeitet werden können.

DataURI DataURI ist ein URI-Schema (data://), das das direkte Einfügen von binären

Daten erlaubt, so als wären sie extern eingebunden [24]. Dies ist insbesondere dann nütz-

lich, wenn die Menge an Daten gering und der Aufwand, die externen Daten zu laden, hoch

ist. Dies ist beispielsweise bei kleinen Icons in einem HTML-Dokument der Fall, wo der

6

Page 13: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

2.2 Datenschutz

Mehraufwand eines weiteren HTTP-Requests in keinem Verhältnis zur Menge der Daten

steht, einigen zehn bis hundert Bytes.

2.2 Datenschutz

Dieser Abschnitt erläutert rechtliche Grundlagen und Bedeutung des Datenschutzes im

Bezug auf die Datenerhebung beim Mobile Crowd Sensing.

In Deutschland gilt seit 1977 das Bundesdatenschutzgesetz (BDSG), dessen Zweck es

ist, „den Einzelnen davor zu schützen, dass er durch den Umgang mit seinen personen-

bezogenen Daten in seinem Persönlichkeitsrecht beeinträchtigt wird“ [40, §1 (1)]. Die aktu-

elle Fassung dieses Gesetzes setzt die Richtlinie 95/46/EG des Europäischen Parlaments

und des Rates vom 24. Oktober 1995 zum Schutz natürlicher Personen bei der Verarbeitung

personenbezogener Daten und zum freien Datenverkehr um.

Dem Interesse an der Erhebung von personenbezogenen Daten, etwa für akademische

Forschung, kommerzielle Nutzung durch Erstellung von Kundenprofilen oder Verbrechens-

bekämpfung durch Sicherheitsbehörden, steht das Recht auf informelle Selbstbestimmung

und der Datenschutz als Grundrecht gegenüber.

§ 4 Absatz 1 des BDSG [40] besagt, dass die Erhebung, Verarbeitung und Nutzung per-

sonenbezogener Daten prinzipiell verboten ist, außer sie ist explizit durch dieses Gesetz

erlaubt oder durch den Betroffenen ausdrücklich gestattet worden. Die explizit erlaubten

Fälle (§§ 12–14 BDSG) betreffen öffentliche Stellen, also Behörden. Für private oder akade-

mische Zwecke ist daher nahezu immer die Zustimmung des Betroffenen, meistens in Form

einer Registrierung der Benutzer, notwendig. Nichtöffentliche Stellen müssen die folgenden

drei Hauptprinzipien des Datenschutzes befolgen:

7

Page 14: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 2 Grundlagen

Sparsamkeit Es müssen so wenig personenbezogene Daten wie möglich erhoben wer-

den. Wenn möglich sollen diese Daten anonymisiert oder pseudonymisiert werden (§ 3a

BDSG).

Erforderlichkeit Sobald die Daten nicht mehr für die Erfüllung der vorgesehenen Aufgabe

erforderlich sind, sind sie zu löschen bzw. zu sperren (§ 35 BDSG).

Zweckbindung Erhobene Daten dürfen ausschließlich für den vorgesehenen Zweck ver-

wendet werden (§§ 31 und 39 BDSG).

Besonders vor dem Hintergrund der klinischen Forschung mit Mobile Crowd Sensing ist

es offensichtlich, dass persönliche Daten im Sinne des BDSG erhoben werden, und daher

diese Grundprinzipien befolgt werden müssen.

Weitere relevante Gesetze sind das Telemediengesetz (TMG) [41] und das Gesetz über

Rahmenbedingungen für elektronische Signaturen (SigG) [39]. Letzteres bleibt innerhalb

dieser Arbeit unberührt, da keine elektronischen Signaturen verwendet werden.

Im Telemediengesetz werden unter anderem Vorschriften zur Impressumspflicht und zur

Haftung im Falle von gesetzeswidrigen Inhalten gemacht. Da der konkrete Aufbau einer

Befragung nicht Teil dieser Arbeit ist, findet auch dieses Gesetz hier keine Anwendung.

2.3 Verwandte Arbeiten

Dieser Abschnitt sortiert die vorliegende Arbeit in den wissenschaftlichen Kanon einiger

Arbeiten zum Thema Mobile Crowd Sensing ein.

Der Artikel „Mobile crowdsensing: current state and future challenges“ [13] prägte zuerst den

Begriff „Mobile Crowd Sensing“. Ausgehend vom Begriff „Internet of Things“ wird gezeigt,

8

Page 15: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

2.3 Verwandte Arbeiten

dass Sensornetzwerke, bestehend aus Smartphones, sich qualitativ zu anderen Crowd Sen-

sing Applikationen durch die hohe Anzahl, Verfügbarkeit und der stetig steigenden Rechen-

kapazität von Smartphones sowie der Zunahme an verfügbaren Sensoren unterscheidet.

Ein großer Vorteil von Mobile Crowd Sensing liegt in der weiten Verbreitung von Smart-

phones. Es erübrigt sich, eine große Menge an Messgeräten und Sensoren an Teilnehmer

zu verteilen, da die Teilnehmer die benötigten Geräte bereits besitzen. Dadurch entfallen

Kosten für Anschaffung, Logistik und Wartung.

Mehrere Arbeiten beschäftigen sich mit dem Nutzen der gewonnenen Daten, etwa Smart

Cities [16], also vernetzte, reagierende Wohnumgebungen die beispielsweise proaktiv vor

Staus warnen, Stromnetze ausbalancieren oder medizinische Notfälle erkennen können.

Auch in der medizischen Forschung wird Mobile Crowd Sensing eingesetzt, etwa bei der

Tinnitus-Forschung [18, 30, 31].

Mit der Qualität der erhobenen Daten beschäftigen sich ebenfalls mehrere Arbeiten. So

wird die Verknüpfung von maschinell erhobenen Daten mit von Menschen erhobenen Daten

in sozialen Netzwerken beschrieben [15], sowie die Abdeckung möglichst großer räumli-

cher Bereiche durch optimale Übertragung und Weiterleitung der Daten [23]. Ein weiterer

Forschungsansatz ist die Einführung formaler Schemata in der Erhebung von Daten durch

Mobile Crowd Sensing [43].

Bereits existierende Mobile Crowd Sensing Applikationen sind beispielsweise McSense [36],

Medusa [32] und Apisense [17]. Hierbei werden unterschiedliche Schwerpunkte gesetzt,

etwa Benutzermotivation, Robustheit der Daten gegen Verfälschung und Einbeziehung des

Benutzers als Auslöser für Messungen bei McSense [35].

Medusa wird seit Juli 2014 nicht weiterentwickelt [25]. Der aktuelle Stand der Entwicklung

von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit März 2014 [6] nur

aus der Ankündigung „Coming soon“ besteht [5] und auch der Apisense-Twitteraccount seit

Januar 2013 keine Aktivität zeigt [4].

9

Page 16: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 17: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 3

Anforderungen an ein Mobile Crowd Sensing

Framework

In diesem Kapitel werden die funktionalen und nichtfunktionalen Anforderungen an das zu

erstellende Framework definiert.

3.1 Funktionale Anforderungen

Dieser Abschnitt definiert funktionale Anforderungen an das zu erstellende Framework.

AF1 (Aufbau als Fragebogen) Die Befragungen sollen in Form von Fragebögen stattfin-

den. Daher muss die Server-Software in der Lage sein, derartige Fragebögen zu erstellen

und an die Client-Software auszuliefern.

AF2 (Mobile Anwendung) Die Client-Software muss als Anwendung für Smartphones

konzipiert sein und die Fragebögen anzeigen, vom Benutzer ausfüllen lassen sowie die

Ergebnisse zurück an die Server-Software schicken können. Insbesondere müssen die

Fragebögen mit den begrenzten Ressourcen eines Smartphones verarbeitbar sein.

11

Page 18: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 3 Anforderungen an ein Mobile Crowd Sensing Framework

AF3 (Datenexport) Die Software muss über eine definierte Schnittstelle verfügen, die

das Exportieren der gesammelten Daten aus dem System erlaubt. Um potentiell große

und/oder lang laufende Befragungen zu unterstützen, muss diese Abfrage automatisch

erfolgen können, also ohne Eingreifen eines menschlichen Akteurs.

AF4 (Vollständigkeit) Da die Software unter anderem in klinischen Studien eingesetzt

werden können soll, muss sie gängige Befragungsmöglichkeiten unterstützen:

• Offene Fragen

• Geschlossene Fragen mit Einfach- und Mehrfachauswahl

• Numerische und verbale Ratingskalen

AF5 (Mehrsprachigkeit) Ein weiterer Aspekt der Universalität ist die Mehrsprachigkeit. So

muss die Server-Software es ermöglichen, Fragebögen ganz oder teilweise zu übersetzen.

Die Client-Software muss die Fragebögen entsprechend der eingestellten Präferenzen des

Benutzers anzeigen.

AF6 (Wiederaufnehmbarkeit) Die Client-Software muss in der Lage sein, Unterbrechun-

gen in der Bearbeitung der Fragebögen zuzulassen. Dies ist insbesondere deshalb wichtig,

da Smartphones hauptsächlich unterwegs genutzt werden und keine unterbrechungsfreie

Konzentration des Benutzers auf die Befragung vorausgesetzt werden kann.

AF7 (Rechteverwaltung) Mit der Software müssen den Benutzern unterschiedliche Rol-

len zugewiesen werden können, um eine grundlegende Rechteverwaltung zu ermöglichen.

Nur dazu authorisierte Benutzer dürfen Befragungen erstellen und verändern können bzw.

die Ergebnisse dieser Befragungen einsehen.

12

Page 19: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

3.2 Nichtfunktionale Anforderungen

3.2 Nichtfunktionale Anforderungen

Dieser Abschnitt definiert die nichtfunktionalen Anforderungen an das zu erstellende Fra-

mework.

NFA1 (Datenschutz) Die in Deutschland geltenden Bestimmungen zum Datenschutz

müssen durch Einhaltung der in Kapitel 2.2 diskutierten Hauptprinzipien des Datenschutzes

erfüllt werden.

NFA2 (Universalität) Die in Kapitel 2.3 vorgestellten Mobile Crowd Sensing Applikationen

sind insofern als Insellösungen zu betrachten, als dass sie jeweils nur spezielle, eng um-

rissene Probleme lösen. Ziel der zu erstellenden Software ist es, möglichst alle denkbaren

Anwendungsfälle abzudecken.

NFA3 (Erweiterbarkeit der Sensortypen) Noch vor einigen Jahren war die Vielzahl,

Genauigkeit und Verfügbarkeit von sensorbeladenen Smartphones undenkbar. Mit Blick

in die Zukunft muss es die Software daher erlauben, neue Sensoren und Sensortypen

unproblematisch einzubinden.

NFA4 (Bedienbarkeit) Die Bedienung sowohl der Client-Software auf dem Smartphone,

als auch die Software zur Erstellung, Wartung und Auswertung der Befragung im Webbrow-

ser sollte intuitiv und übersichtlich sein.

NFA5 (Wartbarkeit) Da die Software als Framework konzipiert wird, ist es besonders

wichtig, den Quellcode gemäß der üblichen Best Practices des Software-Engineering zu

strukturieren, dokumentieren und, wo möglich, ausschließlich Standardkomponenten zu

verwenden. Dadurch soll erreicht werden, dass die Software in der Zukunft von Dritten

einfach gewartet werden kann.

13

Page 20: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 3 Anforderungen an ein Mobile Crowd Sensing Framework

NFA6 (Erweiterbarkeit der Fragetypen) Die in Anforderung AF3 genannten Fragetypen

stellen keine vollständige Liste aller existierenden Fragetypen dar. Sollten daher für einen

Anwendungsfall zusätzliche Fragetypen benötigt werden, muss das Framework mit wenig

Aufwand um weitere Fragetypen erweitert werden können.

14

Page 21: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 4

Systemarchitektur

Aus den in Kapitel 3 dargelegten Anforderungen an ein Mobile Crowd Sensing Framework

wird in diesem Kapitel die Architektur des Systems erarbeitet.

4.1 Komponenten

Im Rahmen dieser Arbeit wurde die Software „Monitor“ (Mobile Crowd Sensing Evaluation

Framework) entwickelt. Dieses Framework besteht aus einer Client- und einer Server-

Software.

Eine Applikation für das Betriebssystem Android stellt gemäß AF2 (Mobile Anwendung) die

Client-Software dar. Diese wird von den Teilnehmern der Befragung verwendet, um Daten zu

erheben. Sie ist in der Lage, die erhobenen Daten zu speichern und an die Server-Software

zur Verarbeitung zu schicken. Die Client-Software ist außerdem in der Lage, nach dem

Abschicken der Daten Rückmeldung durch die Server-Software, wie etwa Auswertungen

zu empfangen und anzuzeigen. Ebenfalls ist es möglich, die Befragungen zu aktualisieren,

falls diese auf dem Server verändert wurden, etwa bei nachträglichen Korrekturen.

Die Server-Software besteht aus einer Datenbank, Anwendungslogik und Web-Interface für

die Erstellung, Wartung und Übersetzung der Befragungen. Über das Web-Interface können

15

Page 22: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 4 Systemarchitektur

die Benutzer des Systems außerdem die erhobenen Daten anzeigen und exportieren und

die Verwaltung der Benutzer vornehmen.

Autor

Fragebogenerstellen

Fragebogen

in Bearbeitung

Fragebogenbearbeiten

Fragebogenübersetzen

Fragebogen

für Befragerfreigeben

für Befragtefreigeben

Fragebogenausfüllen Antworten

anonymisieren

Antworten

anonymisiertauswerten

auswerten

Übersetzer

Admin

Befrager

Teilnehmer

Server

Analyst

Resultat

Resultaterhalten

Resultaterhalten

Nein

Ja

Fertig?

Abbildung 4.1: Der Ablauf einer Befragung als Aktivitätsdiagramm.

Abbildung 4.1 stellt den Ablauf einer Befragung mit Monitor als Aktivitätsdiagramm dar: Zu-

nächst erstellt ein Autor mit der Server-Software in seinem Browser einen Fragebogen, siehe

AF1 (Aufbau als Fragebogen). Dieser Fragebogen kann anschließend von einem Überset-

zer übersetzt und von einem Autor bearbeitet werden. Wenn der Fragebogen fertig ist und

die Befragung durchgeführt werden soll, wird der Fragebogen von einem Administrator für

16

Page 23: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

4.2 Datenbank

die Befrager freigeschaltet. Diesen Befragern wiederum sind die Teilnehmer zugeordnet,

welche nun den Fragebogen auf ihr Smartphone herunterladen können.

Ausgefüllte Fragebögen werden schließlich zum Server hochgeladen, ausgewertet und das

Ergebnis Teilnehmer und Befrager mitgeteilt. Die ausgefüllten Fragebögen werden zusätz-

lich in anonymisierter Form (siehe Kapitel 5.2) gespeichert und Analysten zur Auswertung

zur Verfügung gestellt.

4.2 Datenbank

Dieser Abschnitt beschreibt den Aufbau der verwendeten Datenbank.

Survey

Evaluation

Language

Result

id iso english native

n 1

1 n

1 n

id condition positive negative

failure

id json

id

title

json

Abbildung 4.2: Ausschnitt des ER-Diagramms der Datenbank mit Fokus auf den Beziehun-gen zwischen Fragebogen, Auswertung und Resultate.

Abbildungen 4.2 und 4.3 stellen jeweils einen Ausschnitt der Relationen der Datenbank

grafisch als ER-Diagramm dar. Die zentrale Relation der Datenbank ist der „Survey“ (Fra-

gebogen), dem eine eindeutige Identifikationsnummer, ein Titel, die Fragebogenelemente

17

Page 24: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 4 Systemarchitektur

im JSON-Format, sowie eine Basissprache („Language“) zugeordnet ist. Die Basissprache

eines Fragebogens ist diejenige Sprache, in der der Fragebogen ursprünglich erstellt wurde.

Sie dient zudem als Ausweichlösung, falls der Fragebogen nur teilweise übersetzt wurde.

„Evaluation“ (Auswertung) sind Regeln, mittels derer der Server bereits ausgefüllte Frage-

bögen automatisiert auswertet. Die Antworten des Teilnehmers werden in die „Condition“

(Bedingung) der Auswertungen eingesetzt. Abhängig davon, ob die Bedingung nun erfüllt ist

oder nicht oder ein Fehler bei der Auswertung auftrat, wird der entsprechende Textbaustein

„positive“, „negative“ oder „failure“ ausgegeben.

Die ausgefüllten, anonymisierten Fragebögen werden in der Relation „Result“ zur späteren

Auswertung durch Analysten gespeichert.

UserSurvey

role

m nsubmitter-supervisor

m nanalyst-survey

m nsubmitter-survey

m nsupervisor-survey

id name email password

admin author analyst

supervisorsubmitter translator

Abbildung 4.3: Ausschnitt des ER-Diagramms der Datenbank mit Fokus auf den Beziehun-gen zwischen den verschiedenen Benutzerrollen.

Die verwendeten Begriffe „Administrator“, „Autor“ und „Befrager“ sind Rollen, die ein Monitor-

Benutzer innehaben kann. Wie in Abbildung 4.3 ersichtlich, existieren die Rollen „Admin“

(Administrator), „Author“ (Autor), „Analyst“, „Submitter“ (Teilnehmer), „Supervisor“ (Befrager)

und „Translator“ (Übersetzer). Es ist möglich, dass ein Benutzer mehrere Rollen gleichzeitig

inne hat.

18

Page 25: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

4.3 Datenformat der Fragebögen

Die dargestellten m-zu-n-Beziehungen repräsentieren die Zuordnung von Teilnehmer zu

Befrager („submitter-supervisor“), Befrager zu Fragebogen („supervisor-survey“) und Teil-

nehmer zu Fragebogen („submitter-survey“) dar. Die Beziehung „analyst-survey“ definiert,

welcher Analyst die anonymisierten Ergebnisse welcher Fragebögen einsehen darf.

4.3 Datenformat der Fragebögen

In diesem Abschnitt wird das Datenformat der Fragebögen erläutert.

Wie in Abschnitt 4.1 dargestellt, werden die eigentlichen Inhalte der Fragebögen im JSON-

Format in der Datenbank gespeichert. Ein Fragebogen besteht aus einer Liste von Frage-

bogen-Elementen, die von jeweils einem JSON-Objekt repräsentiert werden. JSON-Objekte

bestehen aus Key-Value-Paaren. Ein Key-Value-Paar mit dem Key „type“ ist stets vorhanden

und definiert den Typ des jeweiligen Elements. Dies ist notwendig, da JSON nicht über die

Möglichkeit verfügt, eigene Datentypen zu definieren.

Im Folgenden werden die unterschiedlichen Typen an Fragebogen-Elementen aufgezählt

und die jeweiligen relevanten Key-Value-Paare dokumentiert. Diese Liste enthält die in AF4

(Vollständigkeit) genannten Fragetypen und erfüllt daher diese Anforderung. Anschließend

wird die JSON-Repräsentation eines Beispielfragebogens analysiert.

Überschrift

Key Value

type „header“

text Übersetzungen der Überschrift

19

Page 26: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 4 Systemarchitektur

Textblock

Key Value

type „text“

text Übersetzungen des Textblocks

Trenner

Key Value

type „divider“

Seitenumbruch

Key Value

type „pagebreak“

Bild

Key Value

type „image“

image Bilddaten als DataURI

20

Page 27: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

4.3 Datenformat der Fragebögen

Offene Frage

Key Value

type „textinput“

varname Variablenname

inputtype 0 für einzeiligen Text,

1 für mehrzeiligen Text,

2 für Passworteingaben,

3 für Datumseingaben,

4 für Uhrzeiten,

5 für Zahlen

text Übersetzungen für den angezeigten Hilfstext

optional 0 für mandatorische Eingaben,

1 für optionale Eingaben

Geschlossene Frage

Key Value

type „question“

varname Variablenname

min Mindestzahl an zu gebenden Antworten

max Höchstzahl an zu gebenden Antworten

options Liste an Antwortmöglichkeiten:

Key Value

value Zahlwert der Antwort

text Übersetzungen des Antworttextes

Lautet der Antworttext einer Antwortmöglichkeit „INPUT“, so wird

ein Eingabefeld statt des Antworttextes angezeigt und der Befragte

kann eine eigene Antwort eingeben.

21

Page 28: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 4 Systemarchitektur

Ratingskalen

Key Value

type „rating“

varname Variablenname

left Übersetzungen für den Text des linken Pols

right Übersetzungen für den Text des rechten Pols

min Minimaler Zahlwert

max Maximaler Zahlwert

value Initialer Zahlwert

step Schrittgröße zwischen min und max

display 1 wenn das Rating seinen Wert anzeigen soll,

0 wenn das Rating seinen Wert nicht anzeigen soll

mapping Liste an Abbildungen von Zahlwerten auf angezeigten Text:

Key Value

value Zahlwert der Antwort

text Übersetzungen des Antworttextes

Dateiauswahl

Key Value

type „fileupload“

varname Variablenname

size Maximale Dateigröße in Byte

optional 0 für mandatorische Eingaben,

1 für optionale Eingaben

22

Page 29: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

4.3 Datenformat der Fragebögen

Sensordaten

Key Value

type „sensor“

varname Variablenname

options Sensoroptionen

optional 0 für mandatorische Eingaben,

1 für optionale Eingaben

1 [{2 "type" : "header",3 "text" : { "2" : "Fragen zur Kundenzufriedenheit" }4 }, {5 "type" : "text",6 "text" : { "2" : "Würden Sie Produkt XYZ weiterempfehlen?" }7 }, {8 "type" : "question",9 "varname" : "question",

10 "min" : 1,11 "max" : 1,12 "options" : [{13 "value" : 0,14 "text" : { "2" : "Ja" }15 }, {16 "value" : 1,17 "text" : { "2" : "Vielleicht" }18 }, {19 "value" : 2,20 "text" : { "2" : "Nein" }21 }]22 }]

Abbildung 4.4: JSON-Repräsentation der Elemente eines Beispielfragebogens.

Abbildung 4.4 zeigt ein Beispiel für die Elemente eines kleinen Fragebogens mit einer

Überschrift, einem Text und einer Frage mit drei Antwortmöglichkeiten. Der Fragebogen ist

nicht übersetzt, es existieren nur die Texte für die Sprache Nummer 2, der Basissprache des

Fragebogens. Die Frage muss mit genau einer Antwort beantwortet werden (min und max

sind beide „1“). Ein ausführlicheres Beispiel, das alle Elementtypen verwendet, befindet sich

in Anhang A.

23

Page 30: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 4 Systemarchitektur

Dieses Datenformat erlaubt die Einführung neuer Fragetypen durch Erweiterung der mög-

lichen Werte des „type“ Feldes der Elemente, erfüllt also Anforderung NFA6 (Erweiterbarkeit

der Fragetypen).

4.4 REST-Schnittstelle

Dieser Abschnitt beschreibt die REST-Schnittstelle [11], über die Client- und Server-Software

miteinander kommunizieren. Zudem können Analysten über diese Schnittstelle die für sie

freigegebenen und anonymisierten Daten aus dem System exportieren, wodurch AF3 (Da-

tenexport) erfüllt wird.

Die Rechtslage bestimmt, dass die Übertragung von persönlichen Daten verschlüsselt erfol-

gen muss (siehe Kapitel 2.2), so dass kein Dritter Zugriff auf diese Daten erhält. Um diese

Anforderung zu erfüllen, erfolgt die Kommunikation zwischen Server und Client ausschließ-

lich über HTTPS [33].

Das Datenformat der Schnittstelle ist ebenfalls JSON. Für jede Abfrage müssen die E-

Mail-Adresse und das Passwort eines Benutzers als HTTP-GET-Parameter „email“ und

„password“ angegeben werden.

24

Page 31: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

4.4 REST-Schnittstelle

Herunterladen der Liste der verfügbaren Fragebögen:

GET api/surveys

Rückgabewert ist ein assoziatives Array von Objekten, die die Kopfdaten der für den Teil-

nehmer freigegebenen Fragebögen darstellen. Die Schlüssel entsprechen jeweils der Iden-

tifikationsnummer des Fragebogens. Authentifizieren E-Mail und Passwort keinen Teilnemer

im System oder tritt ein anderer Fehler auf, so wird der HTTP-Fehlercode entsprechend

gesetzt. Datenformat der Objekte:

Key Value

title Titel des Fragebogens

updated Zeitstempel der letzten Änderung

Beispielhafte Antwort der Server-Software:

1 {

2 "1" : {

3 "title" : "Minifragebogen aus Objekten",

4 "updated" : 1439673672

5 },

6 "2" : {

7 "title" : "\u00dcbersetzungen",

8 "updated" : 1439673672

9 },

10 "3" : {

11 "title" : "Demofragebogen",

12 "updated" : 1439673672

13 }

14 }

25

Page 32: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 4 Systemarchitektur

Herunterladen eines Fragebogens:

GET api/survey/{survey_id}

Rückgabewert ist der Fragebogen mit der gegebenen Identifikationsnummer „survey_id“.

Authentifizieren E-Mail und Passwort keinen Teilnehmer im System, ist der Fragebogen

nicht für den Teilnehmer freigegeben oder tritt ein anderer Fehler auf, so wird der HTTP-

Fehlercode entsprechend gesetzt. Datenformat des Objekts:

Key Value

updated_at Zeitstempel der aktuellen Fassung

language Identifikationsnummer der Basissprache des Fragebogens

json Fragebogen-Elemente im JSON-Datenformat gemäß Kapitel 4.2

Für ein Beispiel der Antwort der Server-Software siehe Abbildung 4.4 in Kapitel 4.3.

Absenden der Daten eines ausgefüllten Fragebogens:

POST api/result/{survey_id}

Die gegebenen Antworten müssen, im JSON-Datenformat, als HTTP-POST-Parameter

„result“ übergeben werden.

Rückgabewert ist die Auswertung der Antworten durch den Server, mittels der in Kapitel 4.1

erwähnten Regeln. Üblicherweise ist dies ein HTML-Dokument. Zusätzlich wird die Auswer-

tung per E-Mail an die zugeordneten Befrager des Teilnehmer gesandt.

Authentifizieren E-Mail und Passwort keinen Teilnehmer im System, ist der Fragebogen

nicht für den Teilnehmer freigegeben oder tritt ein anderer Fehler auf, so wird der HTTP-

Fehlercode entsprechend gesetzt.

26

Page 33: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

4.4 REST-Schnittstelle

Herunterladen der anonymisierten Antworten für einen Fragebogen:

GET api/result/{survey_id}

Rückgabewert ist ein Array von Objekten, die die Antworten auf den gegebenen Frage-

bogen darstellen. Authentifizieren E-Mail und Passwort keinen Analyst im System, ist der

Fragebogen nicht für den Analyst freigegeben oder tritt ein anderer Fehler auf, so wird der

HTTP-Fehlercode entsprechend gesetzt.

Key Value

id Identifikationsnummer der Antwort

survey_id Identifikationsnummer des Fragebogens

created_at Datum der Erstellung der Antwort

updated_at Datum der letzten Änderung der Antwort

json Gegebene Antworten im JSON-Datenformat

Beispielhafte Antwort der Server-Software:

1 [

2 {

3 "id" : 2

4 "survey_id" : 3,

5 "updated_at" : "2015-10-19 13:17:32",

6 "created_at" : "2015-10-19 13:17:32",

7 "json" : "..."

8 },

9 {

10 "id" : 7

11 "survey_id" : 3,

12 "updated_at" : "2015-10-19 13:33:29",

13 "created_at" : "2015-10-19 13:33:29",

14 "json" : "..."

15 },

16 ]

27

Page 34: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 4 Systemarchitektur

Abfrage der vorhandenen Sprachen:

GET api/languages

Rückgabewert ist ein Array von Objekten, die die vorhandenen Sprachen darstellen. Au-

thentifizieren E-Mail und Passwort keinen Benutzer im System oder tritt ein anderer Fehler

auf, so wird der HTTP-Fehlercode entsprechend gesetzt. Datenformat der Objekte:

Key Value

id Identifikationsnummer

iso ISO-Ländercode [28]

english Name der Sprache auf englisch

native Name der Sprache in der jeweiligen Sprachen

created_at Datum der Erstellung des Fragebogens

updated_at Datum der letzten Änderung des Fragebogens

image Bilddaten eines Icons oder einer Flagge, die die Sprache repräsen-

tiert als DataURI

Beispielhafte Antwort der Server-Software:

1 {

2 "1" : {

3 "id" : 1,

4 "created_at" : "2015-08-15 21:21:12",

5 "updated_at" : "2015-08-15 21:21:12",

6 "iso" : "en",

7 "english" : "english",

8 "native" : "english",

9 "image" : "data:image\/png;base64,..."

10 },

11 "2" : {

12 "id" : 2,

13 "created_at" : "2015-08-15 21:21:12",

14 "updated_at" : "2015-08-15 21:21:12",

28

Page 35: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

4.4 REST-Schnittstelle

15 "iso" : "de",

16 "english" : "german",

17 "native" : "deutsch",

18 "image":"data:image\/png;base64,..."

19 },

20 "3" : {

21 "id" : 3,

22 "created_at" : "2015-08-15 21:21:12",

23 "updated_at" : "2015-08-15 21:21:12",

24 "iso" : "fr",

25 "english" : "french",

26 "native" : "fran\u00e7ais",

27 "image":"data:image\/png;base64,..."

28 }

29 }

29

Page 36: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 37: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 5

Implementierung der Server-Software

In diesem Kapitel wird die für die Programmierung der Server-Software verwendete Soft-

warebibliothek Laravel und die Verwendung der Server-Software beschrieben.

5.1 Laravel

In diesem Abschnitt wird die verwendete Softwarebibliothek Laravel vorgestellt.

Die Server-Software wurde in PHP (Version 5.5.9) unter Verwendung des Frameworks

„Laravel“ [22] (Version 5.1) geschrieben. PHP ist eine an C und Perl angelehnte Skriptspra-

che, die bei den meisten Webhostern vorinstalliert ist (Verfügbarkeit: 81.5% [38]). Dies erfüllt,

im Gegensatz zu Lösungen mit etwa Apache Tomcat (Verfügbarkeit: 3% [38]), Anforderung

NFA5 (Wartbarkeit).

Laravel ist eine Softwarebibliothek für PHP, das dem Model-View-Controller-Muster [12] folgt

und die Programmierung mit PHP vereinfacht bzw. die Fähigkeiten von PHP erweitert, etwa

durch Abstraktion der Datenbankanbindung.

Laravel zeichnet sich durch hervorragende Dokumentation und Lehrmaterialen, etwa den

„Laracasts“ [21] genannten Lehrvideos, Unit-Tests und der freizügigen Lizenzierung aus.

31

Page 38: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 5 Implementierung der Server-Software

Die Erzeugung eines neuen Laravel-Projektes geschieht durch Composer [9], einem Paket-

manager für PHP:

composer create-project laravel/laravel your-project-name

Das Model-View-Controller-Muster [12] besagt, dass die Trennung von Daten (Model),

Präsentation (View) und die Programmsteuerung (Controller) flexible und skalierbare Anwen-

dungen ermöglichen.

Das Datenmodell wird in Laravel von „Eloquent“ bereitgestellt. Diese Komponente ermög-

licht den objektorientierten Zugriff auf Relationen der Datenbank und stellt häufige Opera-

tionen, wie das Suchen bestimmter Elemente, Einfüge- oder Löschoperationen unabhängig

von der zugrunde liegenden Datenbank, etwa MySQL, SQLite oder PostgreSQL, bereit.

Mit „Blade“ steht in Laravel eine umfangreiche Template-Engine bereit, die den Aufwand der

Präsentation dieser Daten stark reduziert: Über eine spezielle Syntax (doppelte geschweifte

Klammern) können PHP-Code und Blade-Kontrollstrukturen zusammen in (HTML-) Doku-

menten eingebettet werden.

Die Programmsteuerung wird in Laravel durch Controller gehandhabt. Diese werden durch

sogenannte Routen (Routes) einer oder mehreren URIs zugeordnet. Insbesondere die

Erstellung von REST-Schnittstellen [11] zur Verwaltung von Ressourcen ist so sehr komfor-

tabel möglich.

5.2 Verwendung

In diesem Abschnitt wird die Verwendung der Server-Software beschrieben.

Die hauptsächliche Aufgabe der Administratoren der Server-Software ist die Verwaltung der

Systemsprachen und der Benutzer. Abbildung 5.1 zeigt die Administrationsoberfläche für

einen Beispielbenutzer. Angezeigt wird der Name, die E-Mail-Adresse des Benutzers sowie

die ihm zugeordneten Rollen. Da der Benutzer die Rolle „Befrager“ (Supervisor) inne hat,

32

Page 39: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

5.2 Verwendung

Abbildung 5.1: Benutzerverwaltung mit Monitor.

wird zusätzlich eine Liste an Fragebögen angezeigt, zu deren Verteilung dieser Benutzer

berechtigt ist. Schaltflächen für die Bearbeitung dieser Liste sind vorhanden.

Wie aus Abbildung 4.1 in Kapitel 4 ersichtlich, ist der erste Schritt in einer Befragung die

Erstellung bzw. Bearbeitung eines Fragebogens durch einen Autor. Abbildung 5.2 zeigt

die Oberfläche zur Erstellung und Bearbeitung von Fragebögen. Unter den Kopfdaten, wie

dem Titel und der Basissprache des Fragebogens, werden die einzelnen Elemente des

Fragebogens angezeigt. Auf der rechten Seite befindet sich ein Katalog von Fragebogen-

Elementen, die per Drag-and-Drop in den Fragebogen gezogen werden können. Ebenfalls

per Drag-and-Drop lässt sich die Reihenfolge der Elemente verändern.

Zu sehen ist ebenfalls für jedes Element im Fragebogen eine Schaltfläche zum Entfer-

nen des jeweiligen Elements und für das Eingabeelement „geschlossene Frage“ (Closed

question) eine Schaltfläche, die die Sichtbarkeit der zu gebenden Antwort auf diese Fra-

ge bestimmt (offenes oder geschlossenes Auge-Symbol). Hier kann zwischen „öffentlich“

(public) und „privat“ (private) gewählt werden. Öffentliche Antworten stehen Analysten zur

Verfügung, private Antworten (bei denen dieses boolesche Flag gesetzt ist) werden aus den

Resultaten ausgefiltert, siehe Anforderung NFA1 (Datenschutz).

33

Page 40: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 5 Implementierung der Server-Software

Abbildung 5.2: Oberfläche zur Erstellung und Bearbeitung von Fragebögen.

34

Page 41: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

5.2 Verwendung

Übersetzer können im Gegensatz zu Autoren die Struktur des Fragebogens nicht ändern,

sondern nur die Texte der existierenden Elemente editieren. Es ist Autoren möglich, den

Fragebogen zu editieren, wenn die Übersetzung bereits begonnen wurde, wobei allerdings

die Übersetzungen editierter Elemente ganz oder teilweise verloren gehen. Die Überset-

zungsoberfläche für Fragebögen ist in Abbildung 5.3 dargestellt. Zu sehen ist, dass im

System die Sprachen Englisch, Deutsch und Französisch eingestellt sind und der gerade

übersetzte Text zu einem Fragebogen gehört, der in deutscher Sprache erstellt wurde.

Abbildung 5.3: Übersetzung eines Fragebogenelements.

Da für Französisch noch keine Übersetzung existiert, ist dieses Feld farblich besonders

hervorgehoben und der Originaltext als Hilfestellung für den Übersetzer eingeblendet. Dies

erfüllt Anforderung AF5 (Mehrsprachigkeit).

35

Page 42: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 5 Implementierung der Server-Software

Abbildung 5.4: Bearbeitung einer Regel zur automatischen Auswertung der Fragebögen.

Der letzte Schritt vor der Fertigstellung eines Fragebogens ist die Programmierung der

Auswertung der Antworten durch einen Autor. Abbildung 5.4 zeigt eine solche Auswertung.

In der Bedingung (Condition), den beiden Fällen für erfüllte und nicht erfüllte Bedingungen

(Positive und Negative) sowie dem Fehlerfall (Failure) können die Antworten als Variablen

verwendet werden und mit HTML zur Anzeige formatiert werden.

Bei der automatischen Auswertung wird aus der Liste der Antworten wird eine Ersetzungs-

liste generiert, die jeweils dem varname genannten Feld eines Elementes den Wert der

Antwort zuordnet. Da geschlossene Fragen mehr als eine Antwort haben können, wird

dieser Fall besonders behandelt.

Für jede Antwortmöglichkeit der geschlossenen Frage werden zwei Ersetzungen gene-

riert, jeweils nach dem Muster varname_nummer und varname_nummer_text, wobei

„varname“ der verwendete Variablenname und „nummer“ der Zahlwert der Antwort. Für den

Beispielfragebogen aus Abbildung 4.4 in Kapitel 4.3 sähe die Ersetzungsliste bei Auswahl

der Antwort „Ja“ folgendermaßen aus:

36

Page 43: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

5.2 Verwendung

Variable Ersetztung

question_0 true

question_0_text ”Ja”

question_1 false

question_1_text ”Vielleicht”

question_2 false

question_2_text ”Nein”

varname_nummer enthält jeweils einen booleschen Wert, ob die entsprechende Antwort

ausgewählt wurde oder nicht. varname_nummer_text beinhaltet jeweils den Antworttext.

Dieser ist bei Ergänzungsmöglichkeiten (Antworttext INPUT, siehe Kapitel 4.3) mit dem Text

der gegebenen Ergänzung gefüllt.

37

Page 44: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 45: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 6

Implementierung der Client-Software

In diesem Kapitel wird der Aufbau einer Android-Anwendung und die Verwendung der

erstellten Applikation beschrieben.

6.1 Aufbau einer Android-Anwendung

Jede Android-Anwendung besteht aus einer oder mehreren Aktivitäten (Activity). Eine Aktivi-

tät entspricht einer Bildschirmmaske und soll gemäß der Android Design Guidelines genau

einen wohldefinierten Zweck erfüllen [1].

Die Oberfläche einer Aktivität wird durch ihre Layout-Datei im XML-Format definiert. Diese

Dateien können von Hand erstellt werden, es gibt aber auch Programme, wie Android Stu-

dio [3], mit denen Layout-Dateien grafisch im Baukastenprinzip zusammengestellt werden

können.

Neben der Entkopplung von Präsentation und Programmsteuerung ist ein weiterer Vorteil,

dass in Android mehrere Layout-Dateien für die selbe Aktivität definiert werden können.

Diese können für verschiedene Bildschirmgrößen angepasst werden. Android wählt dann

zur Laufzeit das zur Bildschirmgröße und -orientierung am besten passende Layout für die

Präsentation der Daten. Auf diese Weise wird erreicht, dass Android-Anwendungen den

verfügbaren Bildschirmplatz stets optimal nutzen können.

39

Page 46: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 6 Implementierung der Client-Software

Texte in Layouts, etwa für Beschriftungen, werden nicht direkt eingefügt, sondern über den

Umweg eines symbolischen Markers. Erst zur Laufzeit des Programmes werden aus einer

weiteren XML-Datei die zu den Markern gehörenden Texte geladen. Ähnlich wie bei den

Layout-Dateien können mehrere Sprachdateien mit Texten für unterschiedliche Sprachen

definiert werden. Dies vereinfacht die Übersetzung von Android-Programmen erheblich.

Das Wechseln, Aufrufen und die Interaktion zwischen Aktivitäten findet durch Intents (Ab-

sichtserklärungen) statt. Android unterscheidet zwischen impliziten und expliziten Intents.

Explizite Intents interagieren mit einer ausdrücklich genannten Aktivität, die durch ihre Java-

Klasse adressiert wird. Implizite Intents bestehen aus einem Aktionsverb aus einer vorge-

gebenen Liste, einem MIME-Datentyp und beliebigen Daten. Abhängig vom Aktionsverb

kann die Angabe des Datentyps optional sein. Android wählt selbstständig aus der Liste der

im System installierten Aktivitäten diejenigen, die angeben, die Kombination aus Aktions-

verb und Datentyp / Daten handhaben zu können, zeigt dem Benutzer gegebenenfalls eine

Auswahlliste der möglichen Aktivitäten an und startet letztlich diese [1].

Ein implizites Intent mit dem Aktionsverb „view“ (ansehen), dem Datentyp „text/html“

und einer URL als Daten startet beispielsweise einen Webbrowser, unabhängig davon,

welchen Browser der Benutzer installiert hat. Dies führt zu robusteren Programmen, da

Abhängigkeiten zu konkreten Softwarepaketen vermieden und durch Abhängigkeiten zu

Funktionalitäten ersetzt werden.

6.2 Hauptmenü

Das Hauptmenü und gleichzeitig die Startaktivität der Applikation ist in Abbildung 6.1 (links)

dargestellt. Zwei Fragebögen, „Demofragebogen“ und „Übersetzungen“, stehen zur Auswahl.

Von einem Fragebogen liegt eine ausgefüllte Instanz vor, die entweder weiterbearbeitet

oder abgeschickt werden kann. Anforderung AF6 (Wiederaufnehmbarkeit) wurde erfüllt. Die

verwendeten Symbole sind aus dem „Tango“-Iconset [37], einer Sammlung an gemeinfreien

Icons, entnommen und wurden für diese Anwendung angepasst.

40

Page 47: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

6.2 Hauptmenü

Abbildung 6.1: Hauptmenü (links) und Archiv (rechts) der Android-Anwendung.

Über das Menü (Button oben rechts) können Einstellungen vorgenommen, die Liste an

Fragebögen aktualisiert und auf das Archiv der Resultate zugegriffen werden. Das Archiv

ist in Abbildung 6.1 (rechts) zu sehen. Durch Antippen der Einträge können die vom Server

zurückgeschickten Auswertungen der Befragungen erneut eingesehen werden. Hierbei

handelt es sich um statische HTML-Dateien, die vom Browser des Benutzers angezeigt

werden können.

41

Page 48: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 6 Implementierung der Client-Software

6.3 Einstellungen

Mehrere Einstellungen können in der Client-Software vorgenommen werden. Die Angabe

von E-Mail-Adresse und Passwort authentifizieren den Benutzer gegenüber der Server-

Software und sind für die Benutzung des Programms unabdingbar. Wie in Anforderung

AF7 (Rechteverwaltung) festgelegt, dürfen nur registrierte und authentifizierte Benutzer auf

die Befragungen zugreifen.

Abbildung 6.2: Einstellungsmöglichkeiten (links) und Auswahl der bevorzugten Sprache(rechts) der Android-Anwendung.

Die in Abbildung 6.2 dargestellte Liste an Einstellungen wird aus einer XML-Datei erzeugt.

Sie erlaubt die automatische Zuordnung von Menüpunkten zu typisierten Einträgen in einer

42

Page 49: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

6.4 Bearbeiten der Fragebögen

anwendungslokalen Datenbank, es ist also keine weitere manuell zu erstellende Anwen-

dungslogik notwendig. Eine Ausnahme bildet die ebenfalls in Abbildung 6.2 (rechts) dar-

gestellte Auswahlliste an zur Verfügung stehenden Sprachen. Diese Liste wird durch die

Server-Software definiert und musste durch eine weitere Aktivität programmiert werden.

Weitere Einstellungen sind die Möglichkeit, die Liste an verfügbaren Fragebögen automa-

tisch bei Programmstart aktualisieren zu lassen und die Angabe des zu verwendenden

Monitor-Servers. Auf diesem Framework aufbauende Systeme könnten diese Einstellungs-

möglichkeit ausblenden und die Adresse des Servers fest in die Client-Software einprogram-

mieren, um eine falsche Server-Adresse als mögliche Fehlerquelle auszuschließen.

6.4 Bearbeiten der Fragebögen

Abbildung 6.3 zeigt das Ausfüllen eines Fragebogens. Auf der rechten Seite werden ver-

schiedene Anwendungsmöglichkeiten der Ratingskala demonstriert: Als gewöhnliche Schie-

beleiste, mit der ein Wert zwischen zwei Extrema ausgewählt werden kann, wobei der aktuell

gewählte Wert optional nicht angezeigt wird. Die beiden Extrema, auch Pole genannt, kön-

nen zur besseren Verständlichkeit beschriftet werden. Ebenfalls wird demonstriert, dass der

angezeigte Wert auf Texte abgebildet werden kann. Dies ermöglicht etwa das klassische

Frageschema, bei dem vom Benutzer der Grad der Zustimmung zu gegebenen Aussagen

abgefragt wird. Statt den Zahlen 1 bis 5 werden dem Benutzer sinnvolle Texte angezeigt,

etwa „Stimme größtenteils zu“ statt „4“.

Ebenfalls in Abbildung 6.3 sind mehrere Anwendungsmöglichkeiten der geschlossenen Fra-

ge demonstriert. Zu erkennen ist, dass Fragen, bei denen genau eine Antwort erwartet wird

(single choice), als „Radiobutton“ dargestellt werden. Im Gegensatz dazu werden Fragen,

bei denen mehrere oder auch keine Antwortmöglichkeit gegeben werden können (multi-

ple choice), als „Checkbox“ dargestellt. Dies entspricht der Erwartung des Benutzers, da

gängige Konventionen eingehalten werden.

43

Page 50: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 6 Implementierung der Client-Software

Abbildung 6.3: Ausfüllen eines Fragebogens.

Zwei der dargestellten Fragen beinhalten vom Benutzer ergänzbare Optionen. Dies wird ge-

nutzt, um die Validierung der Daten durch die Client-Software zu demonstrieren. Fehlerhafte

Eingabefelder, etwa nicht ausgefüllte aber mandatorische Felder oder, wie im Beispiel, eine

ausgewählte aber nicht ausgefüllte Ergänzungsoption, werden rot hinterlegt und mit einer

Fehlermeldung annotiert. Der Fragebogen kann erst dann weiter ausgefüllt werden, wenn

die beanstandeten Elemente korrigiert werden. Alle in Kapitel 4.3 genannten Elemente, die

ein optional-Feld besitzen, werden validiert, insbesondere also offene und geschlossene

Fragen, Dateiauswahl und Sensordaten.

Der Fortschrittsbalken in der rechten oberen Ecke und die Angabe über die aktuelle Seite

und Gesamtseitenzahl geben dem Benutzer Aufschluss über den Fortschritt dieser Befra-

44

Page 51: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

6.4 Bearbeiten der Fragebögen

gung. Ist der Benutzer auf der letzten Seite angekommen, so schickt ein weiteres Antippen

der „nächste Seite“-Schaltfläche die gegebenen Antworten an die Server-Software ab. So-

bald die Resultate empfangen sind, werden diese angezeigt und zusätzlich als Archivdatei

(siehe Kapitel 6.2) gespeichert. Die Bearbeitung des Fragebogens ist damit abgeschlos-

sen.

45

Page 52: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 53: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 7

Fazit und Ausblick

In diesem Kapitel wird ein Fazit aus den Ergebnissen der Arbeit gezogen und die Erfüllung

der Anforderungen aus Kapitel 3 überprüft. Anschließend wird ein Ausblick auf mögliche

aufbauende Arbeiten gegeben.

7.1 Fazit

In diesem Abschnitt wird die Erfüllung der Anforderungen aus Kapitel 3 überprüft.

AF1 (Aufbau als Fragebogen) Die Anforderung wurde voll erfüllt. Die Befragungen finden

in der Form von Fragebögen statt, die Server-Software ist in der Lage, diese Fragebögen

zu erstellen, auszuwerten und zu verwalten.

AF2 (Mobile Anwendung) Die Anforderung wurde voll erfüllt. Die Client-Software ist in

der Lage, die Fragebögen herunter zu laden, anzuzeigen, vom Benutzer ausfüllen zu lassen

und die Antworten auf den Server zu übertragen. Automatisch erzeugte Auswertungen für

die vom Benutzer eingegebenen Daten werden präsentiert und zur Archivierung auf dem

mobilen Endgerät gespeichert.

47

Page 54: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 7 Fazit und Ausblick

AF3 (Datenexport) Die Anforderung wurde voll erfüllt. Mit der in Kapitel 4.4 vorgestellten

API ist es registrierten und authentifizierten Analysten möglich, die Ergebnisse der Befra-

gung zu exportieren. Da durch eine wohldefinierte REST-Schnittstelle JSON-formatierte

Daten exportiert werden, ist eine Anbindung an weitere Werkzeuge auch automatisiert

bequem möglich.

AF4 (Vollständigkeit) Die Anforderung wurde voll erfüllt. Alle genannten Befragungs-

möglichkeiten (offene Frage, geschlossene Frage, Ratingskalen) werden vollständig unter-

stützt.

AF5 (Mehrsprachigkeit) Die Anforderung wurde voll erfüllt. Mit dem in Kapitel 5.2 vor-

gestellten System der Übersetzung ist sowohl eine vollständige als auch eine teilweise

Übersetzung der Fragebögen möglich. Nicht vorhandene Übersetzung wird durch ein Zu-

rückfallen auf die Basissprache des Fragebogens gehandhabt.

AF6 (Wiederaufnehmbarkeit) Die Anforderung wurde voll erfüllt. Durch die Möglichkeit,

den momentanen Bearbeitungsstand eines Fragebogens zu speichern, ist es möglich, die

Bearbeitung zu unterbrechen und zu einem späteren Zeitpunkt erneut aufzunehmen.

AF7 (Rechteverwaltung) Die Anforderung wurde voll erfüllt. Die in Kapitel 4.1 und Kapi-

tel 4.2 genannten Benutzerrollen ermöglichen eine Trennung unterschiedlicher Benutzer-

profile, die den Schutz der Daten vor nicht autorisiertem Zugriff sicherstellen.

NFA1 (Datenschutz) Die Anforderung wurde im Rahmen der technischen Möglichkeiten

erfüllt. Kapitel 5.2 beschreibt, wie Elemente der Fragebögen als „privat“ markiert werden

können, woraufhin diese Daten nicht in der Datenbank gespeichert werden und daher Ana-

lysten nicht zur Einsicht stehen. Die Unterscheidung zwischen „persönlichen“ Daten und

„nichtpersönlichen“ Daten ist allerdings nicht automatisierbar, daher ist die explizite Markie-

rung als solche durch den Autor des Fragebogens erforderlich.

48

Page 55: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

7.1 Fazit

NFA2 (Universalität) Die Anforderung wurde voll erfüllt. Von beispielsweise „Medizini-

sche Schwangerschaftsbegleitung“ bis „Mobile Zählerstandsablesung“ sind Anwendungs-

fälle vom medizinischen bis zum technischen Bereich möglich.

NFA3 (Erweiterbarkeit der Sensortypen) Die Anforderung wurde teilweise erfüllt. Mit

dem Fragebogenelement „Sensordaten“ steht ein vielseitiges Mittel bereit, mit dem Senso-

ren des Smartphones konfiguriert und ausgelesen werden können. Die konkrete Implemen-

tierung des Sensor-Interfaces muss allerdings von der Anwendung, die dieses Framework

nutzt, selber durchgeführt werden. Die Verwendung eines Sensor-Frameworks ähnlich [19]

würde diesen Prozess stark vereinfachen.

NFA4 (Bedienbarkeit) Eine abschließende Beurteilung der Bedienbarkeit der erstellten

Software ist ohne eine ausführliche Benutzerstudie nicht möglich. Allerdings wurde die

Oberfläche der Server- und Client-Software möglichst simpel gehalten. Bei der Entwicklung

der Client-Software wurden die Android-Guidelines [1] eingehalten. Bedienelemente der

Web-Oberfläche der Server-Software wurden möglichst mit aussagekräftigen Symbolen

und eindeutiger Beschriftung versehen.

NFA5 (Wartbarkeit) Die Anforderung wurde voll erfüllt. Die Software baut auf Standard-

komponenten wie PHP und Android auf, deren Verbreitung und Bekanntheitsgrad sicherstel-

len in Zukunft von Dritten gewartet und weiterentwickelt werden zu können. Der Quellcode

ist strukturiert, Änderungen können durch ein Versionskontrollsystem verfolgt werden und

der Code ist unter einer freizügigen Lizenz (GNU General Public License [14]) lizenziert.

NFA6 (Erweiterbarkeit der Fragetypen) Die Anforderung wurde voll erfüllt. In Kapitel 4.3

wird beschrieben, wie die erstellte Software um weitere Fragetypen erweitert werden kann.

Die Client-Software ist so geschrieben, dass sie im Fall von Inkompatibilität, also unbekann-

ten Fragetypen, diese ignoriert und so zumindest Teile des Fragebogens verwendet werden

können.

49

Page 56: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Kapitel 7 Fazit und Ausblick

Insgesamt ist festzustellen, dass die Ziele dieser Arbeit erreicht wurden. Die erstellte Soft-

ware genügt den gestellten Ansprüchen und ist in der Lage, Mobile Crowd Sensing gemäß

der Anforderungen durch das Datenschutzgesetz (siehe Kapitel 2.2) zu betreiben.

7.2 Ausblick

In diesem Abschnitt wird ein Ausblick auf mögliche aufbauende Arbeiten gegeben, die die

entwickelte Software erweitern könnten.

Zum jetzigen Stand der Entwicklung sind die Fragebögen vollständig statisch. Dynamische

Integration von Fragen, wie das Einblenden von Folgefragen bzw. das Ausblenden über-

flüssiger Fragen bei bestimmten Antworten auf vorhergehende Fragen, ist nicht möglich.

Ein typisches Anwendungsszenario wäre etwa in einem medizinischen Fragebogen, dass

Fragen zu einer möglichen Schwangerschaft ausgeblendet werden, wenn der Benutzer

als Geschlecht „männlich“ ausgewählt hat. Eine aufbauende Arbeit könnte die Software

um die Möglichkeit erweitern, Abhängigkeiten zwischen den Fragen zu definieren, um den

Fragebogen interaktiver zu gestalten. Erste Konzepte sind in [34] zusammengefasst.

Von der Möglichkeit, interaktive Elemente in die Fragebögen einzubauen ausgehend, ist

ein weiterer möglicher Ansatzpunkt zur Erweiterung die „Gamification“ genannte Anwen-

dung spieltypischer Elemente [10], wie Erfahrungspunkte, Auszeichnungen (Achievements)

oder Ranglisten. Das Ziel dieser Maßnahmen ist, die Motivation der Teilnehmer einer Be-

fragung ähnlich wie bei McSense (siehe Kapitel 2.3), zu steigern und so die Anzahl der

Datensätze sowie deren Qualität zu erhöhen. Dazu könnte die Implementierung weiterer

Fragebogenelemente, wie etwa eingebundene Videos, nützlich sein.

Für komplexere Anwendungen könnte es notwendig werden, die Rechteverwaltung durch

ein feiner einstellbares ACL (Access Control Lists [7]) System zu ersetzen. Zwar können

derzeit Befrager, Teilnehmer und Analysten jeweils individuell für Fragebögen freigeschaltet

werden bzw. ihnen diese Berechtigung wieder entzogen werden, allerdings existiert keine

Möglichkeit, Änderungen der Berechtigungen rekursiv auf abhängige Benutzerrollen abzu-

50

Page 57: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

7.2 Ausblick

bilden. Für Laravel existiert bereits eine ACL-Implementierung [20], die für die Benutzung

in der erstellten Software angepasst werden könnte.

Eine weitere wünschenswerte aufbauende Arbeit könnte sich mit der Möglichkeit beschäf-

tigen, die Wiederholbarkeit der Fragebögen genauer zu definieren. Im Moment können

Benutzer Fragebögen, für die sie freigeschaltet sind, beliebig häufig ausfüllen. Mit zusätz-

lichen Kopfdaten der Fragebögen könnten Einschränkungen bezüglich der Zeit oder des

Ortes gemacht werden, zu denen die Fragebögen bearbeitet werden können bzw. sollen.

Mögliche Anwendungsfälle wären in der erwähnten Begleitung Schwangerer Fragebögen

zu definieren, die nur in bestimmten Schwangerschaftswochen relevant sind. Fragebögen,

die nur aktiviert werden wenn sich technisches Personal in der Nähe bestimmter Gebäude

befindet, sind ebenfalls denkbar.

51

Page 58: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 59: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Literatur

[1] Android - Activity and Task Design Guidelines. U R L: https : / / developer .

android . com / guide / components / activities . html (besucht am

28. 09. 2015).

[2] Android - Sensors Overview. U R L: https://developer.android.com/guide/

topics/sensors/sensors_overview.html (besucht am 28. 09. 2015).

[3] Android Studio. U R L: https://developer.android.com/sdk/index.html

(besucht am 28. 09. 2015).

[4] Apisense auf Twitter. U R L: https://twitter.com/APISENSE (besucht am

28. 09. 2015).

[5] Apisense Website. U R L: http://www.apisense.com/ (besucht am 28. 09. 2015).

[6] Apisense Website, Stand 23. März 2014 im Internetarchiv archive.org. U R L: https:

//web.archive.org/web/20140323172629/http://www.apisense.com/

(besucht am 28. 09. 2015).

[7] John Barkley. „Comparing simple role based access control models and access

control lists“. In: In Proceedings of the second ACM workshop on Role-based access

control. ACM Press, 1997, S. 127–132.

[8] Tim Bray, Hrsg. The JavaScript Object Notation (JSON) Data Interchange Format.

RFC 7159. Request for Comments. 2014.

[9] Composer - Dependancy Manager for PHP. U R L: https://getcomposer.org/

(besucht am 28. 09. 2015).

53

Page 60: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Literatur

[10] Sebastian Deterding, Miguel Sicart, Lennart Nacke, Kenton O’Hara und Dan Dixon.

„Gamification. Using Game-design Elements in Non-gaming Contexts“. In: CHI’11

Extended Abstracts on Human Factors in Computing Systems. CHI EA ’11. ACM.

2011, S. 2425–2428. I S B N: 978-1-4503-0268-5.

[11] Roy Thomas Fielding. „Architectural styles and the design of network-based software

architectures“. Diss. University of California, Irvine, 2000.

[12] Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides. Design patterns:

elements of reusable object-oriented software. Pearson Education, 1994.

[13] Raghu K Ganti, Fan Ye und Hui Lei. „Mobile crowdsensing: current state and future

challenges“. In: Communications Magazine, IEEE 49.11 (2011), S. 32–39.

[14] GNU General Public License Version 3. U R L: http://www.gnu.org/licenses/

gpl-3.0.html (besucht am 28. 09. 2015).

[15] Bin Guo, Zhiwen Yu, Xingshe Zhou und Daqing Zhang. „From participatory sensing

to mobile crowd sensing“. In: Pervasive Computing and Communications Workshops

(PERCOM Workshops), 2014 IEEE International Conference on. IEEE. 2014, S. 593–

598.

[16] Bin Guo, Zhu Wang, Zhiwen Yu, Yu Wang, Neil Y Yen, Runhe Huang und Xingshe

Zhou. „Mobile crowd sensing and computing: The review of an emerging human-

powered sensing paradigm“. In: ACM Computing Surveys (CSUR) 48.1 (2015), S. 7.

[17] Nicolas Haderer, Romain Rouvoy, Christophe Ribeiro und Lionel Seinturier. „Apisense:

Crowd-sensing made easy“. In: ERCIM News 93 (2013), S. 28–29.

[18] Jochen Herrmann. „Konzeption und technische Realisierung eines mobilen

Frameworks zur Unterstützung tinnitusgeschädigter Patienten“. Diplomarbeit, Ulm

University. 2014.

[19] Artur Jabs. „Konzeption eines Event-basierten Sensor-Frameworks zur

Datenerhebung auf mobilen Endgeräten“. Diplomarbeit, Ulm University. 2015.

[20] Kodeine Laravel-ACL. U R L: https://github.com/kodeine/laravel-acl/

(besucht am 28. 09. 2015).

[21] Laracasts - The Best Laravel and PHP Screencasts. U R L: https://laracasts.

com (besucht am 28. 09. 2015).

54

Page 61: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Literatur

[22] Laravel - The PHP Framework For Web Artisans. U R L: http://laravel.com

(besucht am 28. 09. 2015).

[23] Huadong Ma, Dong Zhao und Peiyan Yuan. „Opportunities in mobile crowd sensing“.

In: Communications Magazine, IEEE 52.8 (2014), S. 29–35.

[24] L. Masinter, Hrsg. The „data“ URL scheme. RFC 2397. Request for Comments. 1998.

[25] Medusa Crowd Sensing Framework - Commit History. U R L: https://github.

com/USC-NSL/Medusa/commits/master (besucht am 28. 09. 2015).

[26] A Mohamud. „EU5 smartphone penetration reaches 55 percent in October 2012“.

In: comScore Press Release, Dec (2012). U R L: https://www.comscore.com/

Insights/Press-Releases/2012/12/EU5-Smartphone-Penetration-

Reaches-55-Percent-in-October-2012 (besucht am 28. 09. 2015).

[27] DIN Deutsches Institut für Normung. Grundlagen der Meßtechnik - Teil 1:

Grundbegriffe. Techn. Ber. DIN 1319-1. Deutsches Institut für Normung e.V., 1. Jan.

1995.

[28] A. Phillips und M. Davis, Hrsg. Tags for Identifying Languages. RFC 4646. Request

for Comments. 2006.

[29] Werner Pluta. Smartphone soll Massenpanik verhindern. 4. Sep. 2012. U R L: http:

/ / www . golem . de / news / crowd - management - smartphone - soll -

massenpanik-verhindern-1209-94331.html (besucht am 28. 09. 2015).

[30] Rüdiger Pryss, Manfred Reichert, Jochen Herrmann, Berthold Langguth und Winfried

Schlee. „Mobile Crowd Sensing in Clinical and Psychological Trials – A Case Study“.

In: 28th IEEE Int’l Symposium on Computer-Based Medical Systems. IEEE Computer

Society Press, 2015, S. 23–24.

[31] Rüdiger Pryss, Manfred Reichert, Berthold Langguth und Winfried Schlee. „Mobile

Crowd Sensing Services for Tinnitus Assessment, Therapy and Research“. In: IEEE

4th International Conference on Mobile Services (MS 2015). IEEE Computer Society

Press, 2015, S. 352–359.

55

Page 62: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Literatur

[32] Moo-Ryong Ra, Bin Liu, Tom F La Porta und Ramesh Govindan. „Medusa: A

programming framework for crowd-sensing applications“. In: Proceedings of the 10th

international conference on Mobile systems, applications, and services. ACM. 2012,

S. 337–350.

[33] E. Rescorla, Hrsg. HTTP Over TLS. RFC 2818. Request for Comments. 2000.

[34] Johannes Schobel, Marc Schickler, Rüdiger Pryss, Fabian Maier und Manfred

Reichert. „Towards Process-Driven Mobile Data Collection Applications:

Requirements, Challenges, Lessons Learned“. In: 10th Int’l Conference on

Web Information Systems and Technologies (WEBIST 2014), Special Session on

Business Apps. 2014, S. 371–382. (Besucht am 27. 10. 2015).

[35] Manoop Talasila, Reza Curtmola und Cristian Borcea. „Crowdsensing in the Wild with

Aliens and Micro-payments“. In: IEEE Pervasive Computing Magazine (2014).

[36] Manoop Talasila, Reza Curtmola und Cristian Borcea. „Mobile Crowd Sensing“. In:

John R. Vacca. Handbook of Sensor Networking: Advanced Technologies and Appli-

cations. CRC Press, 2015.

[37] Tango Desktop Project. U R L: http://tango.freedesktop.org/ (besucht am

28. 09. 2015).

[38] Usage Statistics and Market Share of Server-side Programming Languages for

Websites. U R L: http : / / w3techs . com / technologies / overview /

programming_language/all (besucht am 28. 09. 2015).

[39] Bundesministerium der Justiz und für Verbraucherschutz, Hrsg. Gesetz über

Rahmenbedingungen für elektronische Signaturen (SigG).

[40] Bundesministerium der Justiz und für Verbraucherschutz, Hrsg.

Bundesdatenschutzgesetz (BDSG). Fassung vom 25.02.2015.

[41] Bundesministerium der Justiz und für Verbraucherschutz, Hrsg. Telemediengesetz

(TMG).

[42] Springer Gabler Verlag, Hrsg. Gabler Wirtschaftslexikon, Stichwort: Smartphone.

U R L: http : / / wirtschaftslexikon . gabler . de / Archiv / 569824 /

smartphone-v1.html (besucht am 09. 10. 2015).

56

Page 63: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Literatur

[43] Daqing Zhang, Leye Wang, Haoyi Xiong und Bin Guo. „4W1H in mobile crowd

sensing“. In: Communications Magazine, IEEE 52.8 (2014), S. 42–48.

57

Page 64: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 65: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A

Beispielfragebogen

1 [

2 {

3 "text" : {

4 "2" : "Als erstes geht es mal um ein wenig Text"

5 },

6 "type" : "header"

7 },

8 {

9 "type" : "text",

10 "text" : {

11 "2" : "Lorem ipsum dolor sit amet, consectetur adipisici elit,

sed eiusmod tempor incidunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco

laboris nisi ut aliquid ex ea commodi consequat. Quis aute

iure reprehenderit in voluptate velit esse cillum dolore eu

fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non

proident, sunt in culpa qui officia deserunt mollit anim id

est laborum."

12 }

13 },

14 {

15 "type" : "text",

16 "text" : {

59

Page 66: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A Beispielfragebogen

17 "2" : "Lorem ipsum dolor sit amet, consectetur adipisici elit,

sed eiusmod tempor incidunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco

laboris nisi ut aliquid ex ea commodi consequat. Quis aute

iure reprehenderit in voluptate velit esse cillum dolore eu

fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non

proident, sunt in culpa qui officia deserunt mollit anim id

est laborum.\nZeilenumbruch. Lorem ipsum dolor sit amet,

consectetur adipisici elit, sed eiusmod tempor incidunt ut

labore et dolore magna aliqua. Ut enim ad minim veniam, quis

nostrud exercitation ullamco laboris nisi ut aliquid ex ea

commodi consequat. Quis aute iure reprehenderit in voluptate

velit esse cillum dolore eu fugiat nulla pariatur. Excepteur

sint obcaecat cupiditat non proident, sunt in culpa qui

officia deserunt mollit anim id est laborum."

18 }

19 },

20 {

21 "type" : "divider"

22 },

23 {

24 "type" : "text",

25 "text" : {

26 "2" : "Trenner. Lorem ipsum dolor sit amet, consectetur adipisici

elit, sed eiusmod tempor incidunt ut labore et dolore magna

aliqua. Ut enim ad minim veniam, quis nostrud exercitation

ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis

aute iure reprehenderit in voluptate velit esse cillum dolore

eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat

non proident, sunt in culpa qui officia deserunt mollit anim

id est laborum."

27 }

28 },

29 {

30 "type" : "pagebreak"

60

Page 67: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

31 },

32 {

33 "type" : "header",

34 "text" : {

35 "2" : "Nun ein paar Bilder"

36 }

37 },

38 {

39 "type" : "text",

40 "text" : {

41 "2" : "Als erstes eine kleine deutsche Flagge:"

42 }

43 },

44 {

45 "type" : "image",

46 "image" : "data:image/png;base64,[...]"

47 },

48 {

49 "type" : "text",

50 "text" : {

51 "2" : "Dann der Union Jack"

52 }

53 },

54 {

55 "image" : "data:image/png;base64,[...]",

56 "type" : "image"

57 },

58 {

59 "text" : {

60 "2" : "Und zum Schluss die Trikolore:"

61 },

62 "type" : "text"

63 },

64 {

65 "type" : "image",

61

Page 68: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A Beispielfragebogen

66 "image" : "data:image/png;base64,[...]"

67 },

68 {

69 "type" : "pagebreak"

70 },

71 {

72 "text" : {

73 "2" : "Kommen wir zu den geschlossenen Fragen"

74 },

75 "type" : "header"

76 },

77 {

78 "text" : {

79 "2" : "Bei dieser Frage kann zwischen \"1\" und \"1\" Antworten

ausgewählt werden, sie ist also eine klassiche \"Single Choice

\"-Frage -- und solte deshalb auch mit Radiobuttons statt der

üblichen \"Checkboxen\" dargestellt sein."

80 },

81 "type" : "text"

82 },

83 {

84 "max" : 1,

85 "type" : "question",

86 "min" : 1,

87 "varname" : "jaodernein",

88 "options" : [

89 {

90 "text" : {

91 "2" : "Ja"

92 },

93 "value" : 0

94 },

95 {

96 "value" : 1,

97 "text" : {

62

Page 69: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

98 "2" : "Nein"

99 }

100 }

101 ]

102 },

103 {

104 "text" : {

105 "2" : "Nochmal zwischen \"1\" und \"1\":"

106 },

107 "type" : "text"

108 },

109 {

110 "varname" : "jaodernein2",

111 "options" : [

112 {

113 "value" : 0,

114 "text" : {

115 "2" : "Ja"

116 }

117 },

118 {

119 "text" : {

120 "2" : "INPUT"

121 },

122 "value" : 1

123 }

124 ],

125 "min" : 1,

126 "type" : "question",

127 "max" : 1

128 },

129 {

130 "type" : "text",

131 "text" : {

63

Page 70: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A Beispielfragebogen

132 "2" : "Bei der folgenden Frage kann zwischen \"0\" und \"1\"

Antworten ausgewählt werden."

133 }

134 },

135 {

136 "max" : 1,

137 "varname" : "jaodernein3",

138 "options" : [

139 {

140 "text" : {

141 "2" : "Ja"

142 },

143 "value" : 0

144 },

145 {

146 "value" : 1,

147 "text" : {

148 "2" : "Vielleicht"

149 }

150 },

151 {

152 "value" : 2,

153 "text" : {

154 "2" : "Nein"

155 }

156 }

157 ],

158 "min" : 0,

159 "type" : "question"

160 },

161 {

162 "type" : "text",

163 "text" : {

164 "2" : "Und nun eine Frage, bei der beliebig viele Antworten

ausgewählt werden können -- aber mindestens eine!"

64

Page 71: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

165 }

166 },

167 {

168 "max" : 0,

169 "type" : "question",

170 "varname" : "farben",

171 "options" : [

172 {

173 "text" : {

174 "2" : "Rot"

175 },

176 "value" : 0

177 },

178 {

179 "text" : {

180 "2" : "Grün"

181 },

182 "value" : 1

183 },

184 {

185 "value" : 2,

186 "text" : {

187 "2" : "Blau"

188 }

189 },

190 {

191 "value" : 3,

192 "text" : {

193 "2" : "Gelb"

194 }

195 },

196 {

197 "value" : 4,

198 "text" : {

199 "2" : "Schwarz"

65

Page 72: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A Beispielfragebogen

200 }

201 },

202 {

203 "text" : {

204 "2" : "Weiß"

205 },

206 "value" : 5

207 },

208 {

209 "text" : {

210 "2" : "INPUT"

211 },

212 "value" : 6

213 }

214 ],

215 "min" : 1

216 },

217 {

218 "type" : "pagebreak"

219 },

220 {

221 "type" : "header",

222 "text" : {

223 "2" : "Texteingabefelder"

224 }

225 },

226 {

227 "text" : {

228 "2" : "Ein klassisches Texteingabefeld. Ist optional, darf also

leer bleiben."

229 },

230 "type" : "text"

231 },

232 {

233 "inputtype" : 0,

66

Page 73: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

234 "type" : "textinput",

235 "varname" : "text_empty",

236 "text" : {

237 "2" : "Darf leer bleiben"

238 },

239 "optional" : 1

240 },

241 {

242 "type" : "text",

243 "text" : {

244 "2" : "Noch ein Texteingabefeld. Dieses hier muss aber ausgefüllt

werden."

245 }

246 },

247 {

248 "optional" : 0,

249 "inputtype" : 0,

250 "type" : "textinput",

251 "text" : {

252 "2" : "Muss gefüllt werden"

253 },

254 "varname" : "text_notempty"

255 },

256 {

257 "type" : "text",

258 "text" : {

259 "2" : "Für viel Text gibt es mehrzeilige Texteingabefelder:"

260 }

261 },

262 {

263 "type" : "textinput",

264 "inputtype" : 1,

265 "text" : {

266 "2" : "Hier kann ganz viel Text eingegeben werden"

267 },

67

Page 74: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A Beispielfragebogen

268 "varname" : "text_multiline",

269 "optional" : 1

270 },

271 {

272 "type" : "text",

273 "text" : {

274 "2" : "Und für geheimen Text Passworteingabefelder:"

275 }

276 },

277 {

278 "optional" : 1,

279 "type" : "textinput",

280 "inputtype" : 2,

281 "text" : {

282 "2" : "Kann keiner lesen"

283 },

284 "varname" : "text_password"

285 },

286 {

287 "type" : "text",

288 "text" : {

289 "2" : "Ein Textfeld für Datumseingaben..."

290 }

291 },

292 {

293 "text" : {

294 "2" : "Wann ist dein Geburtstag?"

295 },

296 "varname" : "text_date",

297 "inputtype" : 3,

298 "type" : "textinput",

299 "optional" : 1

300 },

301 {

302 "type" : "text",

68

Page 75: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

303 "text" : {

304 "2" : "... und eines für Uhrzeiten:"

305 }

306 },

307 {

308 "optional" : 1,

309 "type" : "textinput",

310 "inputtype" : 4,

311 "varname" : "text_time",

312 "text" : {

313 "2" : "Wie spät ist es?"

314 }

315 },

316 {

317 "text" : {

318 "2" : "Und zum Schluss noch ein Feld, in das man nur Nummern

eingeben kann:"

319 },

320 "type" : "text"

321 },

322 {

323 "optional" : 1,

324 "type" : "textinput",

325 "inputtype" : 5,

326 "varname" : "text_number",

327 "text" : {

328 "2" : "Dokumentennummer"

329 }

330 },

331 {

332 "type" : "pagebreak"

333 },

334 {

335 "text" : {

336 "2" : "Kommen wir zu den Schiebeleisten"

69

Page 76: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A Beispielfragebogen

337 },

338 "type" : "header"

339 },

340 {

341 "text" : {

342 "2" : "Hier ist eine Schiebeleiste mit Default-Werten:"

343 },

344 "type" : "text"

345 },

346 {

347 "left" : {

348 "2" : ""

349 },

350 "step" : 1,

351 "max" : 100,

352 "display" : 1,

353 "varname" : "rating_default",

354 "min" : 1,

355 "mapping" : [],

356 "right" : {

357 "2" : ""

358 },

359 "value" : 50,

360 "type" : "rating"

361 },

362 {

363 "type" : "text",

364 "text" : {

365 "2" : "Und hier eine Schiebeleiste die ihren Wert nicht anzeigt:"

366 }

367 },

368 {

369 "value" : 50,

370 "type" : "rating",

371 "right" : {

70

Page 77: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

372 "2" : ""

373 },

374 "mapping" : [],

375 "varname" : "rating_hidden",

376 "display" : 0,

377 "min" : 1,

378 "step" : 1,

379 "max" : 100,

380 "left" : {

381 "2" : ""

382 }

383 },

384 {

385 "type" : "text",

386 "text" : {

387 "2" : "Die klassische \"Stimmen Sie zu?\"-Frage:"

388 }

389 },

390 {

391 "varname" : "rating_agree",

392 "display" : 1,

393 "min" : 0,

394 "left" : {

395 "2" : "Stimme gar nicht zu"

396 },

397 "step" : 1,

398 "max" : 4,

399 "value" : 2,

400 "type" : "rating",

401 "right" : {

402 "2" : "Stimme voll und ganz zu"

403 },

404 "mapping" : [

405 {

406 "value" : 0,

71

Page 78: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A Beispielfragebogen

407 "text" : {

408 "2" : "Stimme gar nicht zu"

409 }

410 },

411 {

412 "text" : {

413 "2" : "Stimme eher nicht zu"

414 },

415 "value" : 1

416 },

417 {

418 "text" : {

419 "2" : "Habe keine Meinung"

420 },

421 "value" : 2

422 },

423 {

424 "text" : {

425 "2" : "Stimme eher zu"

426 },

427 "value" : 3

428 },

429 {

430 "text" : {

431 "2" : "Stimme voll und ganz zu"

432 },

433 "value" : 4

434 }

435 ]

436 },

437 {

438 "text" : {

439 "2" : "Mit Sprüngen in der Skala (von 4 bis 31 in 7er Schritten):

"

440 },

72

Page 79: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

441 "type" : "text"

442 },

443 {

444 "left" : {

445 "2" : ""

446 },

447 "step" : 7,

448 "max" : 31,

449 "display" : 1,

450 "varname" : "rating_scale",

451 "min" : 4,

452 "mapping" : [],

453 "right" : {

454 "2" : ""

455 },

456 "value" : 4,

457 "type" : "rating"

458 },

459 {

460 "type" : "pagebreak"

461 },

462 {

463 "type" : "header",

464 "text" : {

465 "2" : "Dateiupload und Sensoren"

466 }

467 },

468 {

469 "text" : {

470 "2" : "Hier ein optionaler Dateiupload:"

471 },

472 "type" : "text"

473 },

474 {

475 "optional" : 1,

73

Page 80: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Anhang A Beispielfragebogen

476 "size" : 31337,

477 "varname" : "fileupload_optional",

478 "type" : "fileupload"

479 },

480 {

481 "text" : {

482 "2" : "Und ein Dateiupload als Pflichtfeld:"

483 },

484 "type" : "text"

485 },

486 {

487 "optional" : 0,

488 "size" : 31337,

489 "type" : "fileupload",

490 "varname" : "fileupload_mandatory"

491 },

492 {

493 "type" : "text",

494 "text" : {

495 "2" : "Hier noch der Sensor:"

496 }

497 },

498 {

499 "optional" : 1,

500 "type" : "sensor",

501 "varname" : "sensor",

502 "options" : "Sensoroptionen"

503 }

504 ]

74

Page 81: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Abbildungsverzeichnis

1.1 Visualisierung von mobil erfassten Positionsdaten als Heatmap. Kartenmate-

rial c© OpenStreetMap-Mitwirkende https://www.openstreetmap.org/

copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

4.1 Der Ablauf einer Befragung als Aktivitätsdiagramm. . . . . . . . . . . . . . . . 16

4.2 Ausschnitt des ER-Diagramms der Datenbank mit Fokus auf den Beziehun-

gen zwischen Fragebogen, Auswertung und Resultate. . . . . . . . . . . . . . 17

4.3 Ausschnitt des ER-Diagramms der Datenbank mit Fokus auf den Beziehun-

gen zwischen den verschiedenen Benutzerrollen. . . . . . . . . . . . . . . . . 18

4.4 JSON-Repräsentation der Elemente eines Beispielfragebogens. . . . . . . . 23

5.1 Benutzerverwaltung mit Monitor. . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.2 Oberfläche zur Erstellung und Bearbeitung von Fragebögen. . . . . . . . . . 34

5.3 Übersetzung eines Fragebogenelements. . . . . . . . . . . . . . . . . . . . . 35

5.4 Bearbeitung einer Regel zur automatischen Auswertung der Fragebögen. . . 36

6.1 Hauptmenü und Archiv der Android-Andwendung . . . . . . . . . . . . . . . . 41

6.2 Einstellungsmöglichkeiten der Android-Anwendung . . . . . . . . . . . . . . . 42

6.3 Ausfüllen eines Fragebogens. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

75

Page 82: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit
Page 83: Konzeption und Implementierung eines Mobile Crowd Sensing ...dbis.eprints.uni-ulm.de/1365/1/MA_WH_2016.pdf · von Apisense ist schlecht zu beurteilen, da die Apisense-Webseite seit

Name: Tim Wiederhake Matrikelnummer: 664433

Erklärung

Ich erkläre, dass ich die Arbeit selbstständig verfasst und keine anderen als die angegebe-

nen Quellen und Hilfsmittel verwendet habe.

Ulm, den . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Tim Wiederhake