Semantische Analyse der Auswirkungen von Änderungen
Semantic Change Impact Analysis
Matching Funds - Kärnten
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Change Extraction,
Change Impact Analysis,
Change And Impact Understanding,
Regression Test Selection,
Microservices,
Program Analysis
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 stellt ein Microservice die Funktionalität für einen Einkaufswagen bereit, 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. 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 dieses Forschungsprojekts 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. 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 werden wir Techniken zur gezielten Auswahl von Testfällen untersuchen, welche die Informationen über eine Änderung und deren Auswirkungen verwenden, um den Testaufwand zu reduzieren. Wir werden unsere Methoden und Techniken in mehreren Prototypen implementieren, um sie in Experimenten und Nutzerstudien mit Open-Source-Systemen sowie Systemen und Entwickler*innen unserer Industriepartner zu evaluieren. Alle im Rahmen dieses Projekts erstellten Prototypen werden als Open Source öffentlich zugänglich gemacht.
- Universität Klagenfurt - 100%
- Roland Kersche, Bitmovin GmbH , nationale:r Kooperationspartner:in
- Fabian Beck, Otto-Friedrich Universität Bamberg - Deutschland
- Ali Mesbah, The University of British Columbia - Kanada
Research Output
- 39 Zitationen
- 3 Publikationen
-
2025
Titel AutoGuard: Reporting Breaking Changes of REST APIs from Java Spring Boot Source Code DOI 10.1109/saner64311.2025.00083 Typ Conference Proceeding Abstract Autor Lercher A Seiten 814-818 -
2024
Titel Microservice API Evolution in Practice: A Study on Strategies and Challenges DOI 10.1016/j.jss.2024.112110 Typ Journal Article Autor Lercher A Journal Journal of Systems and Software Seiten 112110 Link Publikation -
2024
Titel PASDA: A partition-based semantic differencing approach with best effort classification of undecided cases DOI 10.1016/j.jss.2024.112037 Typ Journal Article Autor Glock J Journal Journal of Systems and Software Seiten 112037 Link Publikation