A Framework for Model-Driven Development of Mobile Applications with Context Support

Model-driven development (MDD) of software systems has been a serious trend in different application domains over the last 15 years. While technologies, platforms, and architectural paradigms have changed several times since model-driven development processes were first introduced, their applicabili...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Vaupel, Steffen
Beteiligte: Taentzer, Gabriele (Prof. Dr.) (BetreuerIn (Doktorarbeit))
Format: Dissertation
Sprache:Englisch
Veröffentlicht: Philipps-Universität Marburg 2018
Schlagworte:
Online-Zugang:PDF-Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!

Die modellgetriebene Entwicklung von Softwaresystemen (MDD) ist in den letzten 15 Jahren in verschiedenen Domänen zu einem ernstzunehmenden Trend geworden. Da sich Technologien, Plattformen und Architekturparadigmen seit der Einführung des modellgetriebenen Ansatzes oftmals verändert haben, wird dessen Anwendbarkeit und Nützlichkeit erneut für jeden neuen technologischen Trend diskutiert. In Hinblick auf die zügige Marktdurchdringung von Smartphones fragen Softwareentwickler, wie modellgetriebene Entwicklungstechniken in diesem neuen und aufstrebenden Bereich der Softwareentwicklung (SE) eingesetzt werden können. Der modellgetriebene Ansatz deckt tatsächlich viele Herausforderungen ab, welche die Softwareentwicklung von mobilen Anwendungen mit sich bringt. Elementarer Bestandteil der modellgetriebenen Entwicklung ist ein plattformunabhängiges Modell. Solch ein Modell folgt gewöhnlich einer domänenspezifischen Modellierungssprache und trennt die fachlichen Belange der Anwendung von den technischen Belangen. Das plattformunabhängige Modell wird bei der Generierung von Programmcode für diverse mobile Plattformen wiederverwendet. Ein großer Nachteil der modellgetriebenen Entwicklung ist allerdings die Notwendigkeit, eine relativ ausgereifte modellgetriebene Infrastruktur durch Infrastrukturentwickler bereitzustellen, bevor Entwickler von mobilen Anwendungen diese modellgetrieben erstellen können. Daher widmet sich der erste Teil dieser Arbeit dem Entwurf einer modellgetriebenen Infrastruktur für mobile Anwendungen. Der konsequente Entwurfsprozess beinhaltet eine Domänenanalyse, den Entwurf einer domänenspezifischen Modellierungssprache sowie entsprechender Modelleditoren. Zur Sicherstellung der Codequalität und einer angemessen Architektur der durch die Codegeneratoren erzeugten mobilen Anwendungen werden zuvor einige repräsentative Referenzanwendungen analysiert. Dadurch erhalten die Leser sowohl Einblick darin, welche Schritte zum Entwurf und der Realisierung einer modellgetriebenen Infrastruktur notwendig sind, als auch in die Merkmale und Anforderungen von mobilen Anwendungen. Die Domänenanalyse und die Analyse der Referenzanwendung zeigen, dass die Erkennung von Kontexten ein weiteres wichtiges Merkmal von mobilen Anwendungen ist. Gegenwärtige Softwareentwicklungswerkzeuge unterstützen den Entwurf und die Realisierung von kontextabhängigem Verhalten nur unzureichend. Obwohl diese Werkzeuge (z.B. Middlewarebibliotheken) die Definition und Sammlung kontextrelevanter Informationen unterstützen, muss die Anpassung der mobilen Anwendung üblicherweise manuell und auf einer niedrigen Abstraktionsschicht programmiert werden. Daher zeigt der zweite Teil dieser Arbeit, wie kontextabhängige mobile Anwendungen mit dem modellgetriebenen Ansatz einfacher erstellt werden können. Es werden Techniken wie Modeltransformation und Modelinterpretation benutzt, um mobile Anwendungen zur Entwurfszeit oder Laufzeit anzupassen. Darüber hinaus hilft eine Modellanalyse und eine modellbasierte Simulation, eine erstellte mobile Anwendung (d.h., ein Anwendungsmodell) vor der Generierung oder der Bereitstellung zu beurteilen. Die Nützlichkeit und Anwendbarkeit der entworfenen modellgetriebenen Entwicklungsinfrastruktur wird in sieben Beispielszenarien demonstriert, welche den Entwurf von mobilen Anwendungen in verschiedenen Domänen zeigen. Die Skalierbarkeit wird durch Lasttests demonstriert, welche auf die Generierungs- und Ausführungszeit der generierten Anwendungen abzielen. Darüber hinaus ist die Bedienbarkeit innerhalb verschiedener praktischer Schulungen mit authentischen Anwendern verschiedener Kenntnisstufen erfolgreich erprobt worden.