Skip to main content
Log in

Multi-view refactoring of class and activity diagrams using a multi-objective evolutionary algorithm

  • Published:
Software Quality Journal Aims and scope Submit manuscript


To improve the quality of software systems, one of the widely used techniques is refactoring defined as the process of improving the design of an existing system by changing its internal structure without altering the external behavior. The majority of existing refactoring work focuses mainly on the source code level. The suggestion of refactorings at the model level is more challenging due to the difficulty to evaluate: (a) the impact of the suggested refactorings applied to a diagram on other related diagrams to improve the overall system quality, (b) their feasibility, and (c) interdiagram consistency. We propose, in this paper, a novel framework that enables software designers to apply refactoring at the model level. To this end, we used a multi-objective evolutionary algorithm to find a trade-off between improving the quality of class and activity diagrams. The proposed multi-objective approach provides a multi-view for software designers to evaluate the impact of suggested refactorings applied to class diagrams on related activity diagrams in order to evaluate the overall quality, and check their feasibility and behavior preservation. The statistical evaluation performed on models extracted from four open-source systems confirms the efficiency of our approach.

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


  • Arcelli, D., Cortellessa, V., & Trubiani, C. (2012). Antipattern-based model refactoring for software performance improvement. In QoSA, pp. 33–42.

  • Arendt, T., & Taentzer, G. (2013). A tool environment for quality assurance based on the Eclipse modeling framework. Automated Software Engineering, 20(2), 141–184.

    Article  Google Scholar 

  • Bansiya, J., & Davis, C. G. (2002). A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering, 28(1), 4–17.

    Article  Google Scholar 

  • Biermann, E., Ehrig, K., Köhler, C., Kuhns, G., Taentzer, G., & Weiss, E. (2006). Graphical definition of in-place transformations in the Eclipse modeling framework. In MoDELS’06. LNCS (Vol. 4199, pp. 425–439). Springer.

  • Bock, Conrad. (2003). UML 2 activity and action models, Part 2: Actions. Journal of Object Technology, 2(5), 41–56.

    Article  Google Scholar 

  • Boger, M., Sturm, T., & Fragemann, P. (2002). Refactoring browser for UML. In NetObjectDays’02. LNCS (Vol. 2591, pp. 366–377). Springer.

  • Bottoni, P., Parisi-Presicce, F., & Taentzer, G. (2003). Specifying integrated refactoring with distributed graph transformations. In AGTIVE 2003, pp. 220–235.

  • Cardoso, J., Mendling, J., Neumann, G., & Reijers, H. A. (2006). A discourse on complexity of process models. In BPM Workshops.

  • Cicchetti, A., Ruscio, D. D., & Pierantonio, A. (2009). Managing dependent changes in coupled evolution. In ICMT’09. LNCS (Vol. 5563, pp. 35–51). Springer.

  • Cohen, J. (1988). Statistical power analysis for the behavioral sciences. Mahwah: Lawrence Erlbaum Associates.

    MATH  Google Scholar 

  • Correa, A., & Werner, C. (2004). Applying refactoring techniques to UML/OCL models. In Proceedings of Int’l Conference UML 2004. LNCS (Vol. 3273, pp. 173–187). Springer.

  • Crane, M. L., & Dingel, J. (2008). Towards a formal account of a foundational subset for executable UML models. In Model driven engineering languages and systems (pp. 675–689). BerlIn Springer.

  • Deb, K., Pratap, A., Agarwal, S., & Meyarivan, T. (2002). A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, 6, 182–197.

    Article  Google Scholar 

  • Eramo, R., Pierantonio, A., Romero, J. R., & Vallecillo, A. (2008). Change management in multiviewpoint systems using ASP. In WODPEC’08. IEEE.

  • Fenton, N., & Pfleeger, S. L. (1997). Software metrics: A rigorous and practical approach. London, UK: International Thomson Computer Press.

    Google Scholar 

  • Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring: Improving the design of existing code. Boston, MA: Addison-Wesley. ISBN: 0-201-48567-2.

    Google Scholar 

  • France, R. B., Ghosh, S., Song, E., & Kim, D.-K. (2003). A metamodeling approach to pattern-based model refactoring. IEEE Software, 20(5), 52–58.

    Article  Google Scholar 

  • Ghannem, A., El Boussaidi, G., & Kessentini, M. (2013). Model refactoring using interactive genetic algorithm. In G. Ruhe & Y. Zhang (Eds.), Search based software engineering (pp. 96–110). Berlin, Heidelberg: Springer.

    Chapter  Google Scholar 

  • Goldberg, D. E. (1989). Genetic algorithms in search, optimization and machine learning. Boston: Addison-Wesley Longman Publishing Co., Inc.

    MATH  Google Scholar 

  • Grundy, J., Hosking, J., & Mugridge, W. B. (1998). Inconsistency management for multiple-view software development environments. IEEE Transactions on Software Engineering, 24(11), 960–981.

    Article  Google Scholar 

  • Harman, M., & Tratt, L. (2007). Pareto optimal search based refactoring at the design level. In Proceedings of the 9th annual conference on genetic and evolutionary computation (pp. 1106–1113). ACM, 2007.




  • Kessentini, M., Kessentini, W., Sahraoui, H., Boukadoum, M., & Ouni, A. (2011). Design defects detection and correction by example, In 19th IEEE ICPC11 (pp. 81–90), Kingston, Canada.

  • Kolovos, D. S., Paige, R. F., Polack, F., & Rose, L. M. (2007). Update transformations in the small with the Epsilon wizard language. JOT, 6(9), 53–69.

    Article  Google Scholar 

  • Ma, H., Shao, W., Zhang, L., Ma, Z., & Jiang, Y. (2004). Applying OO metrics to assess UML meta-models. In «UML» 2004—The Unified Modeling Language. Modeling Languages and Applications (pp. 12–26). Berlin, Heidelberg: Springer.

  • Markovic, S., & Baar, T. (2008). Refactoring OCL annotated UML class diagrams. Software and Systems Modeling, 7(1), 25–47.

    Article  Google Scholar 

  • Mens, T. (2006). On the use of graph transformations for model refactoring. In Generative and transformational techniques in software engineering. LNCS (Vol. 4143, pp. 219–257). Springer.

  • Mens, T., Taentzer, G., & Müller, D. (2007a). Challenges in model refactoring. In Proceedings of 1st workshop on refactoring tools. University of Berlin.

  • Mens, T., Taentzer, G., & Runge, O. (2007b). Analyzing refactoring dependencies using graph transformation. Journal on Software and Systems Modeling, 6, 269.

    Article  Google Scholar 

  • Mens, T., & Tourwé, T. (2004). A survey of software refactoring. IEEE Transactions on Software Engineering, 30(2), 126–139.

    Article  Google Scholar 

  • Moghadam, I. H., & Cinneide, M. O. (2012). Automated refactoring using design differencing. In Software maintenance and reengineering (CSMR), 2012 16th European conference on (pp. 43–52). IEEE.

  • Moha, N., Mahé, V., Barais, O., & Jézéquel, J. M. (2009). Generic model refactorings. In Model driven engineering languages and systems (pp. 628–643). Berlin, Heidelberg: Springer.

  • Mohamed, M., Romdhani, M., & Ghédira, K. (2009). Classification of model refactoring approaches. JOT, 8(6), 143–158.

    Article  Google Scholar 

  • Ó Cinnéide, M., Tratt, L., Harman, M., Counsell, S., & Hemati Moghadam, I. (2012, September). Experimental assessment of software metrics using automated refactoring. In Proceedings of the ACM-IEEE international symposium on empirical software engineering and measurement (pp. 49–58). ACM.

  • Porres, I. (2005). Rule-based update transformations and their application to model refactorings. Software and Systems Modeling, 4(4), 368–385.

    Article  Google Scholar 

  • Rachmawati, L., & Srinivasan, D. (2009). Multiobjective evolutionary algorithm with controllable focus on the knees of the pareto front. IEEE Transactions on Evolutionary Computation, 13(4), 810–824.

    Article  Google Scholar 

  • Ráth, I., Varró, G., & Varró, D. (2009). Change-driven model transformations. In MODELS’09. LNCS (Vol. 5795, pp. 342–356). Springer.

  • Reimann, J., Seifert, M., & Aßmann, U. (2010). Role-based generic model refactoring. In Model driven engineering languages and systems (pp. 78–92). Berlin, Heidelberg: Springer.

  • Sjøberg, D. I. K., Yamashita, A. F., Anda, B. C. D., Mockus, A., & Dybå, T. (2013). Quantifying the effect of code smells on maintenance effort. IEEE Transactions on Software Engineering, 39(8), 1144–1156.

    Article  Google Scholar 

  • Steimann, F. (2011). Constraint-based model refactoring. In Model driven engineering languages and systems (pp. 440–454). Berlin, Heidelberg: Springer

  • Sun, W., France, R. B., & Ray, I. (2013). Analyzing behavioral refactoring of class models. In ME@MoDELS 2013, pp. 70–79.

  • Sunye, G., et al. (2001). Refactoring UML models. In Proceedings of UML.

  • Sunyé, G., Pollet, D., Traon, Y. L., & Jézéquel, J. M. (2001). Refactoring UML models. In UML’01. LNCS, Vol. 2185 (pp. 134–148). Springer.

  • Van Der Straeten, R., Jonckers, V., & Mens, T. (2004). Supporting model refactorings through behaviour inheritance consistencies, In UML. LNCS, Vol. 3273 (pp. 305–319), Springer.

  • Van Gorp, P., Stenten, H., Mens, T., & Demeyer, S. (2003). Towards automating source-consistent UML refactorings, In UML. LNCS, Vol. 2863 (pp. 144–158). Heidelberg: Springer.

  • Van Kempen, M., Chaudron, M., Koudrie, D., & Boake, A. (2005). Towards proving preservation of behaviour of refactoring of UML models. In Proceedings of SAICSIT 2005, pp. 111–118.

  • von Pilgrim, J., Ulke, B., Thies, A., & Steimann, F. (2013). Model/code co-refactoring: An MDE approach. In ASE, pp. 682–687.

  • Wimmer, M., Moreno, N., & Vallecillo, A. (2012). Viewpoint co-evolution through coarse-grained changes and coupled transformations. TOOLS, 50, 336–352.

    Google Scholar 

  • Zhang, J., Lin, Y., & Gray, J. (2005). Generic and domain-specific model refactoring using a model transformation engine. In Model-driven software development—research and practice in software engineering (pp. 199–217). Springer.

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Marouane Kessentini.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Mansoor, U., Kessentini, M., Wimmer, M. et al. Multi-view refactoring of class and activity diagrams using a multi-objective evolutionary algorithm. Software Qual J 25, 473–501 (2017).

Download citation

  • Published:

  • Issue Date:

  • DOI: