scieee Science in your language
[en] (orig)
Fakultät für Ingenieurwissenschaften, Informatik und Psychologie
Institut für Datenbanken und Informationssysteme
Bachelorarbeit
im Studiengang Informatik
Konzeption und Realisierung einer mobilen
Anwendung zur Erfassung des Stresslevels am
Beispiel von iOS
vorgelegt von
Michael Schrempp
Oktober 2017
1. Gutachter Prof. Dr. Manfred Reichert
Betreuer: Dr. Rüdiger Pryss
Matrikelnummer 865625
Arbeit vorgelegt am: 17.10.2017
ii
Kurzfassung
Die hier vorliegende Arbeit beschäftigt sich mit einer mobilen Anwendung, die mittels Self-
Assessment unter Crowdsensing das Stresslevel einer Person aufzeichnet und analysiert.
Self-Assessment [ÞKFJ17] (dt. Selbsteinschätzung) bezeichnet in der Psychologie ein Prinzip,
bei dem Patienten sich, im medizinischen Sinne, selbst einschätzen. Dieses Prinzip findet in der
Psychologie eine Vielzahl an Anwendungen.
Besonders im Smartphonebereich gibt es durch die Einfachheit der Mensch-Maschine Schnitt-
stelle, sowie der flächendeckenden Verbreitung von Smartphones, ausgezeichnete Möglichkeiten,
aussagekräftige Daten mittels Self-Assessment zu generieren.
Crowdsensing (dt. ansprechen von Sensoren einer größeren Personengruppe) ist eine Technik,
bei der Sensoren von beispielsweise Smartphones verwendet werden, um Daten zu analysieren,
Verhalten von Nutzern zu erlernen oder gemeinsame Interessen herauszufinden.
Beide Techniken (Self-Assessment und Crowdsensing) werden in einer App zur Ermittlung des
Stresslevels verwendet, um Daten für die Forschung zu generieren. Dabei wurden besonders
bei der Konzeption psychologische Aspekte berücksichtigt, damit die erhobenen Daten aussa-
gekräftig sind.
iii
iv
Eigenständigkeitserklärung
Hiermit versichere ich, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen
als die angegebenen Hilfsmittel verwendet habe. Sinngemäße Übernahmen aus anderen Werken
sind als solche kenntlich gemacht und mit genauer Quellenangabe (auch aus elektronischen
Medien) versehen.
Ulm, den 17.10.2017 (Michael Schrempp)
v
vi
Inhaltsverzeichnis
1. Einleitung 1
1.1. Stress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Ergebnisse aus verwandten Arbeiten 3
2.1. Datengenerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Konzeption einer mobilen App im E-Health . . . . . . . . . . . . . . . . . . . . 4
2.3. Track Your Tinnitus Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4. KINDEX Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Anforderungsanalyse 7
3.1. Funktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2. Nichtfunktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Konventionen und verwendete Frameworks 11
4.1. Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2. Verwendete Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5. Architektur der iOS App 13
5.1. Anwendungskontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2. Gesamtkonzeption & Softwarearchitektur . . . . . . . . . . . . . . . . . . . . . 14
5.3. Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.3.1. ER-Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.3.2. User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3.3. Questionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.3.4. QuestionnaireStructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3.5. Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.3.6. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3.7. Beantwortung der Fragebögen . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3.8. Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3.9. NotificationPlaner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.4. Dialogstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.4.1. Willkommen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.4.2. Fragebögen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.4.3. Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.4.4. Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.4.5. Meine Studien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4.6. Meine Benachrichtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.5. Ablauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.5.1. Login und Registrierung sowie erste Oberfläche laden . . . . . . . . . . . 42
5.5.2. Fragebogen beantworten . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6. Ausgewählte Implementierungsaspekte 45
vii
Inhaltsverzeichnis
6.1. Algorithmus zum Laden der Daten für den Reiter Fragebögen . . . . . . . . . . 45
7. Vorstellung der iOS App 49
7.1. Systembeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2. Funktionsübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2.1. Registrierung und Login . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2.2. Profil verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2.3. Studien verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.2.4. Fragebögen ausfüllen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2.5. Daten analysieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.2.6. Benachrichtigungen anpassen . . . . . . . . . . . . . . . . . . . . . . . . 60
8. Anforderungsabgleich 63
8.1. Funktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2. Nichtfunktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
9. Fazit 67
A. Fragebögen 69
A.1. Demographischer Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.2. täglicher Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.3. wöchentlicher Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
A.4. monatlicher Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
viii
Abbildungsverzeichnis
5.1. Anwendungsfalldiagramm des Benutzers . . . . . . . . . . . . . . . . . . . . . . 14
5.2. Gesamtkonzeption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.3. ER-Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.4. Dialogstruktur Willkommen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.5. Dialogstruktur Fragebögen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.6. Dialogstruktur Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.7. Dialogstruktur Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.8. Dialogstruktur meine Studien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.9. Dialogstruktur meine Benachrichtigungen . . . . . . . . . . . . . . . . . . . . . 41
5.10. Ablauf: Login und Registrierung sowie erste Oberfläche . . . . . . . . . . . . . . 42
5.11. Ablauf: Fragebogen ausfüllen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.1. Screenshot Willkommensbildschirm . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2. Screenshot Registrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.3. Screenshot Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.4. Screenshot Profilansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.5. Screenshot Profil bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.6. Screenshot Passwort ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.7. Screenshot E-Mail Angeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.8. Screenshot Passwort zurücksetzen . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.9. Screenshot Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.10. Screenshot Meine Studien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.11. Screenshot Alle Studien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.12. Screenshot Studie verlassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.13. Screenshot Meine Fragebögen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.14. Screenshot täglicher Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.15. Screenshot Antworten vergessen . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.16. Screenshot Datenanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.17. Screenshot meine Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.18. Screenshot meine Benachrichtigungen . . . . . . . . . . . . . . . . . . . . . . . . 60
7.19. Screenshot tägliche Benachrichtigung . . . . . . . . . . . . . . . . . . . . . . . . 60
7.20. Screenshot Benachrichtigungsplaner . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.21. Screenshot benutzerdefinierte Benachrichtigungen . . . . . . . . . . . . . . . . . 61
7.22. Screenshot Löschung Benachrichtigung . . . . . . . . . . . . . . . . . . . . . . . 62
7.23. Screenshot wöchentliche Benachrichtigung . . . . . . . . . . . . . . . . . . . . . 62
ix
Abbildungsverzeichnis
x
1
Einleitung
1.1. Stress
Der Begriff "Stress" ist schwer zu fassen, jedoch ist die Definition von Hans Selyse weit verbrei-
tet. Er beschreibt in seiner Arbeit "Stress, Appraisal, and Coping (1984)" Stress als körperli-
chen Zustand, der durch Anspannung und Widerstand gegen äußere Faktoren ausgelöst wird.
[PP84]
Stress wird durch unterschiedliche Umweltfaktoren und Einflüsse hervorgerufen. Dabei kann
er physische als auch psychische Symptome verursachen. Viele Zusammenhänge sind auf die-
sem Gebiet noch nicht vollständig erforscht. Da Stress und die resultierenden Folgen aber ein
weit verbreitetes Phänomen in der modernen und schnelllebigen Welt sind, ist gerade hier
Forschungsarbeit notwendig, um die Zusammenhänge besser zu verstehen.
Den Grundstein dieser Arbeit legte Jochen Herrmann (2014) mit dem Track Your Tinnitus
Projekt. Dabei entwickelte er im Rahmen seiner Diplomarbeit ein Track Your Tinnitus Frame-
work, das es als Website, iOS App und Android App gibt. Ziel seiner Arbeit war, Daten von
hörgeschädigten Personen zu sammeln, um ein besseres Verständnis der Tinnituserkrankung
zu erlangen. Mittels seiner gesammelten Daten wurden in der Forschung mehrere medizinische
Fragestellungen gelöst. Aufgrund des Erfolgs des Track Your Tinnitus Projekts entwickelte Jo-
hannes Hueber (2016) im Rahmen seiner Bachelorarbeit eine aktualisierte Version der bereits
vorhandenen App, um sie an das aktuelle mobile Betriebssystem von Apple anzupassen.
Aktuell entstehen mehrere Track Your ... Projekte. Namentlich sind dies Track Your Pregnancy,
Track Your Migraine,Track Your Diabetes,Track Your Hearing,Track Your Walk und Track
Your Tinnitus (nochmals aktualisiert).
Alle Projekte die momentan in Entwicklung sind, auch das Track Your Stress Projekt, kom-
munizieren mit einem Backendsystem [Sch], bei dem alle Daten zusammengeführt werden.
Ein großer Vorteil der sternförmigen Topologie des Backendsystems ist, dass alle Daten zentral
verwaltet werden können. Diese Art der Datengenerierung ist effizienter, als beispielsweise ein-
zelne Patienten manuell mittels ausgedruckten Fragebögen zu befragen.
Außerdem können bei solchen computergestützten Systemen weitere Vorteile von modernen
Smartphones mit einfließen. Als Crowdsensing wird eine Technik bezeichnet, bei der Sensoren
von Smartphones dafür verwendet werden, um verschiedene Daten (GPS-Koordinaten, Be-
schleunigungswerte, Mikrophonlautstärke...) zu generieren. Mit diesen zusätzlichen Daten kön-
nen dann genauere Zusammenhänge zwischen Umwelt und der zu untersuchenden Krankheit
geschlossen werden.
1
Kapitel 1. Einleitung
1.2. Aufbau der Arbeit
Um einen besseren Überblick zu erhalten, wird hier kurz der Aufbau der Arbeit skizziert.
In Kapitel 2 Ergebnisse aus verwandten Arbeiten, werden 10 verwandte Publikationen im E-
Health Bereich vorgestellt.
Kapitel 3 listet alle Anforderungen, die mittels der App Track Your Stress erfüllt werden kön-
nen. Hierbei wird zwischen funktionalen und nichtfunktionalen Anforderungen unterschieden.
In Kapitel 4 werden die verwendeten Konventionen kurz erklärt. Außerdem werden alle ver-
wendeten Frameworks aufgelistet.
Um den technischen Aufbau der App genauer zu analysieren, wird in Kapitel 5 die verwendete
Architektur beschrieben. Dabei wird speziell auf Anwendungskontext, Gesamtkonzeption, Da-
tenmodell, Dialogstruktur und Ablauf eingegangen. Im Unterkapitel Anwendungskontext wird
ein Anwendungsfalldiagramm beschrieben, anhand dessen alle Anwendungsfälle der App klar
werden. In Gesamtkonzeption wird mittels eines Komponentendiagramms ein grober Überblick
über die Gesamtstruktur der App (und ihr Umfeld) gegeben. Datenmodell beschreibt alle Struk-
turen, die für die persistente Datenhaltung in der App notwendig sind. Das Datenmodell spielt
in der App eine große Rolle, da die gesamte App, laut Anforderungen, auch ohne Internetver-
bindung funktionieren muss. Um das zu bewerkstelligen, werden bei aktiver Internetverbindung
alle benötigten Daten auf das Gerät gespeichert. In den Unterkapiteln Dialogstruktur wird die
Navigation des Nutzers anhand eines Dialogstrukturdiagramms visualisiert. Das letzte Unter-
kapitel Ablauf zeigt zwei typische Abläufe zur Benutzung der App. Hierfür wird ein UML-
Zustandsdiagramm verwendet.
In Kapitel 6 wird ein Algorithmus vorgestellt, der besonders vielseitige und interessante Pro-
grammierkonzepte der Programmiersprache Swift [KP16] beinhaltet.
In Kapitel 7 wird die App Track Your Stress mittels Screenshots visualisiert und beschrieben.
Dabei werden alle wichtigen Aktionen für den Nutzer der App beschrieben. Um zu überprüfen,
ob alle Anforderungen an die App erfüllt wurden, werden in Kapitel 8 die Anforderungen auf-
gelistet und überprüft. Ist ggf. eine Anforderung nicht erfüllt, muss entsprechend nachgebessert
werden.
Im letzten Kapitel 9 wird die hier vorgelegte Arbeit zusammengefasst sowie einen Ausblick in
die Zukunft gegeben, um über mögliche weitere Track Your ... Projekte zu urteilen.
2
2
Ergebnisse aus verwandten Arbeiten
Wie eingangs bereits erwähnt, gibt es vor dieser Arbeit vorangegangene Projekte und verwand-
te Arbeiten. In diesem Kapitel werden nun 10 Publikationen aufgelistet, erklärt und deren
Ergebnisse kurz vorgestellt, um Hintergrundwissen im Bereich E-Health zu vermitteln.
2.1. Datengenerierung
In Unterkapitel Datengenerierung geht es um die allgemeine Datengenerierung im Gesundheits-
bereich. Dabei werden konventionelle Prinzipien neueren gegenübergestellt.
In Mobile Crowdsensing for the Juxtaposition of Realtime Assessments and Retrospective Re-
porting for Neuropsychiatric Symptoms [PPmS+17] wird untersucht, ob es einen Unterschied
gibt, wenn Daten zum Zeitpunkt des Auftretens der Krankheit oder erst danach erhoben wer-
den. Das Resultat sei, dass die Daten der retroperspektiven Berichterstattung verzerrt sein
können (siehe recall bias). Dieses Ergebnis bestätige auch andere Studien, die ebenfalls aus-
sagen, dass es einen signifikanten Unterschied zwischen retroperspektiver Berichterstattung zu
Selbsteinschätzung in Echtzeit gebe.
Des Weiteren würde bei chronischen Krankheiten andere Arten der Datengenerierung benö-
tigt werden. Pryss et al. beschreibt in Mobile Crowdsensing Services for Tinnitus Assessment
and Patient Feedback [PSLR17] eben genau dies, da man bei den klassischen Stift & Papier
Fragebögen nie beispielsweise die genaue Fluktuation der Tinnituslautstärke der gleichnamigen
Krankheit aufzeichnen könne, da diese Fluktuation stark vom Augenblick abhänge. Mit der
neuen Art der Datengenerierung Crowdsensing habe man ganz neue Möglichkeiten. Außerdem
sei es mittels Crowdsensing möglich, ökologische Einflüsse besser mit der zu untersuchenden
Krankheit in Verbindung zu bringen [PSLR17].
Ein weiteres Argument für Crowdsensing sei, dass es im Vergleich zu klinischen Versuchen
kostengünstig und weniger arbeitsintensiv sei. Außerdem sei die Interpretation der Daten eine
ganz anderes. Bei der herkömmlichen Art der Interpretation gehe man so vor, dass man die
ökologische Heterogenität schrittweise reduziere, damit man eine homogene Patientengruppe
habe. Bei Crowdsensing sei dieses Paradigma anders. Hier könne man aufgrund der großen
Menge an Daten auf Eigenheiten eines einzelnen Subjekts eingehen, da viele ähnliche Patienten
mit ähnlichen ökologischen Faktoren vorhanden seien. Dies würde eine individuelle Behandlung
ermöglichen. Gerade bei chronischen Krankheiten sei dies von Vorteilen [PRH+15] [PRLS15].
3
Kapitel 2. Ergebnisse aus verwandten Arbeiten
2.2. Konzeption einer mobilen App im E-Health
Im Buch Entwicklung mobiler Apps: Konzepte, Anwendungsbausteine und Werkzeuge im Busi-
ness und E-Health [SRP+15] wird anhand vom anschaulichen Beispielprojekt Track Your Tinni-
tus (siehe nächster Absatz) die schrittweise Entstehung einer App im E-Health Bereich erklärt.
In den folgenden Abschnitten von Unterkapitel 2.2 werden die jeweiligen Kapitel des Buchs
kurz angesprochen.
Zu Beginn werden in den einführenden Seiten allgemein über besondere Herausforderungen in
der Anwendungsprogrammierung diskutiert. Dabei wird auch unter anderem auf die verschie-
denen Sichtweisen von Auftraggeber und Entwickler eingegangen.
Kapitel 2 vermittelt Hintergrundwissen zur Tinnituserkrankung. Schickler et al. beschreibt,
dass es zwei verschiedene Formen von Tinnitus gebe. Dabei gebe es den objektiven Tinnitus,
der durch andere Körperstellen erzeugt werde, wie beispielsweise durch einen Muskelspasmus.
Diese Form sei besonders gut therapierbar. Die andere Form der Erkrankung sei der subjektive
Tinnitus, welcher deutlich schwerer zu therapieren sei.
In Kapitel 3 werden die funktionalen und nichtfunktionalen Anforderungen des Track Your
Tinnitus Projekt aufgelistet.
Welche verschiedenen Ansätze es bei der Entwicklung mobiler Anwendungen gibt, wird in Kapi-
tel 4 erläutert. Dabei werden drei Paradigmen beschrieben: Native Anwendung, Webanwendung
und Hybrid Anwendung. Native Anwendungen seien in der Programmiersprache entwickelt, die
direkt auf der Zielplattform ausgeführt werden. Dabei bieten solche System die beste Perfor-
mance, das optisch ansprechendste Designs und die intuitivsten Interaktionskonzepte. Weban-
wendungen seien Programme, die Inhalte die in Programmiersprachen für Browser geschrie-
ben sind, direkt auf einer App anzeigen würden. Allerdings zeichne derartige Anwendungen
den geringsten Funktionsumfang auf. Hybrid Anwendungen kombiniere, wie der Name bereits
andeutet, beides. Anwendungslogik sowie Benutzeroberfläche sei in Programmiersprachen der
Webentwicklung geschrieben. Dieser Code sei dann via eines nativen Container zugreifbar. Der
Vorteil dieses Containers sei dann, dass er besseren Zugriff auf das Smartphone erlaube.
In Kapitel 5 wird eine Umfrage vorgestellt, bei der Personen über das benutzerfreundliche und
intuitive Design der Track Your Tinnitus App befragt wurden.
Aktuelle Styleguides, Android sowie iOS, werden in Kapitel 6 beschrieben. Dabei wird mittels
des Track Your Tinnitus Projekts, die theoretischen Grundsätze der Styleguides veranschau-
licht.
In den Kapiteln 7 und 8 wird die Website sowie die mobilen Anwendungen von Track Your
Tinnitus vorgestellt. Außerdem wird die Architektur der Systeme sowie die Kommunikation
dieser erläutert und durch Grafiken veranschaulicht.
Im letzten inhaltlichen Kapitel wird auf die Implementierung des Track Your Tinnitus Projekts
eingegangen. Dabei wird zuerst die Website erklärt, welche mittels dem Laravel Framework im-
plementiert wurde. Hierbei handle es sich um ein PHP Framework, das das REST Prinzip
verfolgt und außerdem einige andere Besonderheiten bietet. Danach wird auf spezielle Algo-
rithmen eingegangen, wie etwa den Algorithmus zur Verteilung der Benachrichtigungen in den
entsprechenden Track Your Tinnitus Apps. Besonders schwierig zu erfüllende funktionale An-
forderungen, wie beispielsweise, dass die Slider keinen initialen Wert haben dürfen, da sonst die
Daten nicht aussagekräftige seien, werden in diesem Kapitel hervorgehoben, beschrieben und
ausführlich in der Problemlösung geschildert.
4
2.3. Track Your Tinnitus Projekt
2.3. Track Your Tinnitus Projekt
Im Track Your Tinnitus Projekt geht es darum, die subjektive Wahrnehmung von Tinnitus mit-
tels einer App aufzuzeichnen und zu analysieren. Dabei wird unter anderem Tinnituslautstärke
und Fluktuation der Tonhöhe und Lautstärke ermittelt. Da die App nach dem Crowdsensing
Paradigma entwickelt wurde, werden die Daten beim Auftreten des Tinnitus ermittelt. Diese
Aktualität hätte Vorteile, wenn beispielsweise die momentane Fluktuation des Tinnitus er-
forscht werden will. Außerdem könne die Track Your Tinnitus App die Daten unter echten
Alltagsbedingungen erheben. Solche Daten seien besonders aussagekräftig [PRLS15].
Damit die mobile Anwendung für den Benutzer ebenfalls interessant ist, gibt es in der App ein
Feedbacksystem, das die Patientenuntergruppe identifiziert und mit diesem Wissen entspre-
chend Feedback an die Nutzer weitergibt [PSLR17].
In Measuring the Moment-to-Moment Variability of Tinnitus: The TrackYourTinnitus Smart
Phone App werden die Ergebnisse des Zeitraums April 2014 und Februar 2016 veröffentlicht. In
dieser Zeitspanne gab es 857 Benutzer der App. Hauptsächlich beantwortet man in der Publika-
tion die Frage, ob die Benutzung der App eine verschlechternde Wirkung auf den Tinnitus habe.
Das Ergebnis sei negativ und bestätige somit auch andere Studien die zum selben Entschluss
gekommen seien [SPP+16].
In Outpatient Tinnitus Clinic, Self-Help Web Platform, or Mobile Application to Recruit Tinni-
tus Study Samples? wird untersucht, ob Daten die aus einem klinischen Umfeld (Universitäts-
klinikum Regensburg, N = 3786), einer Webplattform (Tinnitus Talk ( mittels Crowdsourcing),
N = 5017) und der bereits vorgestellten Track Your Tinnitus App (mittels Crowdsensing, N
= 867) vergleichbar sind. Außerdem wird untersucht, ob neue Technologien wie Crowdsensing,
Möglichkeiten bieten, andere Daten von Patienten zu generieren als bei ambulante Tinnitus
Patienten. Dabei wurde der Chi-2-Unabhängigkeitstest jeweils auf Alter, Geschlecht und Tin-
nitusdauer berechnet. Das Resultat sei, dass das Alter keine gleiche Verteilung zwischen den
drei Plattformen hat. Außerdem sei das Geschlecht sowie die Tinnitusdauer ebenfalls nicht
gleich verteilt. Das Resultat bestätige somit, dass durch die verschiedenen Arten der Daten-
generierung andere Daten entstehen, die möglicherweise für weitere Studien von Interesse sein
könnten. Andere Studien seien ebenfalls zum Ergebnis gelangt, dass Daten die mittels neueren
Technologien ermittelt wurden, nicht mit herkömmlichen vergleichbar sind [PPL+17b].
Ob Tinnitus von der Uhrzeit des Tages abhängt, wird in Does Tinnitus Depend on Time-of-
Day? An Ecological Momentary Assessment Study with the "TrackYourTinnitus" Application
diskutiert. Mittels der Daten aus der Track Your Tinnitus App wird ersichtlich, dass der Tin-
nitus hauptsächlich in den Nacht- und Morgenstunden als laut und störend empfunden wird.
Diese Erkenntnis könnte in der Therapie chronischer Patienten helfen, da die Tinnitusbehand-
lung auf den Rhythmus der Tinnituslautstärke und Störung des Tinnitus angepasst werden
kann [PPL+17a].
Ab wann die Tinnituslautstärke als störend eingestuft wird, wird in Emotional states as me-
diators between tinnitus loudness and tinnitus distress in daily life: Results from the "TrackY-
ourTinnitus" application diskutiert. Dabei sei das Resultat, dass zum einen Stress als Mittler
zwischen Lautstärke und Störgeräusch gesehen werden kann. Erhöhe sich die Tinnituslautstär-
ke eines Patients, so erhöhe sich auch sein Stresslevel. Andersrum sei es so, dass wenn das
Stresslevel erhöht wird, sich ebenso die Tinnituslautstärke erhöhe [PPLS16].
5
Kapitel 2. Ergebnisse aus verwandten Arbeiten
Außerdem werde laut den Daten ersichtlich, dass die Tinnituslautstärke das Störgeräusch be-
einflusse, sogar wenn der arousale und valenzale Gemütszustand konstant bleibt [PPLS16].
2.4. KINDEX Projekt
Durch medizinische Forschung stellte sich heraus, dass bereits vor der Geburt (pränatal) die
Mutter-Kind-Beziehung und somit die gesunde psychische Entwicklung beider Beteiligten ge-
prägt wird. Um eventuelle psychische Belastungen während der Schwangerschaft zu messen,
wurde eigens hierfür der Konstanzer Index (KINDEX) entwickelt.
Beim KINDEX Projekt geht es um eine mobile Anwendung für Tablets (KINDEX-App), die
mittels des Konstanzer Index (KINDEX) die psychosoziale Belastung während der Schwanger-
schaft erfasst.
Der Konstanzer Index (KINDEX) ist ein Interview, bei dem verschiedenste psychosoziale Be-
lastungen erfasst werden. Folgende Belastungen sind gemeint: Junges Alter (<= 21 Jahre),
Migrationshintergrund von Mutter und/oder Vater; alleinerziehend/nicht zusammenlebend; fi-
nanzielle Belastung; körperliche Beschwerden, medizinische Komplikationen, medizinische Ri-
sikofaktoren; erschwerte pränatale Bindung; sehr hoher wahrgenommener Stress; traumatische
Erfahrungen während der Kindheit (Mutter; familäre Gewalt); partnerschaftliche Gewalt; pro-
blematischer Substanzkonsum von Mutter und/oder Vater; psychische (Vor-) Belastung der
Mutter.
Da oftmals im klinischen Alltag oder in der Praxis Ressourcen für Personal eng bemessen seien,
und somit ein Interview zwischen Patient und ärztlichem Personal schwierig seien, wurde für den
KINDEX eine mobile App entwickelt, damit Patient sich selbst evaluieren können [RLBS+16].
Da es sich um ein automatisiertes System handelt, sind für die Benutzer der App noch weitere
Funktionen möglich. Je nach Resultat werden direkt Möglichkeiten zur Prävention der psychi-
schen Belastung angezeigt.
Martina Ruf-Leuschner et al. veröffentlichte eine Publikation [RLBS+16], bei dem a) die Va-
lität der KINDEX-App b) die Erhebung der Praktikabilität und Akzeptanz der App und c)
die Erfassung der internen Konsistenz der App geprüft wurde. Das Resultat zeige, dass die
KINDEX-App ein "praktikables und valides Screening-Instrument für die Erassung psychoso-
zialer Belastungsfaktoren bereits während der Schwangerschaft [sei] [...] " [RLBS+16].
6
3
Anforderungsanalyse
In diesem Abschnitt werden die Anforderungen an die Track Your Stress App definiert. Dabei
wird zwischen funktionalen und nichtfunktionalen Anforderungen unterschieden.
3.1. Funktionale Anforderungen
Funktionale Anforderungen werden im Folgenden so verstanden, dass sie unmittelbar mit der
Funktion in Zusammenhang stehen. Die folgende Tabelle listet alle auf.
Tabelle 3.1.: Funktionale Anforderungen
Nr. Beschreibung Problembeschreibung
1 Registrierung in
der App
Die Benutzung der App kann ohne Benutzerkonto nicht erfolgen.
Es sollte daher möglich sein, direkt auf einem Gerät ein solches
Benutzerkonto zu erstellen.
2 App auch oh-
ne Internetver-
bindung bedie-
nen
Eine funktionierende Internetverbindung auf dem Smartphone soll-
te keine Voraussetzung für das Benutzen der App sein, da ein Be-
nutzer evtl. nur schlechten oder gar keinen Empfang hat. Eventuell
gespeicherte Werte werden anschließend bei funktionierender Inter-
netverbindung im Hintergrund übermittelt.
3 Sprachänderung
innerhalb der
App
Um eine Intuitive Bedienung der App zu garantieren, sollte die
Sprache der App innerhalb der App geändert werden können. Da-
bei werden Nutzer der App unterstützt, die beispielsweise zwei-
sprachig sind.
Studienteilnahme
4 An verschie-
denen Studien
teilnehmen
Ein Benutzer sollte die Möglichkeit haben, sich in mehrere Studien
einzuschreiben und deren Fragebögen auszufüllen. Ein Benutzer
soll die Studienteilnahme zudem jederzeit beenden können.
5 Unterschiedliche
Studienzustände
definieren
Berechtigte Personen können neue Studien anlegen und bestehen-
de Studien ändern. Studien können privat oder öffentlich sein. An
öffentlichen Studien kann jeder Nutzer teilnehmen. Private Studien
erfordern einen speziellen Aufnahmeprozess.
6 An einer priva-
ten Studie teil-
nehmen
Der Benutzer kann sich per App in eine private Studie einschreiben,
sofern er das Password kennt.
Fragebögen
7
Kapitel 3. Anforderungsanalyse
7 Statistischen
Fragebögen
innerhalb der
Studienteilnah-
me ausfüllen
Für Studienteilnehmer können durch bestimmte Benutzer (Stu-
dienleitung) beliebige Fragebögen erstellt werden, um das jeweilige
Studienziel zu erreichen. Die Fragebögen werden dem Studienteil-
nehmer in der App angezeigt.
8 Statistische
Fragebögen
erweitern /
ändern
Die statistischen Fragebögen sollten von bestimmten Benutzern
veränderbar sein. Es sollte möglich sein, neue statistische Fragebö-
gen einzupflegen, oder auch bestehende zu bearbeiten.
9 Fragebögen de-
aktivieren
Deaktivierte Fragebögen können von den Benutzern nicht ausge-
füllt werden.
10 Zustand eines
Fragebogens
ändern
Fragebögen sollen je nach Konfiguration vom Benutzer einmal oder
mehrmals (wiederholt) ausgefüllt werden können. Wurde ein ein-
maliger Fragebogen bereits ausgefüllt, darf er dem Benutzer nicht
noch einmal präsentiert werden.
11 Statistischen
Fragebögen
in der App
ausfüllen
Da das Ausfüllen der statistischen Fragebögen Voraussetzung für
die Benutzung der Apps ist, sollte dies in der App möglich sein.
12 Ergebnisse syn-
chronisieren
Zur Visualisierung der Ergebnisse aus den Fragebögen zur Über-
wachung des Stresslevels und für Forschungszwecke, sollten die Er-
gebnisse aus den Apps an den Server übertragen werden.
13 Slider ohne in-
itialen Wert
Ein Benutzer lässt sich beim Ausfüllen eines Fragebogens davon
beeinflussen, welcher Wert voreingestellt ist (siehe dazu Kapitel
5.4.1). Daher darf der Slider in einem Fragebogen in den Track
Your Stress App keinen initialen Wert haben.
14 Position bestim-
men
Um herauszufinden, ob Stress von der Örtlichkeit abhängt, sollte
die App während des Ausfüllens des Fragebogens zur Überwachung
des Stresslevels, die Position bestimmen und übermitteln können,
falls für den entsprechenden Fragebogen vorgesehen.
15 Geräuschpegel
messen
Um herauszufinden, ob Stress von den Umgebungsgeräuschen be-
einflusst wird, sollten die App während des Ausfüllens des Fra-
gebogens zur Überwachung des Stresslevels, den Pegel der Hin-
tergrundgeräusche messen und übermitteln können, falls für den
entsprechenden Fragebogen vorgesehen.
16 An auszufüllen-
de Fragebögen
erinnern
Ein Benutzer sollte von der App benachrichtigt werden, wenn ein
neuer Fragebogen auf Basis eines hinterlegten Terminplans ausge-
füllt werden soll.
17 Benachrichti-
gungen anpas-
sen
Ein Benutzer sollte die Benachrichtigungshäufigkeit und den Zeit-
raum der Benachrichtigungen in der App frei einstellen können,
wenn dies vom Studienleiter für den Fragebogen vorgesehen ist.
18 Ergebnisse
in der App
anzeigen
Um die zeitliche Entwicklung in der App direkt anzeigen zu können,
sollten die Ergebnisse aus dem Fragebogen zur Überwachung des
Stresslevels visualisiert werden.
8
3.2. Nichtfunktionale Anforderungen
19 Daten eines Be-
nutzers anzeigen
Ein Benutzer sollte die Möglichkeit haben, seine Daten (Antworten
auf den Fragebogen zur Überwachung des Stresslevels) in der App
angezeigt zu bekommen.
3.2. Nichtfunktionale Anforderungen
Nichtfunktionale Anforderungen werden im Folgenden so verstanden, dass sie mittelbar mit
der Funktionalität zusammenhängen. Typische nichtfunktionale Anforderungen sind beispiels-
weise: Die Software muss innerhalb von 0.5 Sekunden reagieren. Oder auch: Alle verwendeten
Hinweisfarben müssen für den Nutzer eindeutig sein. Die folgende Tabelle listet alle auf.
Tabelle 3.2.: Nichtfunktionale Anforderungen
Nr. Beschreibung Problembeschreibung
1 Benutzer-
freundliche
Bedienung der
App
Bereits bei der ersten Bedienung der App soll der Benutzer durch
ein einfaches Design in der Lage sein, die App in vollem Umfang
korrekt zu nutzen.
2 Zuverlässigkeit Die App soll bei allen Eingaben des Nutzers geeignet reagieren und
nicht abstürzen.
3 Wartbarkeit und
Erweiterbarkeit
Durch ein entsprechende Softwarearchitektur soll die Track Your
Stress App von anderen Programmierern einfach erweiterbar und
einfach wartbar sein.
4 Effizienz Der Nutzer der App muss bei jeder Aktion immer ein baldmög-
lichstes Feedback bekommen, damit eine responsive App entsteht.
9
Kapitel 3. Anforderungsanalyse
10
4
Konventionen und verwendete Frameworks
4.1. Konventionen
Damit der Code für die Track Your Stress App strukturiert aufgebaut ist, wurden hierfür die
Swift Konventionen von Apple beachtet [App]. Um die Wartbarkeit und Erweiterbarkeit zu
garantieren, ist strukturierter Code eine wichtige Voraussetzung. Aber auch andere wichtige
Designrichtlinien wie Kopplung und Kohäsion werden mittels einer einheitlichen Konvention
verbessert. Wie überall in der Softwareentwicklung gilt auch hier: Die Kopplung (die Abhän-
gigkeit zwischen verschiedenen Modulen) muss möglichst gering gehalten werden, wobei die
Kohäsion (die Abhängigkeit zwischen Funktionen eines Moduls) hoch sein sollte.
4.2. Verwendete Frameworks
Alle Frameworks die für die Track Your Stress App verwendet wurden, sind in der folgenden
Tabelle aufgelistet.
Tabelle 4.1.: Funktionale Anforderungen
Name Link Beschreibung
AVFoundation https://developer.
apple.com/reference/
avfoundation
Dieses Framework dient dazu, alle Audi-
odienste, Kameradienste und vieles mehr an-
zusteuern. Im Kontext dieser App dient es da-
zu, die Mikrofonaufnahme während des Fra-
gebogens durchzuführen.
User-
Notifications
https://developer.
apple.com/
documentation/
usernotifications
Dieses Framework wird für Notifications ver-
wendet. Der Nutzer der Track Your Stress
App wird (je nach Benachrichtigungshäufig-
keit) darauf hingewiesen, dass er einen be-
stimmten Fragebogen ausfüllen soll.
CoreLocation https://developer.
apple.com/
documentation/
corelocation
Mit diesem Framework werden alle GPS-
Dienste verwaltet. Es wird konkret dafür ver-
wendet, die Position des Nutzers, während
des ausfüllens eines Fragebogens, zu bestim-
men, um eventuelle Zusammenhängen von
Stress und Position genau zu analysieren.
11
Kapitel 4. Konventionen und verwendete Frameworks
CoreData https://developer.
apple.com/library/
content/documentation/
Cocoa/Conceptual/
CoreData/index.html
CoreData wird dafür verwendet, um eine per-
sistente Datenhaltung zu garantieren. Über-
all wo Daten gespeichert werden (vom gesam-
ten Fragebogen, bis hin zur Standardsprache
des Nutzers) wird dieses Framework verwen-
det.
SSRadio-
Buttons
https://github.
com/shamasshahid/
SSRadioButtonsController
SSRadioButtons werden im Fragebogen für
die Singlechoice Antworten eingesetzt.
Gloss https://github.com/
hkellaway/Gloss
Gloss ist ein JSON Framework, das die Ar-
beit mit JSON vereinfacht und verschönert.
Konkret wird es in diesem Kontext dazu ein-
gesetzt, JSON Code direkt auf Swiftobjekte
abzugleichen und umgekehrt.
12
5
Architektur der iOS App
Das Kapitel Architektur der iOS App beschreibt, auf welchen architektonischen Prinzipien
die mobile Anwendung beruht. Dabei wird im Speziellen auf alle für den Benutzer möglichen
Anwendungsfälle eingegangen. Das Unterkapitel Datenmodell erklärt alle Strukturen die im
Kontext von persistener Datenhaltung stehen. Im Unterkapitel Dialogstruktur wird auf den
Dialogwechsel zwischen Nutzer und Anwendung eingegangen. Unterkapitel Ablauf beschreibt
zwei typische Abläufe in der Benutzung der App.
5.1. Anwendungskontext
Alle für den Benutzer möglichen Anwendungsfälle werden in Abbildung 5.1 dargestellt. Dabei
kann sich der Nutzer registrieren, um die App zu verwenden. Hat er sich registriert, kann er sich
ein- sowie ausloggen. Im Reiter Profil hat der Nutzer die Möglichkeit, sein Profil anzupassen,
sowie fehlende Angaben zu vervollständigen. Das Passwort kann außerdem auch hier verändert
werden.
Um Fragebögen einer Studie zu erhalten, muss der Nutzer zuerst einer Studie beitreten. Dies
macht er im Reiter Einstellungen unter Meine Studien. Dort hat er die Möglichkeit Studien
bei- oder auszutreten.
Fragebögen werden ausgefüllt, indem im Reiter Fragebögen ein entsprechender Fragebogen aus-
gewählt, sowie entsprechend beantwortet wird.
Damit der Nutzer Feedback über seine bereits ausgefüllten Fragebögen bekommt, hat er die
Möglichkeit unter dem Reiter Fragebögen sowie unter Einstellungen - meine Antwortbögen auf
das Datenanalysesymbol (siehe Abbildung 7.16) zu drücken, um Feedback zu erhalten.
Die Track Your Stress App ist flexibel in der Nutzung. Deshalb können auch die Benachrich-
tigungen unter dem Reiter Einstellungen - Meine Benachrichtigungen angepasst werden. Die
genauen Details der Funktionalität werden in Kapitel 7 beschrieben und können dort nachge-
lesen werden.
13
Kapitel 5. Architektur der iOS App
Abbildung 5.1.: Anwendungsfalldiagramm des Benutzers
5.2. Gesamtkonzeption & Softwarearchitektur
Nach heutigen Standards in der Softwareentwicklung (die auch teilweise durch Swift vor-
gegeben sind), besteht die Track Your Stress App hauptsächlich aus drei Komponenten.
Namentlich sind dies Model (dt. Modell), View (dt. Präsentation) und Controller (dt.
Programmsteuerung). Damit sich Software so verhält, wie es der Benutzer erwartet, müssen
die entsprechenden drei Komponenten korrekt miteinander kommunizieren. Dabei hat jede
Komponente einen bestimmten Arbeitsbereich.
Model: Das Model verwaltet die darzustellenden Daten. Dabei sind die Daten durch das Model
gekapselt.
14
5.2. Gesamtkonzeption & Softwarearchitektur
View: Die View kümmert sich um die Darstellung der Daten, mit denen der Benutzer intera-
gieren kann.
Controller: Der Controller dient als Bindeglied zwischen Model und View. Er ist für den
Kontrollfluss der Daten, sowie für Logik im Programmfluss zuständig. Dabei nimmt er Benut-
zerinteraktionen in der View entgegen. Der Zugriff der Daten erfolgt dann gekapselt über das
Model. Fallen in der Software weitere Logikabläufe an, ist der Controller (eventuell ein anderer
Controller) ebenfalls für die Verwaltung zuständig.
Abbildung 5.2 beschreibt nun, wie genau in der Track Your Stress App die drei Schichten mit-
einander kommunizieren. Die bereits beschriebene Schicht View wird vollständig in der GUI
(Graphical User Interface) Schicht beschrieben. In Swift wird diese Schicht mit sogenannten
Storyboards erstellt. Controller steuern dann eine Komponente im Storyboard an und nehmen
beispielsweise die Daten der GUI entgegen. Eine Kapselung der Daten erfolgt in Swift immer
automatisch, sobald das Framework CoreData zur persistenten Datenhaltung verwendet wird.
Utils (siehe Abbildung 5.2) sind kleinere Hilfsprogramme die für weitere Logikabläufe im Pro-
grammablauf benötigt werden. Ein gutes Beispiel wäre hierfür ein Algorithmus zur Generierung
von Hashwerten. Typischerweise wird ein Algorithmus solcher Art in eine extra Hilfsklasse ge-
kapselt, um den Algorithmus für andere Controller einfacher zugänglich zu machen.
Die Track Your Stress App wurde so konzipiert, dass es extra Controller gibt (die CoreData
Controller), die für die Verwaltung der persistenten Daten zuständig sind. Dabei steuert
ein solcher Controller direkt das CoreData Framework an. Je nach Anforderungsort, gibt der
Controller die Daten in einem Model an beispielsweise die View weiter.
Wie in Abbildung 5.2 ersichtlich ist, erfolgt zwischen der Track Your Stress App und der Rift
API ein großer Datenaustausch. Alle Nutzereingaben, die für das rift-basierte Datenbank-
system von Interesse sind, werden von der App an das besagte System übertragen. Beispiele
hierfür sind beantwortete Fragebögen oder sogar kleine Benutzereingaben wie beispielsweise
die Standardsprache. Ebenfalls ist die Kommunikation in die entgegengesetzte Richtung von
großem Interesse. Das Datenbanksystem sendet beispielsweise die Struktur der Fragebögen an
die App, wo sie dann vom Benutzer beantwortet werden. JSON wird als Datenformat für die
Kommunikation verwendet.
15
Kapitel 5. Architektur der iOS App
Abbildung 5.2.: Gesamtkonzeption
16
5.3. Datenmodell
5.3. Datenmodell
5.3.1. ER-Diagramm
Das hier dargestellte ER-Diagramm (Abbildung 5.3) zeigt alle Zusammenhänge zwischen den
verwendeten Tabellen. Dabei wird die Chen-Notation für ER-Diagramme verwendet. Jede Ta-
belle wird im Detail in den nachfolgenden Unterkapiteln erklärt.
17
Kapitel 5. Architektur der iOS App
Questionnaire
questionnaireID
descriptionQuesitonnaire
introtext
is_active
is_filled_out
is_multiple
is_onetime
is_schedule_changeable
name
notificationAmount
notificationOption
notificationRandomGeneration
notificationsAreGenerated
origin
outrotext
title
CanUse
Schedule
name
type
value
amount
at
end
every
start
start_day
type
hat
nn
11
hat
nn
11
QuestionnaireStructure
elementtype
headline
label
name
question
questiontype
required
structureID
text
hat
nn
11
Answers
Values
counter
label
singleChoiceAnsw
erString
value
min
max
step
valueString
besitzt
besitzt
nn
11
nn
11
AnswerOfQuestion
GPSToQuestionnaire
MicroToQuestionnaire
Notification
NotificationPlaner
ETag
User
Study
SaveNumberQuestion
naire
ValuesOfQuestion
at
currentSaveDate
every
isFixed
isNotificationSchedule
d
isSameDayTrigger
type
from
till
isEnabled
weekday
besitzt besitzt
nn
11 11
nn
eTagValue
routeName
email
firstname
lastname
language
name
password
sex
token
verwendet
nn
11
isInSavingProcess
saveNumber
verwendet
nn
11
accesstype
consenttext
descriptionStudy
ends_at
is_private
is_running
name
pictureBase64
starts_at
studyId
text
title
ist
eingeschrieben
in
nn
11
label
questiontype
saveNumber
altitude
latitude
longitude
saveNumber
timeStamp
amplitude
saveNumber
timeStamp
hat
nn
11
hat
hat
hat
nn 11
11
nn 11
nn
timeStamp
valueInt
valueString
Abbildung 5.3.: ER-Diagramm
18
5.3. Datenmodell
5.3.2. User
Tabelle 5.1.: Beschreibung Usertabelle
Tabelle User
Beschreibung Alle notwendigen Informationen des Benutzers werden hier gespeichert
Tabelle 5.2.: Haupttabelle User
Feld Typ Beschreibung
email String Speichert die E-Mail Adresse des Benutzers
firstname String Vorname des Benutzers
lastname String Nachname des Benutzers
language String Hier wird die Standardsprache für die App festgelegt
name String Nickname des Nutzers
password String Passwort des Nutzers, das als Hash (SHA-256) gespeichert
ist
sex Int16 Geschlecht des Nutzers, kodiert nach ISO/IEC 5218
token String Aktives Token der momentanen Sitzung
Tabelle 5.3.: Fremdbeziehungen User
Bezeichnung Art Beschreibung
etags to many Speichert ETag-Werte für alle Routes der API
questionnaires to many Fragebögen aller Studien
saveNumber to many Jeder Benutzer kann beliebig viele Speichernummern besit-
zen
studies to many Alle Studien, bei denen der Benutzer eingeschrieben ist
19
Kapitel 5. Architektur der iOS App
5.3.3. Questionnaire
Tabelle 5.4.: Beschreibung Questionnairetabelle
Tabelle Questionnaire
Beschreibung Speichert einen Fragebogen
Tabelle 5.5.: Haupttabelle Questionnaire
Feld Typ Beschreibung
questionnaireID String Primärschlüssel des Fragebogens (laut API)
introtext String Introtext für einen Fragebogen
outrotext String Outrotext für einen Fragebogen
description-
Questionnaire
String Beschreibung eines Fragebogens
is_active Int16 Zeigt an, ob der Fragebogen aktiviert ist
is_filled_out Boolean Zeigt an, ob der Fragebogen ausgefüllt ist
is_multiple Int16 Wiederholbarer Fragebogen?
is_onetime Int16 Einmaliger Fragebogen?
is_sche-
dule_changeable
Int16 Sind die Zeiten für das ausfüllen veränderbar?
name String Interne Bezeichnung für den Fragebogen
origin String Herkunft des Fragebogens
title String Titel der dem Benutzer angezeigt wird
notification-
Amount
Int16 Wieviele Benachrichtigungen hat der Fragebogen?
notification-
Option
String standard (random) oder custom (fixe Zeiten)
notification-
RandomGeneration
Date Speicherdatum an dem die Notifications erstellt wurden
notifications-
AreGenerated
Boolean Sind Notifications erstellt?
20
5.3. Datenmodell
Tabelle 5.6.: Fremdbeziehungen Questionnaire
Bezeichnung Art Beschreibung
answerOf-
Question
to many Benutzer antwortete auf Frage
gpsTo-
Questionnaire
to many GPS-Messung für einen Fragebogen
microTo-
Questionnaire
to many Mikrophonmessung für einen Fragebogen
canuses to many zum Beispiel soll der Fragebogen GPS-Messungen machen
schedules to many zu diesen Zeiten soll der Fragebogen ausgefüllt werden
user to one Ein Fragebogen gehört immer zu einem Nutzer
notification-
Planer
to many Wochentag für den notificationPlaner
notifications to many Custom Notifications
questionnaire-
Structure
to many Aufbau des Fragebogens
21
Kapitel 5. Architektur der iOS App
5.3.3.1. Schedule
Tabelle 5.7.: Beschreibung Scheduletabelle
Tabelle Schedule
Beschreibung Zeitplan, nachdem ein Fragebogen beantwortet werden soll
Tabelle 5.8.: Haupttabelle Schedule
Feld Typ Beschreibung
amount Int16 Wie oft soll der Fragebogen beantwortet werden?
type String Fixed oder Between
every Int16 Wann soll der Fragebogen wieder ausgefüllt werden?
start Date (Sofern between-type) Startdatum des Fragebogens
end Date (Sofern between-type) Enddatum des Fragebogens
start_day Int16 Soll der Fragebogen erst nach dem zum Beispiel 3. Tag be-
ginnen?
at Date (Sofern fixed-type) An welchem Datum soll der Fragebogen
beantwortet werden?
Tabelle 5.9.: Fremdbeziehungen Schedule
Bezeichnung Art Beschreibung
questionnaire to one Ein Schedule gehört immer zu einem Fragebogen
22
5.3. Datenmodell
5.3.3.2. CanUse
Tabelle 5.10.: Beschreibung CanUseTabelle
Tabelle CanUse
Beschreibung Beschreibt, welche Sensoren am Endgerät verwendet werden sollen (zum
Beispiels GPS)
Tabelle 5.11.: Haupttabelle CanUse
Feld Typ Beschreibung
name String Beschreibung des Sensors (zum Beispiels GPS)
type String zum Beispiels amount für value
value Int16 wie oft soll der Sensor verwendet werden?
Tabelle 5.12.: Fremdbeziehungen CanUse
Bezeichnung Art Beschreibung
questionnaire to one Ein CanUse gehört immer zu einem Fragebogen
23
Kapitel 5. Architektur der iOS App
5.3.4. QuestionnaireStructure
Tabelle 5.13.: Beschreibung QuestionnaireStructuretabelle
Tabelle QuestionnaireStructure
Beschreibung Der Aufbau eines Fragebogens, aufgeteilt in einzelne Zellen
Tabelle 5.14.: Haupttabelle QuestionnaireStructure
Feld Typ Beschreibung
elementtype String Gibt vor, dass eine Zelle zum Beispiel vom Typ "element"
ist
headline String Hat die Zelle eine Überschrift, wird sie hier gesetzt
label String Identifier von der API
name String interner Name der Zelle
question String Die eigentliche Frage, falls es sich hier bei dieser Zelle um
einen Fragetyp handelt
questiontype String Gibt vor, um welche Art von Frage es sich handelt
required Int16 Muss diese Frage ausgefüllt werden?
structureID String Interne ID der API
text String Falls es sich um einen Text handelt (keine Frage) wird dieser
hier gesetzt
Tabelle 5.15.: Fremdbeziehungen QuestionnaireStructure
Bezeichnung Art Beschreibung
answers to many Welche Antworten gibts es zu dieser Frage?
questionnaire to one Eine Struktur gehört immer zu einem Fragebogen
values to many Welche Werte werden als Antwort zum Server gesendet?
24
5.3. Datenmodell
5.3.4.1. Answers
Tabelle 5.16.: Beschreibung Answertabelle
Tabelle Answers
Beschreibung Antworten auf eine Frage vom QuestionnaireStructure
Tabelle 5.17.: Haupttabelle Answers
Feld Typ Beschreibung
counter Int16 Anzahl der Antworten
label String Beinhaltet zum Beispiel bei einer Sliderfrage ein Minimum
und Maximum label
singleChoice-
AnswerString
String Beschriftung für den Radiobutton
value Int16 Wird für eine Sliderfrage benötigt
Tabelle 5.18.: Fremdbeziehungen Answers
Bezeichnung Art Beschreibung
questionnaire-
Structure
to one Eine Antwort gehört zu einer Struktur
25
Kapitel 5. Architektur der iOS App
5.3.4.2. Values
Tabelle 5.19.: Beschreibung Valuestabelle
Tabelle Values
Beschreibung Beinhaltet die Werte einer Antwort, zur Beantwortung einer Struktur
Tabelle 5.20.: Haupttabelle Values
Feld Typ Beschreibung
min Int16 Minimumwert für den Slider
max Int16 Maximumwert für den Slider
step Int16 Schrittweite für den Slider
valueString String Wert für zum Beispiel eine SingleChoice Frage
Tabelle 5.21.: Fremdbeziehungen QuestionnaireStructre
Bezeichnung Art Beschreibung
questionnaire-
Structure
to one Ein Value gehört immer zu einer Struktur
26
5.3. Datenmodell
5.3.5. Study
Tabelle 5.22.: Beschreibung Study
Tabelle Study
Beschreibung Beinhaltet alle Daten zu einer Studie
Tabelle 5.23.: Haupttabelle Study
Feld Typ Beschreibung
accesstype String Wie erhält der Nutzer den Zugang zur Studie (zum Beispiel
Passwort)
consenttext String Text zu einer Studie
description-
Study
String Beschreibung einer Studie
ends_at Date Studie endet an diesem Datum
is_private Int16 private Studie
is_running Int16 Ist die Studie noch aktiv?
name String interner Name für die Studie
pictureBase64 String Bild der Studie
starts_at Date Studie beginnt an diesem Datum
studyId String interne ID der API der Studie
text String Text zu einer Studie
title String Dieser Titel wird dem Benutzer der App angezeigt
Tabelle 5.24.: Fremdbeziehungen Study
Bezeichnung Art Beschreibung
user to one Eine Studie gehört einem Nutzer an
27
Kapitel 5. Architektur der iOS App
5.3.6. ETag
Tabelle 5.25.: Beschreibung ETag
Tabelle ETag
Beschreibung Für jede Route der API wird hier der ETag Wert gespeichert
Tabelle 5.26.: Haupttabelle ETag
Feld Typ Beschreibung
eTagValue String eTag Wert der von der API gesendet wird
routeName String Name der route
Tabelle 5.27.: Fremdbeziehungen ETag
Bezeichnung Art Beschreibung
user to one Ein ETag gehört zu einem Nutzer
28
5.3. Datenmodell
5.3.7. Beantwortung der Fragebögen
5.3.7.1. SaveNumberOfQuestionnaire
Tabelle 5.28.: Beschreibung SaveNumberOfQuestionnaire
Tabelle SaveNumberOfQuestionnaire
Beschreibung Wird ein Fragebogen beantwortet, bekommt jede Antwort einen einzigar-
tigen Wert, damit die Gesamtheit der Antworten gesammelt werden kann,
um den kompletten Antwortbogen abzuschicken
Tabelle 5.29.: Haupttabelle SaveNumberOfQuestionnaire
Feld Typ Beschreibung
isInSaving-
Process
Boolean Zeigt an, ob der Antwortbogen gerade versucht wird, abzu-
schicken
saveNumber Int32 Zahl, die für einen Antwortbogen gleich ist
Tabelle 5.30.: Fremdbeziehungen SaveNumberOfQuestionnaire
Bezeichnung Art Beschreibung
user to one Eine Savenumber gehört zu einem Nutzer
29
Kapitel 5. Architektur der iOS App
5.3.7.2. AnswerOfQuestion
Tabelle 5.31.: Beschreibung AnswerOfQuestion
Tabelle AnswerOfQuestion
Beschreibung Für jede Antwort auf eine Frage wird ein AnswerOfQuestion angelegt
Tabelle 5.32.: Haupttabelle AnswerOfQuestion
Feld Typ Beschreibung
label String label der Frage wird gespeichert, damit es zur API geschickt
werden kann
questiontype String Damit die Frage intern korrekt gespeichert werden kann,
wird der Fragetyp mitgespeichert
saveNumber Int32 Speichernummer aus dem SaveNumber Table
Tabelle 5.33.: Fremdbeziehungen AnswerOfQuestion
Bezeichnung Art Beschreibung
questionnaire to one eine Antwort gehört zu einem Fragebogen
valuesOf-
Question
to many Eine Antwort beinhaltet viele Werte
30
5.3. Datenmodell
5.3.7.3. ValuesOfQuestion
Tabelle 5.34.: Beschreibung ValuesOfQuestion
Tabelle ValuesOfQuestion
Beschreibung Für jede Antwort wird ein Wert benötigt (zum Beispiel "Ja")
Tabelle 5.35.: Haupttabelle ValuesOfQuestion
Feld Typ Beschreibung
timeStamp-
OfAnswer
Int32 Timestamp der Antwort
valueInt Int32 Falls es sich beim Wert um eine Zahl handelt (wie beim
Slider) wird sie hier gespeichert
valueString String Falls es sich beim Wert um einen String handelt (wie bei
SingleChoice) wird sie hier gespeichert
Tabelle 5.36.: Fremdbeziehungen ValuesOfQuestion
Bezeichnung Art Beschreibung
answerOf-
Question
to one Ein Wert gehört zu einer Antwort
31
Kapitel 5. Architektur der iOS App
5.3.7.4. GPSToQuestionnaire
Tabelle 5.37.: Beschreibung GPSToQuestionnaire
Tabelle GPSToQuestionnaire
Beschreibung Wird bei einem Fragebogen eine GPS-Messung durchgeführt, wird sie hier
gespeichert
Tabelle 5.38.: Haupttabelle GPSToQuestionnaire
Feld Typ Beschreibung
altiude Double Altiude-Wert der Messung
latitude Double Latitude-Wert der Messung
longitude Double Longitude-Wert der Messung
saveNumber Int32 Damit die Messung einem Antwortbogen zugeordnet wer-
den kann, muss auch die Speichernummer mitgespeichert
werden
timeStamp-
OfMeasure
Int32 Zeitstempel der Messung
Tabelle 5.39.: Fremdbeziehungen GPSToQuestionnaire
Bezeichnung Art Beschreibung
questionnaire to one Eine Messung gehört zu einem Fragebogen
32
5.3. Datenmodell
5.3.7.5. MicroToQuestionnaire
Tabelle 5.40.: Beschreibung MicroToQuestionnaire
Tabelle MicroToQuestionnaire
Beschreibung Die Mikrophonmessung wird hier gespeichert
Tabelle 5.41.: Haupttabelle MicroToQuestionnaire
Feld Typ Beschreibung
amplitude Double Amplitudenwert der Messung
saveNumber Int32 Damit die Messung einem Antwortbogen zugeordnet wer-
den kann, muss auch die Speichernummer mitgespeichert
werden
timeStamp-
OfMeasure
Int32 Zeitstempel der Messung
Tabelle 5.42.: Fremdbeziehungen MicroToQuestionnaire
Bezeichnung Art Beschreibung
questionnaire to one Eine Mikrophonmessung gehört zu einem Fragebogen
33
Kapitel 5. Architektur der iOS App
5.3.8. Notification
Tabelle 5.43.: Beschreibung Notification
Tabelle Notification
Beschreibung Sollte der Nutzer keine zufälligen Notifications wollen, so werden benut-
zerdefinierte Notifications gespeichert. Das ist die Tabelle dafür.
Tabelle 5.44.: Haupttabelle Notification
Feld Typ Beschreibung
at Date An diesem wiederkehrenden Datum wird die Benachrichti-
gung angezeigt
currentSaveDateDate zu diesem Datum wurde die Benachrichtigung gespeichert
every Int16 Zeigt an, wann die Benachrichtigung wiederholt wird
isFixed Boolean Ist die Benachrichtigung änderbar?
isNotification-
Scheduled
Boolean Wurde die Benachrichtigung bereits eingeplant?
isSameDay-
Trigger
Boolean Wird die Benachrichtigung noch am selben Tag angezeigt?
type String In der App gibt es Custom oder Standard Benachrichtigun-
gen
Tabelle 5.45.: Fremdbeziehungen Notification
Bezeichnung Art Beschreibung
questionnaire to one Eine Benachrichtigung gehört zu einem Fragebogen
34
5.3. Datenmodell
5.3.9. NotificationPlaner
Tabelle 5.46.: Beschreibung NotificationPlaner
Tabelle NotificationPlaner
Beschreibung Diese Tabelle wird für den NotificationPlaner benötigt. Wählt der Be-
nutzer Standardbenachrichtigungen, so kann er für jeden einzelnen Tag
(Montag bis Sonntag) die Uhrzeiten anpassen.
Tabelle 5.47.: Haupttabelle NotificationPlaner
Feld Typ Beschreibung
from Date Ab dieser Uhrzeit kann eine Benachrichtigung angezeigt
werden
till Date Bis zu dieser Uhrzeit kann eine Benachrichtigung angezeigt
werden
isEnabled Boolean Ist dieser Tag aktiv?
weekday Int16 Wochentag der Benachrichtigung
Tabelle 5.48.: Fremdbeziehungen NotificationPlaner
Bezeichnung Art Beschreibung
questionnaire to one Ein NotificationPlaner gehört zu einem Fragebogen
35
Kapitel 5. Architektur der iOS App
5.4. Dialogstruktur
5.4.1. Willkommen
Die in Abbildung 5.4 dargestellten Dialoge bekommt der Benutzer zuerst angezeigt. Im 1. Dialog
Willkommen kann er zur Registrierung wechseln, um sich dort zu registrieren. Beim Login-
dialog kann der Nutzer seine E-Mail Adresse und Passwort angeben, um sich einzuloggen. Von
dort aus gelangt er zum Dialog Fragebögen.
Hat der Benutzer sein Passwort vergessen, klickt er im Login auf Passwort vergessen. Dort
gibt der Benutzer seine E-Mail Adresse an, um weitere Anweisungen per E-Mail zu bekom-
men. Hat der das Token zum Zurücksetzen des Passworts bekommen, klickt der Benutzer auf
zurücksetzen.
Abbildung 5.4.: Dialogstruktur Willkommen
36
5.4. Dialogstruktur
5.4.2. Fragebögen
Im Reiter Fragebögen hat der Benutzer die Möglichkeit alle Typen von Fragebögen auszufüllen.
Klickt er auf einen Fragebogen, so gelangt er zu seinen Fragen. Ist der Nutzer der App mit
der Beantwortung fertig, klickt er auf Sichern um die Antworten abzuschicken und wieder zur
Übersicht der Fragebögen zu gelangen.
Außerdem hat der Benutzer die Möglichkeit seine Daten auswerten zu lassen. Um dies zu tun
klickt er auf das Datenanalysesymbol. In diesem Dialog wird ein Vergleichswert aller Nutzer
der App ermittelt.
Abbildung 5.5.: Dialogstruktur Fragebögen
37
Kapitel 5. Architektur der iOS App
5.4.3. Profil
Zuallererst wird im Dialog Profil eine Übersicht des Nutzers dargestellt. Hier sieht er alle
relevanten Attribute über sich. chte der Nutzer seine Attribute ändern, so klickt er auf
Bearbeiten. Die Textfelder werden daraufhin veränderbar. Ist der Nutzer mit der Eingabe
fertig, drückt er auf Sichern. Die Daten werden daraufhin an den Server gesendet.
chte der Nutzer sein Passwort ändern, drückt er im Profildialog auf Passwort ändern.
Im entsprechenden Dialog angekommen, gibt der Nutzer seine Daten ein, um sein Passwort zu
wechseln.
Abbildung 5.6.: Dialogstruktur Profil
38
5.4. Dialogstruktur
5.4.4. Einstellungen
Im Dialog Einstellungen hat der Nutzer der App die Möglichkeit, verschiedenste Einstellungen
vorzunehmen. chte er die Sprache ändern, drückt er auf Meine Sprache. Benötigt der
Nutzer eine Übersicht aller abgegebenen Antworten, drückt er auf Meine Antwortbögen.
Mit einem Klick auf Meine Studien kann der Nutzer Studien verwalten. Bei Meine Be-
nachrichtigungen kann der Nutzer die Benachrichtigungen anpassen. Außerdem gibt es noch
einen Aboutdialog, sowie einen Logoutbutton.
Genau wie beim Reiter Fragebögen hat der Nutzer der App unter Meine Antwortbögen die
Möglichkeit, seine Daten auszuwerten. Die Funktionalität ist dieselbe wie bei den Fragebögen.
Abbildung 5.7.: Dialogstruktur Einstellungen
39
Kapitel 5. Architektur der iOS App
5.4.5. Meine Studien
Unter Meine Studien hat der Nutzer die Möglichkeit seine Studien zu verwalten. Der Nutzer
kann Studien beitreten, indem er zum Dialog Alle Studien mittels dem + Symbol wechselt. Dort
kann er dann einfach eine Studie auswählen, um ihr beizutreten. Studien werden verlassen, in-
dem die entsprechende Studie unter Meine Studien zum linken Bildschirmrand hinausgeschoben
wird.
Eine Detailansicht einer Studie erhält der Nutzer, indem er auf das Info-Symbol drückt. Es
wird unter anderem Beginn und Ende der Studie angezeigt.
Drückt der Nutzer unter Meine Studien direkt auf eine Studie, werden alle Fragebögen dieser
angezeigt.
Abbildung 5.8.: Dialogstruktur meine Studien
40
5.4. Dialogstruktur
5.4.6. Meine Benachrichtigungen
In der App Track Your Stress gibt es Benachrichtigungen, die den Nutzer daran erinnern sollen,
bestimmte Fragebögen auszufüllen. Diese Benachrichtigungen können im Dialog Meine Benach-
richtigungen angepasst werden.
chte der Nutzer Benachrichtigungen eines bestimmten Fragebogens anpassen, so klickt er
auf den Fragebogen. Handelt es sich um einen wöchentlichen oder monatlichen Fragebogen, so
kann der lediglich diese eine Benachrichtigung pro Woche oder Monat anpassen. Handelt es
sich um einen täglichen Fragebogen, so können mehrere eingestellt werden.
Zuallererst kann der Benutzer zwischen Standard oder Benutzerdefinierten Benachrichtigungen
entscheiden. Standard bedeutet, dass mittels eines Zufallprinzips Benachrichtigungen über den
Tag verteilt angezeigt werden. Die Häufigkeit sowie der Beginn und das Ende der Benachrich-
tigungen können pro Tag im Benachrichtigungsplaner eingestellt werden.
Benutzerdefinierte Benachrichtigungen werden pro Tag immer zur gleichen Uhrzeit angezeigt.
Dieser Zeitpunkt kann auch im Benachrichtigungsplaner angepasst werden.
Abbildung 5.9.: Dialogstruktur meine Benachrichtigungen
41
Kapitel 5. Architektur der iOS App
5.5. Ablauf
5.5.1. Login und Registrierung sowie erste Oberfläche laden
Abbildung 5.10 zeigt das initiale Verhalten der Track your Stress App. Hat der Benutzer der
App keinen Account, so muss er sich zuerst registrieren. Hat er dies erledigt, so kann er sich
einloggen.
Nun wird zuallererst intern geprüft, ob lokale Fragebögen gespeichert sind. Sollten keine vor-
handen sein, werden Daten für die Fragebögen vom Server angefordert. Falls im letzteren Fall
aktuelle Daten vom Server geladen werden, so werden die lokalen aktualisiert.
Am Anschluss wird intern geprüft, ob bereits ausgefüllte Antwortbögen auf dem iOS Gerät
liegen. Sollte dies der Fall sein, wird versucht (sofern eine Internetverbindung vorhanden ist)
die Antwortbögen loszuschicken.
War alles erfolgreich, wird geprüft, ob statistische Fragebögen vorhanden sind. Falls ja, werden
diese angezeigt. Fall nein, werden alle wiederkehrenden Fragebögen angezeigt.
Abbildung 5.10.: Ablauf: Login und Registrierung sowie erste Oberfläche
42
5.5. Ablauf
5.5.2. Fragebogen beantworten
Abbildung 5.11 zeigt den Ablauf zur Beantwortung eines Fragebogens auf.
Sollte der Benutzer der App vergessen haben, Antworten anzugeben, wird er mit einem Warn-
fenster daran erinnert. Sind alle Fragen ausgefüllt, so ist der Fragebogen erfolgreich beantwortet.
Im Anschluss wird geprüft, ob eine Internetverbindung vorhanden ist. Falls ja, wird der Fra-
gebogen direkt versendet. Falls nein, wird im Hintergrund nach einem bestimmten Intervall
geprüft, ob jetzt eine Internetverbindung besteht. In beiden Fällen wird der Benutzer direkt
wieder auf die Meine Fragebögen Oberfläche weitergeleitet.
Abbildung 5.11.: Ablauf: Fragebogen ausfüllen
43
Kapitel 5. Architektur der iOS App
44
6
Ausgewählte Implementierungsaspekte
6.1. Algorithmus zum Laden der Daten für den Reiter
Fragebögen
Der hier vorgestellte Algorithmus wird eingesetzt, um den Table des Reiters Fragebögen zu
füllen. Dieser Algorithmus wurde ausgewählt, da er sehr interessante Techniken beinhaltet wie
beispielsweise Etags, Callbacks, Multithreading und Asynchrones Swift.
Grob gibt es beim Algorithmus folgenden Ablauf:
1. schicke einen HTTP-Request an die API
2. synchronisiere die lokalen Daten mit den Serverdaten
3. verarbeite die Daten weiter
In Zeile 3 wird der alte ETag-Wert der Route my/questionnaires der API geladen. Dieser ETag-
Wert wird in Zeile 6 beim Serverrequest mitgeschickt.
Der eigentliche Serverrequest findet in Zeile 6 statt. Gibt es vom HTTPRequest eine Antwort,
so werden die Parameter mittels eines Callbacks (siehe Zeile 7 (Schlüsselwort in)) geladen. Da
es dann (ab Zeile 10) eine asynchrone Antwort des Servers gibt, wird zuerst der Ladebildschirm
entfernt. Sollte der HTTP-Code == 304 sein, wird nichts aktualisiert, da der Client die aktu-
ellen Daten des Servers hat. Gibt der Server eine 200 zurück (Zeile 19) müssen die Daten vom
Client mit den Serverdaten synchronisiert werden. In Zeile 21 bis 30 wird überprüfen, ob der
Benutzer in einer Studie eingetragen ist.
Bei Zeile 33-36 wird der ETag-Wert aktualisiert.
Von Zeile 38 bis 51 wird die Speicherung synchronisiert. Das heißt, falls es einen Fragebogen
auf dem Server gibt, der nicht auf dem Client gespeichert ist, muss dieser gespeichert werden.
Von Zeile 53 bis 68 wird die Löschung synchronisiert. Das heißt, ist auf dem Client ein Fra-
gebogen vorhanden, der aber nicht mehr auf dem Server gespeichert ist, muss dieser gelöscht
werden.
In Zeile 71 wird der Array für den Table mit neuen Daten geladen. Sollten nun bei den neuen
Daten statistische Fragebögen vorhanden sein, so wird das in Zeile 73 bis 79 verarbeitet.
Zeile 80 bis 83 lädt den Table für die Anzeige neu.
1func setupTableData (){
2// get the old eTag
3let oldETag = ETagCoreDataController . getETagByRouteName (
,userEmail : userEmail , routeName : " myQuestionnaires ")
4
5// prepare the http request "my/ questionnaires "
45
Kapitel 6. Ausgewählte Implementierungsaspekte
6let url = " https :// tyt . johannesschobel . com /api /v1/my/
,questionnaires ? token =" + ( activeUser ?. token )! + "& limit =50"
7RequestHandler . createRequest ( httpMethod : 0, url : url ,
,postData : nil , whichData : 0, oldETag: oldETag ?. eTagValue ,
,acceptLanguage : ( activeUser ?. language ) !){ questionnairesHTTP
,, _,_,_, httpStatus , eTag , error in
8if(error != nil ){
9}else {
10 DispatchQueue . main . async () {
11 Utils . hideActivityIndicator ( viewController :
,self)
12 }
13
14 // no new data
15 if( httpStatus == 304){
16 print (" MyQuestionnaires - no update necessary
,")
17 }
18 // new data
19 else if( httpStatus == 200) {
20 // user is in no study
21 if( questionnairesHTTP ?. count == 0){
22 // first delete studies , which are still
,locally saved
23 DispatchQueue . main . async () {
24 let localQuestionnaires =
,QuestionnaireCoreDataController.getAllQuestionnairesForUser(
,userEmail : self . userEmail )
25 for localQuestionnaire in
,localQuestionnaires{
26 QuestionnaireCoreDataController.
,deleteQuestionnaire ( questionnaire : localQuestionnaire ,
,userEmail : self . userEmail )
27 }
28 self . performSegue ( withIdentifier : "
,ShowNoStudy ", sender : self )
29 }
30 }else {
31 print (" MyQuestionnaires - new data ")
32
33 // update the eTag
34 DispatchQueue . main . async {
35 ETagCoreDataController.saveETagToUser
,( userEmail : self . userEmail , routeName : " myQuestionnaires ",
,eTagValue : eTag )
36 }
46
6.1. Algorithmus zum Laden der Daten für den Reiter Fragebögen
37
38 // Loop for saving
39 for questionnaireHTTP in
,questionnairesHTTP! {
40 // the id is not in the local
,Questionnaire - Array
41 if (! questionnairesComparison . contains
,{ element in
42 if( element . questionnaireId ==
,questionnaireHTTP .id !){ return true }else {return false }} ){
43 // this study needs to be saved !
44 print (" MyQuestionnaires - save
,Questionniare")
45 DispatchQueue . main . async {
46
,QuestionnaireCoreDataController . saveQuestionnaireToUser (
,userEmail : self . userEmail , id: questionnaireHTTP .id!, name :
,( questionnaireHTTP . attributes ?. name )!, title :
,questionnaireHTTP . attributes ?. title , origin : (
,questionnaireHTTP . attributes ?. origin )!, is_active : (
,questionnaireHTTP . attributes ?. is_active )!, is_onetime : (
,questionnaireHTTP . attributes ?. is_onetime )!, is_multiple : (
,questionnaireHTTP . attributes ?. is_multiple )!,
,is_schedule_changeable : ( questionnaireHTTP . attributes ?.
,is_schedule_changeable )!, is_filled_out : ( questionnaireHTTP .
,attributes ?. is_filled_out )!, description : questionnaireHTTP .
,attributes ?. description , introtext : questionnaireHTTP .
,attributes ?. introtext , outrotext : questionnaireHTTP .
,attributes ?. outrotext , canUse : ( questionnaireHTTP . attributes
,?. can_use )!, schedule : ( questionnaireHTTP . attributes ?.
,schedule )!)
47 }
48 }else {
49 print (" MyQuestionnaires - don t
,save Questionniare ")
50 }
51 }
52
53 // Loop for deletion
54 for questionnaire in
,questionnairesComparison {
55 // the id is locally saved , but isn t
,in the server
56 if (!( questionnairesHTTP ?. contains {
,element in
47
Kapitel 6. Ausgewählte Implementierungsaspekte
57 if( element .id == questionnaire .
,questionnaireId){return true }else {return false }}) ! && self
,. questionnaires . contains { element in
58 if( element . questionnaireId ==
,questionnaire . questionnaireId ){ return true }else {return
,false}} ){
59 print (" MyQuestionnaires - delete
,Questionniare")
60
61 DispatchQueue . main . async {
62 // delte the Quesionnaire
63
,QuestionnaireCoreDataController . deleteQuestionnaire (
,questionnaire : questionnaire , userEmail : self . userEmail )
64 }
65 }else {
66 print (" MyQuestionnaires - don t
,delete Questionniare ")
67 }
68 }
69
70 DispatchQueue . main . async {
71 self . questionnaires =
,QuestionnaireCoreDataController.getAllQuestionnairesForUser(
,userEmail : self . userEmail )
72
73 // check for one_time questionnaires
,which are not filled out
74 self .checkForOneTimeQuestionnaires()
75 // when the boolean is true , show
,only the multiple questionnaires
76 if(self .noOneTimeQuestionnaires){
77 self .
,showOnlyMultipleQuestionnaires()
78 }
79 }
80 // reload the table
81 DispatchQueue . main . async () {
82 self . tableView . reloadData ()
83 }
84 }
85 }
86 }
87 }
88 }
48
7
Vorstellung der iOS App
7.1. Systembeschreibung
Mit der Track Your Stress App soll es möglich sein, an einer Stress Studie teilzunehmen,
um Fragebögen, die eigens für diese Studie konzipiert wurde, auszufüllen. Dabei gibt es zwei
Arten von Fragebögen. Die demographischen Fragebögen, die initial für die Benutzung der App
ausgefüllt werden müssen und die wiederkehrenden Fragebögen, die, abhängig vom Rhythmus,
mehrmals ausgefüllt werden können.
Um die Benutzung der App flexibel zu gestalten, sollen die Benachrichtigungen, die auf einen
noch nicht ausgefüllten Fragebogen hinweisen, für den Nutzer veränderbar sein. Handelt es sich
um einen täglichen wiederkehrenden Fragebogen, kann der Nutzer hier sogar eigene Uhrzeiten
für weitere Benachrichtigungen hinzufügen.
7.2. Funktionsübersicht
Dieser Abschnitt beschreibt, wie der Nutzer die Anforderungen mittels der App erfüllen kann.
Hierfür werden die einzelnen Aufgaben aufgelistet und anschließend beschrieben, wie sie zu
erfüllen sind.
Außerdem werden in Tabelle 7.1 alle Screenshots aufgelistet.
Tabelle 7.1.: Auflistung der Screenshots
Abbildung Name der Abbildung
Abbildung 7.1 Screenshot Willkommensbildschirm
Abbildung 7.2 Screenshot Registrierung
Abbildung 7.3 Screenshot Profilansicht
Abbildung 7.5 Screenshot Profil bearbeiten
Abbildung 7.6 Screenshot Passwort ändern
Abbildung 7.7 Screenshot E-Mail Angeben
Abbildung 7.8 Screenshot Passwort zurücksetzen
Abbildung 7.9 Screenshot Einstellungen
Abbildung 7.10 Screenshot Meine Studien
Abbildung 7.11 Screenshot Alle Studien
Abbildung 7.12 Screenshot Studie verlassen
Abbildung 7.13 Screenshot Meine Fragebögen
Abbildung 7.14 Screenshot täglicher Fragebogen
Abbildung 7.15 Screenshot Antworten vergessen
49
Kapitel 7. Vorstellung der iOS App
Abbildung 7.16 Screenshot Datenanalyse
Abbildung 7.17 Screenshot meine Antworten
Abbildung 7.18 Screenshot meine Benachrichtigungen
Abbildung 7.19 Screenshot tägliche Benachrichtigung
Abbildung 7.20 Screenshot Benachrichtigungsplaner
Abbildung 7.21 Screenshot benutzerdefinierte Benachrichtigung
Abbildung 7.22 Screenshot Löschung Benachrichtigung
Abbildung 7.23 Screenshot wöchentliche Benachrichtigung
7.2.1. Registrierung und Login
Initial wird Abbildung 7.1 angezeigt. In dieser Oberfläche sieht der Nutzer einen Willkom-
mensbildschirm, bei dem das Applogo, ein Willkommenstext sowie zwei Buttons zu sehen sind.
Hier hat der Nutzer die Möglichkeit auf Registrierung zu drücken. Hat er das getan, wird er
auf eine Eingabemaske weitergeleitet, bei der alle nötigen Daten vom Nutzer abgefragt werden
(Abbildung 7.2). Um die Registrierung abzuschließen drückt der Nutzer auf den Button
Registrieren. Waren die eingegebenen Daten valide, bekommt der Nutzer entsprechend
Feedback und wird auf den Willkommensbildschirm zurückgeleitet.
Abbildung 7.1.: Screenshot Willkom-
mensbildschirm
Abbildung 7.2.: Screenshot Registrie-
rung
50
7.2. Funktionsübersicht
Da die App einen authentisierten Nutzer benötigt, muss dieser sich zuerst einloggen. Dazu
drückt der Nutzer beim Willkommensbildschirm (Abbildung 7.1) auf Login. Beim Loginbild-
schirm (Abbildung 7.3) angekommen, kann der Nutzer seine E-Mail Adresse, sowie Passwort
angeben. Die Eingabe wird durch ein drücken auf Login bestätigt. War die Eingabe erfolgreich,
hat sich der Nutzer authentisiert und kann nun die App verwenden.
Abbildung 7.3.: Screenshot Login
51
Kapitel 7. Vorstellung der iOS App
7.2.2. Profil verwalten
Drückt der Nutzer auf den Reiter Profil gelangt er zu Abbildung 7.4. chte der Nutzer nun
seine Profildaten abändern, drückt er auf Bearbeiten. Wie in Abbildung 7.5 zu erkennen
ist, sind nun alle Angaben (bis auf die E-Mail Adresse) änderbar. Ein drücken auf Sichern
übermittelt die Daten an den Server. War die Eingabe erfolgreich, wird nun wieder Abbildung
7.4 angezeigt.
Abbildung 7.4.: Screenshot Profilan-
sicht
Abbildung 7.5.: Screenshot Profil be-
arbeiten
Um das Passwort zu ändern, drückt der Nutzer in Abbildung 7.4 auf Passwort ändern.
Daraufhin wird eine Eingabemaske angezeigt, bei der das alte Passwort, sowie das neue
Passwort eingegeben werden können (siehe Abbildung 7.6). Die Eingabe wird mittels Sichern
bestätigt. War die Eingabe erfolgreich, erhält der Nutzer entsprechend Feedback und wird zu
Abbildung 7.4 weitergeleitet.
52
7.2. Funktionsübersicht
Abbildung 7.6.: Screenshot Passwort ändern
Hat der Nutzer sein Passwort vergessen, kann er in Abbildung 7.3 auf Passwort vergessen
drücken. Er wird auf eine Eingabemaske weitergeleitet, bei der er seine E-Mail Adresse eingeben
kann (siehe Abbildung 7.7). Hat er dies getan, drückt er auf Senden. Weitere Instruktionen,
inklusive des Reset-Tokens, werden dem Nutzer zugesendet. Dieses Reset-Token wird benö-
tigt, wenn der Nutzer bei Abbildung 7.7 auf Passwort zurücksetzen drückt. Abbildung 7.8
zeigt eine Eingabemaske, bei der Reset-Token, neues Passwort und das neue Passwort noch-
mals wiederholt, eingegeben werden müssen. Der Nutzer bestätigt seine Eingabe durch drücken
von Zurücksetzen. War seine Eingabe erfolgreich, wird der Nutzer auf den Loginbildschirm
(Abbildung 7.3) weitergeleitet.
53
Kapitel 7. Vorstellung der iOS App
Abbildung 7.7.: Screenshot E-Mail An-
geben
Abbildung 7.8.: Screenshot Passwort
zurücksetzen
54
7.2. Funktionsübersicht
7.2.3. Studien verwalten
Um die Studien des Nutzers zu verwalten, drückt der Nutzer auf den Reiter Einstellungen,
um zu Abbildung 7.9 zu gelangen. Von hier aus betätigt er die Zelle Meine Studien.
Abbildung 7.10 zeigt eine Übersicht der beigetretenen Studien.
Abbildung 7.9.: Screenshot Einstellun-
gen
Abbildung 7.10.: Screenshot Meine
Studien
chte der Nutzer nun weiteren Studien beitreten, drückt er von Abbildung 7.10 auf das +
Symbol. Diese neue Ansicht zeigt dem Nutzer alle im System eingetragenen Studien (siehe
Abbildung 7.11). Ein Nutzer tritt nun einer Studie bei, indem er auf eine entsprechende Zelle
drückt. Je nach Art der Studie wird nun nach einem Passwort gefragt, eine Anfrage an den
Studienleiter geschickt, oder direkt der Studie beigetreten. War die Eingabe in allen drei Fällen
erfolgreich, wird man wieder zu Abbildung 7.10 zurückgeleitet.
Eine Studie kann in Abbildung 7.10 verlassen werden, indem der Nutzer die entsprechende
Zelle zum linken Bildschirmrand schiebt (siehe Abbildung 7.12). Er verlässt die Studie, indem
er auf Verlassen drückt. Ein Warnfenster wird angezeigt, bei dem gefragt wird, ob der Nutzer
wirklich die Studie verlassen chte.
55
Kapitel 7. Vorstellung der iOS App
Abbildung 7.11.: Screenshot Alle Stu-
dien
Abbildung 7.12.: Screenshot Studie
verlassen
56
7.2. Funktionsübersicht
7.2.4. Fragebögen ausfüllen
Damit der Nutzer zu einem Fragebogen gelangt, drückt er zuerst auf den Reiter Fragebögen.
Im dargestellten Fenster, sieht er nun alle Fragebögen die er ausfüllen kann (siehe Abbildung
7.13). Hat er sich für einen Fragebogen entschieden, drückt er auf den entsprechenden. Der
Fragebogen, hier der tägliche Fragebogen der Studie Stress, wird nun angezeigt (siehe Abbildung
7.14).
Abbildung 7.13.: Screenshot Meine
Fragebögen
Abbildung 7.14.: Screenshot täglicher
Fragebogen
In Abbildung 7.14 hat der Nutzer die Möglichkeit alle Daten anzugeben. Wird eine entsprechen-
de Antwort vergessen und muss die Frage zwingend beantwortet werden, kommt ein entspre-
chendes Warnfenster. Außerdem werden die ausgelassenen Felder rot gefärbt (siehe Abbildung
7.15). Sind alle Fragen beantwortet, drückt der Nutzer auf Sichern um die Antworten an den
Server zu senden. Eine Internetverbindung ist hierfür nicht notwendig. Sollte der Nutzer keine
Verbindung haben, wird der Fragebogen bei bestehender Verbindung losgeschickt.
57
Kapitel 7. Vorstellung der iOS App
Abbildung 7.15.: Screenshot Antworten vergessen
58
7.2. Funktionsübersicht
7.2.5. Daten analysieren
In der App Track Your Stress hat der Nutzer die Möglichkeit, ein Feedback seiner abgegebenen
Fragebögen zu erhalten. Hierfür gibt es zwei Ansichten für ein entsprechendes Feedback. Für
die erste Möglichkeit drückt der Nutzer auf den Reiter Fragebögen (siehe Abbildung 7.13).
Um nun ein Feedback zu erhalten, drückt der Nutzer auf das Datenanalysesymbol. Dieses
Symbol führt zu Abbildung 7.16. Das Resultat der Analyse zeigt in kursiver Schrift, wie hoch
das Stresslevel des Nutzers im Vergleich zu anderen Probanden ist.
Für die zweite Möglichkeit eines Feedbacks drückt der Nutzer auf den Reiter Einstellungen
(siehe Abbildung 7.9). In dieser Abbildung angekommen, drückt er auf Meine Antwort-
bögen (siehe Abbildung 7.17). Hier handelt es sich um das gleiche Datenanalysesymbol wie
im Fragebögen-Reiter. Das vorgehen für ein Feedback ist nun äquivalent wie bei der ersten
Möglichkeit.
Abbildung 7.16.: Screenshot Daten-
analyse
Abbildung 7.17.: Screenshot meine
Antworten
59
Kapitel 7. Vorstellung der iOS App
7.2.6. Benachrichtigungen anpassen
Damit die Nutzung der App Track Your Stress flexibel erfolgen kann, hat jeder Nutzer die
Möglichkeit, die Benachrichtigungshäufigkeit und den Zeitraum der Benachrichtigungen anzu-
passen. Hierfür drückt er auf den Reiter Einstellungen (siehe Abbildung 7.9). In der Ansicht
7.9 angekommen, drückt er auf Meine Benachrichtigungen. Der Nutzer gelangt zur Ab-
bildung 7.18. Im oberen Drittel erhält der Nutzer einen Erklärungstext, bei dem beschrieben
steht, was er unter Meine Benachrichtigungen einstellen kann. Zum Anpassen der Benach-
richtigungen, drückt der Nutzer auf die entsprechende Zelle.
Abbildung 7.18.: Screenshot meine Be-
nachrichtigungen
Abbildung 7.19.: Screenshot tägliche
Benachrichtigung
Wie in Abbildung 7.19 zu sehen ist, handelt es sich hier um einen täglichen Fragebogen, bei
dem die Art der Benachrichtigung, die Anzahl der Benachrichtigung und die einzelnen Wochen-
tage (mittels des Benachrichtigungsplaner) eingestellt werden können (siehe Abbildung 7.19).
chte der Nutzer weitere Benachrichtigungen hinzufügen, drückt er auf das + Symbol. Zum
Löschen auf das - Symbol. Um die Zeitspanne der einzelnen Wochentage einstellen zu können,
drückt der Benutzer auf Benachrichtigungsplaner. Er gelangt zu Abbildung 7.20. Sollte der
Benutzer bei Abbildung 7.19 auf Benutzerdefiniert drücken, verhält sich der Benachrich-
tigungsplaner anders (siehe Abbildung 7.21). chte der Nutzer weitere Benachrichtigungen
hinzufügen, drückt er auf das + Symbol. Die Uhrzeit der gerade hinzugefügten Benachrich-
60
7.2. Funktionsübersicht
tigung kann nun angepasst werden, indem das entsprechende Rädchen nach oben oder unten
verschoben wird. chte der Nutzer eine Benachrichtigung löschen, schiebt er die entsprechen-
de Zelle zum linken Bildschirmrand hinaus. Nun gibt es die Möglichkeit mittels Löschen die
entsprechende Benachrichtigung zu eliminieren (siehe Abbildung 7.22).
Abbildung 7.20.: Screenshot Benach-
richtigungsplaner
Abbildung 7.21.: Screenshot be-
nutzerdefinierte
Benachrichtigungen
Handelt es sich um einen wöchentlichen oder monatlichen Fragebogen, kann der Nutzer lediglich
die Uhrzeit der Benachrichtigung verändern (siehe Abbildung 7.23). Ein + Symbol oder das
Löschen der Benachrichtigung gibt es hier nicht.
61
Kapitel 7. Vorstellung der iOS App
Abbildung 7.22.: Screenshot Löschung
Benachrichtigung
Abbildung 7.23.: Screenshot wöchent-
liche Benachrichti-
gung
62
8
Anforderungsabgleich
Nun werden sowohl die geforderten funktionalen Anforderungen als auch die geforderten nicht-
funktionalen Anforderungen abgeglichen. Als Vorlage dazu dient Kapitel 3. Wird eine Anfor-
derung nicht zufriedenstellend erfüllt, so muss sie nachgebessert werden.
8.1. Funktionale Anforderungen
Tabelle 8.1.: Funktionale Anforderungen
Nr. Beschreibung Abgleich
1 Die Benutzung der App kann ohne Be-
nutzerkonto nicht erfolgen. Es sollte da-
her möglich sein, direkt auf einem Gerät
ein solches Benutzerkonto zu erstellen.
Direkt im Willkommensbildschirm gibt es
eine Registrierung in der App.
2 Eine funktionierende Internetverbindung
auf dem Smartphone sollte keine Vor-
aussetzung für das Benutzen der App
sein, da ein Benutzer evtl. nur schlech-
ten oder gar keinen Empfang hat. Even-
tuell gespeicherte Werte werden anschlie-
ßend bei funktionierender Internetverbin-
dung im Hintergrund übermittelt.
Zur Beantwortung der Fragebögen sowie
absenden der Parameter ist keine Verbin-
dung erforderlich. Lediglich bei Daten bei
denen es auf die Aktualität ankommt, ist
eine Verbindung erforderlich.
3 Um eine Intuitive Bedienung der App zu
garantieren, sollte die Sprache der App
innerhalb der App geändert werden kön-
nen. Dabei werden Nutzer der App un-
terstützt, die beispielsweise zweisprachig
sind.
Beim Reiter Einstellungen gibt es unter
Meine Sprache ein Sprachdialog.
Studienteilnahme
4 Ein Benutzer sollte die Möglichkeit ha-
ben, sich in mehrere Studien einzuschrei-
ben und deren Fragebögen auszufüllen.
Ein Benutzer soll die Studienteilnahme
zudem jederzeit beenden können.
Unter Meine Studien kann diese Funk-
tionlität erreicht werden.
63
Kapitel 8. Anforderungsabgleich
5 Berechtigte Personen können neue Studi-
en anlegen und bestehende Studien än-
dern. Studien können privat oder öffent-
lich sein. An öffentlichen Studien kann je-
der Nutzer teilnehmen. Private Studien
erfordern einen speziellen Aufnahmepro-
zess.
In der API kann jederzeit eine neue Studie
angelegt oder gelöscht werden. Auf dem
Endgerät werden diese dann entsprechend
angezeigt. Sollte die Studie den accesstype
password haben, so wird in der App ein
Passwort gefordert, damit eine Teilnahme
möglich ist.
6 Der Benutzer kann sich per App in eine
private Studie einschreiben, sofern er das
Passwort kennt.
Siehe Anforderung 5
Fragebögen
7 Für Studienteilnehmer können durch be-
stimmte Benutzer (Studienleitung) belie-
bige Fragebögen erstellt werden, um das
jeweilige Studienziel zu erreichen. Die Fra-
gebögen werden dem Studienteilnehmer in
der App angezeigt.
Studienleiter können ebenso in der API
Fragebögen erstellen. Diese werden dann
selbstverständlich am Apple Endgerät an-
gezeigt.
8 Die statistischen Fragebögen sollten von
bestimmten Benutzern veränderbar sein.
Es sollte möglich sein, neue statistische
Fragebögen einzupflegen, oder auch beste-
hende zu bearbeiten.
Diese funktionale Anforderung ist ebenso
in der API möglich.
9 Deaktivierte Fragebögen können von den
Benutzern nicht ausgefüllt werden.
Benutzerinteraktion ist für nicht aktive
Fragebögen ausgeschaltet.
10 Fragebögen sollen je nach Konfiguration
vom Benutzer einmal oder mehrmals (wie-
derholt) ausgefüllt werden können. Wur-
de ein einmaliger Fragebogen bereits aus-
gefüllt, darf er dem Benutzer nicht noch
einmal präsentiert werden.
Diese Funktionalität wird im Hintergrund
erfüllt. Die App wurde so implementiert,
dass zuerst statistische dann wiederholba-
re Fragebögen beantwortet werden.
11 Da das Ausfüllen der statistischen Frage-
bögen Voraussetzung für die Benutzung
der Apps ist, sollte dies in der App mög-
lich sein.
Der statistische Fragebogen wird als nor-
maler Fragebogen initial angezeigt.
12 Zur Visualisierung der Ergebnisse aus den
Fragebögen zur Überwachung des Stress-
levels und für Forschungszwecke, sollten
die Ergebnisse aus den Apps an den Ser-
ver übertragen werden.
Im Reiter Fragebögen oder in Einstellun-
gen können mittels der API Daten visua-
lisiert werden.
13 Ein Benutzer lässt sich beim Ausfüllen ei-
nes Fragebogens davon beeinflussen, wel-
cher Wert voreingestellt ist (siehe dazu
Kapitel 5.4.1). Daher darf der Slider in ei-
nem Fragebogen in den Track Your Stress
App keinen initialen Wert haben.
Sliderfragen besitzen keinen initialen
Wert.
64
8.1. Funktionale Anforderungen
14 Um herauszufinden, ob Stress von der
Örtlichkeit abhängt, sollte die App wäh-
rend des Ausfüllens des Fragebogens zur
Überwachung des Stresslevels, die Positi-
on bestimmen und übermitteln können,
falls für den entsprechenden Fragebogen
vorgesehen.
Diese Funktionalität wurde implemen-
tiert.
15 Um herauszufinden, ob Stress von den
Umgebungsgeräuschen beeinflusst wird,
sollten die App während des Ausfüllens
des Fragebogens zur Überwachung des
Stresslevels, den Pegel der Hintergrundge-
räusche messen und übermitteln können,
falls für den entsprechenden Fragebogen
vorgesehen.
Diese Funktionalität wurde implementiert
16 Ein Benutzer sollte von der App benach-
richtigt werden, wenn ein neuer Fragebo-
gen auf Basis eines hinterlegten Termin-
plans ausgefüllt werden soll.
Der Benutzer wird über ausstehende Fra-
gebögen benachrichtigt.
17 Ein Benutzer sollte die Benachrichti-
gungshäufigkeit und den Zeitraum der Be-
nachrichtigen in der App frei einstellen
können, wenn dies vom Studienleiter für
den Fragebogen vorgesehen ist.
Der Benutzer kann in Einstellungen unter
Meine Benachrichtigungen zwischen
zufälligen oder fixen Benachrichtigungen
entscheiden. Außerdem kann die Häufig-
keit und die Zeitspanne eingestellt wer-
den.
18 Um die zeitliche Entwicklung in der App
direkt anzeigen zu können, sollten die Er-
gebnisse aus dem Fragebogen zur Überwa-
chung des Stresslevels visualisiert werden.
Die Funktionalität der Datenanalyse
deckt ebenso diese Anforderung ab.
19 Ein Benutzer sollte die Möglichkeit haben,
seine Daten (Antworten auf den Fragebo-
gen zur Überwachung des Stresslevels) in
der App angezeigt zu bekommen.
Unter Meine Antwortbögen kann der
Benutzer die geforderte Funktionalität er-
reichen.
65
Kapitel 8. Anforderungsabgleich
8.2. Nichtfunktionale Anforderungen
Der Abgleich der nichtfunktionalen Anforderungen kann bei bestimmten Anforderungen sehr
subjektiv sein. Aus diesem Grund wird der Kunde (in diesem Fall der Betreuer des Projekts)
nach seine Meinung gefragt. Außerdem lassen sich manche nichtfunktionalen Anforderungen
erst nach Langzeittests nachprüfen (siehe Anforderung 1).
Tabelle 8.2.: Nichtfunktionale Anforderungen
Nr. Beschreibung Abgleich
1 Bereits beim ersten Benutzen der App soll
der Benutzer durch ein einfaches Design,
in der Lage sein, die App in vollem Um-
fang korrekt zu nutzen.
erfüllt (eventuell sind längere Tests mit ei-
ner größeren Nutzerbreite nötig)
2 Die App soll bei allen Eingaben des Nut-
zers geeignet reagieren und nicht abstür-
zen
erfüllt
3 Durch ein entsprechende Softwarearchi-
tektur soll die Track Your Stress App von
anderen Programmierern einfach erweiter-
bar und einfach wartbar sein.
erfüllt
4 Der Nutzer der App muss bei jeder Aktion
immer ein baldmöglichstes Feedback be-
kommen, damit eine responsive App ent-
steht.
erfüllt
66
9
Fazit
Das Track Your Stress Projekt und die eigens für das Projekt entwickelte Track Your Stress-
App dient zum Erfassen des Stresslevels. Außerdem kann der Benutzer seine beantworteten
Fragebögen auswerten lassen. Die App wurde in Apples eigener Programmiersprache Swift 3
geschrieben und erfüllt somit aktuelle Anforderungen. Um nun den weiteren Schritt in Rich-
tung AppStore zu wagen, müsste die App großflächig mit Nutzerstudien getestet werden. Dies
könnte beispielsweise mittels Testflight realisiert werden.
Außerdem sind noch andere Projekte rund um das Thema Track Your Stress denkbar. Darun-
ter wäre beispielsweise wie bei Track Your Tinnitus eine Projekthomepage möglich. Außerdem
könnte die eigentliche Track Your Stress App auf vielseitige Art und Weise erweitert werden.
All die Themen rund um Track Your Stress würden mich persönlich sehr interessieren und
ich könnte mir sehr gut vorstellen im Projektfach (Master of Science) weitere spannende Pro-
jekte zu übernehmen. Ich finde es sehr wichtig, einen Forschungsbeitrag in Bereichen wie der
Psychologie zu leisten. Gerade hier können computergestützte Anwendungen helfen, Krank-
heiten durch breit angelegte Studien zu analysieren. Wenn Menschen mittels des Track Your
Stress Projekts geholfen werden kann, hat die App nach meiner persönlichen Meinung voll ihre
Aufgabe erfüllt.
67
Kapitel 9. Fazit
68
A
Fragebögen
A.1. Demographischer Fragebogen
Der demographische Fragebogen wird dem Benutzer der App initial angezeigt. Er muss zuerst
beantwortet werden, um die App im vollen Umfang zu nutzen.
Tabelle A.1.: Demographischer Fragebogen
Nr. Frage Antwortmöglichkeiten Antworttyp
1. Als ich aufwuchs, hatte ich nicht
genug zu essen.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
2. Als ich aufwuchs, wusste ich, dass
sich jemand um mich sorgte und
mich beschütze.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
3. Als ich aufwuchs, bezeichneten
mich Personen aus meiner Fa-
milie als "dumm", "faul" oder
"hässlich".
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
4. Als ich aufwuchs, waren meine
Eltern zu betrunken oder von an-
deren Drogen "high", um für die
Familie zu sorgen.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
5. Als ich aufwuchs, gab es jemand
in der Familie, der mir das Gefühl
gab, wichtig und jemand Beson-
deres zu sein.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
6. Als ich aufwuchs, musste ich dre-
ckige Kleidung tragen.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
7. Als ich aufwuchs, hatte ich das
Gefühl, geliebt zu werden.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
8. Als ich aufwuchs, glaubte ich,
dass meine Eltern wünschten, ich
wäre nie geboren.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
69
Anhang A. Fragebögen
9. Als ich aufwuchs, wurde ich von
jemandem aus meiner Familie so
stark geschlagen, dass ich zum
Arzt oder ins Krankenhaus muss-
te.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
10. Als ich aufwuchs, gab es nichts,
was ich an meiner Familie ändern
wollte.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
11. Als ich aufwuchs, schlugen mich
Personen aus meiner Familie so
stark, dass ich blaue Flecken oder
Schrammen davontrug.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
12. Als ich aufwuchs, wurde ich mit
einem Gürtel, einem Stock, einem
Riemen oder mit einem harten
Gegenstand bestraft.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
13. Als ich aufwuchs, gaben meine
Familienangehörigen auf einan-
der acht.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
14. Als ich aufwuchs, sagten Perso-
nen aus meienr Familie verlet-
zende oder beleidigende Dinge zu
mir.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
15. Ich glaube, ich bin körperlich
misshandelt worden, als ich auf-
wuchs.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
16. Als ich aufwuchs, hatte ich eine
perfekte Kindheit.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
17. Als ich aufwuchs, wurde ich so
stark geschlagen oder verprü-
gelt, dass es jemand (z.b. Lehrer,
Nachbar oder Arzt) auffiel.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
18. Als ich aufwuchs, hatte ich das
Gefühl, es hasste mich jemand in
meiner Familie.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
19. Als ich aufwuchs, fühlten sich
meine Familienangehörigen ein-
ander nah.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
20. Als ich aufwuchs, versuchte je-
mand, mich sexuell zu berühren
oder mich dazu zu bringen, sie
oder ihn sexuell zu berühren
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
70
A.1. Demographischer Fragebogen
21. Als ich aufwuchs, drohte mir je-
mand, mir weh zu tun oder Lügen
über mich zu erzählen, wenn ich
keine sexuellen Handlungen mit
ihm oder ihr ausführen würde.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
22. Als ich aufwuchs, hatte ich die
beste Familie der Welt.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
23. Als ich aufwuchs, versuchte je-
mand, mich dazu zu bringen, se-
xuelle Dinge zu tun oder bei se-
xuellen Dingen zuzusehen.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
24. Als ich aufwuchs, belästigte mich
jemand sexuell.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
25. Ich glaube, ich bin emotional (ge-
fühlsmäßig) missbraucht worden,
als ich aufwuchs.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
26. Als ich aufwuchs, gab es jeman-
den, der mich zum Arzt brachte,
wenn ich es brauchte.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
27. Ich glaube, ich bin sexuell miss-
braucht worden, als ich aufwuchs.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
28. Als ich aufwuchs, war meine Fa-
milie mir eine Quelle der Unter-
stützung.
Überhaupt nicht; Sehr sel-
ten; einige Male; häufig; sehr
häufig
Radio But-
tons
29. Unsicherheit durch finanzielle
Probleme
0-6 Slider
30. Unsicherheit in Bezug auf Ihren
Wohnort
0-6 Slider
31. Unsicherheit in Bezug auf Ar-
beitsplatz, Ausbildungsplatz,
Studium oder Schule
0-6 Slider
32. Unsicherheit in Bezug eine ernst-
hafte Erkrankung
0-6 Slider
33. Unsicherheit in Bezug auf die Fa-
milie oder Freunde
0-6 Slider
34. Unsicherheit in Bezug auf die
Partnerschaft
0-6 Slider
35. Unsicherheit in Bezug auf wichti-
ge Lebensziele
0-6 Slider
36. Schulden oder finanzielle Proble-
me
0-6 Slider
37. Wohnungssuche oder Hausbau 0-6 Slider
71
Anhang A. Fragebögen
38. Leistungsdruck am Arbeitsplatz,
im Studium, in Ausbildung oder
Schule
0-6 Slider
39. Erwartungen und Ansprüche der
Familie oder Freunde
0-6 Slider
40. Erwartungen und Ansprüche des
Partners
0-6 Slider
41. gesundheitliche Probleme 0-6 Slider
42. eigene Erwartungen und Ansprü-
che
0-6 Slider
43. Verlust von finanziellen Mitteln
(mehr als 50.000 EUR)
0-6 Slider
44. Verlust von Wohnung oder
Haus/Umzug/neuer Wohnort
0-6 Slider
45. Verlust von Arbeitsplatz, Aus-
bildungsplatz, Studienplatz oder
Verweis von der Schule
0-6 Slider
46. Verlust von Familienangehörigen
oder Freunden
0-6 Slider
47. Verlust oder Trennung vom Part-
ner
0-6 Slider
48. Verlust von Gesundheit oder
Handlungsfähigkeit
0-6 Slider
49. eigenes Scheitern in wichtigen Le-
bensbereichen
0-6 Slider
50. Ich schlafe schlecht. trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
51. Ich leide häufig unter Magen-
drücken oder Bauchschmerzen.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
52. Ich habe häufig das Gefühl einen
Kloß im Hals zu haben.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
53. Ich leide häufig unter Kopf-
schmerzen.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
54. Ich grüble oft über mein Leben
nach.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
55. Ich bin oft traurig. trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
72
A.1. Demographischer Fragebogen
56. Ich habe oft zu nichts mehr Lust. trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
57. Ich habe stark ab- oder zugenom-
men (mehr als 5kg).
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
58. Meine Lust auf Sex ist deutlich
zurückgegangen.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
59. Ich ziehe mich häufig in mich
selbst zurück und bin dann so
versunken, dass ich nichts mehr
mitbekomme.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
60. Ich habe Zuckungen im Gesicht,
die ich nicht kontrollieren kann.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
61. Ich kann mich schlecht konzen-
trieren.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
62. Ich habe Alpträume. trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
63. Ich sage mir, dass Stress und
Druck auch ihre guten Seiten ha-
ben.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
64. Egal wie groß der Stress wird, ich
würde niemals wegen Stress zu
Alkohol oder Zigaretten greifen.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
65. Ich mache mir schon vorher Ge-
danken, wie ich Zeitdruck vermei-
den kann.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
66. Wenn ich mich überfordert fühle,
gibt es Menschen, die mich wie-
der aufbauen.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
67. Ich sehe Stress und Druck als po-
sitive Herausforderung an.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
68. Auch wenn ich sehr unter Druck
stehe, verliere ich meinen Humor
nicht.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
69. Ich versuche Stress schon im Vor-
feld zu vermeiden.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
73
Anhang A. Fragebögen
70. Bei Stress und Druck finde ich
Halt im Glauben.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
71. Gebete helfen mir dabei, mit
Stress und Bedrohungen umzuge-
hen.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
72. Egal wie schlimm es wird, ich ver-
traue auf höhere Mächte.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
73. Wenn mir alles zu viel wird, greife
ich manchmal zur Flasche.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
74. Ich tue alles, damit Stress erst gar
nicht entsteht.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
75. Wenn ich unter Druck gerate, ha-
be ich Menschen, die mir helfen.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
76. Bei Stress und Druck entspanne
ich mich abends mit einem Glas
Wein oder Bier.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
77. Bei Stress und Druck finde ich
Rückhalt bei meinem Partner
oder einem guten Freund.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
78. Bei Stress und Druck konzentrie-
re ich mich einfach auf das Posi-
tive.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
79. Bei Stress und Druck beseitige
ich gezielt die Ursachen.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
80. Bei Stress und Druck erinnere ich
mich daran, dass es höhere Werte
im Leben gibt.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
81. Egal wie schlimm es wird, ich ha-
be gute Freunde, auf die ich mich
immer verlassen kann.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
82. Wenn ich zu viel Stress habe, rau-
che ich eine Zigarette.
trifft gar nicht gut; trifft eher
nicht zu; trifft eher zu; trifft
genau zu
Radio But-
tons
83. Wie oft hatten Sie in den letz-
ten 7 Tagen das Gefühl, wichtige
Dinge in Ihrem Leben nicht be-
einflussen zu können?
nie; selten; manchmal; häu-
fig; sehr oft
Radio But-
tons
74
A.1. Demographischer Fragebogen
84. Wie oft haben Sie sich in den letz-
ten 7 Tagen sicher im Umgang
mit Ihren persönlichen Aufgaben
und Problemen gefühlt
nie; selten; manchmal; häu-
fig; sehr oft
Radio But-
tons
85. Wie oft hatten Sie in den letz-
ten 7 Tagen das Gefühl, dass sich
die Dinge nach Ihren Vorstellun-
gen entwickeln?
nie; selten; manchmal; häu-
fig; sehr oft
Radio But-
tons
86. Wie oft hatten Sie in den letz-
ten 7 Tagen das Gefühl, dass sich
Aufgaben oder Probleme so sehr
aufgestaut haben, dass Sie diese
nicht bewältigen können?
nie; selten; manchmal; häu-
fig; sehr oft
Radio But-
tons
87. Sie fühlen sich ausgeruht. fast nie; manchmal; häufig;
meistens
Radio But-
tons
88. Sie haben das Gefühl, dass zu
viele Forderungen an Sie gestellt
werden.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
89. Sie haben zuviel zu tun. fast nie; manchmal; häufig;
meistens
Radio But-
tons
90. Sie haben das Gefühl, Dinge zu
tun, die Sie wirklich mögen.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
91. Sie fürchten, Ihre Ziele nicht er-
reichen zu können.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
92. Sie fühlen sich ruhig. fast nie; manchmal; häufig;
meistens
Radio But-
tons
93. Sie fühlen sich frustriert. fast nie; manchmal; häufig;
meistens
Radio But-
tons
94. Sie sind voller Energie. fast nie; manchmal; häufig;
meistens
Radio But-
tons
95. Sie fühlen sich angespannt. fast nie; manchmal; häufig;
meistens
Radio But-
tons
96. Ihre Probleme scheinen sich auf-
zutürmen.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
97. Sie fühlen sich gehetzt. fast nie; manchmal; häufig;
meistens
Radio But-
tons
98. Sie fühlen sich sicher und ge-
schützt.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
99. Sie haben viele Sorgen. fast nie; manchmal; häufig;
meistens
Radio But-
tons
100. Sie haben Spaß. fast nie; manchmal; häufig;
meistens
Radio But-
tons
101. Sie haben Angst vor der Zukunft. fast nie; manchmal; häufig;
meistens
Radio But-
tons
75
Anhang A. Fragebögen
102. Sie sind leichten Herzens. fast nie; manchmal; häufig;
meistens
Radio But-
tons
103. Sie fühlen sich mental erschöpft. fast nie; manchmal; häufig;
meistens
Radio But-
tons
104. Sie haben Probleme, sich zu ent-
spannen.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
105. Sie haben genug Zeit für sich. fast nie; manchmal; häufig;
meistens
Radio But-
tons
106. Sie fühlen sich unter Termin-
druck.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
107. In den letzten zwei Wochen war
ich froh und guter Laune
Die ganze Zeit; Meistens; Et-
was mehr als die Hälfte der
Zeit; Etwas weniger als die
Hälfte der Zeit; Ab und zu;
Zu keinem Zeitpunkt
Radio But-
tons
108. In den letzten zwei Wochen ha-
be ich mich ruhig und entspannt
gefühlt
Die ganze Zeit; Meistens; Et-
was mehr als die Hälfte der
Zeit; Etwas weniger als die
Hälfte der Zeit; Ab und zu;
Zu keinem Zeitpunkt
Radio But-
tons
109. In den letzten zwei Wochen ha-
be ich mich energisch und aktiv
gefühlt
Die ganze Zeit; Meistens; Et-
was mehr als die Hälfte der
Zeit; Etwas weniger als die
Hälfte der Zeit; Ab und zu;
Zu keinem Zeitpunkt
Radio But-
tons
110. In den letzten zwei Wochen habe
ich mich beim Aufwachen frisch
und ausgeruht gefühlt
Die ganze Zeit; Meistens; Et-
was mehr als die Hälfte der
Zeit; Etwas weniger als die
Hälfte der Zeit; Ab und zu;
Zu keinem Zeitpunkt
Radio But-
tons
111. In den letzten zwei Wochen war
mein Alltag voller Dinge, die
mich interessieren
Die ganze Zeit; Meistens; Et-
was mehr als die Hälfte der
Zeit; Etwas weniger als die
Hälfte der Zeit; Ab und zu;
Zu keinem Zeitpunkt
Radio But-
tons
A.2. täglicher Fragebogen
Dieser Fragebogen wird im täglichen Rhythmus angezeigt.
Tabelle A.2.: täglicher Fragebogen
Nr. Frage Antwortmöglichkeiten Antworttyp
1. Wie hoch ist Ihr momentanes
Stress-Level?
0-100 Slider
76
A.3. wöchentlicher Fragebogen
2. Wie gut können Sie Ihr momen-
tanes Stress-Level steuern?
0-100 Slider
3. Wie stark erleben Sie Ihr momen-
tanes Stress-Level als negativ/be-
einträchtigt?
0-100 Slider
4. Wie stark erleben Sie Ihr momen-
tanes Stress-Level als positiv/för-
derlich?
0-100 Slider
5. Was stresst Sie gerade? Nichts; Berufliches; Privates;
Anderes
Checkbox
6. Wie ist Ihre aktuelle Stimmungs-
lage?
1-9 SAM Scale
Valenz [Lan]
7. Wie aufgeregt sind Sie gerade? 1-9 SAM Scale
Arousal [Lan]
8. Wie wichtig ist die momentane
Situation für Sie persönlich?
0-100 Slider
9. Wie ausreichend schätzen Sie Ih-
re Fähigkeiten ein, um Ihre mo-
mentan erlebte Situation zu be-
wältigen?
0-100 Slider
A.3. wöchentlicher Fragebogen
Dieser Fragebogen wird im wöchentlichen Rhythmus angezeigt.
Tabelle A.3.: wöchentlicher Fragebogen
1. Wie hoch war Ihr Stress-Level in
den letzten 7 Tagen?
0-100 Slider
2. Wie gut konnten Sie Ihr Stress-
Level in den letzten 7 Tagen steu-
ern?
0-100 Slider
3. Wie stark erlebten Sie Ihr Stress-
Level in den letzten 7 Tagen als
negativ/beeinträchtigt
0-100 Slider
4. Wie stark erlebten Sie Ihr Stress-
Level in den letzten 7 Tagen als
positiv/förderlich
0-100 Slider
5. Was stresste Sie in den letzten 7
Tagen?
Keinen Stress erlebt; Beruf-
liches; Privates; Anderes
Checkbox
6. Wie hoch war Ihr Stress-Level in
den letzten 7 Tagen für Sie im
Vergleich zu dem für Sie typi-
schen Stress-Level?
0-100 Slider
77
Anhang A. Fragebögen
7. Wie oft hatten Sie in den letz-
ten 7 Tagen das Gefühl, wichtige
Dinge in Ihrem Leben nicht be-
einflussen zu können?
nie; selten; manchmal; häu-
fig; sehr oft
Radio But-
tons
8. Wie oft haben Sie sich in den letz-
ten 7 Tagen sicher im Umgang
mit Ihren persönlichen Aufgaben
und Problemen gefühlt?
nie; selten; manchmal; häu-
fig; sehr oft
Radio But-
tons
9. Wie oft hatten Sie in den letz-
ten 7 Tagen das Gefühl, dass sich
die Dinge nach Ihren Vorstellun-
gen entwickeln?
nie; selten; manchmal; häu-
fig; sehr oft
Radio But-
tons
10. Wie oft hatten Sie in den letz-
ten 7 Tagen das Gefühl, dass sich
Aufgaben oder Probleme so sehr
aufgestaut haben, dass Sie diese
nicht bewältigen können?
nie; selten; manchmal; häu-
fig; sehr oft
Radio But-
tons
A.4. monatlicher Fragebogen
Dieser Fragebogen wird im monatlichen Rhythmus angezeigt.
Tabelle A.4.: monatlicher Fragebogen
1. Sie fühlen sich ausgeruht. fast nie; manchmal; häufig;
meistens
Radio But-
tons
2. Sie haben das Gefühl, dass zu
viele Forderungen an Sie gestellt
werden.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
3. Sie haben zuviel zu tun. fast nie; manchmal; häufig;
meistens
Radio But-
tons
4. Sie haben das Gefühl, Dinge zu
tun, die Sie wirklich mögen.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
5. Sie fürchten, Ihre Ziele nicht er-
reichen zu können.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
6. Sie fühlen sich ruhig. fast nie; manchmal; häufig;
meistens
Radio But-
tons
7. Sie fühlen sich frustriert. fast nie; manchmal; häufig;
meistens
Radio But-
tons
8. Sie sind voller Energie. fast nie; manchmal; häufig;
meistens
Radio But-
tons
9. Sie fühlen sich angespannt. fast nie; manchmal; häufig;
meistens
Radio But-
tons
10. Ihre Probleme scheinen sich auf-
zutürmen.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
78
A.4. monatlicher Fragebogen
11. Sie fühlen sich gehetzt. fast nie; manchmal; häufig;
meistens
Radio But-
tons
12. Sie fühlen sich sicher und ge-
schützt.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
13. Sie haben viele Sorgen. fast nie; manchmal; häufig;
meistens
Radio But-
tons
14. Sie haben Spaß. fast nie; manchmal; häufig;
meistens
Radio But-
tons
15. Sie haben Angst vor der Zukunft. fast nie; manchmal; häufig;
meistens
Radio But-
tons
16. Sie sind leichten Herzens. fast nie; manchmal; häufig;
meistens
Radio But-
tons
17. Sie fühlen sich mental erschöpft. fast nie; manchmal; häufig;
meistens
Radio But-
tons
18. Sie haben Probleme, sich zu ent-
spannen.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
19. Sie haben genug Zeit für sich. fast nie; manchmal; häufig;
meistens
Radio But-
tons
20. Sie fühlen sich unter Termin-
druck.
fast nie; manchmal; häufig;
meistens
Radio But-
tons
79
Anhang A. Fragebögen
80
Literaturverzeichnis
[App] Apple. Api design guidelines. https://swift.org/documentation/
api-design-guidelines/. Accessed: 19.09.2017.
[ÞKFJ17] Helga Þórarinsdóttir, Vedel Lars Kessing, and Maria Faurholt-Jepsen.
Smartphone-Based self-assessment of stress in healthy adult individuals: A
systematic review. J Med Internet Res, 19(2):e41, Feb 2017.
[KP16] M. Kofler and Galileo Press. Swift 3: Das umfassende Handbuch. 2016.
[Lan] P. J. Lang. The pxlab self-assessment-manikin scales. http://irtel.
uni-mannheim.de/pxlab/demos/index_SAM.html. Accessed: 03.10.2017.
[PP84] Richard S. Lazarus PhD and Susan Folkman PhD. Stress, Appraisal, and Coping.
Springer Publishing Company, New York, 1984.
[PPL+17a] Thomas Probst, Rüdiger Pryss, Berthold Langguth, Josef Rauschecker, Johannes
Schobel, Manfred Reichert, Myra Spiliopoulou, Winfried Schlee, and Johannes
Zimmermann. Does tinnitus depend on time-of-day? an ecological momentary
assessment study with the "trackyourtinnitus" application. Frontiers in Aging
Neuroscience, 9:253–253, 2017.
[PPL+17b] Thomas Probst, Rüdiger Pryss, Berthold Langguth, Myra Spiliopoulou, Michael
Landgrebe, Markku Vesala, Stephen Harrison, Johannes Schobel, Manfred
Reichert, Michael Stach, and Winfried Schlee. Outpatient tinnitus clinic, self-help
web platform, or mobile application to recruit tinnitus study samples? Frontiers
in Aging Neuroscience, 9:113–113, April 2017.
[PPLS16] Thomas Probst, Rüdiger Pryss, Berthold Langguth, and Winfried Schlee.
Emotional states as mediators between tinnitus loudness and tinnitus distress in
daily life: Results from the "trackyourtinnitus" application. Scientific Reports, 6,
February 2016.
[PPmS+17] Rüdiger Pryss, Thomas Probst, Winfried Schlee, Johannes Schobel, Berthold
Langguth, Patrick Neff, Myra Spiliopoulou, and Manfred Reichert. Mobile
Crowdsensing for the juxtaposition of realtime assessments and retrospective
Reporting for neuropsychiatric symptoms. In 30th IEEE International Symposium
on Computer-Based Medical Systems (CBMS 2017). IEEE Computer Society
Press, June 2017.
[PRH+15] Rüdiger Pryss, Manfred Reichert, Jochen Herrmann, Berthold Langguth, and
Winfried Schlee. Mobile crowd sensing in clinical and psychological trials - a case
study. In 28th IEEE Int’l Symposium on Computer-Based Medical Systems, pages
23–24. IEEE Computer Society Press, June 2015.
[PRLS15] Rüdiger Pryss, Manfred Reichert, Berthold Langguth, and Winfried Schlee. Mobile
crowd sensing services for tinnitus assessment, therapy and research. In IEEE
4th International Conference on Mobile Services (MS 2015), pages 352–359. IEEE
Computer Society Press, June 2015.
81
Literaturverzeichnis
[PSLR17] Rüdiger Pryss, Winfried Schlee, Berthold Langguth, and Manfred Reichert. Mobile
crowdsensing services for tinnitus assessment and patient feedback. In 6th IEEE
International Conference on AI & Mobile Services (IEEE AIMS 2017). IEEE
Computer Society Press, June 2017.
[RLBS+16] Martina Ruf-Leuschner, Nicole Brunnemann, Maggie Schauer, Rüdiger Pryss,
Eva Barnewitz, Martin Liebrecht, Manfred Reichert, and Thomas Elbert. Die
KINDEX-App - ein instrument zur erfassung und unmittelbaren auswertung
von psychosozialen belastungen bei schwangeren in der täglichen praxis bei
Gynäkologinnen, hebammen und in frauenkliniken. Verhaltenstherapie, August
2016.
[Sch] Johannes Schobel. Track your ... api. https://tyt.johannesschobel.com/.
Accessed: 03.10.2017.
[SPP+16] Winfried Schlee, Rüdiger Pryss, Thomas Probst, Johannes Schobel, Alexander
Bachmeier, Manfred Reichert, and Berthold Langguth. Measuring the
Moment-to-Moment variability of tinnitus: The trackyourtinnitus smart phone
app. Frontiers in Aging Neuroscience, 8:294–294, December 2016.
[SRP+15] Marc Schickler, Manfred Reichert, Rüdiger Pryss, Johannes Schobel, Winfried
Schlee, and Berthold Langguth. Entwicklung mobiler Apps: Konzepte,
Anwendungsbausteine und Werkzeuge im Business und E-Health. eXamen.press.
Springer Vieweg, October 2015.
82