Masterarbeit, 2017
89 Seiten, Note: 1,3
1 Einleitung
1.1 Voraussetzungen
1.2 Motivation
1.3 Problemstellung
2 Theoretische Grundlagen
2.1 Softwaremetriken
2.1.1 C und C++
2.1.2 Designmetriken
2.1.3 HIS-Metriken
2.1.4 Java
2.1.5 Weitere Metriken
2.2 Tableau
2.2.1 Tableau REST API
2.2.2 Tableau Vizportal API
2.2.3 Tableau JavaScript API
2.3 Eingesetzte Programmiersprachen
2.3.1 JavaScript
2.3.2 Swift
2.4 Softwarearchitektur Theorie
2.4.1 Model View Controller
2.4.2 Target-Action
2.4.3 Delegation
2.4.4 Reaktive Programmierung
2.5 Eingesetzte Frameworks
2.5.1 WebKit
2.5.2 JavaScriptCore
2.5.3 RxSwift
3 Anforderungen an das System
3.1 Zielbestimmungen
3.2 Produkteinsatz
3.3 Produktfunktionen
3.3.1 An- und Abmelden
3.3.2 Speichern von Daten
3.3.3 Einstellungen
3.3.4 Teilen von Inhalten
3.4 Produktdaten
3.5 Produktleistungen
3.6 Qualitätsanforderungen
3.7 Ergänzungen
3.7.1 Realisierung
3.7.2 Authentifizierung
3.7.3 Portierbarkeit
4 Softwarearchitektur Umsetzung
4.1 Klassendiagramm
4.2 Implementierung: Model View Controller
4.2.1 Model
4.2.2 View
4.2.3 Controller
4.3 Target-Action
4.4 Delegation
4.5 Navigation
4.6 Reaktive Programmierung mittels Rx
5 Entwicklung der iOS Applikation
5.1 Authentifizierung
5.1.1 Überprüfung der Session
5.1.2 Verschlüsselung mittels RSA PKCS1
5.1.3 Anmeldung
5.1.4 Implementierung Authentifizierung in Swift
5.2 Optimierung Dashboard zur mobilen Darstellung
5.3 Einbindung Dashboards
5.3.1 Einbindung Tableau HTML
5.3.2 Einbindung iOS Applikation
5.4 Implementierung Tableau JavaScript API
5.4.1 Kommunikation
5.4.2 Initialisierung
5.4.3 Filterfunktionen
5.4.4 Funktionen zum Setzen von Parametern
5.4.5 Eventhandler
5.4.6 Hilfsfunktionen
5.5 User Interface
5.6 Features
5.6.1 Speichern von Sessions
5.6.2 Teilen von Dashboards
5.6.3 3D Touch Support
5.6.4 Schnellnavigationsleiste
6 Schlussbetrachtung
6.1 Zusammenfassung
6.2 Fazit
6.3 Ausblick
Die Masterarbeit befasst sich mit der Entwicklung einer nativen iOS-Applikation, die darauf abzielt, bereits bestehende Softwarequalitäts-Dashboards, welche unter der Bezeichnung "SW-Quality" auf einem Tableau-Server veröffentlicht wurden, für die mobile Nutzung zu optimieren und das User Interface durch ein natives System zu ersetzen.
2.4.4 Reaktive Programmierung
Das Konzept der reaktiven Programmierung ist nicht neu, aber seine Kernkonzepte haben in den letzten zehn Jahren ein spürbares Comeback erlebt. In diesem Zeitraum haben sich Web-Anwendungen und mobile Applikationen immer weiter verbreitet. Die Verwaltung komplexer asynchroner Benutzeroberflächen und die Vielzahl an Sensorik in Smartphones haben sie zu einer Notwendigkeit gemacht, während auf Serverseite reaktive Programmierungskonzepte schon länger verbreitet sind.
Im Jahr 2009 wurde ein Team von Microsoft damit beauftragt, ein neues client- und serverseitiges Framework zu entwickeln. Es wurde bekannt unter dem Namen "Reactive Extension für .NET (Rx)". Es handelte sich um ein installierbares Add-On für .NET 3.5 und wurde später eine integrierte Kernbibliothek für .NET 4.0. Seit 2012 ist der Quelltext öffentlich und kann von Dritten eingesehen, geändert und genutzt werden. Dies hat dazu geführt, dass Rx auch auf anderen Plattformen implementiert wurde und zu einem Cross-Plattform-Standard geworden ist. Diese sind unter den Namen RxJS, RxKotlin, Rx.NET, RxScala und RxSwift bekannt. Alle Bibliotheken sind bestrebt, das gleiche Verhalten des ursprünglichen Frameworks zu implementieren (vgl. [FP17]). Sie sind zentral über http://reactivex.io mit einer ausführlichen Dokumentation verfügbar.
Die Basis von Rx ist die Generierung von Eventsequenzen. Diese können erzeugt, kombiniert und beobachtet werden. Daneben enthält es Ansätze der funktionalen Programmierung, um Probleme deklarativ zu lösen. Hierdurch wird Code-Isolation, Wiederverwendbarkeit und lose Kopplung erreicht. Weiterhin kann Nebenläufigkeit über Scheduler verwaltet werden.
Rx vereinfacht in seiner Essenz die Entwicklung von asynchronen Programmen, indem es ihrem Code erlaubt, auf neue Daten zu reagieren und sie in sequentieller, isolierter Weise zu verarbeiten. Es basiert auf den drei Konzepten Observables, Operators und Scheduler.
1 Einleitung: Beschreibt das Ziel der Arbeit, Dashboards für Softwarequalität auf iOS-Geräten zu visualisieren und die Problemstellung der mobilen Optimierung.
2 Theoretische Grundlagen: Erläutert die theoretischen Basis-Technologien, inklusive Softwaremetriken, Schnittstellen von Tableau, Programmiersprachen (JavaScript, Swift) und Softwarearchitektur-Konzepte.
3 Anforderungen an das System: Legt das Lastenheft und die spezifischen Produktfunktionen fest, die für die Applikation "Software Metrics" umgesetzt werden sollen.
4 Softwarearchitektur Umsetzung: Beschreibt die technische Realisierung der Applikation mittels MVC, Delegation, Target-Action und die Interaktion zwischen Swift- und JavaScript-Kontext.
5 Entwicklung der iOS Applikation: Detailierte Darstellung des Entwicklungsprozesses, inklusive Authentifizierung, Einbindung der Dashboards, Interface-Design und der Implementierung spezifischer Features.
6 Schlussbetrachtung: Zusammenfassung der erreichten Ergebnisse, ein kritisches Fazit zur verwendeten Technologie und ein Ausblick auf zukünftige Erweiterungsmöglichkeiten.
Softwarequalität, iOS, Tableau, Dashboards, Mobile Applikation, Datenvisualisierung, Softwaremetriken, Swift, JavaScript, MVC, Reaktive Programmierung, RxSwift, Architektur, Mobile Entwicklung, UI-Design
Die Arbeit beschäftigt sich mit der Entwicklung einer nativen iOS-Applikation zur Visualisierung von Softwarequalitäts-Metriken, die auf Tableau-Dashboards basieren.
Zentrale Themen sind die mobile Datenvisualisierung, die Integration von Tableau-Technologien in native iOS-Apps, Softwaremetriken sowie moderne Softwarearchitektur-Konzepte.
Das Ziel ist die Optimierung bestehender Tableau-Dashboards für kleine mobile Displays und deren Einbindung in eine native iOS-App unter Beibehaltung der vollen Funktionalität.
Die Arbeit nutzt Methoden des Requirements Engineering für die Anforderungsanalyse und folgt einem systematischen softwarearchitektonischen Ansatz (MVC) zur Implementierung.
Der Hauptteil konzentriert sich auf die Softwarearchitektur der Applikation, die Authentifizierung am Server sowie die Implementierung der Tableau JavaScript API zur Interaktion mit den Dashboards.
Schlüsselwörter sind Softwarequalität, iOS, Tableau, Datenvisualisierung, MVC und reaktive Programmierung (RxSwift).
Da für die offizielle Authentifizierung an Tableau-Servern keine programmatische Schnittstelle für native Apps dokumentiert ist, wurde durch Reverse Engineering eine Lösung gefunden, um den Login-Prozess nativ abzubilden.
Reaktive Programmierung mit RxSwift wird vor allem für den Anmeldeprozess und zur Handhabung komplexer asynchroner Netzwerkoperationen eingesetzt, um Code-Isolation und lose Kopplung zu erreichen.
Structs werden genutzt, da sie beim Übergeben kopiert werden, was in mobilen Anwendungen mit hoher Nebenläufigkeit die Datensicherheit und -konsistenz erhöht.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

