Refine
Document Type
- Doctoral Thesis (4)
Has Fulltext
- yes (4)
Is part of the Bibliography
- no (4)
Keywords
- Softwareentwicklung (4) (remove)
Software has become an important part of our life. Therefore, the number of different applications scenarios and user requirements of software systems grows rapidly. To satisfy these requirements, software vendors build configurable software systems that can be tailored to diverse needs without rebuilding them from scratch, which reduces costs and development time.
Despite considerable advances in software engineering, which allow building high-quality configurable software systems, some challenges remain. One of these challenges is the feature interaction problem that arises when parts (features), from which a configurable system is composed, interact in unexpected ways, and inadvertently change the behavior or quality attributes (such as performance) of the system.
The goal of this dissertation is to systematically study the nature of feature interactions, their causes, their influence on performance of configurable systems, and, based on empirical results, suggest ways of improving techniques for detecting and predicting feature interactions.
More specifically, we compared and evaluated different strategies for the analysis of configurable software systems. The results of our evaluation complement empirical data from previous work about how different analysis strategies for configurable software systems compare with respect to different aspects, such as performance. These results shall be used to develop effective and scalable techniques and tools for analysis of configurable software including feature-interaction detection and prediction techniques and tools.
Technically, we used a machine-learning technique to quantify the influence of feature interactions on performance of real-world configurable systems. We studied the characteristics of interactions that have the largest influence on performance and found that interactions among few features have higher influence than interactions among many features. With a growing number of interacting features, the influence of the corresponding interactions decreases consistently. This implies that interactions involving multiple features can be ignored in practice because of their marginal influence on performance. We also investigated the causes of the interactions and were able to identify several patterns that link these interactions to the architecture of the systems: For example, we found that if a data processing system consisted of multiple features that processed the same data in sequence then these features interacted. The identified patterns can help to anticipate performance interactions already at an early development stage when a system’s architecture is designed.
Furthermore, considering that control-flow interactions (observable at the level of control flow among features) are easier to detect than performance interactions (externally observable through measuring performance of different combinations of features), we conducted a case study on two configurable systems. In this case study, we investigated a possible relation among control-flow feature interactions and performance feature interactions. We also discussed how this relation can be exploited by interaction detection and performance prediction techniques to make them more time efficient and precise. Our case study on two real-world configurable systems revealed that a relation indeed exists, and we were able to show how it can be used to reduce the search space of possibly existing performance interactions. The study can serve as a blueprint for further studies that can rely on our conceptual framework for investigating relations among external and internal interactions.
Overall, the contribution of this dissertation consists of scientific and technical insights, practical tool implementations, empirical evaluations, and case studies that advance the current state of research in the area of feature interactions in configurable software systems. In particular, we provide insights into the causes of feature interactions and their influence on performance of real-world configurable systems (e.g., interaction patterns, decreasing influence of interactions with growing number of involved features). Our results also suggest ways of improving techniques for detecting and predicting feature interactions (e.g., ignoring interactions among multiple features, reducing the search space based on relations among interactions).
In Zeiten von Globalisierung, kurzen Produktlebenszyklen und schnellem technologischen Fortschritt gewinnen Projekte über alle Branchen zunehmend an Bedeutung – so auch in der Softwarebranche. Nahezu jedes Unternehmen muss derzeit große Anstrengungen im Bereich Projektmanagement unternehmen, um die gestiegenen Anforderungen erfüllen zu können, die richtigen Projekte auszuwählen und diese in geeigneter Weise durchzuführen. Ein wesentliches Problem in diesem Bereich ist, dass Umstände und Schlüsselfaktoren des Projekterfolgs während des gesamten Projektverlaufs als veränderlich angesehen werden müssen. Veränderungen der Rahmenbedingungen können jedoch zu steigenden Kosten und/oder sinkenden Ertragsprognosen führen, wodurch möglicherweise eine Weiterführung des bereits begonnenen Projektes unwirtschaftlich wird. Die Frage dahingehend, ob ein bereits laufendes Projekt unter veränderten Rahmenbedingungen weitergeführt oder abgebrochen werden sollte, ist daher eine der Kernfragen des Projektmanagements. Sie wird derzeit jedoch sowohl im Projektmanagement allgemein als auch im Softwareentwickungs-Projektmanagement im Besonderen weitgehend vernachlässigt. Daher war das wesentliche Ziel meiner Arbeit ein generisches Modell zur Entscheidungsunterstützung zu entwickeln. Dieses Modell kann als Framework aufgefasst werden, welches sowohl für verschiedene Arten von Softwareentwicklungsprojekten als auch Unterschiede in der Datenverfügbarkeit konzipiert wurde. Dabei wurde ein Haupt-Fokus auf die Integration von Kernrisiken in die Schätzung von Projektrestaufwänden und -erträgen gelegt, um eine tragfähige Entscheidungsgrundlage zu generieren.
Ermittlung des Industrialisierungsgrades der Anwendungsentwicklung in der Fertigungsindustrie
(2010)
Die Industrialisierung ist mittlerweile auch in der Softwarebranche angekommen. In dieser Arbeit wird ein Modell vorgestellt, das eine Einstufung der verschiedenen Ausprägungen der Industrialisierung in der Anwendungsentwicklung ermöglicht. Ferner wird auf Basis dieses Modells ein Bewertungsverfahren vorgestellt, welches einem Unternehmen erlaubt, den Grad an Industrialisierung in der Entwicklung von Anwendungen zu ermitteln. Das Ergebnis dieser Ermittlung dient dem Unternehmen als Basis für eine Entscheidung zur Optimierung der Softwareentwicklung. Mit der Festlegung eines Sollgrades können zudem die Ziele für die Verbesserung der Anwendungsentwicklung definiert werden. Eine regelmäßige Ermittlung des Industrialisierungsgrades ermöglicht dabei die Dokumentation des aktuellen Fortschrittes. Eine praktische Bewertung eines Unternehmensbereiches wird im Rahmen einer Fallstudie exemplarisch durchgeführt.
Diese Dissertation beschäftigt sich mit den Problemen bei der Entwicklung von effizienter und zuverlässiger Software für eingebettete Systeme. Eingebettete Systeme sind inhärent nebenläufig, was mit einen Grund für ihre hohe Entwurfskomplexität darstellt. Aus dieser Nebenläufigkeit resultiert ein hoher Grad an Kommunikation zwischen den einzelnen Komponenten. Eine wichtige Forderung zur Vereinfachung des Entwurfsprozesses besteht in der getrennten Modellierung von Kommunikationsprotokollen und eigentlichen Verarbeitungsalgorithmen. Daraus resultiert eine höhere Wiederverwendbarkeit bei sich ändernden Kommunikationsstrukturen. Die Grundlage für die sogenannten Datenflußsprachen bildet eine einfache von Gilles Kahn konzipierte Sprache für Parallelverarbeitung. In dieser Sprache besteht ein System aus einer Menge sequentieller Prozesse (Komponenten), die über Fifokanäle miteinander kommunizieren. Ein Prozess ist rechenbereit, wenn seine Eingangsfifos mit entsprechenden Daten gefüllt sind. Übertragen werden physikalische Signale, die als Ströme bezeichnet werden. Ströme sind Folgen von Werten ohne explizite Zeitangaben. Das Einsatzgebiet von Datenflußsprachen liegt in der Entwicklung von Programmen zur Bild- und Signalverarbeitung, typischen Aufgaben in eingebetteten Systemen. Die Programmierung erfolgt visuell, wobei man Icons als Repräsentanten parametrisierbarer Komponenten aus einer Bibliothek auswählt und mittels Kanten (Fifos) verbindet. Ein im allgemeinen dynamischer Scheduler überwacht die Ausführung des fertiggestellten Anwendungsprogramms. Diese Arbeit schlägt ein universelleres Modell physikalischer Signale vor. Dabei werden zwei Ziele verfolgt: 1. Effiziente Kommunikation zwischen den Komponenten 2. Entwurfsbegleitende Überprüfung von Programmeigenschaften unter Verwendung komplexerer Komponentenmodelle Zur Effizienzsteigerung werden nur relevante Werte innerhalb von Strömen übertragen. Dies erhöht zwar den Mehraufwand zur Kennzeichnung des Aufbaus eines Teilstroms, in praktischen Anwendungen ist die hier vorgestellte Methode jedoch effizienter. Die Einführung neuer Signalmerkmale erlaubt unterschiedlichste Überprüfungen der Einhaltung von Typregeln durch die Eingangs- und Ausgangsströme einer Komponente. Anstelle einfacher Schaltregeln werden aufwendigere Kommunikationsprotokolle für die verschiedenen Arten von Komponenten eingeführt. Fifomaten (Fifo-Automaten) dienen als formale Grundlage. Mittels eines dezidierten Model-Checking-Verfahrens wird das Zusammenspiel der Fifomaten daraufhin untersucht, ob ein zyklischer Schedule existiert. Die Existenz eines solchen zyklischen Schedules schließt Speicherüberlauf und Deadlocks aus und garantiert darüber hinaus, daß das Programm nach endlicher Zeit wieder in die Ausgangssituation zurückfindet. Da im allgemeinen die Datenflußprogramme turingäquivalent sind, kann es allerdings zyklische Schedules geben, die das Verfahren nicht entdeckt. Mit der hier vorgestellten und implementierten Methode wird die Entwicklungszeit korrekter Datenflußprogramme deutlich reduziert. Das neue Modell physikalischer Signale macht zudem die Ausführung effizienter.