Abstract:
Einleitung
Softwarearchitektur ist ein kritisches Element der Softwaretechnik. Sie beeinflusst die Entwicklung, Wartung und Weiterentwicklung von Softwaresystemen und trägt wesentlich zu ihrem Erfolg bei. Wissen über die Architektur und die zugrunde liegenden Architekturellen Entwurfsentscheidungen (ADDs) kann dazu beitragen, eine gute Architektur weiter zu verbessern und eine schnelle Alterung und Erosion der Software zu verhindern. ADDs spielen eine entscheidende Rolle bei der Gestaltung von Systemarchitekturen, doch bestehende Taxonomien und Rahmenwerke zur Kategorisierung dieser Entscheidungen sind oft grobgranular, was detaillierte Analysen erschwert. ... mehrArchitekturelles Wissen und ADDs werden häufig in der Softwarearchitekturdokumentation (SAD) festgehalten, die unterschiedliche Formen annehmen kann. Eine gängige Form ist informeller Text in natürlicher Sprache, da diese Form der Kommunikation allen leicht zugänglich ist. Eine andere Form sind Softwarearchitekturmodelle (SAMs), die formale Ansätze wie UML-Komponentendiagramme oder das Palladio-Komponentenmodell nutzen. Neben der Kommunikation können diese Modelle auch zur Bewertung von Qualitätsmerkmalen wie Antwortzeiten in der Entwurfsphase verwendet werden. Architekt:innen müssen Informationen aus diesen unterschiedlichen Artefakten kombinieren, um ein umfassendes Verständnis zu erlangen und die komplexen Zusammenhänge zwischen ihnen zu verwalten. Verfolgbarkeitsverbindungen machen die Beziehungen zwischen den Artefakten explizit, verbessern die Softwarequalität und erleichtern Aktivitäten wie Auswirkungsanalyse, Änderungsmanagement, Wartung und Weiterentwicklung. Daher ist Software-Verfolgbarkeit eine Schlüsselkompetenz für die erfolgreiche Entwicklung von Software. Die Wiederherstellung von Verfolgbarkeitsverbindungen (Traceability Link Recovery, TLR) ist der Prozess, der es Softwareingenieur:innen ermöglicht, diese Verfolgbarkeitsverbindungen zwischen eindeutig identifizierbaren Entitäten in Softwareartefakten zu erstellen. Die manuelle Erstellung und Pflege dieser Verbindungen ist jedoch zeitaufwendig und fehleranfällig. Eine Automatisierung des TLR kann dessen Durchführbarkeit und Wirtschaftlichkeit erheblich steigern. Allerdings wurden bisher keine Ansätze für TLR in der Softwarearchitektur untersucht, die SADs und SAMs miteinander verbinden. Eine konkrete Anwendung von Verfolgbarkeitsverbindungen in der Softwarearchitektur ist die Erkennung von Inkonsistenzen (Inconsistency Detection, ID) zwischen Artefakten. Während nicht alle Inkonsistenzen von Natur aus problematisch sind, können unbekannte und ungeklärte Inkonsistenzen das Projektverständnis beeinträchtigen und die Vorteile dieser Artefakte negieren. Zwei Formen von Inkonsistenzen zwischen SADs und SAMs sind Undokumentierte Modellelemente (Undocumented Model Elements, UMEs) und Fehlende Modellelemente (Missing Model Elements, MMEs). UMEs sind Elemente, die im SAM vorhanden, aber nicht im SAD dokumentiert sind. MMEs sind architekturell relevante Entitäten im SAD, die nicht im SAM modelliert sind.
Beiträge
In dieser Dissertation untersuche ich zunächst ADDs in SADs und entwickle eine feingranulare Taxonomie. Mithilfe dieser Taxonomie präsentiere ich einen Ansatz zur automatisierten Klassifikation von ADDs. Anschließend schlage ich verschiedene Ansätze zur Automatisierung von TLR zwischen den verschiedenen Softwareartefakten SADs, SAMs und Code vor. Zunächst stelle ich den Ansatz ArDoCo für TLR zwischen SAD und SAM vor, der Heuristiken verwendet, um Architekturelemente im SAD zu erkennen und mit den Elementen im SAM zu vergleichen. Anschließend präsentiere ich den heuristikbasierten Ansatz ArCoTL für TLR zwischen SAM und Code, der Heuristiken und Filter in einem Rechenfluss kombiniert. Der dritte TLR-Ansatz, TransArC, überbrückt transitiv die semantische Lücke zwischen SAD und Code, indem er die anderen beiden Ansätze kombiniert. Der letzte Hauptbeitrag konzentriert sich auf die Inkonsistenzerkennung von UMEs und MMEs. Dabei werden die wiederhergestellten Verfolgbarkeitsverbindungen und andere Zwischenergebnisse des TLR genutzt, um Inkonsistenzen zwischen SADs und SAMs zu identifizieren. Zusätzlich untersucht die Dissertation den Einsatz einfacher Ansätze, die auf großen Sprachmodellen (LLMs) basieren und vergleicht deren Leistung mit den anderen Ansätzen.
Ergebnisse
In der Evaluierung der Taxonomie für ADDs argumentiere ich über deren Zweck und Struktur und demonstriere ihre Anwendung in einer Benutzerstudie. Die anschließende Evaluierung der automatisierten Klassifikation von ADDs zeigt gemischte Ergebnisse. Einerseits sind die Ergebnisse vielversprechend und zeigen Verbesserungen gegenüber klassischen Ansätzen mit einem durchschnittlichen F1-Wert von 92 % für die Identifikation von ADDs sowie durchschnittlichen F1-Werten von 55 % für die Multiklassenund 50 % für die Multilabel-Klassifikation der Blattklassen der Taxonomie. Andererseits erfordern diese Ergebnisse erhebliche Verbesserungen für die praktische Anwendung. Die Evaluierungen der TLR-Ansätze nutzen einen Benchmark-Datensatz und vergleichen die Ergebnisse mit anderen Vergleichsansätze. Der Ansatz ArDoCo für TLR zwischen SAD und SAM erzielt einen hervorragenden durchschnittlichen F1-Wert von 82 % mit 87 % Präzision und 82 % Ausbeute. Mit einem um 26 % erhöhten F1-Wert übertrifft ArDoCo die anderen Ansätze signifikant. Der Ansatz übertrifft auch die beste Version des einfachen, auf LLMs basierenden Ansatzes, der einen durchschnittlichen F1-Wert von 64 % erreicht. Der Ansatz ArCoTL für TLR zwischen SAM und Code liefert nahezu perfekte Ergebnisse mit einem durchschnittlichen F1-Wert von 98 % und übertrifft die Vergleichsansätze deutlich. Der transitive Ansatz TransArC für TLR zwischen SAD und Code unter Verwendung von SAMs als Zwischenartefakte erzielt einen durchschnittlichen F1-Wert von 82 % mit 87 % Präzision und 81 % Ausbeute. TransArC übertrifft die Vergleichsansätze signifikant, z. B. um 45 Prozentpunkte im durchschnittlichen F1-Wert gegenüber dem nächstbesten Ansatz. Dies zeigt, dass das Zwischenartefakt hilft, die semantische Lücke zu überbrücken. Die Evaluierung der ID zeigt hervorragende Ergebnisse bei der Erkennung von UMEs mit einem durchschnittlichen F1-Wert von 95 %. Die Ergebnisse für die Identifikation von MMEs sind vielversprechend und erreichen in der besten Konfiguration einen durchschnittlichen F1-Wert von bis zu 49 %, womit sie die Vergleichsansätze deutlich übertreffen. Der einfache, auf LLMs basierende Ansatz liefert gemischte Ergebnisse, die gleichwertig oder schlechter als der heuristikbasierte Ansatz sind. Beispielsweise hilft die Bereitstellung der Verfolgbarkeitsverbindungen aus dem Goldstandard bei der Identifikation von UMEs im gleichen Maße wie beim nicht-LLM Ansatz, reduziert jedoch die Leistung bei MMEs.
Fazit
Insgesamt haben die Evaluierungsergebnisse die Wirksamkeit der vorgeschlagenen Ansätze gezeigt, die zu erheblichen Verbesserungen gegenüber den Vergleichsansätzen führten. Die Ergebnisse unterstreichen das Potenzial von automatisiertem TLR und ID, um die Konsistenz der Softwarearchitektur zu verbessern, die Wartungseffizienz zu erhöhen und eine bessere architekturelle Entscheidungsfindung während des gesamten Softwarelebenszyklus zu unterstützen. Zukünftige Arbeiten sollten darauf abzielen, die Ansätze in verschiedener Hinsicht zu verbessern und zu erweitern. Eine erste Priorität ist die Verbesserung der ID für MMEs durch die Steigerung der Präzision bei der Identifikation architekturell relevanter Entitäten, möglicherweise durch die Integration von LLMs und anderen modernen Verfahren in die heuristikbasierten Methoden. Eine zweite Priorität ist die Weiterentwicklung der automatisierten ADD-Klassifikation. Ein zuverlässiger Klassifikationsansatz kann die automatisierte Auswahl von Ansätzen zur Inkonsistenzprüfung und neue Formen der Inkonsistenzerkennung ermöglichen. Eine dritte Priorität ist die weitere Erforschung transitiver TLR-Ansätze. Künftige Arbeiten sollten die Anwendung transitiver TLR-Ansätze auf zusätzliche Artefakttypen untersuchen und Architektur-Wiederherstellungsmethoden nutzen, um fehlende Zwischenartefakte zu generieren. Diese Richtungen zielen darauf ab, die aktuellen Ansätze zu verfeinern und ihre Anwendbarkeit zu erweitern.
Abstract (englisch):
Introduction
Software architecture is a critical element of software engineering. It influences the development, maintenance, and evolution of software systems and contributes significantly to their success. Knowledge about the architecture and the underlying Architectural Design Decisions (ADDs) can further improve good architecture and prevent fast software aging and erosion. ADDs play a pivotal role in shaping system architectures, yet existing taxonomies and frameworks for categorizing these decisions are often coarse, hindering detailed analyses. Architecture knowledge and ADDs are often documented in Software Architecture Documentation (SAD), which can have different forms. ... mehrA common form is informal natural language text due to its approachable nature for communication. Another form is Software Architecture Models (SAMs), which are formal approaches like UML component diagrams or the Palladio component model. Besides communication, these can also be used to evaluate quality attributes like response times at design time. Architects must combine information from these different kinds of artifacts to gain a comprehensive understanding and manage their complex interrelationships. Trace links make the relationships between artifacts explicit, improving software quality and simplifying various activities such as impact analysis, change management, maintenance, and evolution. Thus software traceability is a key capability for successfully developing software. Traceability Link Recovery (TLR) is the process that allows software engineers to create these trace links between any uniquely identifiable entities in software engineering artifacts. However, manually creating and maintaining these trace links is time-consuming and error-prone. Automating TLR can make TLR viable and economically feasible. However, no approaches looked into TLR for software architecture, linking SADs and SAMs. One concrete application of trace links in software architecture is Inconsistency Detection (ID) between the artifacts. While not all inconsistencies are inherently problematic, unknown and unaddressed ones can affect, e.g., project understanding, negating the benefits of these artifacts. Two forms of inconsistencies between SADs and SAMs are Undocumented Model Elements (UMEs) and Missing Model Elements (MMEs). UMEs are elements that are present in the SAM but not documented in the SAD. MMEs are architecturally relevant entities in the SAD that are not modeled in the SAM.
Contributions
In this dissertation, I first explore ADDs in SADs, creating a fine-grained taxonomy. Using this taxonomy, I present an approach for the automated classification of ADDs. I then propose various approaches for automating Traceability Link Recovery (TLR) between various software artifacts, including SADs, SAMs, and code. First, I present the approach ArDoCo for TLR between SAD and SAM, which uses heuristics to detect architecture entities in SAD and compare them to entities in SAM. Then, I present the heuristic-based approach ArCoTL for TLR between SAM and code that combines heuristics and filters in a computational graph. The third TLR approach, TransArC, transitively bridges the semantic gap between SAD and code by combining the other two approaches. The last major contribution focuses on Inconsistency Detection (ID), specifically addressing UMEs and MMEs. It uses the recovered trace links and other intermediate TLR results to identify inconsistencies between SADs and SAMs. Additionally, the dissertation investigates the application of simple approaches based on large language models (LLMs) and compares their performance to the other approaches.
Results
In the evaluation of the taxonomy for ADDs, I argue about its purpose and structure and demonstrate its application with a user study. The evaluation for the automated classification of ADDs shows mixed results. On the one hand, the results are promising with improvements over classical approaches, achieving an average F1-score of 92% for identifying ADDs and average F1-scores of 55% for multi-class and 50% for multi-label classification of the taxonomy’s leaf-classes. On the other hand, these results require significant improvements for actual application. The evaluations of the TLR approaches use a benchmark dataset and compare the results to baseline approaches. The approach ArDoCo for TLR between SAD and SAM achieves an excellent average F1-score of 82% with 87% precision and 82% recall. With an increased F1-score of 26%, ArDoCo significantly outperforms the other baselines. The approach also outperforms the best version of the simple LLM-based approach that achieves an average F1-score of 64%. The approach ArCoTL for TLR between SAM and code yields near-perfect results with an average F1-score of 98%, significantly outperforming the baseline. The transitive approach TransArC for TLR between SAD and code using SAMs as intermediate artifacts achieves an average F1-score of 82% with 87% precision and 81% recall. TransArC also significantly outperforms the baselines. This demonstrates that the intermediate artifact helps in bridging the semantic gap. The evaluation of the ID shows excellent results for detecting UMEs with an average F1-score of 95%. The results for identifying MMEs are promising, with an average F1-score of up to 49% in the best configuration, significantly outperforming the baseline. The simple LLM-based approach achieves mixed results that are equal or worse than the heuristic-based approach. For example, providing the ground truth trace links helps identify UMEs but reduces performance for MMEs.
Conclusion
Overall, the evaluation results demonstrated the efficacy of the proposed approaches, which resulted in significant improvements over baseline methods. The findings highlight the potential of automated TLR and ID to enhance software architecture consistency, improve maintenance efficiency, and support better architectural decisionmaking throughout the software lifecycle. Future work should focus on improving and extending the approaches in different ways. A first priority is improving ID for MMEs by enhancing precision in identifying architecturally relevant entities, potentially by integrating LLMs into the heuristic-based methods. A second priority is advancing automated ADD classification. A reliable classification approach can enable the automated selection of inconsistency-checking approaches and new forms of inconsistency detection. A third priority is further exploring transitive TLR approaches. Future work should investigate the application of transitive TLR to additional artifact types