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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Martin, R.C.: Clean Code. A Handbook of Agile Software Craftsmanship. Pearson Education, Upper Saddle River (2009)
Shvets, A.: Refactoring.Guru. https://refactoring.guru/
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
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
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)
Eessaar, E.: The database normalization theory and the theory of normalized systems: finding a common ground. Balt. J. Mod. Comput. 4, 5 (2016)
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
Hevner, A.R., March, S.T., Park, J., Ram, S.: Design science in information systems research. MIS Quart. 28, 75–105 (2004)
Arendt, T., Taentzer, G.: UML model smells and model refactorings in early software development phases. Universitat Marburg (2010)
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
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
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)
McDonald, K., Matts, C.: The seven information smells of domain modelling. https://www.infoq.com/articles/seven-modelling-smells
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
Evitts, P.: A UML Pattern Language. Macmillan Technical, Indianapolis (2000)
Surjective function. https://en.wikipedia.org/wiki/Surjective_function
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
OMG® Unified Modeling Language® (OMG UML®) Version 2.5.1
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
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
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
Dont Repeat Yourself. http://wiki.c2.com/?DontRepeatYourself
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer International Publishing AG, part of Springer Nature
About this paper
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
DOI: https://doi.org/10.1007/978-3-319-91186-1_28
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-91185-4
Online ISBN: 978-3-319-91186-1
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)