AutoArx : Digital Architecture Twins of Living Software Systems
Software systems are ever evolving and increasingly more sophisticated. As software systems evolve, the importance of the software architecture to manage the complexity increases. To maintain and develop a software system, stakeholders need an up-to-date description of the software architecture, thus requiring constant updates to the architecture description. However, updating the architecture description is often a manual process, resulting in the maintenance of the architecture description often being neglected due to time and budget constraints. To assist with updating the architecture description, architecture recovery methods support stakeholders in recovering architecture information about a software system. Automating the update process for architecture information and architecture recovery methods allows to have up-to-date architecture information about a software system, helps with decision-making and frees up resources needed in designing and building future software systems, thereby shaping the system landscape.
Yet, there are still open challenges when automating the process of recovering and providing architecture information. The first challenge is the selection and automation of architecture recovery methods to recover architecture information from different data sources. Automating this process results in less manual work and better information quality. The second challenge is the automatic integration of architecture recovery outputs into one cohesive result, enabling a better overview and allowing for different perspectives on the analyzed software system. The third challenge is concerned with the accessibility of the recovered and integrated architecture information, providing stakeholders easier access to the integrated architecture information. The fourth challenge to consider is the evolution of the software system. Whenever the software system changes, the architecture information and description about the software system must change as well.
To provide a solution for the open challenges, we propose the development of a Digital Architecture Twin, which supports different use cases like tailoring architecture information to stakeholder needs, identifying and analyzing evolved components of the software system, and recommending architecture designs to support future architectural design decisions. The Digital Architecture Twin enables continuous architecture recovery allowing to reflect the current architecture and evolution of the software system. We propose the AutoArx framework to automatically extract architecture information of software systems by recovering architecture information from various architecture data sources. We integrate the recovered architecture information into the Digital Architecture Twin using a Architecture Information Integration process. To use the recovered architecture information in the Digital Architecture Twin, we provide an Architecture Information Query Language, which facilitates the use cases of the Digital Architecture Twin. To represent the evolution of a software system, we extend the AutoArx framework to recover the architecture information at different points in time, i.e., whenever the software system changes. Our approach allows to continuously recover and integrate architecture information into the Digital Architecture Twin automatically, which creates different perspectives on the software system and improves the availability of information about the software architecture.
Softwaresysteme entwickeln sich ständig weiter und werden zunehmend komplexer. Mit der Weiterentwicklung von Softwaresystemen wächst auch die Komplexität der Systeme und damit einhergehend auch die Bedeutung der Architektur eines Softwaresystems, um diese Komplexität zu managen. Um ein Softwaresystem zu warten und weiterzuentwickeln, benötigen Stakeholder eine aktuelle Beschreibung und Dokumentation der Architektur eines Softwaresystems. Aktualisierungen sind daher verpflichtend, um eine aktuelle Architekturbeschreibung zu erhalten. Allerdings ist das Aktualisieren der Architekturbeschreibung oft ein manueller Prozess, weshalb die Aktualisierung der Architekturbeschreibung aufgrund von Zeit- und Budgetbeschränkungen oft vernachlässigt wird. Um Stakeholder bei der Aktualisierung der Architekturbeschreibung zu unterstützen, wurden “Architecture-Recovery”-Methoden entwickelt. Diese “Architecture-Recovery”-Methoden verwenden Techniken, um Architekturinformationen eines Softwaresystems zu extrahieren. Die Automatisierung dieses Aktualisierungs- und Recoveryprozesses für Architekturinformationen erleichtert die Arbeit, um Architekturbeschreibungen aktuell zu halten und verschafft so Freiräume, die benötigt werden, um das Design zukünftiger Softwaresysteme zu planen.
Hinsichtlich der Automatisierung der “Architecture-Recovery”-Methoden existieren offene Herausforderungen: Die erste Herausforderung ist die Auswahl und Automatisierung von “Architecture-Recovery”-Methoden, um Architekturinformationen aus verschiedenen Datenquellen wiederherzustellen. Die Automatisierung dieses Prozesses führt zu weniger manueller Arbeit. Die zweite Herausforderung ist die automatische Integration der Ergebnisse der “Architecture-Recovery”-Methoden in ein kohärentes Gesamtergebnis, das einen besseren Überblick ermöglicht und verschiedene Perspektiven auf das analysierte Softwaresystem zulässt. Die dritte Herausforderung betrifft die Zugänglichkeit der integrierten Architekturinformationen und bietet Stakeholdern einen einfacheren Zugang zu den integrierten Architekturinformationen. Die vierte Herausforderung betrifft die Evolution eines Softwaresystems. Immer wenn sich das Softwaresystem ändert, müssen sich auch die Architekturinformationen und die Beschreibung des Softwaresystems ändern.
Umeine Lösung für die offenenHerausforderungen zu bieten, schlagen wir die Entwicklung und Nutzung eines “Digital Architecture Twins” vor, der verschiedene Anwendungsfälle, wie maßgeschneiderte Architekturinformation, die Identifizierung und Analyse von weiterentwickelten Komponenten und ein Empfehlungssystem zur Unterstützung zukünftiger Architekturentscheidungen, unterstützt. Der “Digital Architecture Twin” befasst sich somit mit dem kontinuierlichen Prozess Architekturinformationen, die die aktuelle Architektur und Evolution des Softwaresystems widerzuspiegeln, zu erlangen. Zusätzlich stellen wir das “AutoArx”-Framework vor, mit dessen Hilfe wir automatisch Architekturinformationen von Softwaresystemen extrahieren, indem wir “Architecture-Recovery”-Methoden auf verschiedene Architekturdatenquellen anwenden. Innerhalb des “AutoArx”-Frameworks stellen wir unser Architekturinformationsintegration bereit, welche automatisch extrahierte Architekturinformationen in den “Digital Architecture Twin” integriert. Um die wiederhergestellten Architekturinformationen im “Digital Architecture Twin” zu verwenden, haben wir eine Architekturinformationsabfragesprache entwickelt, die die verschiedenen Anwendungsfälle des “Digital Architecture Twin” unterstützt. Um die Evolution eines Softwaresystems darzustellen, erweitern wir das “AutoArx”-Framework und führen die “Architecture-Recovery”-Methoden zu verschiedenen Zeitpunkten, d.h. bei Änderungen des Softwaresystems, aus. Dies ermöglicht einen kontinuierlichen Ansatz einen digitalen Architekturzwilling zu erstellen, welcher wiederum verschiedene Sichten auf ein Softwaresystem ermöglicht und so die Bereitstellung von Architekturinformationen verbessert.
Preview
Cite
Access Statistic
