Skip to main content

On Finding Model Smells Based on Code Smells

  • Conference paper
  • First Online:

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 763))

Abstract

A smell in an artifact is a sign that the artifact may have a technical debt, meaning that it may contain the results of one or more sub-optimal design decisions. The debt makes it more difficult to understand, maintain, extend, and reuse the artifact. Technical debt could appear in any technical artifact. Currently the debt in source code is in the center of attention. Modeling is an important system development activity. Models can have technical debt and a sign of it is the presence of one or more model smells. This paper introduces a catalog of 46 model smells (https://github.com/erki77/model-smells) that has been created based on a set of code smells. The cataloged smells are general but their examples are given based on system analysis models. The main takeaway is that most of the considered code smells are instances of generic problems that can also occur in models.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Martin, R.C.: Clean Code. A Handbook of Agile Software Craftsmanship. Pearson Education, Upper Saddle River (2009)

    Google Scholar 

  2. Shvets, A.: Refactoring.Guru. https://refactoring.guru/

  3. Misbhauddin, M., Alshayeb, M.: UML model refactoring: a systematic literature review. Empir. Softw. Eng. 20, 206–251 (2015). https://doi.org/10.1007/s10664-013-9283-7

    Article  Google Scholar 

  4. Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Di Penta, M., De Lucia, A., Poshyvanyk, D.: When and why your code starts to smell bad. In: Proceedings of the 37th International Conference on Software Engineering, vol. 1, pp. 403–414. IEEE Press, Piscataway (2015). https://doi.org/10.1109/icse.2015.59

  5. Jaakkola, H., Henno, J., Welzer-Družovec, T., Thalheim, B., Mäkelä, J.: Why information systems modelling is difficult. In: 5th Workshop of Software Quality, Analysis, Monitoring, Improvement, and Applications, pp. 29–39. University of Novi Sad (2016)

    Google Scholar 

  6. Eessaar, E.: The database normalization theory and the theory of normalized systems: finding a common ground. Balt. J. Mod. Comput. 4, 5 (2016)

    Google Scholar 

  7. Mohagheghi, P., Dehlen, V., Neple, T.: Definitions and approaches to model quality in model-based software development–a review of literature. Inform. Softw. Tech. 51, 1646–1669 (2009). https://doi.org/10.1016/j.infsof.2009.04.004

    Article  Google Scholar 

  8. Hevner, A.R., March, S.T., Park, J., Ram, S.: Design science in information systems research. MIS Quart. 28, 75–105 (2004)

    Article  Google Scholar 

  9. Arendt, T., Taentzer, G.: UML model smells and model refactorings in early software development phases. Universitat Marburg (2010)

    Google Scholar 

  10. El-Attar, M., Miller, J.: Improving the quality of use case models using antipatterns. Softw. Syst. Model. 9, 141–160 (2010). https://doi.org/10.1007/s10270-009-0112-9

    Article  Google Scholar 

  11. Weber, B., Reichert, M., Mendling, J., Reijers, H.A.: Refactoring large process model repositories. Comput. Ind. 62, 467–486 (2011). https://doi.org/10.1016/j.compind.2010.12.012

    Article  Google Scholar 

  12. Gerlitz, T., Tran, Q.M., Dziobek, C.: Detection and handling of model smells for MATLAB/Simulink models. In: International Workshop on Modelling in Automotive Software Engineering, pp. 13–22 (2015)

    Google Scholar 

  13. McDonald, K., Matts, C.: The seven information smells of domain modelling. https://www.infoq.com/articles/seven-modelling-smells

  14. Berenbach, B.: The evaluation of large, complex UML analysis and design models. In: Proceedings of the 26th International Conference on Software Engineering, pp. 232–241. IEEE Computer Society, Washington (2004). https://doi.org/10.1109/icse.2004.1317445

  15. Evitts, P.: A UML Pattern Language. Macmillan Technical, Indianapolis (2000)

    Google Scholar 

  16. Surjective function. https://en.wikipedia.org/wiki/Surjective_function

  17. Eessaar, E.: A set of practices for the development of data-centric information systems. In: José Escalona, M., Aragón, G., Linger, H., Lang, M., Barry, C., Schneider, C. (eds.) Information System Development, pp. 73–84. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-07215-9_6

    Google Scholar 

  18. OMG® Unified Modeling Language® (OMG UML®) Version 2.5.1

    Google Scholar 

  19. Izurieta, C., Rojas, G., Griffith, I.: Preemptive management of model driven technical debt for improving software quality. In: Proceedings of the 11th International ACM SIGSOFT Conference on Quality of Software Architectures, pp. 31–36. ACM, New York (2015). https://doi.org/10.1145/2737182.2737193

  20. Thakur, J.S., Gupta, A.: AnModeler: a tool for generating domain models from textual specifications. In: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, pp. 828–833. ACM, New York (2016). https://doi.org/10.1145/2970276.2970289

  21. Atkinson, C., Draheim, D.: Cloud-aided software engineering: evolving viable software systems through a web of views. In: Mahmood, Z., Saeed, S. (eds.) Software Engineering Frameworks for the Cloud Computing Paradigm. Computer Communications and Networks, pp. 255–281. Springer, London (2013). https://doi.org/10.1007/978-1-4471-5031-2_12

    Google Scholar 

  22. Dont Repeat Yourself. http://wiki.c2.com/?DontRepeatYourself

  23. Lindland, O.I., Sindre, G., Solvberg, A.: Understanding quality in conceptual modeling. IEEE Softw. 11, 42–49 (1994). https://doi.org/10.1109/52.268955

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Erki Eessaar .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Eessaar, E., Käosaar, E. (2019). On Finding Model Smells Based on Code Smells. In: Silhavy, R. (eds) Software Engineering and Algorithms in Intelligent Systems. CSOC2018 2018. Advances in Intelligent Systems and Computing, vol 763. Springer, Cham. https://doi.org/10.1007/978-3-319-91186-1_28

Download citation

Publish with us

Policies and ethics