Skip to main content
Log in

SimIMA: a virtual Simulink intelligent modeling assistant

Simulink intelligent modeling assistance through machine learning and model clones

  • Regular Paper
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

Abstract

Intelligent virtual model assistance is a key challenge in cultivating model-driven engineering proliferation and growth. Such assistance will help improve the quality of software models, support education for students learning modeling, and lower the entry barriers to new modelers. We present SimIMA, an intelligent modeling assistant for Simulink, which is an extremely popular modeling language in both industry and academia. SimIMA provides modelers with two different forms of data-driven guidance using a knowledge base of configurable repositories and sources. The first form of guidance, SimGESTION, suggests to modelers single-step operations they can perform on their models as they edit them in their modeling environment. These suggestions are based on the machine learning technique of ensemble learning through association rule mining and frequency classification. The second form of guidance, SimXAMPLE, presents modelers with similar/related Simulink systems for modelers to either insert directly into their environments or to view for inspiration. SimXAMPLE accomplishes this through model clone detection. To validate SimIMA, we conduct experiments using an established, open, and curated large set of Simulink models coming from a variety of application domains. Our results show that both of SimIMA’s forms of guidance are inferring the appropriate model and element suggestions given SimIMA’s knowledge base and that SimIMA is both scalable and efficient. Through our evaluation, SimIMA demonstrates a prediction accuracy of 78.86% for block-level suggestions and 82.04% for full system suggestions.

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
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. https://www.mathworks.com/help/stats/machine-learning-in-matlab.html

  2. https://www.mathworks.com/matlabcentral/.

  3. https://www.mathworks.com/products/matlab/app-designer.html.

  4. https://www.mathworks.com/help/matlab/ref/struct.html.

  5. https://www.mathworks.com/help/slcheck/ug/identify-subsystem-clones-and-replace-them-with-library-blocks.html.

References

  1. Adhikari, B., Rapos, E.J., Stephan, M. (2021) Initial Evaluation Data for SimIMA: A virtual simulink intelligent modeling assistant. https://doi.org/10.5281/zenodo.5123565

  2. Adhikari, B., Rapos, E.J., Stephan, M.: Simulink Intelligent Modeling Assistant (SimIMA) (2021). https://doi.org/10.5281/zenodo.5123570

  3. Adhikari, B., Rapos, E.J., Stephan, M.: Simulink model transformation for backwards version compatibility. In: 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C), pp. 427–436 (2021). https://doi.org/10.1109/MODELS-C53483.2021.00066

  4. Adocus AB: MetaModelAgent Concept. http://www.metamodelagent.com/concept.html. Accessed: 2021-04-01

  5. Agrawal, R., Imieliński, T., Swami, A.: Mining association rules between sets of items in large databases. In: Proceedings of the 1993 ACM SIGMOD international conference on Management of data, pp. 207–216 (1993)

  6. Alalfi, M.H., Cordy, J.R., Dean, T.R., Stephan, M., Stevenson, A.: Models are code too: Near-miss clone detection for simulink models. In: International Conference on Software Maintenance, pp. 295–304. IEEE, Riva del Garda, Trento, Italy (2012)

  7. Almonte, L., Guerra, E., Cantador, I., De Lara, J.: Recommender systems in model-driven engineering. Softw. Syst. Model. 21(1), 249–280 (2022)

    Article  Google Scholar 

  8. Andrews, J.H., Briand, L.C., Labiche, Y.: Is mutation an appropriate tool for testing experiments? In: Proceedings of the 27th International Conference on Software engineering, pp. 402–411 (2005)

  9. Anguita, D., Ghelardoni, L., Ghio, A., Oneto, L., Ridella, S.: The’k’in k-fold cross validation. In: ESANN, pp. 441–446 (2012)

  10. Antony, E., Alalfi, M.H., Cordy, J.R.: An Approach to Clone Detection in Behavioural Models. In: International Working Conference in Reverse Engineering, pp. 472–476 (2013)

  11. Asaduzzaman, M., Roy, C.K., Schneider, K.A., Hou, D.: Cscc: Simple, efficient, context sensitive code completion. In: International Conference on Software Maintenance and Evolution, pp. 71–80. IEEE, Victoria, BC, Canada (2014)

  12. Babur, Ö., Stephan, M.: Mocop: towards a model clone portal. In: 2019 IEEE/ACM 11th International Workshop on Modelling in Software Engineering (MiSE), pp. 78–81. IEEE, IEEE, Montreal, QC, Canada (2019)

  13. Barath, B., Knottenbelt, W., Heinis, T.: Improving code completion with machine learning. Imperial College London (2020)

  14. Barrett, S., Chalin, P., Butler, G.: Model merging falls short of software engineering needs. In: Proc. of the 2nd Workshop on Model-Driven Software Evolution. Citeseer (2008)

  15. Barriga, A., Rutle, A., Heldal, R.: Personalized and automatic model repairing using reinforcement learning. In: 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C), pp. 175–181. IEEE, IEEE, Munich, Germany (2019)

  16. Boll, A., Brokhausen, F., Amorim, T., Kehrer, T., Vogelsang, A.: Characteristics, potentials, and limitations of open source simulink projects for empirical research. Software and Systems Modeling tbd(tbd), 20pp (2021). In press

  17. Brambilla, M., Cabot, J., Wimmer, M.: Model-driven software engineering in practice. Synth. Lectur. Softw. Eng. 3(1), 1–207 (2017)

    Article  Google Scholar 

  18. Bruch, M., Monperrus, M., Mezini, M.: Learning from examples to improve code completion systems. In: Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, pp. 213–222 (2009)

  19. Bucchiarone, A., Cabot, J., Paige, R.F., Pierantonio, A.: Grand challenges in model-driven engineering: an analysis of the state of the research. Soft. Syst. Model. 19, 1–9 (2020)

    Google Scholar 

  20. Burgueño, L., Clarisó, R., Li, S., Gérard, S., Cabot, J.: A NLP-based architecture for the autocompletion of partial domain models (2020). https://hal.archives-ouvertes.fr/hal-03010872. Working paper or preprint

  21. Cabot, J., Clarisó, R., Brambilla, M., Gérard, S.: Cognifying model-driven software engineering. In: Federation of International Conferences on Software Technologies: Applications and Foundations, pp. 154–160. Springer, Springer, Marburg, Germany (2017)

  22. Chowdhury, S.A., Varghese, L.S., Mohian, S., Johnson, T.T., Csallner, C.: A curated corpus of simulink models for model-based empirical studies. In: 2018 IEEE/ACM 4th International Workshop on Software Engineering for Smart Cyber-Physical Systems (SEsCPS), pp. 45–48. IEEE (2018)

  23. Cordy, J.R.: Submodel pattern extraction for simulink models. In: International Software Product Line Conference, pp. 7–10 (2013)

  24. Dean, T.R., Chen, J., Alalfi, M.H.: Clone detection in Matlab Stateflow models. Electronic Communications of the EASST 63 (2014)

  25. Deissenboeck, F., Hummel, B., Jürgens, E., Schätz, B., Wagner, S., Girard, J.F., Teuchert, S.: Clone detection in automotive model-based development. In: International Conference on Software Engineering, pp. 603–612 (2008)

  26. Del Olmo, F.H., Gaudioso, E.: Evaluation of recommender systems: a new approach. Expert Syst. Appl. 35(3), 790–804 (2008)

    Article  Google Scholar 

  27. Di Rocco, J., Di Ruscio, D., Di Sipio, C., Nguyen, P.T., Pierantonio, A.: Memorec: a recommender system for assisting modelers in specifying metamodels. Softw. Syst. Model . 1–21 (2022)

  28. Dietterich, T.G.: Ensemble methods in machine learning. In: International Workshop on Multiple Classifier Systems, pp. 1–15. Springer (2000)

  29. Dyck, A., Ganser, A., Lichter, H.: A framework for model recommenders requirements, architecture and tool support. In: International Conference on Model-Driven Engineering and Software Development, pp. 282–290 (2014)

  30. Dyck, A., Ganser, A., Lichter, H.: On designing recommenders for graphical domain modeling environments. In: International Conference on Model-Driven Engineering and Software Development, pp. 291–299 (2014)

  31. Eclipse Foundation: Code recommenders (2017). http://www.eclipse.org/recommenders/ accessed on 2017-07-31

  32. Elkamel, A., Gzara, M., Ben-Abdallah, H.: An uml class recommender system for software design. In: 2016 IEEE/ACS 13th International Conference of Computer Systems and Applications (AICCSA), pp. 1–8 (2016). https://doi.org/10.1109/AICCSA.2016.7945659

  33. Fushiki, T.: Estimation of prediction error by using k-fold cross-validation. Stat. Comput. 21(2), 137–146 (2011)

    Article  MathSciNet  Google Scholar 

  34. Gautam, P., Saini, H.: Mutation testing-based evaluation framework for evaluating software clone detection tools. In: Reliability and Risk Assessment in Engineering, pp. 21–35. Springer (2020)

  35. GitHub: Github copilot - your ai pair programmer. https://copilot.github.com/. Accessed: 2022-05-31

  36. Hsu, C.W., Chang, C.C., Lin, C.J., et al.: A practical guide to support vector classification (2003)

  37. Hutchinson, J., Rouncefield, M., Whittle, J.: Model-driven engineering practices in industry. In: International Conference on Software Engineering, pp. 633–642. ACM, Waikiki, Honolulu, Hawaii (2011)

  38. Kappel, G., Langer, P., Retschitzegger, W., Schwinger, W., Wimmer, M.: Model transformation by-example: a survey of the first wave. In: Conceptual Modelling and Its Theoretical Foundations, pp. 197–215. Springer, New York, NY, USA (2012)

  39. Kotsiantis, S.B., Zaharakis, I., Pintelas, P.: Supervised machine learning: A review of classification techniques. Emerg. artif. Intell. Applicat. Comput. Eng. 160(1), 3–24 (2007)

    Google Scholar 

  40. Kumar, M.A.: Efficient weight assignment method for detection of clones in state flow diagrams. J. Soft. Eng. Res. Pract. 4(2), 12–16 (2014)

    Google Scholar 

  41. Kuschke, T., Mäder, P.: Pattern-based auto-completion of uml modeling activities. In: Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, ASE ’14, p. 551-556. Association for Computing Machinery, New York, NY, USA (2014). https://doi.org/10.1145/2642937.2642949

  42. Kuschke, T., Mäder, P., Rempel, P.: Recommending auto-completions for software modeling activities. In: International Conference on Model Driven Engineering Languages and Systems, pp. 170–186. Springer (2013)

  43. Liu, B., Hsu, W., Ma, Y., et al.: Integrating classification and association rule mining. In: Kdd, vol. 98, pp. 80–86 (1998)

  44. Mazanek, S., Maier, S., Minas, M.: Auto-completion for diagram editors based on graph grammars. In: IEEE Symposium on Visual Languages and Human-Centric Computing, pp. 242–245. IEEE (2008)

  45. Mussbacher, G., Combemale, B., Abrahão, S., Bencomo, N., Burgueño, L., Engels, G., Kienzle, J., Kühn, T., Mosser, S., Sahraoui, H., et al.: Towards an assessment grid for intelligent modeling assistance. In: Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, pp. 1–10 (2020)

  46. Mussbacher, G., Combemale, B., Kienzle, J., Abrahão, S., Ali, H., Bencomo, N., Búr, M., Burgueño, L., Engels, G., Jeanjean, P., et al.: Opportunities in intelligent modeling assistance. Soft. Syst. Model. 19(5), 1045–1053 (2020)

    Article  Google Scholar 

  47. Nair, A., Ning, X., Hill, J.H.: Using recommender systems to improve proactive modeling. Software and Systems Modeling pp. 1–23 (2021)

  48. Pati, T., Feiock, D.C., Hill, J.H.: Proactive modeling: auto-generating models from their semantics and constraints. In: Workshop on Domain-Specific Modeling, pp. 7–12. ACM (2012)

  49. Petersen, H.: Clone detection in Matlab Simulink models. Master’s thesis, Technical University of Denmark, 2012, iMM-M. Sc.-2012-02 (2012)

  50. Pham, N., Nguyen, H., Nguyen, T., Al-Kofahi, J., Nguyen, T.: Complete and accurate clone detection in graph-based models. In: International Conference on Software Engineering (ICSE), pp. 276–286 (2009)

  51. Proksch, S., Lerch, J., Mezini, M.: Intelligent code completion with bayesian networks. ACM Trans. Softw. Eng. Methodol. 25(1), 1–31 (2015). https://doi.org/10.1145/2744200

    Article  Google Scholar 

  52. Raychev, V., Vechev, M., Yahav, E.: Code completion with statistical language models. In: Conference on Programming Language Design and Implementation, pp. 419–428. ACM, New York, NY, USA (2014). https://doi.org/10.1145/2594291.2594321

  53. Reicherdt, R., Glesner, S.: Slicing matlab simulink models. In: International Conference on Software Engineering, pp. 551–561. IEEE Press (2012)

  54. Robbes, R., Lanza, M.: Improving code completion with program history. Autom. Soft. Eng. 17(2), 181–212 (2010)

    Article  Google Scholar 

  55. Robillard, M.P., Maalej, W., Walker, R.J., Zimmermann, T.: Recommendation Systems in Software Engineering. Springer Science & Business (2014)

  56. Roy, C.K., Cordy, J.R.: A survey on software clone detection research. Tech. Rep. 2007-541, Queen’s University (2007)

  57. Roy, C.K., Cordy, J.R.: A mutation/injection-based automatic framework for evaluating code clone detection tools. In: International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pp. 157–166 (2009)

  58. Rubin, J., Chechik, M.: N-way model merging. In: proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, pp. 301–311 (2013)

  59. Sagi, O., Rokach, L.: Ensemble learning: A survey. Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery 8(4), e1249 (2018)

  60. Saini, R., Mussbacher, G., Guo, J.L.C., Kienzle, J.: Domobot: A bot for automated and interactive domain modelling. In: Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, MODELS ’20. Association for Computing Machinery, New York, NY, USA (2020). https://doi.org/10.1145/3417990.3421385

  61. Schäfer, M., Sridharan, M., Dolby, J., Tip, F.: Effective smart completion for javascript. Technical Report RC25359 (2013)

  62. Segura, A.M., de Lara, J.: Extremo: An eclipse plugin for modelling and meta-modelling assistance. Science of Computer Programming 180, 71–80 (2019). https://doi.org/10.1016/j.scico.2019.05.003www.sciencedirect.com/science/article/pii/S0167642319300644

  63. Segura, Á.M., Pescador, A., de Lara, J., Wimmer, M.: An extensible meta-modelling assistant. In: International Enterprise Distributed Object Computing Conference, pp. 1–10 (2016)

  64. Sen, S., Baudry, B., Vangheluwe, H.: Towards domain-specific model editors with automatic model completion. Simulation 86(2), 109–126 (2010)

    Article  Google Scholar 

  65. Steimann, F., Ulke, B.: Generic model assist. In: International Conference on Model Driven Engineering Languages and Systems, pp. 18–34. Springer (2013)

  66. Stephan, M.: Model clone detector evaluation using mutation analysis. In: 2014 IEEE International Conference on Software Maintenance and Evolution, pp. 633–638. IEEE (2014)

  67. Stephan, M.: Towards a Cognizant Virtual Software Modeling Assistant Using Model Clones. In: Proceedings of the 41st International Conference on Software Engineering: New Ideas and Emerging Results, ICSE-NIER ’19, pp. 21–24. IEEE Press, Piscataway, NJ, USA (2019). https://doi.org/10.1109/ICSE-NIER.2019.00014

  68. Stephan, M., Alalfi, M., Cordy, J.R.: Towards a taxonomy for simulink model mutations. In: International Workshop on Mutation Analysis, pp. 206–215 (2014)

  69. Stephan, M., Cordy, J.R.: A survey of model comparison approaches and applications. In: International Conference on Model-Driven Engineering and Software Development, pp. 265–277 (2013)

  70. Stephan, M., Cordy, J.R.: Mumonde: A framework for evaluating model clone detectors using model mutation analysis. Software Testing, Verification and Reliability p. e1669 (2018)

  71. Storrle, H.: Towards clone detection in UML domain models. Soft. Syst. Model. 12(2), 307–329 (2013)

    Article  Google Scholar 

  72. Voorhees, E.M., et al.: The trec-8 question answering track report. In: Trec, vol. 99, pp. 77–82 (1999)

  73. Weyssow, M., Sahraoui, H., Syriani, E.: Recommending metamodel concepts during modeling activities with pre-trained language models. Soft. Syst. Model. 21(3), 1071–1089 (2022)

    Article  Google Scholar 

  74. Zhang, C., Ma, Y.: Ensemble machine learning: methods and applications. Springer (2012)

Download references

Acknowledgements

This material is based upon work supported by the National Science Foundation under Grant No. 1849632.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Eric J. Rapos.

Additional information

Communicated by Jeff Gray.

Publisher's Note

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

This material is based upon work supported by the National Science Foundation under Grant No. 1849632.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Adhikari, B., Rapos, E.J. & Stephan, M. SimIMA: a virtual Simulink intelligent modeling assistant. Softw Syst Model 23, 29–56 (2024). https://doi.org/10.1007/s10270-023-01093-6

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-023-01093-6

Navigation