Design, Implementierung und Evaluation eines Turn-By-Turn-Navigationsframeworks für das mobile Betriebssystem Android

Thema:
Design, Implementierung und Evaluation eines Turn-By-Turn-Navigationsframeworks für das mobile Betriebssystem Android
Art:
MA
BetreuerIn:
Paul Wein (Conti)
BearbeiterIn:
Florian Ludwig
ErstgutachterIn:
Christian Wolff
ZweitgutachterIn:
N.N.
Status:
abgeschlossen
Stichworte:
Navigationssystem, turn-by-turn, Android, AUI, automotive user interfaces, mobile Informationssysteme, Software Engineering, Turn-By-Turn-Navigation, Java, Abstraktion
angelegt:
2016-10-14
Beginn:
2016-10-01
Anmeldung:
2016-10-17
Antrittsvortrag:
2016-11-07
Abschlussvortrag:
2017-10-09
Abgabe:
2017-03-17
Textlizenz:
Unbekannt
Codelizenz:
Unbekannt

Hintergrund

Die sog. Turn-By-Turn-Navigation, welche Heutzutage eine etablierte Methode ist um den Nutzer schrittweise zu einem angegebenen Ziel zu führen, ist schon länger nicht mehr nur an spezielle Navigationsgeräte gebunden, sondern gehört auch zum Repertoire von nahezu allen Smartphones. Somit muss hierzu kein zusätzliches Gerät vorhanden sein. Soll diese Turn-By-Turn-Funktion nun in eine Applikation integriert werden, so ist eine Recherche innerhalb der umfangreichen Anbieter-Landschaft unumgänglich. Die diversen Anbieter verfügen über sehr heterogene APIs, was den Entwicklern etwaiger Endanwendungen einen nicht zu unterschätzenden Arbeitsaufwand abverlangt, vor allem, wenn der Anbieter ausgetauscht werden soll. Diese Arbeit hat das Ziel, Softwareentwicklern ein Werkzeug in Form eines Frameworks an die Hand zu geben, welches den Zugriff auf die Schnittstellen der unterschiedlichen Anbieter über einheitlich definierte Methoden ermöglicht. Die Umsetzung erfolgt für das mobile Betriebssystem Android.

Die APIs der einzelnen Turn-By-Turn-Provider bieten grundsätzlich identische Funktionen an, welche aber auf unterschiedliche Art und Weise umgesetzt werden. Auch das Format der Daten unterscheidet sich stark von Anbieter zu Anbieter. Teilweise verfügen die Anbieter bereits über ein entsprechendes SDK, welches eingebunden werden kann um auf die jeweiligen Daten zuzugreifen und teilweise muss dies manuell umgesetzt werden. Somit gestaltet sich die Anbindung mehrerer Anbieter oder der Wechsel von Einem zum Anderen als problematisch, da jeder individuell angesprochen werden muss. Dies hat eine Einarbeitung in jede einzelne Schnittstellen-Spezifikation durch die Entwickler der Endanwendungen zur Folge und erhöht die nötige Code-Menge bzw. den Umfang der nötigen Änderungen bei einem Anbieterwechsel.

Zielsetzung der Arbeit

Ziel der Arbeit ist der Entwurf und die Implementierung eines Frameworks, welches Entwicklern ermöglicht auf die Daten diverser Turn-By-Turn-Anbieter zuzugreifen. Um dieses Ziel zu erreichen ist die Analyse der existierenden Standards, Datenformate und Schnittstellen nötig. Zur Realisierung dieses Frameworks wird ein einheitliches und konvergentes Format in Hinblick auf die Turn-By-Turn-Daten und eine homogene Schnittstelle definiert. Außerdem soll eine Engine bereitgestellt werden, welche die mit dem Tracking verbundenen Anweisungen rechtzeitig und an vorgesehener Stelle auslöst. Die Implementierung einer prototypischen Applikation, die mit Hilfe des konzipierten Frameworks auf einen ausgewählten Provider zugreift, soll die Verwendbarkeit überprüfen. Zusätzlich sollen mögliche Use-Cases erstellt und detailiert beschrieben werden. Die Validierung soll somit auf Basis der Funktionalität und der Verwendbarkeit des resultierenden Frameworks durch entsprechende Methoden erfolgen.

Konkrete Aufgaben

  • Übersicht über bekannte und etablierte Turn-By-Turn-Anbieter
  • Recherche von Turn-By-Turn-Standards und vorhandenen Schnittstellen
  • Einarbeitung in die APIs der unterschiedlichen Provider
  • Auflistung der unterschiedlichen Authentifizierungsarten der Provider
  • Übersicht vorhandener und nutzbarer Eingangs-Daten (Dauer, Entfernung, Anweisungen, etc.)
  • Implementierung eines modularen und erweiterbaren Frameworks
  • Anbindung an vier der Turn-By-Turn-Provider
  • Modellierung eines Datenmodells zur Vereinheitlichung der Eingangs-Daten
  • Erstellung einer allgemeine Schnittstelle zum Bereitstellen der Daten
  • Umsetzung einer Turn-By-Turn-Engine, die sich um die eigentliche Navigation kümmert
  • Entwicklung einer prototypischen Demo-Anwendung auf Basis des erstellten Frameworks

Erwartete Vorkenntnisse

  • Sehr gute Kenntnisse des Software Engineerings
  • Sehr gute Java- & Androidkenntnisse
  • Hintergrundwissen zur Thematik der Turn-By-Turn-Navigation
  • Grundlegendes Verständnis von Tracking-Techniken (GPS)

Weiterführende Quellen

TBD