Refactoring of Legacy Software Using Model Learning and Equivalence Checking: An Industrial Experience Report

  • Mathijs SchutsEmail author
  • Jozef Hooman
  • Frits Vaandrager
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9681)


Many companies struggle with large amounts of legacy software that is difficult to maintain and to extend. Refactoring legacy code typically requires large efforts and introduces serious risks because often crucial business assets are hidden in legacy components. We investigate the support of formal techniques for the rejuvenation of legacy embedded software, concentrating on control components. Model learning and equivalence checking are used to improve a new implementation of a legacy control component. Model learning is applied to both the old and the new implementation. The resulting models are compared using an equivalence check of a model checker. We report about our experiences with this approach at Philips. By gradually increasing the set of input stimuli, we obtained implementations of a power control service for which the learned behaviour is equivalent.


Model Check Model Learning Software Component Equivalence Checker Label Transition System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



We are most grateful to Joshua Moerman for helping with the experiments with the TTT algorithm. We also thank Petra van den Bos for careful proofreading of an earlier version. This research was supported by STW project 11763 (ITALIA) and the Dutch national program COMMIT.


  1. 1.
    Aarts, F., Jonsson, B., Uijen, J., Vaandrager, F.W.: Generating models of infinite-state communication protocols using regular inference with abstraction. Formal Methods Syst. Des. 46(1), 1–41 (2015)CrossRefzbMATHGoogle Scholar
  2. 2.
    Aarts, F., Kuppens, H., Tretmans, G.J., Vaandrager, F.W., Verwer, S.: Improving active Mealy machine learning for protocol conformance testing. Mach. Learn. 96(1–2), 189–224 (2014)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Akers, R.L., Baxter, I.D., Mehlich, M., Ellis, B.J., Luecke, K.R.: Case study: re-engineering C++ component models via automatic program transformation. Inf. Softw. Technol. 49(3), 275–291 (2007)CrossRefGoogle Scholar
  4. 4.
    Angluin, D.: Learning regular sets from queries and counterexamples. Inf. Comput. 75(2), 87–106 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Ansel, J., Arya, K., Cooperman, G.: DMTCP: transparent checkpointing for cluster computations and the desktop. In: IEEE Parallel and Distributed Processing Symposium (2009)Google Scholar
  6. 6.
    Cassel, S.: Learning component behavior from tests: theory and algorithms for automata with data. Ph.D. thesis, University of Uppsala (2015)Google Scholar
  7. 7.
    Cranen, S., Groote, J.F., Keiren, J.J.A., Stappers, F.P.M., de Vink, E.P., Wesselink, W., Willemse, T.A.C.: An overview of the mCRL2 toolset and its recent advances. In: Piterman, N., Smolka, S.A. (eds.) TACAS 2013 (ETAPS 2013). LNCS, vol. 7795, pp. 199–213. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  8. 8.
    de Ruiter, J., Poll, E.: Protocol state fuzzing of tls implementations. In: 24th USENIX Security Symposium (USENIX Security 2015), pp. 193–206. USENIX Association (2015)Google Scholar
  9. 9.
    Dorofeeva, R., El-Fakih, K., Maag, S., Cavalli, A.R., Yevtushenko, N.: FSM-based conformance testing methods: a survey annotated with experimental evaluation. Inf. Softw. Technol. 52(12), 1286–1297 (2010)CrossRefGoogle Scholar
  10. 10.
    Engelfriet, J.: Determinacy - (observation equivalence = trace equivalence). Theor. Comput. Sci. 36, 21–25 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Feng, L., Lundmark, S., Meinke, K., Niu, F., Sindhu, M.A., Wong, P.Y.H.: Case studies in learning-based testing. In: Yenigün, H., Yilmaz, C., Ulrich, A. (eds.) ICTSS 2013. LNCS, vol. 8254, pp. 164–179. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  12. 12.
    Fiterău-Broştean, P., Janssen, R., Vaandrager, F.: Learning fragments of the TCP network protocol. In: Lang, F., Flammini, F. (eds.) FMICS 2014. LNCS, vol. 8718, pp. 78–93. Springer, Heidelberg (2014)Google Scholar
  13. 13.
    Groce, A., Peled, D., Yannakakis, M.: Adaptive model checking. Logic J. IGPL 14(5), 729–744 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Henrix, M.: Performance improvement in automata learning. Master thesis, Radboud University, Nijmegen (2015)Google Scholar
  15. 15.
    Howar, F., Isberner, M., Merten, M., Steffen, B.: LearnLib tutorial: from finite automata to register interface programs. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 587–590. Springer, Heidelberg (2012)Google Scholar
  16. 16.
    Isberner, M.: Foundations of active automata learning: an algorithmic perspective. Ph.D. thesis, Technical University of Dortmund (2015)Google Scholar
  17. 17.
    Kalsing, A.C., do Nascimento, G.S., Iochpe, C., Thom, L.H.: An incremental process mining approach to extract knowledge from legacy systems. In: Enterprise Distributed Object Computing Conference (EDOC), pp. 79–88 (2010)Google Scholar
  18. 18.
    Margaria, T., Niese, O., Raffelt, H., Steffen, B.: Efficient test-based model generation for legacy reactive systems. In: 9th IEEE International High-Level Design Validation and Test Workshop, pp. 95–100 (2004)Google Scholar
  19. 19.
    Raffelt, H., Steffen, B., Berg, T., Margaria, T.: LearnLib: a framework for extrapolating behavioral models. STTT 11(5), 393–407 (2009)CrossRefGoogle Scholar
  20. 20.
    Smeenk, W.: Applying automata learning to complex industrial software. Master thesis, Radboud University, Nijmegen, September 2012Google Scholar
  21. 21.
    Smeenk, W., Moerman, J., Vaandrager, F., Jansen, D.N.: Applying automata learning to embedded control software. In: Butler, M., et al. (eds.) ICFEM 2015. LNCS, vol. 9407, pp. 67–83. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-25423-4_5 CrossRefGoogle Scholar
  22. 22.
    Steffen, B., Howar, F., Merten, M.: Introduction to active automata learning from a practical perspective. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 256–296. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  23. 23.
    van der Aalst, W.: Process Mining - Discovery Conformance and Enhancement of Business Processes. Springer, Heidelberg (2011)zbMATHGoogle Scholar
  24. 24.
    Wagner, C.: Model-Driven Software Migration: A Methodology. Springer Vieweg, Heidelberg (2014)CrossRefGoogle Scholar
  25. 25.
    Warren, I.: The Renaissance of Legacy Systems - Method Support for Software System Evolution. Springer, London (1999)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Mathijs Schuts
    • 1
    Email author
  • Jozef Hooman
    • 2
    • 3
  • Frits Vaandrager
    • 3
  1. 1.PhilipsBestThe Netherlands
  2. 2.Embedded Systems Innovation (ESI) by TNOEindhovenThe Netherlands
  3. 3.Department of Software ScienceRadboud UniversityNijmegenThe Netherlands

Personalised recommendations