Software behaviour: change impact analysis and model learning
Have you ever struggled to understand the behaviour of a piece of software? Have you ever seen a change in software cause a regression in a seemingly unrelated part of the system? These are the kinds of challenges we address.
Complex high-tech systems typically consist of many concurrently communicating software components. Understanding the current software behaviour is a major challenge, especially for legacy software for which the original developers have long since left and technical debt exists. Another challenge is that changing software is risky as any mistake can break the system. Preventing issues at the customer is essential as the impact is huge. This is particularly true for redesigns that bring no new value to customers.
In order to provide insight into the behaviour of the software, our approach allows inferring models that capture the complex interactions. Automatic inference avoids the laborious and error-prone effort of manual modelling. To understand the impact of software changes, identify regressions and reduce the risks, we compare software behaviour models and visualise the differences for various software versions.
We apply our approach to an ASML TWINSCAN software component. It helps to detect unintended behavioural regressions, reduce risks and save valuable time, thereby leading to faster deliveries.