TU Darmstadt / ULB / TUprints

An Extension Interface Concept for Multilayered Applications

Aly, Mohamed Abdulazim Mohamed :
An Extension Interface Concept for Multilayered Applications.
Technische Universität, Darmstadt
[Ph.D. Thesis], (2014)

[img]
Preview
Text
dissertation_maly.pdf
Available under Only rights of use according to UrhG.

Download (1MB) | Preview
Item Type: Ph.D. Thesis
Title: An Extension Interface Concept for Multilayered Applications
Language: English
Abstract:

Extensibility is an important feature of modern software applications. In the context of business applications it is one of the major selection criteria from the customer perspective. Software extensions enable developers to integrate new features to a software system for supporting new requirements. However, there are many open challenges concerning the software provider and the extension developer.

A software provider must provide extension interfaces that define the software artifacts of the base application that are allowed to be extended, where and when the extension code will run, and what resources of the base application an extension is allowed to access. While concepts for such interfaces are still a challenging research topic for ``traditional'' software constructed using a single programming language, they are completely missing for complex systems consisting of several abstraction layers. In addition, state-of-the-art approaches do not support providing different extension interfaces for different stakeholders.

To develop an extension for a certain software system, the extension developer has to understand what extension possibilities exist, which software artifacts provide these possibilities, the constraints and dependencies between the extensible software artifacts, and how to correctly implement an extension. For example, a simple user interface extension in a business application can require a developer to consider extensible artifacts from underlying business processes, database tables, and business objects. In commercial applications, extension developers can depend on classical means like application programming interfaces, frameworks, documentation, tutorials, and example code provided by the software provider to understand the extension possibilities and how to successfully implement, deploy, and run an extension.

For complex multilayered applications, relying on such classical means can be very hard and time-consuming for the extension developers. In integrated development environments, various program comprehension tools and approaches have helped developers in carrying out development tasks. However, most of the tools focus on the code level, lack the support for multilayered applications, and do not particularly focus on extensibility.

In this dissertation I aim to provide better means for defining, implementing, and consuming extension interfaces for multilayered applications. I claim that explicit extension interfaces are required for multilayered applications and they are needed for simplifying the implementation (i.e., the concrete realization) and maintainability of extension interfaces on the side of the software provider as well as the consumption of these interfaces by the extension developers.

To support this thesis, I first analyze problems with extension interfaces from the perspectives of both the software provider through an example business application and an analysis of a corpus of software systems. I then analyze the problems with the consumption of extension interfaces (i.e., extension development) through a user study involving extension developers performing extension development tasks for a complex business application. Next, I present XPoints, an approach and a language for the specification of extension possibilities for multilayered applications. I develop an instantiation of XPoints evaluate it against current state-of-the-art works and its usability through a user study. I finally show how XPoints can be applied to simplify the extension development through the implementation of a recommender system for extension possibilities for multilayered applications. The advantages of the recommender system are illustrated through an example as well through a comparison between the current state-of-the-art tools for program comprehension. Topics like extension validation, monitoring, and conflict detection are left for future work.

Alternative Abstract:
Alternative AbstractLanguage
Erweiterbarkeit ist eine wichtige Eigenschaft von modernen Softwareanwendungen. Aus der Perspektive der Kunden ist Erweiterbarkeit ein Hauptentscheidungskriterium zur Auswahl von Geschäftsanwendungen. Mithilfe von Erweiterungen können Entwickler neue Anforderungen an ein Softwaresystem unterstützen. Dennoch gibt es für den Softwareanbieter und den Erweiterungsentwickler viele offene Herausforderungen. Softwareanbieter müssen Erweiterungsschnittstellen zur Verfügung stellen: Die erweiterbaren Softwareartefakte, sowie die Ausführungszeiten und die Ausführungspunkte der Erweiterung, und die verfügbaren Softwareressourcen für die Erweiterung. Während die Konzepte für solche Erweiterungsschnittstellen im Umfeld von „traditionellen“ mit einer einzelnen Programmiersprache entwickelten Anwendungen noch ein anspruchsvolles Forschungsthema sind, fehlen vergleichbare Konzepte für mehrschichtige, mehrsprachige Softwaresysteme. Um eine Erweiterung für ein bestimmtes Softwaresystem zu entwickeln, muss der Erweiterungsentwickler die angebotene Erweiterungsmöglichkeiten verstehen, die dazugehörenden Softwareartefakte finden, die Abhängigkeiten und Randbedienungen zwischen den Erweiterungsartefakten identifizieren und die richtige Entwicklungsmethode verstehen. Zum Beispiel kann eine einfache Erweiterung der Benutzeroberfläche einer Geschäftsanwendung eine Erweiterung der unterliegenden Geschäftsprozesse, Datenbanktabellen und Businessobjekte erfordern. In kommerziellen Anwendungen benutzen Erweiterungsentwickler die von den Softwareanbietern angebotenen klassischen Mittel wie APIs, Frameworks, Dokumentationen, Anleitungen und Beispielcode, um Erweiterungsmöglichkeiten zu verstehen und Erweiterungen erfolgreich zu entwickeln, auszuführen und einzusetzen. Die Nutzung von diesen klassischen Mitteln zur Entwicklung von Erweiterungen für komplexe Anwendungen kann schwer und zeitaufwändig für Erweiterungsentwickler sein. Obwohl in modernen Entwicklungsumgebungen viele Werkzeuge und Ansätze zum Programverständnis den Entwickler unterstützen, sind die meisten dieser Werkzeuge und Methoden auf die Code-Ebene beschränkt. Außerdem, fehlt eine geeignete Unterstützung von mehrschichtigen Anwendungen und der Fokus auf Erweiterbarkeit. Ziel dieser Dissertation ist es eine bessere Methode zur Definition, Entwicklung und Nutzung von Erweiterungsschnittstellen in mehrschichtigen Anwendungen zu entwickeln. Diese Arbeit zeigt, dass explizite Erweiterungsschnittstellen für Softwareanbieter und Erweiterungsentwickler benötigt werden. Durch die Nutzung expliziter Erweiterungsschnittstellen kann die Entwicklung (d.h., die konkrete Implementierung) auf der Seite des Softwareanbieters vereinfacht und beschleunigt werden. Zudem kann der Wartungsaufwand reduziert werden. Mithilfe dieser expliziten Erweiterungsschnittstellen kann, auch auf der Seite der Erweiterungsentwickler, der Entwicklungsprozess einer Erweiterung vereinfacht und beschleunigt werden. Um dies zu zeigen, werden die Probleme bei der Realisierung von Erweiterbarkeit sowie Schwachstellen von Werkzeugen zum Programmverständnis analysiert. Zuerst werden die Probleme anhand einer beispielhaften Geschäftsanwendung und einer Studie einer Reihe von Softwaresystemen gezeigt. Im Folgenden werden die Probleme bei der Erweiterung komplexer Geschäftsanwendungen anhand einer Nutzerstudie mit mehreren Erweiterungsentwicklern analysiert. Darauf aufbauend wird XPoints, ein Konzept und eine Sprache zur Definition von expliziten Erweiterungsschnittstellen, beschrieben. XPoints wird durch einen Vergleich mit heutigen Ansätzen evaluiert. Anhand einer Benutzerstudie werden die Vorteile von XPoints gezeigt. Auf Basis von XPoints, wird ein Recommender-System entwickelt, das Entwickler bei der Entwicklung von Erweiterungen unterstützt. Die Vorteile dieses Recommender-Systems werden anhand eines Beispiels und Vergleichs mit heutigen Ansätzen zum Programmverständnis aufgezeigt. Weitere Forschungsbereiche wie die Validierung von Erweiterungen, Monitoring sowie die Erkennung von Konflikten bleiben offene Punkte für zukünftige Forschungsarbeiten. German
Place of Publication: Darmstadt
Uncontrolled Keywords: extensibility, multilayered applications, extension interfaces, xpoints, controlled extensibility, explicit extension interfaces, black-box extensibility
Classification DDC: 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Divisions: 20 Department of Computer Science
20 Department of Computer Science > Software Technology
Date Deposited: 21 Nov 2014 09:12
Last Modified: 21 Nov 2014 09:12
URN: urn:nbn:de:tuda-tuprints-42477
Referees: Mezini, Prof. Dr. Mira and Südholt, Prof. Dr. Mario
Refereed: 10 November 2014
URI: http://tuprints.ulb.tu-darmstadt.de/id/eprint/4247
Export:
Actions (login required)
View Item View Item

Downloads

Downloads per month over past year