Abstract:
In modernen Software-Entwicklungsprozessen werden, insbesondere zur Implementierung von Standardfunktionalitäten, immer häufiger bestehende Komponenten oder Bibliotheken wiederverwendet.
So müssen Funktionalitäten, die breite Anwendung in unterschiedlichen Systemen finden können, nicht für jede Verwendung von Grund auf neuentwickelt werden.
Wiederverwendung von Funktionalitäten durch Software-Komponenten oder gar von komplexen Teilsystemen, den Subsystemen, die höherwertige Funktionalitäten, die Features, anbieten, führt so zu kosteneffizienterer Entwicklung und qualitativ hochwertigerer Software.
... mehr
Durch eine Vielzahl ähnlicher Lösungen für die gleiche Standardfunktionalität stehen Software-Architekten allerdings häufig vor der Frage, welche Lösungen sie auswählen sollten und wie deren Konfiguration in der Zielarchitektur optimal zu den Anforderungen an das Software-System passen.
Subsysteme bieten häufig eine Vielzahl an Features an, die zu unklaren Effekten auf die Qualitätsattribute der Software-Architektur, wie z.B. auf die Performance, führt.
Insbesondere zur Entwurfszeit oder wenn Software-Systeme um Funktionalität erweitert werden soll ist unklar, ob durch die Verwendung eines bestimmten Features eines bestimmten Subsystems die Qualitätsanforderungen an das Gesamtsystem haltbar sind.
Neue Qualitätsanforderungen werden zumeist durch Funktionen operationalisiert.
Operationalisierte Qualitätsanforderungen haben meist zum Ziel eine oder mehrere Qualitätsattribute, wie z.B. Sicherheit oder Bedienbarkeit, zu verbessern.
Gerade diese Qualitätsattribute stehen jedoch häufig gegenseitig oder mit anderen Qualitätsattributen, wie z.B. Performance, in Konflikt oder beeinflussen sich gegenseitig.
Gleichzeitig sind diese allerdings schwierig quantifizierbar, weil Funktionen zur quantitativen Evaluation dieser Qualitätsattribute häufig nicht ausreichend wissenschaftlich erforscht sind, wie beispielsweise für das Qualitätsattribut Sicherheit.
Die Evaluation selbst kann auch einen zu großen zeitlichen und finanziellen Aufwand erfordern, wie dies beispielsweise bei Nutzerstudien zur Evaluation der Bedienbarkeit der Fall wäre.
In der Praxis werden entsprechend schwierig quantifizierbare Qualitätsanforderungen nicht oder nur unzureichend systematisch in der Planung des Software-Systems berücksichtigt.
Zur Analyse von Entwurfsalternativen können Software-Modelle genutzt werden, um möglichst früh im Software-Entwicklungs\-prozess die zu erwartende Qualität zu analysieren und zu evaluieren.
Möchten Software-Architekten die Auswirkungen auf die Qualitätsattribute ihrer Software-Architektur durch die Verwendung von Features realisiert durch komplexe Subsysteme evaluieren, müssen, durch eine Vielzahl an Kombinationen und Konfigurationen, schnell sehr viele Architekturkandidaten evaluiert werden.
In der Praxis können, durch natürlich gegebene Freiheitsgrade komponentenbasierter Software-Architekturen, schnell mehrere tausend Architekturkandidaten entstehen.
Eine einzelne und manuelle Evaluation einer solch großen Anzahl an Kandidaten ist durch die damit entstehenden Zeit- und somit Kostenaufwände meist nicht möglich.
Neben einer Vielzahl an zu evaluierenden Architekturkandidaten können, aufgrund fehlender quantitativer Evaluationsfunktionen, viele Qualitätsattribute nicht in bestehenden automatischen Entscheidungsunterstützungsverfahren berücksichtigt werden.
Dadurch zeichnet sich entsprechend ein unvollständiges Bild bei der Suche nach den optimalen Architekturkandidaten.
Der in dieser Dissertation vorgestellte Ansatz CompARE ermöglicht Software-Architekten, Effekte auf die Qualitätsattribute einer Software-Architektur, die durch die Verwendung von Features entstehen, automatisch zu evaluieren.
Auch die Optimierung von Qualitätsanforderungen ohne quantitative Evaluationsfunktion wird unterstützt, indem bestehendes informell vorliegendes Wissen über Architekturentscheidungen modelliert und dadurch zusammen mit bestehenden quantitativen Evaluationsfunktionen optimiert wird.
Das Ergebnis soll Software-Architekten dabei unterstützen, zu entscheiden, i) inwiefern die Verwendung von bestimmten Features auf Qualitätsattribute Auswirkungen hat und welche Wechselwirkungen untereinander zu erwarten sind, ii) welches der möglichen Subsysteme und seiner Konfiguration die beste Wahl darstellt und iii) ob die gegebenen technischen Umsetzungen mit den Projektanforderungen vereinbart werden können.
Daraus ergeben sich folgende Beiträge der Arbeit:
Zunächst wird eine Vorstudie vorgestellt, die den Aufwand der Erstellung von quantitativen Evaluationsfunktionen, am Beispiel des Qualitätsattributs Sicherheit in komponentenbasierten Software-Architekturen, zeigt.
Die Modellierung von wiederverwendbaren Subsystemen zur Verwendung in automatischen Entscheidungsunterstützungsprozessen stellt den ersten Beitrag des CompARE Ansatzes dar.
Es wird ein Meta-Modell entworfen, das die Modellierung von Subsystemen zur einfachen Wiederverwendung unterstützt und dadurch zur automatischen Modellintegration verwendbar macht.
Die automatische Modellintegration von Teilmodellen ist der nächste Beitrag der Arbeit.
Hierbei werden Teilmodelle automatisch integriert, so dass diese automatisch evaluiert und optimiert werden können.
Durch diese Methode können Software-Architekten Features mit vergleichsweise geringem Modellierungsaufwand automatisiert in die Zielarchitektur einbauen.
Schließlich zeigt die Arbeit wie informelles Wissen modelliert werden kann, um es gemeinsam mit quantitativen Funktionen zur Bestimmung von Qualitätseigenschaften zu analysieren und zu evaluieren.
Die Evaluation wird anhand zweier Klassen von Subsystemen mit jeweils zwei unterschiedlich modellierten Lösungen durchgeführt.
Jede Lösung bietet verschiedene Features.
Dabei hält jede Lösung seine eigene Software-Architektur und beeinflusst dadurch individuell die Qualitätsattribute der Zielarchitektur, in der das Subsystem zum Einsatz gebracht werden wird.
Die Wiederverwendung der Subsysteme und die aus dem vorgestellten Ansatz resultierende Architekturoptimierung wird anhand dreier Zielsysteme durchgeführt.
Bei diesen Zielsystemen handelt es sich um zwei Realweltsysteme, die in der Industrie zur Anwendung kommen und um eine Community Fallstudie, die in der Community der komponentenbasierten Software-Architekturmodellierung als repräsentativ gilt.
Anhand dieser Systeme werden insgesamt 11 Szenarien durchgeführt, die die Analyse relevanter Fragestellungen zu den Themen Software-Architekturentwurf, Entscheidungen mit Bezug auf Software-Qualitätsattribute und Software-Anforderungspriorisierung durch einen strukturierten Prozess analysierbar machen.
Dabei wird die Anwendbarkeit und der Nutzen von CompARE gezeigt und die aus den Ergebnissen ableitbaren Schlussfolgerungen diskutiert.
Abstract (englisch):
In modern software development processes, existing components or libraries are increasingly being used for the implementation of standard functionalities.
Functionalities that can be widely used in different systems do not have to be re-developed from scratch.
Reuse of functionalities through software components or even complex partial systems, i.e. subsystems, leads to efficient development and higher-quality software.
Due to a multitude of similar solutions for the same functionality, however, software architects often have to decide which solutions they should select and how the configuration in the architecture to be designed best fits the requirements of the whole software system.
... mehr
Subsystems often provide a multitude of higher level functions, i.e. the software features that lead to unclear effects on the quality attributes (e.g. performance) of the target software architecture.
Particularly at design time or when new functionality is required, it is unclear whether the quality requirements of the overall system can be met by using a certain feature.
Quality requirements are often operationalized by functions aiming at improving quality.
Such operationalized requirements usually have the goal of improving one or more quality attributes, such as security or usability.
These quality attributes, however, are often in conflict or influence each other, such as performance and security.
At the same time, however, some of these quality attributes are difficult to quantify because suitable functions are often not sufficiently scientifically researched, e.g. security.
For others, the evaluation would be too time-consuming or costly, such as for usability user studies.
In practice, quality requirements that are difficult to quantify are often neglected or only insufficiently systematically taken into account in the planning of the software system.
Software models can be used to weigh design alternatives at an early stage of the software design process in order to analyse and evaluate the expected quality properties in the software development process.
When software architects want to evaluate the effects on the quality attributes of their software architecture due to the use of complex subsystems, many architecture candidates must be evaluated.
Through a multitude of combinations and configurations in practice, several thousand architecture candidates have to be evaluated, due to naturally given degrees of freedom in component-based software architectures.
A single evaluation of such an amount of candidates is usually not possible due to time and cost constraints.
Thus, reusing complex subsystems during software architecture design requires automatic decision support to optimize the quality attributes of the software architecture.
In addition, many quality attributes cannot be taken into account in existing automatic decision support processes due to missing quantitative evaluation functions.
Thus, by the use of existing approaches questions on quality attributes without quantitative evaluation functions cannot be meaningfully studied.
The approach presented in this dissertation, CompARE, enables software architects to automatically evaluate effects on the quality attributes of a software architecture resulting from the reuse of models.
The approach supports optimization of quality attributes without a quantitative evaluation function by modelling existing informal knowledge by using a qualitative representation.
This knowledge can then be used to optimize software architectures together with existing quantitative evaluation functions.
Such a method helps software architects to decide i) whether the use of certain features justifies the effects on quality attributes and which interactions are to be expected, ii) which of the possible subsystems and its configuration represents the best choice and iii) whether the given technical implementations fulfils the project requirements.
This dissertation presents the following contributions:
First, we present a preliminary study that shows how to develop a quantitative evaluation functions using the example of the quality attribute security in component-based software architectures and discuss required effort.
Second, we design a meta model that enables to model subsystems for later reuse.
Further, this can be used for automatic model integration.
Software architects can then integrate models of subsystems automatically so that they can be evaluated and optimized automatically.
Using this method, software architects can automatically reuse desired features in various target architecture models with comparatively low modelling effort.
Finally, we show how informal knowledge can be modelled to be analysed and evaluated together with quantitative evaluation functions.
The evaluation is carried out on the basis of two classes of subsystems, each with two different concrete solutions.
Each solution provides its own set of features.
Further, each solution has its own software architecture and thus influences the quality attributes of the target architecture in which the subsystem will be used.
We reuse the subsystems in three target systems to show how architecture design decisions can be optimized by the use of CompARE.
Two of the target models represent real-world systems that are used in industry, while the other is a community case study that is considered representative in the component-based software architecture modelling community.
On the basis of these systems, 11 scenarios are used to demonstrate the analysis of relevant questions regarding software architecture design, decisions on software quality attributes, and software requirement prioritization through a structured process.
The evaluation shows the applicability and benefits of CompARE and discusses conclusions to be drawn from the results.