Tool Support for Architectural Decision Making in Large Software Intensive Projects
Total Page:16
File Type:pdf, Size:1020Kb
TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Informatik XIX Tool support for architectural decision making in large software intensive projects Manoj Mahabaleshwar Vollständiger Abdruck der von der Fakultät für Informatik der Technischen Universität München zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigten Dissertation. Vorsitzender: Univ.-Prof. Dr. Alexander Pretschner Prüfer der Dissertation: 1. Univ.-Prof. Dr. Florian Matthes 2. Univ.-Prof. Dr. Bernd Brügge Die Dissertation wurde am 31.10.2019 bei der Technischen Universität München eingereicht und durch die Fakultät für Informatik am 08.03.2020 angenommen. II Zusammenfassung Während des letztens Jahrzehnts hat sich ein Paradigmenwechsel vollzogen, in der Weise, in der Wissenschaftler und Praktiker Softwarearchitekturen betrachten. Eine Softwarearchitektur wird heutzutage nicht nur als Blaupause gesehen, sondern als eine Menge von Designentscheidungen, die zur Blaupause des zugrundeliegenden Softwaresystems führen. Architekten und Entwick- ler treffen regelmäßig Designentscheidungen, die zum Beispiel die Wahl eines Architekturstils, eines Entwurfsmusters und der zugrundeliegenden IT-Infrastruktur betreffen. Die Dokumen- tation solcher Entscheidungen hilft, in großen Projekten, Fragen zu beantworten wie: „Welche Designentscheidungen wurden bereits getroffen?”, „Welche Architekturelemente und Qualität- sattribute werden von einer Entscheidung beeinflusst?”, „Wer sollte in eine neue Entscheidung involviert sein?”, „Welche ähnlichen Entscheidungen wurden in der Vergangenheit getroffen?” und „Welche Alternativen sollten beim Treffen einer Entscheidung berücksichtigt werden?”. Obwohl zahlreiche Tools zum Architektur-Wissensmanagement (architectural knowledge man- agement, AKM) das Dokumentieren von Designentscheidungen unterstützen, beobachten wir, dass diese Entscheidungen in der Praxis selten dokumentiert werden. Die Gründe warum De- signentscheidungen nicht explizit dokumentiert werden sind zahlreich. Diese umfassen, ohne darauf beschränkt zu sein, die fehlende Integration von AKM Tools in der Software Engineer- ing Praxis. Darüber hinaus werden solche AKM Tools als störend wahrgenommen, da sie den Architekten dazu zwingen, Designentscheidungen manuell zu dokumentieren, was umständlich und teuer ist. Im Gegensatz zu traditionellen AKM Tools, die einen Top-Down-Ansatz verfolgen, schlagen wir einen Bottom-Up-Ansatz für das Kuratieren und die Wiederverwendung von Architekturwissen vor. Im Bottom-Up-Ansatz werden Architekturentscheidungen automatisch aus verschiedenen Systemen abgerufen und mit öffentlich verfügbaren Wissensquellen erweitert. Spezifisch umDe- signentscheidungen die in der Vergangenheit getroffen wurden zu verstehen und um Architekten beim Treffen zukünftiger Entscheidungen zu unterstützen, präsentieren wir die Umsetzung eines Amelie - Decision Explorer (ADeX) genannten Frameworks. Die Komponenten innerhalb des Frameworks rufen zunächst projektbezogene Informationen von verschiedenen Systemen ab und identifizieren dann automatisch Designentscheidungen innerhalb der Projektdaten unter Ver- wendung von Techniken des maschinellen Lernens. Im nächsten Schritt annotiert ADeX, mit Hilfe von Natural Language Processing, Architek- turelemente und Qualitätsattribute, die von den extrahierten Entscheidungen beeinflusst wer- den. Unter Verwendung der Annotationen aus dem vorherigen Schritt quantifiziert ADeX die Architektur-Expertise von Individuen, um Experten für die Lösung neuer Designprobleme zu empfehlen. Schließlich schlägt ADeX, unter Verwendung eines Ontologie-basierten Ansatzes, Al- ternativen vor, die beim Treffen von Architekturentscheidungen (architectural decision-making, ADM) berücksichtigt werden können. Basierend auf den Ergebnissen dieser Schritte werden verschiedene Standpunkte generiert, um Architekten bei der Beantwortung der zuvor genannten Fragen im ADM-Prozess zu unterstützen. III IV Die qualitative Evaluation von ADeX zeigt, dass es den benötigten Aufwand zur Pflege von Ar- chitekturwissen reduziert und Stakeholdern einen Rückblick auf Designentscheidungen in großen Softwareprojekten ermöglicht. Darüber hinaus wurden die Komponenten innerhalb des Frame- works quantitativ evaluiert, hierfür wurden Datensätze aus Open-Source- und Industrieprojek- ten verwendet. Basierend auf diesen Datensätzen fanden wir heraus, dass Entscheidungen mit einer Genauigkeit von 91% automatisch aus Issues extrahiert werden können, Architekturele- mente können mit einer Genauigkeit von 84% annotiert werden und Experten können mit einer Genauigkeit von 79% empfohlen werden um neue Designprobleme zu adressieren. Außerdem wird ADeX, das während der letzten vier Jahre realisiert wurde, aktuell im Rahmen einer AI4AM genannten Initiative von unserem Industrie-Partner verwendet, um seine Vorteile für die Geschäftsbereiche hervorzuheben. Ein solches Setup bietet uns die nötige Plattform um verwandte Herausforderungen im ADM zu untersuchen, inklusive der Aspekte Bias und Unsicherheiten beim Treffen von Entscheidungen. V VI Abstract Over the last decade, there has been a paradigm shift in the way researchers and practitioners view software architectures. Today, a software architecture is not only seen as a blueprint but instead is considered as a set of design decisions that leads to the blueprint of the underly- ing software system. Architects and developers regularly make design decisions, for instance, concerning the selection of an architectural style, design pattern, and also the underlying IT infrastructure. Documenting such decisions especially in large projects is beneficial to answer questions such as “What design decisions have already been made?”, “Which architectural ele- ments and quality attributes are affected by a decision?”, “Who should be involved in making a new decision?”, “Which similar decisions have been made in the past?”, and “What are the alternatives to consider while making a design decision?”. Even though many of the architectural knowledge management (AKM) tools provide means to capture design decisions, we observe that, in practice, those decisions are rarely documented. The reasons for not explicitly capturing design decisions are manifold. These include, but not limited to, the lack of integration of AKM tools in software engineering practice. Second, these AKM tools are considered intrusive since they require architects to manually document decisions which can be tedious and expensive. Contrary to the traditional AKM tools that follow a top-down approach, we propose a bottom-up approach for AK curation and reuse thereof. In the bottom-up approach, design decisions are automatically retrieved from various systems as well as annotated with publicly available knowl- edge sources. Specifically for understanding design decisions made in the past and for supporting architects in making future decisions, we present the realization of a framework called Amelie - Decision eXplorer (ADeX). The components within the framework first retrieve project-related information from disparate systems and then, automatically identify design decisions within project’s data using machine-learning techniques. Next, by using natural language process- ing, ADeX annotates architectural elements and quality attributes affected by the extracted decisions. Using the annotations from the previous step, ADeX quantifies the architectural ex- pertise of individuals to recommend experts for addressing new design concerns. And finally, using an ontology-based approach, ADeX suggests alternatives that can be considered during architectural decision-making (ADM). Based on the results of these steps, various viewpoints are generated to support architects answer the aforementioned questions during the ADM process. The qualitative evaluation of ADeX shows that it reduces the effort required for maintaining AK and provides stakeholders with a retrospective view of design decisions in large software projects. Furthermore, the components within the framework have been quantitatively evaluated using datasets both from open-source and industrial projects. Based on those datasets, we found that decisions can be automatically extracted from issues with an accuracy of 91%, architectural elements can be annotated with an accuracy of 84%, and with an accuracy of 79% experts can be recommended to address new design concerns. Finally, ADeX, which has been realized over the last four years is currently being used by our industry partner to highlight its benefits to the business units under an initiative called AI4AM. Such a setup provides us the necessary platform to further investigate related challenges of ADM including the aspects of biases and uncertainties in decision making. VII VIII Acknowledgment For writing this acknowledgment section, when I reflect on how my journey began at the Soft- ware Engineering for Business Information Systems (sebis) Chair, it is hard to believe that I have been associated with the sebis chair for almost seven years now; first, as a master’s student and then, as a PhD candidate. My first interaction with Prof. Dr. Florian Matthes in2012, when I approached him for a working student position remains vivid in my memory. His en- thusiasm during the discussions, openness, and encouragement for new ideas as well as playing the devil’s advocate to challenge my train of thoughts have remained consistent over the years. For providing me the opportunity and the environment to grow as a researcher, for supervising my dissertation,