Skip to main content
Log in

Model generation of component-based systems

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

This paper presents COnfECt, a model learning approach, which aims at recovering the functioning of a component-based system from its execution traces. We refer here to non concurrent systems whose internal interactions among components are not observable from the environment. COnfECt is specialised into the detection of components of a black-box system and in the inference of models called systems of labelled transition systems (LTS). COnfECt tries to detect components and their specific behaviours in traces, then it generates LTS for every component discovered, which captures its behaviours. Besides, it synchronises the LTSs together to express the functioning of the whole system. COnfECt relies on machine learning techniques to build models: it uses the notion of correlation among actions in traces to detect component behaviours and exploits a clustering technique to merge similar LTSs and synchronise them. We describe the three steps of COnfECt and the related algorithms in this paper. Then, we present some preliminary experimentations.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Notes

  1. https://github.com/sasa27/TFormat

  2. https://github.com/Elblot/COnfECt-2.0

  3. https://github.com/sasa27/OpenThermostat

  4. https://github.com/Elblot/COnfECt-2.0

References

  • Aichernig, B.K., & Tappler, M. (2017). Learning from faults: mutation testing in active automata learning - mutation testing in active automata learning. In NASA formal methods - 9th international symposium, NFM 2017, Moffett Field, CA, USA, May 16-18, 2017, Proceedings (pp. 19–34). https://doi.org/10.1007/978-3-319-57288-8_2.

  • Alur, R., Černý, P, Madhusudan, P., Nam, W. (2005). Synthesis of interface specifications for java classes. SIGPLAN Not, 40(1), 98–109. https://doi.org/10.1145/1047659.1040314.

    Article  MATH  Google Scholar 

  • Ammons, G., Bodík, R, Larus, J.R. (2002). Mining specifications. SIGPLAN Not, 37(1), 4–16. https://doi.org/10.1145/565816.503275.

    Article  MATH  Google Scholar 

  • Angluin, D. (1987). Learning regular sets from queries and counterexamples. Information and Computation, 75(2), 87–106.

    Article  MathSciNet  Google Scholar 

  • Antunes, J., Neves, N., Verissimo, P. (2011). Reverse engineering of protocols from network traces. In 2011 18th Working conference on reverse engineering (WCRE) (pp. 169–178). https://doi.org/10.1109/WCRE.2011.28.

  • Berg, T, Jonsson, B., Raffelt, H. (2006). Regular inference for state machines with parameters. In Baresi, L., & Heckel, R. (Eds.) Fundamental approaches to software engineering, lecture notes in computer science, (Vol. 3922 pp. 107–121 ). Berlin: Springer, DOI https://doi.org/10.1007/11693017_10.

  • Beschastnikh, I, Brun, Y, Shneider, S, Sloan, M, Ernst, M.D. (2011). Leveraging existing instrumentation to automatically infer invariant-constrained models. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on foundations of software engineering ESEC/FSE ’11 (pp. 267–277). New York: ACM.

  • Beschastnikh, I., Brun, Y., Ernst, M.D., Krishnamurthy, A. (2014). Inferring models of concurrent systems from logs of their behavior with csight. In Proceedings of the 36th international conference on software engineering ICSE 2014 (pp. 468–479). New York: ACM. https://doi.org/10.1145/2568225.2568246.

  • Biermann, A., & Feldman, J. (1972). On the synthesis of finite-state machines from samples of their behavior. IEEE Transactions on Computers, C-21(6), 592–597. https://doi.org/10.1109/TC.1972.5009015.

    Article  MathSciNet  MATH  Google Scholar 

  • Cohen, W.W., Ravikumar, P., Fienberg, S.E. (2003). A comparison of string distance metrics for name-matching tasks. In Proceedings of the 2003 international conference on information integration on the web IIWEB’03 (pp. 73–78): AAAI Press.

  • Dallmeier, V., Knopp, N., Mallon, C., Fraser, G., Hack, S., Zeller, A. (2012). Automatically generating test cases for specification mining. IEEE Transactions on Software Engineering, 38(2), 243–257. https://doi.org/10.1109/TSE.2011.105.

    Article  Google Scholar 

  • Dupont, P. (1996). Incremental regular inference. In Proceedings of the third ICGI-96 (pp. 222–237): Springer.

  • Durand, W., & Salva, S. (2015). Passive testing of production systems based on model inference. In ACM/IEEE international conference on formal methods and models for codesign, MEMOCODE 2015, Austin, TX, USA (pp. 138–147). Austin: ACM.

  • Ernst, M.D., Cockrell, J., Griswold, W.G., Notkin, D. (1999). Dynamically discovering likely program invariants to support program evolution. In Proceedings of the 21st international conference on software engineering ICSE ’99 (pp. 213–224). New York: ACM.

  • Falcone, Y, Jaber, M, Nguyen T.H., Bozga, M, Bensalem, S. (2011). Runtime verification of component-based systems. In Barthe, G, Pardo, A, Schneider, G (Eds.) SEFM 2011 - proceedings of the 9th international conference on software engineering and formal methods. Lecture notes in computer science (LNCS), (Vol. 7041 pp. 204–220). Montevideo: Springer, https://doi.org/10.1007/978-3-642-24690-6_15, https://hal.archives-ouvertes.fr/hal-00642969.

  • Fu, Q, Lou, JG, Wang, Y, Li, J. (2009). Execution anomaly detection in distributed systems through unstructured log analysis. In 2009 Ninth IEEE international conference on data mining (pp. 149–158).

  • Groz, R., Li, K., Petrenko, A., Shahbaz, M. (2008). Testing of software and communicating systems. In Suzuki, K, Higashino, T, Ulrich, A, Hasegawa, T (Eds.) (pp. 216–233). Berlin: Springer.

  • Hangal, S, & Lam, M.S. (2002). Tracking down software bugs using automatic anomaly detection. In Proceedings of the 24th international conference on software engineering ICSE ’02 (pp. 291–301). New York: ACM, DOI https://doi.org/10.1145/581339.581377, (to appear in print).

  • Hossen, K., Groz, R., Oriat, C., Richier, J. (2014). Automatic model inference of web applications for security testing. In Seventh IEEE International conference on software testing, verification and validation, ICST 2014 workshops proceedings, march 31 - April 4, 2014 (pp. 22–23). Cleveland, DOI https://doi.org/10.1109/ICSTW.2014.47

  • Howar, F, Steffen, B, Jonsson, B, Cassel, S. (2012). Inferring canonical register automata. In Kuncak, V, & Rybalchenko, A (Eds.) Verification, model checking, and abstract interpretation, lecture notes in computer science (to appear in print).asis>, (Vol. 7148 pp. 251–266). Berlin: Springer, DOI https://doi.org/10.1007/978-3-642-27940-9_17.

  • Krka, I, Brun, Y, Popescu, D, Garcia, J, Medvidovic, N. (2010). Using dynamic execution traces and program invariants to enhance behavioral model inference. In Proceedings of the 32Nd ACM/IEEE international conference on software engineering ICSE ’10, (Vol. 2 pp. 179–182). New York: ACM.

  • Lo, D, Mariani, L, Santoro, M. (2012). Learning extended fsa from software: an empirical assessment. Journal of Systems and Software, 85(9), 2063–2076. https://doi.org/10.1016/j.jss.2012.04.001. http://www.sciencedirect.com/science/article/pii/S0164121212001008, selected papers from the 2011 Joint Working IEEE/IFIP Conference on Software Architecture (WICSA 2011).

    Article  Google Scholar 

  • Lorenzoli, D, Mariani, L, Pezzè, M. (2008). Automatic generation of software behavioral models. In Proceedings of the 30th international conference on software engineering ICSE’08 (pp. 501–510). New York: ACM.

  • Makanju, A., Zincir-Heywood, A.N., Milios, E.E. (2012). A lightweight algorithm for message type extraction in system application logs. IEEE Transactions on Knowledge and Data Engineering, 24(11), 1921–1936. https://doi.org/10.1109/TKDE.2011.138.

    Article  Google Scholar 

  • Mariani, L, & Pastore, F. (2008). Automated identification of failure causes in system logs. In 19th International symposium on software reliability engineering, 2008. ISSRE 2008 (pp. 117–126), DOI https://doi.org/10.1109/ISSRE.2008.48

  • Mariani, L, & Pezze, M. (2007). Dynamic detection of cots component incompatibility. IEEE Softw, 24(5), 76–85. https://doi.org/10.1109/MS.2007.138.

    Article  Google Scholar 

  • Mariani, L., Pezzè, M, Santoro, M. (2017). Gk-tail+ an efficient approach to learn software models. IEEE Transactions on Software Engineering, 43(8), 715–738. https://doi.org/10.1109/TSE.2016.2623623.

    Article  Google Scholar 

  • Meinke, K, & Sindhu, M. (2011). Incremental learning-based testing for reactive systems. In Gogolla, M, & Wolff, B (Eds.) Tests and proofs, lecture notes in computer science, (Vol. 6706 pp. 134–151). Berlin: Springer, DOI https://doi.org/10.1007/978-3-642-21768-5_11.

  • Messaoudi, S, Panichella, A, Bianculli, D, Briand, L, Sasnauskas, R. (2018). A search-based approach for accurate identification of log message formats. In Proceedings of the 26th conference on program comprehension ICPC ’18 (pp. 167–177). New York: ACM, DOI https://doi.org/10.1145/3196321.3196340

  • Ohmann, T, Herzberg, M, Fiss, S, Halbert, A, Palyart, M, Beschastnikh, I, Brun, Y. (2014). Behavioral resource-aware model inference. In Proceedings of the 29th ACM/IEEE international conference on automated software engineering ASE ’14 (pp. 19–30). New York: ACM.

  • Pastore, F, Micucci, D, Mariani, L. (2017). Timed k-tail: automatic inference of timed automata. In 2017 IEEE International conference on software testing, verification and validation (ICST) (pp. 401–411), DOI https://doi.org/10.1109/ICST.2017.43

  • Petrenko, A., Avellaneda, F., Groz, R., Oriat, C. (2017). From passive to active fsm inference via checking sequence construction. In Yevtushenko, N, Cavalli, A.R., Yenigün, H (Eds.) Testing software and systems (pp. 126–141). Cham: Springer International Publishing.

  • Pradel, M, & Gross, T.R. (2009). Automatic generation of object usage specifications from large method traces. In Proceedings of the 2009 IEEE/ACM international conference on automated software engineering ASE ’09 (pp. 371–382). Washington, DC: IEEE Computer Society.

  • Raffelt, H, Steffen, B, Berg, T. (2005). Learnlib: a library for automata learning and experimentation. In Proceedings of the 10th international workshop on formal methods for industrial critical systems FMICS ’05 (pp. 62–71). New York: ACM, DOI https://doi.org/10.1145/1081180.1081189

  • Salva, S, & Blot, E. (2018). Confect: an approach to learn models of component-based systems. In Proceedings of the 13th international conference on software technologies, ICSOFT 2018, Porto, Portugal, July 26-28, 2018 (pp. 298–305), DOI https://doi.org/10.5220/0006848302980305

  • Salva, S, Blot, E, Laurençot, P. (2018). Combining model learning and data analysis to generate models of component-based systems. In Testing software and systems - 30th IFIP WG 6.1 international conference, ICTSS 2018, Cádiz, Spain, October 1-3, 2018, Proceedings (pp. 142–148), DOI https://doi.org/10.1007/978-3-319-99927-2_12

  • Shahbaz, M., & Groz, R. (2013). Analysis and testing of black-box component based systems by inferring partial models. Software Testing, Verification and Reliability. https://doi.org/10.1002/stvr.1491.

  • Tan, P.N., Steinbach, M., Kumar, V. (2005). Introduction to data mining, 1st edn. Boston: Addison-Wesley Longman Publishing Co., Inc.

    Google Scholar 

  • Tappler, M, Aichernig, B.K., Bloem, R. (2017). Model-based testing iot communication via active automata learning. In 2017 IEEE International conference on software testing, verification and validation (ICST) (pp. 276–287), DOI https://doi.org/10.1109/ICST.2017.32

  • Vaarandi, R, & Pihelgas, M. (2015). Logcluster - a data clustering and pattern mining algorithm for event logs. In 2015 11th International conference on network and service management (CNSM) (pp. 1–7), DOI https://doi.org/10.1109/CNSM.2015.7367331

  • van der Bijl, M., Rensink, A., Tretmans, J. (2004). Compositional testing with ioco. In Petrenko, A, & Ulrich, A (Eds.) Formal Approaches to Software Testing (pp. 86–100). Berlin: Springer.

  • Willett, P. (1988). Recent trends in hierarchic document clustering: a critical review. Information Processing & Management, 24(5), 577–597.

    Article  Google Scholar 

  • Yoon, K.P., & Hwang, C.L. (1995). Multiple attribute decision making: an introduction (quantitative applications in the social sciences).

  • Zhu, J, He, S, Liu, J, He, P, Xie, Q, Zheng, Z, Lyu, M.R. (2018). Tools and benchmarks for automated log parsing. arXiv:1811.03509.

Download references

Funding

Research supported by the French Project VASOC (Auvergne-Rhône-Alpes Region) https://vasoc.limos.fr/

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sébastien Salva.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Salva, S., Blot, E. Model generation of component-based systems. Software Qual J 28, 789–819 (2020). https://doi.org/10.1007/s11219-019-09485-y

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-019-09485-y

Keywords

Navigation