Automatic Refactoring of Single and Multiple-view UML Models using Artificial Intelligence Algorithms

Abdulrahman Baqais, Mohammad Alshayeb


Refactoring tends to improve the internal structure of the software while preserving its behaviour(Fowler and Beck, 1999). This process attempts to reduce the complexity of the software and cut its maintaince cost(Mens and Tourwe, 2004) promoting its quality status(Alshayeb, 2009) . The majority of articles that discuss software refactoring are focusing on software code (Fowler and Beck, 1999, O'Keeffe and Cinnéide, 2008, Alkhalid et al., 2011b). Recently, a slight increase in the interest of refactoring at the design level emerged (Misbhauddin and Alshayeb, accepted 2013). Different methods have been applied to refactor UML diagrams namely: pattern-based (Song et al., 2002a), formal rules (Massoni et al., 2005) and graph transformation (Mens, 2006). Refactoring UML diagrams is favorable since designing activity precedes coding and as such abnormalities, ill-structure or potential bugs can be detected and corrected early (Sunyé et al., 2001). Each UML diagram has different design smells and requires different refactoring operations. From the various approaches to perform UML refactoring, there are very few targeted the advantatges, transperancy and performance that Artificial Intelligence(AI) techniques might import to the refactoring proces (Ghannem et al., 2013). Some of the issues when applying AI techinques for model refactoring (design-level refactoring) include: encoding method and selection of the right algorithm . Refactoring UML design smells for each diagram manually exhibits some drawbacks such as: it’s costly in terms of cost and time and it requires domain experts. Automating the refactoring process surely will save time and cost and will help software practitioners to improve their designs. Most of the other refactoring approaches are carried out on single instances of UML diagrams. In this research, we are extending the field by applying AI refactoring on a multiple-view UML model and comparing the results with individual UML diagrams. This will show the advantages of adopting multiple-view refactoring. The overall aim of this research is to “refactor UML models by providing the user with a set of AI techniques, that utilize software metrics and refactoring operations, to produce refactoring sequences that improve quality”.


  1. Aldallal, J. 2014. Identifiying Refactoring opportunities in object-oriented code: a systematic literature review. Information and software technology.
  2. Alkhalid, A., Alshayeb, M. & Mahmoud, S. 2010. Software Refactoring at the function level using new adaptive k-nearest neighbor algorithm. Advances in engineering software, 41, 1160-1178.
  3. Alkhalid, A., Alshayeb, M. & Mahmoud, s. A. 2011a. Software refactoring at the class level using clustering techniques [online]. [accessed].
  4. Alkhalid, A., Alshayeb, M. & Mahmoud, s. A. 2011b. Software refactoring at the package level using clustering techniques. IET software, 5, 276-284.
  5. Alshayeb, M. 2009. Empirical investigation of refactoring effect on software quality. Information and software technology, 51, 1319-1326.
  6. Cortellessa, V., Marco, A. D., Eramo, R., Pierantonio, A. & Trubiani, C. 2010. Digging into UML models to remove performance antipatterns. Proceedings of the 2010 icse workshop on quantitative stochastic models in the verification and design of software systems. Cape town, south africa: acm.
  7. Dae-kyoo, K. Year. Software quality improvement via pattern-based model refactoring. In: high assurance systems engineering symposium, 2008. Hase 2008. 11th ieee, 3-5 dec. 2008 2008. 293-302.
  8. El-attar, M. & Miller, J. 2010. Improving the quality of use case models using Antipatterns. Software & systems modeling, 9, 141-160.
  9. Fowler, M. 2013. Catalog of Refactorings [online]. Available: [accessed 21-oct-2014 2014].
  10. Fowler, M. & beck, k. 1999. Refactoring: improving the design of existing code, reading, ma, addison-wesley professional.
  11. Fowler, S. W., Lawrence, T. B. & Morse, E. A. 2004. Virtually embedded ties. Journal of management, 30, 647-666.
  12. Ghannem, A., Boussaidi, G. E. & Kessentini, M. 2013. Model refactoring using interactive genetic algorithm. In: ruhe, g. & zhang, y. (eds.) Search based software engineering. Springer berlin heidelberg.
  13. Ghannem, A., Kessentini, M. & el Boussaidi, G. Year. Detecting model refactoring opportunities using heuristic search. In, 2011 2011. Riverton, nj, usa: ibm corp., 175-187.
  14. Issa, A. A. 2007. Utilising refactoring to restructure usecase models. Lecture notes in engineering and computer science.
  15. Jensen, A. C. & Cheng, B. H. C. Year. On the use of genetic programming for automated refactoring and the introduction of design patterns. In, 2010 2010. New york, ny, usa: acm, 1341-1348.
  16. Kessentini, M., Kessentini, W., Sahraoui, H., Boukadoum, M. & Ouni, A. Year. Design defects detection and correction by example. In: 2011 IEEE 19th international conference on program comprehension (icpc), 2011/06// 2011. 81-90.
  17. Khan, Y. & El-Attar, M. 2014. Using model transformation to refactor use case models based on antipatterns. Information systems frontiers, 1-34.
  18. Koc, E., Ersoy, N., Andac, A., Camlidere, Z. S., Cereci, i. & Kilic, H. 2012. An empirical study about searchbased refactoring using alternative multiple and population-based search techniques. In: gelenbe, e., lent, r. & Sakellari, g. (eds.) Computer and information sciences ii. Springer London.
  19. Liu, H., Ma, Z., Zhang, L. & Shao, W. Year. Detecting duplications in sequence diagrams based on suffix trees. In: software engineering conference, 2006. Apsec 2006. 13th asia pacific, 2006. IEEE, 269-276.
  20. Llano, M. T. & Pooley, R. Year. UML specification and correction of object-oriented anti-patterns. In: software engineering advances, 2009. Icsea'09. Fourth international conference on, 2009. IEEE, 39-44.
  21. Massoni, T., Gheyi, R. & Borba, P. Year. Formal refactoring for uml class diagrams. In, 2005 2005. 152-167.
  22. Mel, #211, Cinn, #233, Ide, Tratt, L., Harman, M., Counsell, S. & Moghadam, I. H. 2012. Experimental assessment of software metrics using automated refactoring. Proceedings of the Acm-IEEE international symposium on empirical software engineering and measurement. Lund, sweden: Acm.
  23. Mens, T. 2006. On the use of graph transformations for model refactoring. In: lämmel, r., saraiva, j. & visser, j. (eds.) Generative and transformational techniques in software engineering. Springer berlin heidelberg.
  24. Mens, T. & Tourwe, T. 2004. A survey of software refactoring. IEEE transactions on software engineering, 30, 126-139.
  25. Misbhauddin, M. 2012. Toward an integarted metamodel based approach for software refactoring.
  26. Misbhauddin, M. & Alshayeb, M. 2015. Uml model refactoring: a systematic literature review. Empirical softw. Engg., 20, 206-251.
  27. O'keeffe, M. & Cinnéide, m. Ó. 2008. Search-based refactoring: an empirical study. Journal of software Maintenance and evolution: research and practice, 20, 345-364.
  28. Opdyke, w. F. 1992. Refactoring object-oriented frameworks.
  29. Ren, S., Rui, K. & Butler, G. 2003. Refactoring the scenario specification: a message sequence chart approach. In: konstantas, d., léonard, m., pigneur, y. & patel, s. (eds.) Object-oriented information systems. Springer berlin heidelberg.
  30. Rui, K. & Butler, g. 2003. Refactoring Use case models: the metamodel. Proceedings of the 26th australasian computer science conference - volume 16. Adelaide, australia: australian computer society, inc.
  31. Song, E., France, R. B., Kim, D.-K. & Ghosh, S. Year. Using roles for pattern-based model refactoring. In: proceedings of the workshop on critical systems development with uml (csduml'02), 2002a.
  32. Song, E., France, R. B., kim, D.-k. & Ghosh, S. Year. Using roles for pattern-based model refactoring. In, 2002 2002b.
  33. Sunyé, G., Pollet, D., Traon, Y. L. & Jézéquel, J.-M. 2001. Refactoring uml models. In: gogolla, m. & kobryn, c. (eds.) «uml» 2001 - the unified modeling language. Modeling languages, concepts, and tools. Springer berlin heidelberg.
  34. Yu, W., Jun, L. & Butler, G. Year. Refactoring use case models on episodes. In: automated software engineering, 2004. Proceedings. 19th international conference on, 20-24 sept. 2004 2004. 328-335.

Paper Citation

in Harvard Style

Baqais A., Baqais A., Alshayeb M. and Alshayeb M. (2016). Automatic Refactoring of Single and Multiple-view UML Models using Artificial Intelligence Algorithms . In Doctoral Consortium - DCMODELSWARD, (MODELSWARD 2016) ISBN , pages 3-8

in Bibtex Style

author={Abdulrahman Baqais and Abdulrahman Baqais and Mohammad Alshayeb and Mohammad Alshayeb},
title={Automatic Refactoring of Single and Multiple-view UML Models using Artificial Intelligence Algorithms},
booktitle={Doctoral Consortium - DCMODELSWARD, (MODELSWARD 2016)},

in EndNote Style

JO - Doctoral Consortium - DCMODELSWARD, (MODELSWARD 2016)
TI - Automatic Refactoring of Single and Multiple-view UML Models using Artificial Intelligence Algorithms
SN -
AU - Baqais A.
AU - Baqais A.
AU - Alshayeb M.
AU - Alshayeb M.
PY - 2016
SP - 3
EP - 8
DO -