Advertisement

On Finding Model Smells Based on Code Smells

  • Erki Eessaar
  • Ege Käosaar
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (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.

Keywords

Technical debt Model smell Code smell System analysis CASE 

References

  1. 1.
    Martin, R.C.: Clean Code. A Handbook of Agile Software Craftsmanship. Pearson Education, Upper Saddle River (2009)Google Scholar
  2. 2.
    Shvets, A.: Refactoring.Guru. https://refactoring.guru/
  3. 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-7CrossRefGoogle Scholar
  4. 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. 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. 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. 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.004CrossRefGoogle Scholar
  8. 8.
    Hevner, A.R., March, S.T., Park, J., Ram, S.: Design science in information systems research. MIS Quart. 28, 75–105 (2004)CrossRefGoogle Scholar
  9. 9.
    Arendt, T., Taentzer, G.: UML model smells and model refactorings in early software development phases. Universitat Marburg (2010)Google Scholar
  10. 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-9CrossRefGoogle Scholar
  11. 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.012CrossRefGoogle Scholar
  12. 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. 13.
    McDonald, K., Matts, C.: The seven information smells of domain modelling. https://www.infoq.com/articles/seven-modelling-smells
  14. 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. 15.
    Evitts, P.: A UML Pattern Language. Macmillan Technical, Indianapolis (2000)Google Scholar
  16. 16.
  17. 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
  18. 18.
    OMG® Unified Modeling Language® (OMG UML®) Version 2.5.1Google Scholar
  19. 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. 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. 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_12Google Scholar
  22. 22.
  23. 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.268955CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2019

Authors and Affiliations

  1. 1.Department of Software ScienceTallinn University of TechnologyTallinnEstonia

Personalised recommendations