Viele kleine Softwarekomponenten ergeben eine Anwendung: Neue Methoden sollen Nebeneffekte von Änderungen leichter erkennbar machen
Große Softwareanwendungen, die alle Funktionen in einem Guss anbieten, sind seltener geworden. Stattdessen gibt es immer häufiger Anwendungen, die aus kleineren Komponenten bestehen und Microservices genannt werden. In einem neuen Projekt arbeiten nun Forscher an einer besseren Erkennung von unerwünschten Nebeneffekten, die durch Änderungen in einzelnen Microservices verursacht werden.
In den letzten zwei Jahrzehnten haben sich Microservices als neuer Architekturstil für die Entwicklung von Softwareanwendungen ergeben, die aus einer Reihe lose gekoppelter und wiederverwendbarer Softwarekomponenten bestehen. Microservices kommen zum Beispiel bei Online-Shop-Anwendungen zum Einsatz, wobei jeder Microservice eine bestimmte Funktionalität bereitstellt. So bietet ein Microservice die Funktionalität für einen Einkaufswagen, während ein anderer Microservice die Funktionalität für die Bezahlung bereitstellt. Dies steht im Gegensatz zu monolithischen Softwareanwendungen, bei denen alle Services in einer einzigen Komponente implementiert würden. Die größten Vorteile von Microservices sind, dass sie unabhängig voneinander entwickelt, getestet, bereitgestellt und wiederverwendet werden können. „Obwohl Microservices in hohem Maße unabhängig voneinander sind, besteht ein gewisses Maß an Kopplung zwischen ihnen. Das bedeutet auch, dass Änderungen eines Microservices unerwartete Nebeneffekte in anderen Microservices verursachen können. Folglich funktionieren die betroffenen Microservices möglicherweise nicht mehr wie erwartet, was für die Benutzer:innen des Microservice sehr unbefriedigend sein kann“, erklärt Martin Pinzger, Professor am Institut für Informatik-Systeme, der das neue Projekt leitet. Daher ergreifen Softwareentwickler:innen verschiedene Qualitätssicherungsmaßnahmen, um potenzielle Nebeneffekte ihrer Änderungen zu ermitteln und Fehler zu vermeiden. Bestehende Qualitätssicherungsmethoden und -tools sind jedoch ungenau und daher müssen potenzielle Nebeneffekte manuell analysiert werden. Das ist nicht nur zeitaufwändig, sondern auch fehleranfällig.
Ziel des Forschungsprojekts mit dem Titel „Semantic Change Impact Analysis“ ist es, neuartige Methoden und Techniken zu erforschen, die es Softwareentwickler:innen ermöglichen, die Nebeneffekte von Änderungen in einem Microservice genau zu bestimmen und zu verstehen. Die Bestimmung möglicher Nebeneffekte ist eine Herausforderung und in der Regel selbst für kleine Programme nicht einfach berechenbar, da die Anzahl der möglichen Auswirkungen sehr schnell ins Unendliche geht. Martin Pinzger erklärt weiter: „Um diese Herausforderung zu bewältigen, werden wir verschiedene Ansätze zur Abstraktion von Programmen und zur Interpretation der Auswirkungen von einzelnen Änderungen untersuchen. Danach werden wir mit unterschiedlichen Visualisierungstechniken experimentieren, die Softwareentwickler:innen helfen sollen, die Auswirkungen schneller und genauer zu verstehen.“ Darüber hinaus wird das Forschungsteam Techniken zur gezielten Auswahl von Testfällen untersuchen, welche die Informationen über eine Änderung und deren Auswirkungen verwenden, um den Testaufwand zu reduzieren. Die Forscher:innen werden ihre Methoden und Techniken in mehreren Prototypen implementieren, um sie in Experimenten und Nutzerstudien mit Open-Source-Systemen sowie Systemen und Entwickler:innen der Industriepartner zu evaluieren. Alle im Rahmen dieses Projekts erstellten Prototypen werden als Open Source öffentlich zugänglich gemacht. Das Projekt wird vom Österreichischen Wissenschaftsfonds FWF gefördert.