6 research outputs found
Analyse von Entwurfsentscheidungen in natürlichsprachiger Softwarearchitekturdokumentation
Entwurfsentscheidungen bilden das Fundament zur Entwicklung qualitativ hochwertiger Softwaresysteme. Ihre Extraktion aus und Klassifikation in natürlichsprachiger Softwaredokumentation ermöglichen die Informationsgewinnung für Implementierungsund Wartungsprozesse und die Erstellung konsistenter Dokumentationsartefakte. Das in dieser Arbeit entwickelte Klassifikationsschema für Entwurfsentscheidungen erweitert bestehende Ansätze, die zwar in der Lage sind, Entwurfsentscheidungen in ihrer Breite zu klassifizieren, jedoch keine klar umrissenen Klassen für die Klassifikation in der hierarchischen Tiefe festlegen. Die hier entwickelten Klassen versuchen, die verschiedenen Arten von Entwurfsentscheidungen vollständig abzubilden. Die dazwischenliegenden, feingranulareren Trennlinien dienen dazu, die Entwurfsentscheidungen deutlicher voneinander abzugrenzen. Nachdem zunächst ein initiales Klassifikationsschema entworfen wird, wird in einem iterativen Prozess die Passform des Klassifikationsschemas durch die Anwendung auf die reale Softwarearchitekturdokumentation von 17 Fallstudien validiert und verbessert, bis hin zur Konvergenz auf ein ausgereiftes Schema. Neben einer Übersicht, welche Entwurfsentscheidungen getroffen und dokumentiert werden, liefert die manuelle Analyse der Fallstudien einen mit Labeln versehenen Textkorpus. In einem zweiten Teil wird eine Anwendungsmöglichkeit des entwickelten Klassifikationsschemas eröffnet, indem in einer Proof-of-Concept-Implementierung untersucht wird, mit welchen Ansätzen des maschinellen Lernens und der natürlichen Sprachverarbeitung Entwurfsentscheidungen in natürlichsprachiger Softwarearchitekturdokumentation identifiziert und klassifiziert werden können. Durch die Evaluation mit statistischen Maßen wird gezeigt, welche Methoden zur Textvorverarbeitung, zur Überführung in Vektorrepräsentationen und welche Lernalgorithmen besonders für diese Klassifikation geeignet sind. Die automatisierte Rückgewinnung von Entwurfsentscheidungen aus der Dokumentation und gleichzeitige Zuordnung zu Kategorien mit gemeinsamen Eigenschaften erleichtert Aspekte im Softwareentwicklungsprozess wie Verständlichkeit, Konsistenz und Wartbarkeit
A Taxonomy for Design Decisions in Software Architecture Documentation
A software system is the result of all design decisions that were made during development and maintenance. Documentation, such as software architecture documentation, captures a variety of different design decisions. Classifying the kinds of design decisions facilitates various downstream tasks by enabling more targeted analyses. In this paper, we propose a taxonomy for design decisions in software architecture documentation to primarily support consistency checking. Existing taxonomies about design decisions have different purposes and do not fit well because they are too coarse. We take an iterative approach, starting with an initial taxonomy based on literature and considerations regarding consistency checking. Then, we mine open-source repositories to extract 17 software architecture documentations that we use to refine the taxonomy. We evaluate the resulting taxonomy with regard to purpose, structure, and application. Additionally, we explore the automatic identification and classification of design decisions in software architecture documentation according to the taxonomy. We apply different machine learning techniques, such as Logistic Regression, Decision Trees, Random Forests, and BERT to the 17 software architecture documentations. The evaluation yields a F1-score of up to 92.1% for identifying design decisions and a F1-score of up to 55.2% for the classification of the kind of design decision