Detailansicht
Supporting reusable architectural design decisions
decision making, resolving uncertainty, and establishing consistency
Ioanna Lytra
Art der Arbeit
Dissertation
Universität
Universität Wien
Fakultät
Fakultät für Informatik
Studiumsbezeichnung bzw. Universitätlehrgang (ULG)
Dr.-Studium der technischen Wissenschaften (Dissertationsgebiet: Informatik)
Betreuer*in
Uwe Zdun
DOI
10.25365/thesis.38289
URN
urn:nbn:at:at-ubw:1-29338.16889.136463-1
Link zu u:search
(Print-Exemplar eventuell in Bibliothek verfügbar)
Abstracts
Abstract
(Deutsch)
Jede Softwarearchitektur beinhaltet eine Reihe von Architekturentscheidungen. Die Dokumentation von Architekturentscheidungen erfasst nicht nur die sich daraus ergebenden Designstrukturen, sondern auch die Begründung, die Stärken und Schwächen, sowie die Alternativen zu den ausgewählten Designlösungen. Softwarearchitekten erfassen daher Architekturentscheidungen, um die Begründung und die Implikationen dieser Entscheidungen zu analysieren, zu verstehen, zu teilen und zu kommunizieren. Architekturentscheidungen zu erfassen verhindert folglich potentiellen Verlust von Architekturwissen, ein Phänomen das auch als ``Knowledge Vaporization'' bekannt ist. Die Entwicklung von verschiedenen Tools und Ansätzen für das Treffen und Dokumentieren von Architekturentscheidungen sowie die Einführung von Architekturentscheidungsmethoden in die Industrie in den letzten zehn Jahren belegen das steigende Interesse an der Erfassung und dem Management von Architekturentscheidungen beim Softwaredesign- und Softwareentwicklungsprozess. Manche Arbeiten stellen das Sammeln, Organisieren und das effektive Verwenden von wiederverwendbaren Architekturentscheidungen in den Fokus. Wiederverwendbare Architekturentscheidungen sind zum Beispiel in Form von Architekturentscheidungsmodellen dokumentiert, die das Architekturdesign von Softwareprojekten unterstützen. Diese Doktorarbeit ist durch die Herausforderungen, die in diesem Bereich entstehen, motiviert.
Trotz intensiver Forschung an Tools und Methoden für die Unterstützung von wiederverwendbarem Architekturwissen in der Software Community in letzter Zeit, gibt es immer noch sehr wenige empirische Studien und beschränkte empirische Evidenz über die Effektivität und Effizienz von Softwarearchitekten, die wiederverwendbare Architekturentscheidungen verwenden. Außerdem sind bis jetzt manche Aspekte, die während des Treffens von Architekturentscheidungen berücksichtigt werden müssen, wie zum Beispiel die Verwendung von Qualitätsattributen, die Ungewissheit von Architekturentscheidungen oder die Beziehungen zwischen applikationsgenerischem und applikationsspezifischem Wissen, für wiederverwendbare Architekturentscheidungen wenig untersucht worden. Eine andere Herausforderung, die wir identifiziert haben, bezieht sich auf das Konsistenzmanagement zwischen Architekturentscheidungen und Architekturdesigns, sodass das Treffen und die Dokumentation von Architekturentscheidungen, die auf wiederverwendbarem Wissen basieren, in anderen Softwaredesign-, Softwareentwicklungs- und Softwareevolutionsprozessen integriert werden.
In dieser Doktorarbeit haben wir die Modellierung und die Verwendung von wiederverwendbaren Architekturentscheidungsmodellen in einer Fallstudie in der Industrie sowie in zwei kontrollierten Experimenten beobachtet. Dafür haben wir einen Prototypen entwickelt, um das Treffen und das Dokumentieren von Architekturentscheidungen, die auf wiederverwendbaren Entscheidungsmodellen basieren, zu unterstützen. Für den Zweck der Fallstudie haben wir ein wiederverwendbares Architekturentscheidungsmodell über Service-basierte Plattformintegration entwickelt; dieses Modell wurde danach von Plattformexperten validiert. Diese Experten haben sich auch bei einer Fallstudie über die Integration von heterogenen Plattformen, die im Rahmen eines Softwaresystems für die Kontrolle eines Warehouse funktionieren, beteiligt. Weiters haben wir zwei Experimente mit angehenden Softwarearchitekten durchgeführt. Diese lieferten uns empirische Evidenz, dass die Verwendung von wiederverwendbaren Entscheidungsmodellen sowohl die Effizienz als auch die Effektivität von Softwarearchitekten erhöht.
Wir haben auch eine strukturierte Literaturrecherche über die Verwendung von Qualitätsattributen in Tools und Methoden für Architekturentscheidungen durchgeführt und herausgefunden, dass nur wenige Ansätze das Treffen von Architekturentscheidungen, basierend auf Qualitäten und wiederverwendbarem Architekturwissen, unterstützen. Diese Erkenntnisse haben uns dazu veranlasst, wiederverwendbare Architekturentscheidungsmodelle mit Qualitätsattributen zu erweitern und die Ungewissheit von Qualitätsattributen beim Treffen von Architekturentscheidungen zu untersuchen. Das Ziel war es, wiederverwendbare Architekturentscheidungen zusammen mit Qualitätsattributen besser zu unterstützen. Wir haben diesen Ansatz in einer Fallstudie im Rahmen eines industriellen Projekts über Softwareökosysteme für Smart Cities demonstriert. Einige andere Themen wie die Integration von Variabilitäts- und Architekturentscheidungen sind als Anforderungen im Rahmen der Unterstützung von Architekturentscheidungen im Product Line Engineering entstanden. Unser Ansatz für das Konsistenzmanagement zwischen Architekturentscheidungen und Architekturdesigns und die domänenspezifische Sprache zur Umwandlung wiederverwendbaren Architekturwissens in Designs ist als eine Verbesserung zur aktuellen Praxis der manuellen Verwaltung von Architekturentscheidungen und Architekturdesigns und als ein Schritt in die Richtung der Automatisierung der Integration von wiederverwendbaren Entscheidungen in Softwaredesign- und Softwareevolutionsprozessen zu sehen.
Unsere Methode und entsprechendes Tooling wurden für ihre Effizienz, die Skalierbarkeit, den Modellierungsaufwand und die Wiederverwendbarkeit im Rahmen einer industriellen Fallstudie evaluiert. Zusammenfassend hat diese Doktorarbeit zum besseren Verständnis und der besseren Unterstützung von wiederverwendbaren Architekturentscheidungen - deren Anwendung in der industriellen Praxis in den kommenden Jahren steigen sollte - erheblich beigetragen.
Abstract
(Englisch)
Every software architecture entails a set of architectural decisions. Architectural decision documentations capture not only the resulting design structures but also the justification, the strengths and weaknesses, as well as alternatives for the selected design solutions. Therefore, software architects capture architectural design decisions for analyzing and understanding, as well as sharing and communicating the rationale and implications of these decisions. Capturing architectural decisions, thus, prevents the potential loss of architectural knowledge, a phenomenon known as architectural knowledge vaporization. The development of various tools and approaches for architectural decision making and documentation in the past ten years and the adoption of architectural decision methods by the industry proves the increasing interest in capturing and managing architectural decisions in the software design and development processes. In addition, a few works have set the focus on gathering, organizing, and effectively leveraging reusable architectural decisions. Reusable architectural decisions are documented, for instance, in the form of reusable decision models, in order to provide architectural guidance in software projects. This thesis is inspired by this trend and motivated by the challenges that emerge in this area.
Although the research in tools and methods by the software community for supporting reusable architectural knowledge has increased, there are still very few empirical studies and limited empirical evidence on whether and how the leveraging of reusable architectural decisions may increase the effectiveness and efficiency of software architects. Furthermore, some aspects that need to be considered during decision making including the use of quality attributes, the uncertainty of architectural decisions, the relationships between application-generic and application-specific knowledge, have not been addressed for reusable architectural decisions adequately. Another challenge we identified is related to the inconsistency management between architectural decisions and designs, so that decision making and documentation based on reusable knowledge gets integrated with other software design, development, and evolution processes.
In this thesis, we observed the modeling and leveraging of reusable architectural decision models in an industrial case study and two controlled experiments. For this, we have developed a prototype to support architectural decision making and documentation based on reusable decision models. For the needs of the case study, we created a reusable decision model on service-based platform integration which was afterwards validated by platform experts. These experts also participated in a case study for integrating heterogeneous platforms operating in a software system for controlling a warehouse. The two controlled experiments we conducted with novice architects provided empirical evidence that the use of reusable decision models increases both efficiency and effectiveness of software architects.
In addition, by conducting a literature survey on the use of quality attributes in architectural decision tools and methods, we found out that there is only limited support on quality-driven architectural decision making based on reusable architectural knowledge. This finding led us to introduce an extension of reusable decision models enriched with quality attributes and to consider the uncertainty of quality attributes in decision making, in order to support better reusable decisions entangled with quality attributes. We also demonstrated our proposal in a case study from an industrial project on smart cities software ecosystems.
Some other issues like the integration of variability and architectural decisions have emerged as a need for supporting decision making in product line engineering.
Finally, our proposal for consistency management between architectural decisions and designs and the domain-specific language for transforming reusable architectural knowledge into designs can be seen as an improvement to the current practice of maintaining decisions and designs manually and a step towards automating the integration of reusable decisions in software design and evolution processes. Our proposed method and corresponding tooling have been evaluated regarding the efficiency, scalability, modeling effort and reusability in the context of an industrial case study.
In summary, this thesis has contributed considerably to a better understanding and support for reusable architectural decisions, whose adoption by the industrial practice is expected to increase in the next years.
Schlagwörter
Schlagwörter
(Englisch)
Software Architecture Architectural Design Decision Architectural Knowledge
Schlagwörter
(Deutsch)
Softwarearchitektur Architekturentscheidung
Autor*innen
Ioanna Lytra
Haupttitel (Englisch)
Supporting reusable architectural design decisions
Hauptuntertitel (Englisch)
decision making, resolving uncertainty, and establishing consistency
Paralleltitel (Englisch)
Unterstützung von wiederkehrrenden Architekturentscheidungen ; Entscheidungsfindung, Beseitigung von Unsicherheiten und Herstellung von Konsistenz
Publikationsjahr
2015
Umfangsangabe
XXI, 246 S. : Ill., graph. Darst.
Sprache
Englisch
Beurteiler*innen
Uwe Zdun ,
Matthias Riebisch
Klassifikation
54 Informatik > 54.52 Software engineering
AC Nummer
AC12696751
Utheses ID
33919
Studienkennzahl
UA | 786 | 880 | |
