Skip to main content

Methods, Algorithms and Software for the UML Class Diagram Refactoring

  • Conference paper
  • First Online:
Modern Information Technology and IT Education (SITITO 2017)

Abstract

This article considers the problem of UML class diagram refactoring. It gives a brief overview of the approaches to the UML class diagram describing, transformation and refactoring. Article also proposes a software tool for the UML class diagram refactoring called UML Refactoring. This software tool provides import of diagrams in XMI format, OO-metrics calculation. UML Refactoring tool searches for the transformations, which decrease a fitness function value. Article presents an algorithm of a prototype CLANG plugin, which receives C++ source code at the input and returns UML class diagram in XMI format.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Institutional subscriptions

Similar content being viewed by others

References

  1. Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley Professional, Boston (2005)

    Google Scholar 

  2. XML Metadata Interchange (XMI) Specification. Version 2.4.2. https://www.omg.org/spec/XMI/2.4.2/About-XMI

  3. Evans, A., France, R., Lano, K., Rumpe, B.: The UML as a formal modeling notation. In: Bézivin, J., Muller, P.-A. (eds.) UML 1998. LNCS, vol. 1618, pp. 336–348. Springer, Heidelberg (1999). https://doi.org/10.1007/978-3-540-48480-6_26

    Chapter  Google Scholar 

  4. XQuery 3.0: An XML Query Language. http://www.w3.org/TR/xquery-30

  5. XSL Transformations (XSLT). http://www.w3.org/TR/xslt

  6. Meta Object Facility™ (MOF™) 2.0 Query/View/Transformation™ (QVT™). http://www.omg.org/spec/QVT/index.htm

  7. Efrizoni, L., Informatika, T., Wan-Kadir, W.M.N., Mohamad, R.: Formalization of UML class diagram using description logics. In: 2010 International Symposium on Information Technology, Kuala Lumpur, vol. 3, pp. 1168–1173 (2010). https://doi.org/10.1109/ITSIM.2010.5561621

  8. Schmitt, P.H.: UML and It’s Meaning (2003). https://formal.iti.kit.edu/beckert/teaching/Spezifikation-SS04/skriptum-schmitt.pdf

  9. Beckert, B., Keller, U., Schmitt, P.H.: Translating the object constraint language into first-order predicate logic. In: Proceedings, VERIFY, Workshop at Federated Logic Conferences (FLoC), pp. 113–123 (2001)

    Google Scholar 

  10. Kerkouche, E., Chaoui, A.A., Bourennane, E.B., Labbani, O.: A UML and colored petri nets integrated modeling and analysis approach using graph transformation. J. Obj. Technol. 9(4), 25–43 (2010). https://doi.org/10.5381/jot.2010.9.4.a2

    Article  Google Scholar 

  11. Rahmoune, Y., Chaoui, A., Kerkouche, E.: A framework for modeling and analysis UML activity diagram using graph transformation. Procedia Comput. Sci. 56, 612–617 (2015). https://doi.org/10.1016/j.procs.2015.07.261

    Article  Google Scholar 

  12. Kerievsky, J.: Refactoring to Patterns. Addison-Wesley Professional, Boston (2004)

    Book  Google Scholar 

  13. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (2000)

    MATH  Google Scholar 

  14. Martin, R., Martin, M.: Agile Principles, Patterns, and Practices in C#. Pearson Education, Boston (2007)

    Google Scholar 

  15. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: abstraction and reuse of object-oriented design. In: Nierstrasz, O.M. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 406–431. Springer, Heidelberg (1993). https://doi.org/10.1007/3-540-47910-4_21

    Chapter  Google Scholar 

  16. Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: trends, techniques and applications. ACM Comput. Surv. 45(1), 11 (2012). https://doi.org/10.1145/2379776.2379787

    Article  Google Scholar 

  17. Amoui, M., Mirarab, S., Ansari, S., Lucas, C.: A genetic algorithm approach to design evolution using design pattern transformation. Int. J. Inf. Technol. Intell. Comput. 1(2), 235–244 (2006)

    Google Scholar 

  18. Bowman, M., Briand, L.C., Labiche, Y.: Solving the class responsibility assignment problem in object-oriented analysis with multi-objective genetic algorithms. IEEE Trans. Softw. Eng. 36(6), 817–837 (2010). https://doi.org/10.1109/TSE.2010.70

    Article  Google Scholar 

  19. Hadaytullah, Vathsavayi, S., Räihä, O., Koskimies, K.: Tool support for software architecture design with genetic algorithms. In: 2010 Fifth International Conference on Software Engineering Advances, Nice, pp. 359–366 (2010). https://doi.org/10.1109/ICSEA.2010.61

  20. Lutz, R.: Evolving good hierarchical decompositions of complex systems. J. Syst. Arch. 47(7), 613–634 (2001). https://doi.org/10.1016/S1383-7621(01)00019-4

    Article  Google Scholar 

  21. Simons, C.L., Parmee, I.C.: Single and multi-objective genetic operators in object-oriented conceptual software design. In: Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation (GECCO 2006), pp. 1957–1958. Association for Computing Machinery, New York (2006). https://doi.org/10.1145/1143997.1144324

  22. Deryugina, O.: Improving the structural quality of UML class diagrams with the genetic algorithm. ITM Web Conf. 6, 03003 (2016). https://doi.org/10.1051/itmconf/20160603003

    Article  Google Scholar 

  23. O’Keeffe, M., Cinnéide, M.O.: Towards automated design improvement through combinatorial optimisation. In: Workshop on Directions in Software Engineering and Environments (WoDiSEE 2004), 26th International Conference on Software Engineering, Edinburgh, UK, pp. 75–82 (2004). https://doi.org/10.1049/ic:20040214

  24. O’Keeffe, M., Cinnéide, M.O.: Search-based refactoring for software maintenance. J. Syst. Softw. 81(4), 502–516 (2008). https://doi.org/10.1016/j.jss.2007.06.003

    Article  Google Scholar 

  25. Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y., Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: Proceedings. 6th International Workshop on Program Comprehension. IWPC 1998 (Cat. No. 98TB100242), Ischia, Italy, pp. 45–52 (1998). https://doi.org/10.1109/WPC.1998.693283

  26. Deryugina, O.A., Nikulchev, E.V.: Software tool for automated UML class diagram refactoring using given quality criteria. Cybern. Program. 1, 107–118 (2017). https://doi.org/10.7256/2306-4196.2017.1.21934

    Article  Google Scholar 

  27. Clang: a C language family frontend for LLVM. http://clang.llvm.org

  28. Ryadchikov, I., et al.: Development of robotic mobile platform with the universal chassis system. IOP Conf. Ser. Mater. Sci. Eng. 312(1), 012021 (2018). https://doi.org/10.1088/1757-899X/312/1/012021

    Article  Google Scholar 

Download references

Acknowledgements

The work results were used within framework of the state task of the Russian Ministry of Education and Science, project No. 8.2321.2017 “Development and adaptation of control systems for compensation of dynamic deflecting effects on mobile objects in a state of dynamic equilibrium”.

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Deryugina, O., Nikulchev, E. (2021). Methods, Algorithms and Software for the UML Class Diagram Refactoring. In: Sukhomlin, V., Zubareva, E. (eds) Modern Information Technology and IT Education. SITITO 2017. Communications in Computer and Information Science, vol 1204. Springer, Cham. https://doi.org/10.1007/978-3-030-78273-3_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-78273-3_18

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-78272-6

  • Online ISBN: 978-3-030-78273-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics