Constructive Model Inference: Model Learning for Component-based Software Architectures
conference paper
Model learning, learning a state machine from software, can be an effective model-based engineering technique, especially to understand legacy software. However, so far the applicability is limited as models that can be learned are quite small, often insufficient to represent the software behavior of large industrial systems. We introduce a novel method, called Constructive Model Inference (CMI). It effectively allows us to learn the behavior of large parts of the industrial software at ASML, where we developed the method and it is now being used. The method uses observations in the form of execution logs to infer behavioral models of concurrent component-based (cyber-physical) systems, relying on knowledge of their architecture, deployment and other characteristics, rather than heuristics or counter examples. We provide a trace-theoretical framework, and prove that if the software satisfies certain architectural assumptions, our approach infers the correct results. We also present a practical approach to deal with situations where the software deviates from the assumptions. In this way we are able to construct accurate and intuitive state machine models. They provide practitioners with valuable insights into the software behavior, and enable all kinds of behavioral analyses.
TNO Identifier
973704
ISSN
2184-2833
ISBN
978-989-758-588-3
Publisher
Scitepress
Source title
Proceedings of the 17th International Conference on Software Technologies - ICSOFT
Editor(s)
Fill, H.G.
Sinderen, M. van
Maciaszek, L.
Sinderen, M. van
Maciaszek, L.
Pages
146-158