Model Inference and Comparison for Software Evolution in Large Component-Based Systems

Authors

Dennis Hendriks

Keywords:

model inference, state machine learning, active automata learning, model comparison, software evolution, component-based systems

Synopsis

Large, complex systems are often divided into components. As these systems and their software inevitably evolve, engineers must understand the (communication) behavior of the software to properly change it, and understand the impact of their changes to prevent costly regressions and reduce risks.

Creating an overview of the software behavior is challenging, time-consuming and error-prone, even with the available code, tests and documentation. We provide this overview by learning state machine models. We reduce the effort to set up active automata learning to infer models by querying isolated components through (a)synchronous interactions. We also introduce Constructive Model Inference to infer multi-level models from execution logs, without over-generalizing the system behavior and without hard-to-configure settings.

Engineers often do not understand the system-wide impact of their changes. Our multi-level comparison approach automatically compares the behavior of state machine models of software versions before and after a change. Comparison results are presented at different levels, providing engineers overview and guiding them step-by-step through the relevant differences, without wasting time on unaffected parts of the system.

We evaluate our approaches using academic and industrial case studies. Our extensible open-source MIDS tool combines the approaches, making them available to industry to ease their software evolution challenges.

Hendriks

Published

August 28, 2024

Details about the available publication format: pdf

pdf

ISBN-13 (15)

9789493296640