A Systematic Approach for Interfacing Component-Based Software with an Active Automata Learning Tool
Applying Model-Driven Engineering can improve development efficiency. But gaining such benefits for legacy software requires models, and creating them manually is both laborious and error prone. Active automata learning has the potential to make it cost-effective, but practitioners face practical challenges applying it to software components of industrial cyber-physical systems. To overcome these challenges, we present a framework to learn the behavior of component-based software with a client/server architecture, focusing on interfacing isolated component code with an active learning tool. An essential part of the framework is an interfacing protocol that provides a structured way of handling the (a)synchronous communications between the component and learning tool. Our main contribution is the systematic derivation of such interfacing protocols for component-based software, which we demonstrate on the software architecture of ASML, a leading company in developing lithography machines. Through several practical case studies we show that our semi-automatic approach enables setting up a learning environment to learn component behaviors within hours. The protocol’s responsibilities and the way it handles different communication types apply to component-based software in general. Our framework could thus be adapted for companies with similar software architectures.
Active automata learning
To reference this document use:
Leveraging Applications of Formal Methods, Verification and Validation. Software Engineering. ISoLA 2022, 216–236
Lecture Notes in Computer Science
International Symposium on Leveraging Applications of Formal Methods, ISoLA 2022