Authors:
Bram Hooimeijer
1
;
Marc Geilen
2
;
Jan Friso Groote
3
;
4
;
Dennis Hendriks
5
;
6
and
Ramon Schiffelers
3
;
4
Affiliations:
1
Prodrive Technologies, Eindhoven, The Netherlands
;
2
Department of Electrical Engineering, Eindhoven University of Technology, Eindhoven, The Netherlands
;
3
ASML, Veldhoven, The Netherlands
;
4
Department of Mathematics and Computer Science, Eindhoven University of Technology, Eindhoven, The Netherlands
;
5
Department of Software Science, Radboud University, Nijmegen, The Netherlands
;
6
ESI (TNO), Eindhoven, The Netherlands
Keyword(s):
Model Learning, Component-based Software, Industrial Application.
Abstract:
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.
(More)