Fragmentbasierte Softwarearchitekturen für Produktlinien

Körner, Marco

In vielen Domänen gestaltet sich die Architektur-Entwicklung von komponentenbasierten Softwaresystemen zunehmend schwierig. Zum einen liegt das an der Zunahme der Komplexität der Systeme. Zum anderen muss oft nicht nur ein einzelnes Produkt sondern eine ganze Familie von Software-Produkten entwickelt werden. Beispielsweise wird in der Automobilindustrie Steuersoftware so entwickelt, dass sie in unterschiedlichen Fahrzeugmodellen eingesetzt werden kann. Eine Entwicklung der Software als eine Softwareproduktlinie reduziert die Komplexität, indem das Potential für Wiederverwendung erhöht wird. In einer Softwareproduktlinie wird die gesamte Produkt-Familie betrachtet. Gemeinsamkeiten und Unterschiede werden identifiziert und in Variabilitätsmodellen festgehalten. Ein solches Variabilitätsmodell ist das Feature-Modell. Ein Feature repräsentiert ein fachliches Merkmal, das ein Produkt der Softwareproduktlinie haben kann. Ein Feature-Modell fasst alle möglichen Kombinationen von Features in einem Modell zusammen. Die Erstellung von Softwarearchitekturen für einzelne Produkte kann auch unter Berücksichtigung eines Feature-Modells weiterhin sehr schwierig sein. Bei komponentenbasierten Softwarearchitekturen wird durch die Verschaltung der Komponenten ein Beziehungsgeflecht erzeugt. Erfordert die Softwareproduktlinie ein hohes Maß an Variabilität in dem Beziehungsgeflecht, nimmt die Anzahl möglicher Komponenten-Verschaltungen stark zu. Ein Software-Architekt kann die Menge der Verschaltungen dann nicht mehr überblicken. Das Ziel dieser Arbeit ist, durch Einführung eines modular aufgebauten Variabilitätsmodells für komponentenbasierte Softwarearchitekturen, die Arbeit des Software- Architekten zu vereinfachen. Einen wesentlichen Beitrag zur Lösung bilden Strukturfragmente. Strukturfragmente repräsentieren eine geeignete Verschaltung mehrerer Komponenten in einem bestimmten Kontext. Einerseits hilft ein Strukturfragment, die Menge der möglichen Komponentenverschaltungen einzuschränken. Andererseits vereinfacht es die Entwicklung der Softwareproduktlinie, da es ein wiederverwendbares Artefakt ist. Durch alternative Verschmelzungen von Strukturfragmenten werden Beziehungsgeflechte mehrerer Produkte definiert. Zusammen mit Softwarekomponenten bilden die Strukturfragmente das Variabilitätsmodell für die Softwarearchitekturen. Eine weitere Entlastung des Architekten wird durch eine Werkzeugunterstützung ermöglicht. Durch die Verbindung der Variabilitätsmodelle kann nach Vorgabe einer Menge von Features eine geeignete Softwarearchitektur automatisiert abgeleitet werden. Die Beschreibungssprache für die Modellierung wird weitgehend durch ein in UML modelliertes Metamodell unter Zuhilfenahme von OCL-Ausdrücken spezifiziert. In der Arbeit wird ein Werkzeugprototyp spezifiziert, der die Modellierung und Architekturableitung unterstützt. Die Machbarkeit des Konzeptes wird mit diesem Prototypen demonstriert.

In many domains, architecture development of component-based software systems is becoming increasingly difficult. On the one hand, this is due to the increasing complexity of the systems. On the other hand, often not only a single product but a whole family of products has to be developed. For example, in the automotive industry, control software is being developed to be used in different vehicle models. Development of the software as a software product line reduces the complexity by increasing the potential for reuse. In a software product line the entire product family is considered. Commonalities and differences are identified and recorded in variability models. One such variability model is the feature model. A feature is a user-visible characteristic of a product. A feature model represents all possible combinations of features within the product line. But even if a feature model is used, the development of software architectures for individual products can still be very difficult. In component-based software architectures, the interconnection of the components creates a network of relationships. If the software product line requires a high degree of variability in this network of relationships, the number of possible component interconnections increases significantly. A software architect will not be able to keep all possible interconnections in mind. The goal of this work is to simplify the work of the software architect by introducing a modular variability model for component-based software architectures. An essential contribution to the solution is made by structural fragments. A structural fragment represents a suitable interconnection of several components in a particular context. On the one hand, a structural fragment helps to limit the amount of possible component interconnections. On the other hand, it simplifies the development of the software product line, as it is a reusable artifact. Alternative fusions of structural fragments define the relationships of several products. In combination with software components, the structural fragments form the variability model for the software architectures. Tool support provides further relief for the architect. By combining the variability models, a suitable software architecture can be derived automatically after specifying a set of features. The language used for modeling is specified using an UML meta-model with additional OCL expressions. In the thesis a tool prototype is specified which supports the modeling and architecture derivation. The feasibility of the concept is demonstrated with this prototype.

Vorschau

Zitieren

Zitierform:

Körner, Marco: Fragmentbasierte Softwarearchitekturen für Produktlinien. 2017.

Zugriffsstatistik

Gesamt:
Volltextzugriffe:
Metadatenansicht:
12 Monate:
Volltextzugriffe:
Metadatenansicht:

Grafik öffnen

Rechte

Nutzung und Vervielfältigung:
Alle Rechte vorbehalten

Export