Advertisement

Pitfalls in Applying Model Learning to Industrial Legacy Software

  • Omar al DuhaibyEmail author
  • Arjan Mooij
  • Hans van Wezep
  • Jan Friso Groote
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11247)

Abstract

Maintaining legacy software is one of the most common struggles of the software industry, being costly yet essential. We tackle that problem by providing better understanding of software by extracting behavioural models using the model learning technique. The used technique interacts with a running component and extracts abstract models that would help developers make better informed decisions. As promising in theory, as slippery in application it is, however. This report describes our experience in applying model learning to legacy software, and aims to prepare the newcomer for what shady pitfalls lie therein as well as provide the seasoned researcher with concrete cases and open problems. We narrate our experience in analysing certain legacy components at Philips Healthcare describing challenges faced, solutions implemented, and lessons learned.

Keywords

Model learning Active learning Legacy software 

Notes

Acknowledgement

We would like to thank Joshua Moerman and Ramon Janssen for their help with LearnLib and several related concepts, and Mathijs Schuts for sharing his knowledge about model learning.

References

  1. 1.
    Van der Aalst, W.M.P., Weijters, A.: Process mining: a research agenda. Comput. Ind. 53(3), 231–244 (2004).  https://doi.org/10.1016/j.compind.2003.10.001CrossRefGoogle Scholar
  2. 2.
    Aarts, F., De Ruiter, J., Poll, E.: Formal models of bank cards for free. In: 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops, pp. 461–468, March 2013.  https://doi.org/10.1109/ICSTW.2013.60
  3. 3.
    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-6MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Bauer, O., Neubauer, J., Steffen, B., Howar, F.: Reusing system states by active learning algorithms. In: Moschitti, A., Scandariato, R. (eds.) EternalS 2011. CCIS, vol. 255, pp. 61–78. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-28033-7_6CrossRefGoogle Scholar
  5. 5.
    Chow, T.S.: Testing software design modeled by finite-state machines. IEEE Transactions on Software Engineering SE-4(3), 178–187 (1978).  https://doi.org/10.1109/TSE.1978.231496CrossRefGoogle Scholar
  6. 6.
    Coplien, J.O., Zhao, L.: Symmetry breaking in software patterns. In: Butler, G., Jarzabek, S. (eds.) GCSE 2000. LNCS, vol. 2177, pp. 37–54. Springer, Heidelberg (2001).  https://doi.org/10.1007/3-540-44815-2_4CrossRefzbMATHGoogle Scholar
  7. 7.
    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. LNCS, vol. 7609, pp. 587–590. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-34026-0_43CrossRefGoogle Scholar
  8. 8.
    Howar, F., Steffen, B., Merten, M.: Automata learning with automated alphabet abstraction refinement. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 263–277. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-18275-4_19CrossRefGoogle Scholar
  9. 9.
    Huang, Y.W., Yu, F., Hang, C., Tsai, C.H., Lee, D.T., Kuo, S.Y.: Securing web application code by static analysis and runtime protection. In: Proceedings of the 13th International Conference on World Wide Web, WWW 2004, pp. 40–52, ACM, New York (2004).  https://doi.org/10.1145/988672.988679
  10. 10.
    Hungar, H., Margaria, T., Steffen, B.: Test-based model generation for legacy systems. In: 2003 Proceedings of the International Test Conference, ITC 2003, vol. 2, pp. 150–159, September 2003.  https://doi.org/10.1109/TEST.2003.1271205
  11. 11.
    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_26CrossRefGoogle Scholar
  12. 12.
    Madden, B.: Using CPPunit to implement unit testing. In: Game Programming Gems, vol. 6 (2006)Google Scholar
  13. 13.
    Margaria, T., Niese, O., Raffelt, H., Steffen, B.: Efficient test-based model generation for legacy reactive systems. In: Proceedings of the Ninth IEEE International High-Level Design Validation and Test Workshop (IEEE Cat. No. 04EX940), pp. 95–100, November 2004.  https://doi.org/10.1109/HLDVT.2004.1431246
  14. 14.
    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_44CrossRefGoogle Scholar
  15. 15.
    Niese, O.: An integrated approach to testing complex systems. Ph.D. thesis, Technical University of Dortmund, Germany (2003)Google Scholar
  16. 16.
    Niese, O., Steffen, B., Margaria, T., Hagerer, A., Brune, G., Ide, H.-D.: Library-based design and consistency checking of system-level industrial test cases. In: Hussmann, H. (ed.) FASE 2001. LNCS, vol. 2029, pp. 233–248. Springer, Heidelberg (2001).  https://doi.org/10.1007/3-540-45314-8_17CrossRefGoogle Scholar
  17. 17.
    Schuts, M., Hooman, J., Vaandrager, F.: Refactoring of legacy software using model learning and equivalence checking: an industrial experience report. In: Ábrahám, E., Huisman, M. (eds.) IFM 2016. LNCS, vol. 9681, pp. 311–325. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-33693-0_20CrossRefGoogle Scholar
  18. 18.
    Smeenk, W., Moerman, J., Vaandrager, F., Jansen, D.N.: Applying automata learning to embedded control software. In: Butler, M., Conchon, S., Zaïdi, F. (eds.) ICFEM 2015. LNCS, vol. 9407, pp. 67–83. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-25423-4_5CrossRefGoogle Scholar
  19. 19.
    Vaandrager, F.: Model learning. Commun. ACM 60(2), 86–95 (2017)CrossRefGoogle Scholar
  20. 20.
    Wirth, N.: Program development by stepwise refinement. Commun. ACM 14(4), 221–227 (1971)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  • Omar al Duhaiby
    • 1
    Email author
  • Arjan Mooij
    • 2
  • Hans van Wezep
    • 3
  • Jan Friso Groote
    • 1
  1. 1.Eindhoven University of TechnologyEindhovenThe Netherlands
  2. 2.ESI (TNO)EindhovenThe Netherlands
  3. 3.Philips HealthcareBestThe Netherlands

Personalised recommendations