Abstract
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.
D. Hendriks—This research is carried out as part of the Transposition project under the responsibility of ESI (TNO) in co-operation with ASML. The research activities are supported by the Netherlands Ministry of Economic Affairs and TKI-HTSM.
K. Aslam—This research was supported by the Eindhoven University of Technology and ASML Netherlands B.V., carried out as part of the IMPULS II project.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
References
Aarts, F., Heidarian, F., Vaandrager, F.: A theory of history dependent abstractions for learning interface automata. In: Koutny, M., Ulidowski, I. (eds.) CONCUR 2012. LNCS, vol. 7454, pp. 240–255. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-32940-1_18
Angluin, D.: Learning regular sets from queries and counterexamples. Inf. Comput. 75(2), 87–106 (1987). https://doi.org/10.1016/0890-5401(87)90052-6
Aslam, K., Cleophas, L., Schiffelers, R., van den Brand, M.: Interface protocol inference to aid understanding legacy software components. Softw. Syst. Model. 19(6), 1519–1540 (2020). https://doi.org/10.1007/s10270-020-00809-2
Broadfoot, G.H., Broadfoot, P.J.: Academia and industry meet: some experiences of formal methods in practice. In: Tenth Asia-Pacific Software Engineering Conference, pp. 49–58. IEEE (2003). https://doi.org/10.1109/APSEC.2003.1254357
Cho, C.Y., Babić, D., Shin, E.C.R., Song, D.: Inference and analysis of formal models of botnet command and control protocols. In: Proceedings of the 17th ACM conference on Computer and communications security, pp. 426–439 (2010). https://doi.org/10.1145/1866307.1866355
al Duhaiby, O., Mooij, A., van Wezep, H., Groote, J.F.: Pitfalls in applying model learning to industrial legacy software. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11247, pp. 121–138. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03427-6_13
Fujiwara, S., Bochmann, G.V., Khendek, F., Amalou, M., Ghedamsi, A.: Test selection based on finite state models. IEEE Trans. Softw. Eng. 17(6), 591–603 (1991). https://doi.org/10.1109/32.87284
Gomaa, H.: Real-time software design for embedded systems. Cambridge University Press, USA, 1st edn. (2016). https://doi.org/10.1017/CBO9781139644532
de la Higuera, C.: Grammatical inference: learning automata and grammars. Cambridge University Press (2010). https://doi.org/10.1017/CBO9781139194655
Hooimeijer, B., Geilen, M., Groote, J.F., Hendriks, D., Schiffelers, R.: Constructive Model Inference: model learning for component-based software architectures. In: Proceedings of the 17th International Conference on Software Technologies (ICSOFT), pp. 146–158. SciTePress (2022). https://doi.org/10.5220/0011145700003266
Howar, F.: Active learning of interface programs, Ph. D. thesis, Technische Universität Dortmund (2012). https://doi.org/10.17877/DE290R-4817
Howar, F., Steffen, B.: Active automata learning in practice. In: Bennaceur, A., Hähnle, R., Meinke, K. (eds.) Machine Learning for Dynamic Software Analysis: Potentials and Limits. LNCS, vol. 11026, pp. 123–148. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-96562-8_5
Isberner, M., Howar, F., Steffen, B.: The TTT algorithm: a redundancy-free approach to active automata learning. In: Bonakdarpour, B., Smolka, S.A. (eds.) RV 2014. LNCS, vol. 8734, pp. 307–322. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11164-3_26
Isberner, M., Howar, F., Steffen, B.: The open-source LearnLib. In: Kroening, D., Păsăreanu, C.S. (eds.) CAV 2015. LNCS, vol. 9206, pp. 487–495. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-21690-4_32
Merten, M., Isberner, M., Howar, F., Steffen, B., Margaria, T.: Automated learning setups in automata learning. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012. LNCS, vol. 7609, pp. 591–607. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-34026-0_44
de Ruiter, J., Poll, E.: Protocol state fuzzing of tls implementations. In: 24th USENIX Security Symposium (USENIX Security 15), pp. 193–206. USENIX Association (2015). https://doi.org/10.5555/2831143.2831156
Szyperski, C., Gruntz, D., Murer, S.: Component software: beyond object-oriented programming. Pearson Education, 2nd edn. (2002)
Whittle, J., Hutchinson, J., Rouncefield, M.: The state of practice in model-driven engineering. IEEE Softw. 31(3), 79–85 (2014). https://doi.org/10.1109/MS.2013.65
Yang, N., et al.: Improving model inference in industry by combining active and passive learning. In: 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 253–263 (2019). https://doi.org/10.1109/SANER.2019.8668007
Acknowledgements
The authors would like to thank ASML for making this work possible and supporting it, and Mladen Skelin for his contributions to this work, in particular the implementation.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Hendriks, D., Aslam, K. (2022). A Systematic Approach for Interfacing Component-Based Software with an Active Automata Learning Tool. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Software Engineering. ISoLA 2022. Lecture Notes in Computer Science, vol 13702. Springer, Cham. https://doi.org/10.1007/978-3-031-19756-7_13
Download citation
DOI: https://doi.org/10.1007/978-3-031-19756-7_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-19755-0
Online ISBN: 978-3-031-19756-7
eBook Packages: Computer ScienceComputer Science (R0)