Skip to main content
Log in

UML model refactoring: a systematic literature review

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

Model-driven engineering, an emerging trend in software engineering, has enabled the use of refactoring to UML models. Numerous approaches to model refactoring, problem detection, consistency management, and tool support to automate and verify refactoring are discussed and distributed across numerous research literatures. This paper provides a systematic overview of existing research in the field of model refactoring. A total of 3,295 articles, related to the field of UML model refactoring, were extracted from well-known electronic databases. A multi-stage selection process was used to ensure proper inclusion of relevant studies for review and analysis. Ninety-four primary studies were eventually selected and analyzed based on a number of different criteria: UML models considered for refactoring, formalisms used to support refactoring at the model level, important to consider when building refactoring tool support, and the effect of refactoring on model quality. The results of this review indicate that UML model refactoring is a highly active area of research. Quite a few quality techniques and approaches have been proposed in this area, but it still has some important open issues and limitations to be addressed in future work.

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

Similar content being viewed by others

References

  • AGG (2011) The attributed graph grammar system. Technische Universität, Berlin

    Google Scholar 

  • Ahmed M (2011) Towards the development of integrated reuse environments for UML artifacts. In: The Sixth International Conference on Software Engineering Advances

  • Akiyama M, Hayashi S, Kobayashi T, Saeki M (2011) Supporting design model refactoring for improving class responsibility assignment. In: Whittle J, Clark T, Kühne T (eds) Model driven engineering languages and systems, vol 6981. Lecture Notes in Computer Science. Springer, Berlin, pp 455–469. doi:10.1007/978-3-642-24485-8_33

    Chapter  Google Scholar 

  • Al Dallal J, Briand LC (2010) An object-oriented high-level design-based class cohesion metric. Inf Softw Technol 52(12):1346–1361. doi:10.1016/j.infsof.2010.08.006

    Article  Google Scholar 

  • Ambler SW (2005) The elements of UML 2.0 Style. Cambridge University Press, New York

    Book  Google Scholar 

  • Amelunxen C, Schürr A (2008) Formalising model transformation rules for UML/MOF 2. IET Softw 2(3):204–222

    Article  Google Scholar 

  • Arendt T, Taentzer G (2012) Integration of smells and refactorings within the Eclipse modeling framework. In: Proceedings of the Fifth Workshop on Refactoring Tools, Rapperswil, Switzerland

  • Arisholm E, Briand LC, Hove SE, Labiche Y (2006) The impact of UML documentation on software maintenance: an experimental evaluation. IEEE Trans Softw Eng 32(6):365–381. doi:10.1109/TSE.2006.59

    Article  Google Scholar 

  • Baader F, Calvanese D, McGuinness D, Nardi D, Patel-Schneider P (2003) The description logic handbook: theory, implementation and applications. Cambridge University Press, Cambridge

    MATH  Google Scholar 

  • Baar T, Marković S (2007) A graphical approach to prove the semantic preservation of UML/OCL refactoring rules. In: Virbitskaite I, Voronkov A (eds) Perspectives of systems informatics, vol 4378. Lecture Notes in Computer Science. Springer, Berlin, pp 70–83. doi:10.1007/978-3-540-70881-0_9

    Chapter  Google Scholar 

  • Bansiya J, Davis CG (2002) A hierarchical model for object-oriented design quality assessment. IEEE Trans Softw Eng 28(1):4–17

    Article  Google Scholar 

  • Barbosa LS, Sun M (2008) UML model refactoring as refinement: a coalgebraic perspective. In: 10th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing

  • Bieman JM, Kang B-K (1995) Cohesion and reuse in an object-oriented system. SIGSOFT Softw Eng Notes 20(SI):259–262. doi:10.1145/223427.211856

    Article  Google Scholar 

  • Bisztray D, Heckel R, Ehrig H (2008) Verification of architectural refactorings by rule extraction. In: Fiadeiro J, Inverardi P (eds) Fundamental approaches to software engineering, vol 4961, Lecture Notes in Computer Science. Springer, Berlin, pp 347–361. doi:10.1007/978-3-540-78743-3_26

    Chapter  Google Scholar 

  • Bisztray D, Heckel R, Ehrig H (2009) Compositional verification of architectural refactorings. In: Lemos R, Fabre J-C, Gacek C, Gadducci F, Beek M (eds) Architecting dependable systems VI, vol 5835. Lecture Notes in Computer Science. Springer, Berlin, pp 308–333. doi:10.1007/978-3-642-10248-6_13

    Chapter  Google Scholar 

  • Boger M, Sturm T, Fragemann P (2003) Refactoring browser for UML. In: Aksit M, Mezini M, Unland R (eds) Objects, components, architectures, services, and applications for a networked world, vol 2591. Lecture Notes in Computer Science. Springer, Berlin, pp 366–377. doi:10.1007/3-540-36557-5_26

    Chapter  MATH  Google Scholar 

  • Bottoni P, Presicce F, Taentzer G (2004) Specifying integrated refactoring with distributed graph transformations. In: Pfaltz J, Nagl M, Böhlen B (eds) Applications of graph transformations with industrial relevance, vol 3062. Lecture Notes in Computer Science. Springer, Berlin, pp 220–235. doi:10.1007/978-3-540-25959-6_16

    Chapter  Google Scholar 

  • Bottoni P, Parisi-Presicce F, Taentzer G (2005) Specifying coherent refactoring of software artefacts with distributed graph transformations. In: van Bommel P (ed) Transformation of knowledge, information and data: theory and applications. Information Science Publishing, Hershey

    MATH  Google Scholar 

  • Bouhours C, Leblanc H, Percebois C (2009) Bad smells in design and design patterns. J Object Technol 8(3):43–63. doi:10.5381/jot.2009.8.3.c5

    Article  Google Scholar 

  • Brambilla M, Cabot J, Wimmer M (2012) Model-driven software engineering in practice. Synthesis Lectures on Software Engineering. Morgan and Claypool

  • Brookes SD, Hoare CAR, Roscoe AW (1984) A theory of communicating sequential processes. J ACM 31(3):560–599

    Article  MathSciNet  MATH  Google Scholar 

  • Brown WJ, Malveau RC, Brown WH, McCormick HW III, Mowbray TJ (1998) AntiPatterns: refactoring software architectures and projects in crisis, 1st edn. John Wiley and Sons, Hoboken

    Google Scholar 

  • Burmester S, Giese H, Niere J, Tichy M, Wadsack JP, Wagner R, Wendehals L, Zündorf A (2004) Tool integration at the meta-model level: the Fujaba approach. STTT 6(3):203–218. doi:10.1007/s10009-004-0155-8

    Article  Google Scholar 

  • Butler G, Xu L (2001) Cascaded refactoring for framework. SIGSOFT Softw Eng Notes 26(3):51–57. doi:10.1145/379377.375239

    Article  Google Scholar 

  • Chen J, Wang Z, Chen B, Qian S (2009) Towards a model refactoring conflict resolution algorithm. 1st International Conference on Information Science and Engineering:5439–5442. doi:10.1109/icise.2009.1316

  • Christoph A (2005) Describing horizontal model transformations with graph rewriting rules. In: Aßmann U, Aksit M, Rensink A (eds) Model Driven Architecture, vol 3599. Lecture Notes in Computer Science. Springer, Berlin, pp 901–901. doi:10.1007/11538097_7

  • Correa A, Werner C (2004) Applying refactoring techniques to UML/OCL models. In: Baar T, Strohmeier A, Moreira A, Mellor S (eds) The unified modeling language. Modelling languages and applications, vol 3273. Lecture Notes in Computer Science. Springer, Berlin, pp 173–187. doi:10.1007/978-3-540-30187-5_13

    Chapter  Google Scholar 

  • Correa A, Werner C (2007) Refactoring object constraint language specifications. Softw Syst Model 6(2):113–138. doi:10.1007/s10270-006-0023-y

    Article  Google Scholar 

  • Correa A, Werner C, Barros M (2007) An empirical study of the impact of OCL smells and refactorings on the understandability of OCL specifications. In: Engels G, Opdyke B, Schmidt D, Weil F (eds) Model driven engineering languages and systems, vol 4735. Lecture Notes in Computer Science. Springer, Berlin, pp 76–90. doi:10.1007/978-3-540-75209-7_6

    Chapter  Google Scholar 

  • Correa A, Werner C, Barros M (2009) Refactoring to improve the understandability of specifications written in object constraint language. IET Softw 3(2):69–90. doi:10.1049/iet-sen.2008.0022

    Article  Google Scholar 

  • Cruz-Lemus J, Genero M, Piattini M, Toval A (2005) An empirical study of the nesting level of composite states within UML statechart diagrams. In: Akoka J, Liddle S, Song I-Y et al (eds) Perspectives in conceptual modeling, vol 3770. Lecture Notes in Computer Science. Springer, Berlin, pp 12–22. doi:10.1007/11568346_3

    Chapter  Google Scholar 

  • Czarnecki K, Helsen S (2003) Classification of model transformation approaches. In: Workshop on Generative Techniques in the Context of Model-Driven Architecture. Object Oriented Programming, Systems, Languages and Applications

  • Dao M, Huchard M, Rouane Hacene M, Roume C, Valtchev P (2006) Towards practical tools for mining abstractions in UML models. In: 8th International Conference on Enterprise Information Systems, Paphos, Cyprus

  • de Moura L, Owre S, Rueß H, Rushby J, Shankar N, Sorea M, Tiwari A (2004) SAL 2. In: Alur R, Peled D (eds) Computer aided verification, vol 3114. Lecture Notes in Computer Science. Springer, Berlin, pp 251–254. doi:10.1007/978-3-540-27813-9_45

    Chapter  Google Scholar 

  • Demirezen Z, Topaloglu NY (2006) A refactoring tool for design patterns with model transformations. In: Prinz A, Tveit MS (eds) Proceedings of the The 4th Nordic Workshop on UML and Software Modelling, Grimstad, Norway

  • Derrick J, Wehrheim H (2006) Model transformations incorporating multiple views. In: Johnson M, Vene V (eds) Algebraic methodology and software technology, vol 4019. Lecture Notes in Computer Science. Springer, Berlin, pp 111–126. doi:10.1007/11784180_11

    Chapter  Google Scholar 

  • Derrick J, Wehrheim H (2010) Model transformations across views. Sci Comput Program 75(3):192–210

    Article  MathSciNet  MATH  Google Scholar 

  • Dobrzański Ł, Kuźniarz L (2006) An approach to refactoring of executable UML models. In: Proceedings of the 2006 ACM symposium on Applied computing, Dijon, France

  • Dobrzański Ł, Kuźniarz L (2005) Practical refactoring of executable UML models. Nord J Comput 12(4):343–360

    MATH  Google Scholar 

  • Dybå T, Dingsøyr T (2008) Empirical studies of agile software development: a systematic review. Inf Softw Technol 50(9–10):833–859. doi:10.1016/j.infsof.2008.01.006

    Article  Google Scholar 

  • Dzidek WJ, Arisholm E, Briand LC (2008) A realistic empirical evaluation of the costs and benefits of UML in software maintenance. IEEE Trans Softw Eng 34(3):407–432. doi:10.1109/TSE.2008.15

    Article  Google Scholar 

  • e.Abreu FB, Melo W (1996) Evaluating the impact of object-oriented design on software quality. In: Proceedings of the 3rd International Symposium on Software Metrics: From Measurement to Empirical Results

  • Egyed A (2006) Instant consistency checking for the UML. In: Proceedings of the 28th international conference on Software engineering, Shanghai, China

  • Einarsson HÞ, Neukirchen H (2012) An approach and tool for synchronous refactoring of UML diagrams and models using model-to-model transformations. In: Proceedings of the Fifth Workshop on Refactoring Tools, Rapperswil, Switzerland

  • El-Attar M, Miller J (2010) Improving the quality of use case models using antipatterns. Softw Syst Model 9(2):141–160. doi:10.1007/s10270-009-0112-9

    Article  Google Scholar 

  • El-Sharqwi M, Mahdi H, El-Madah I (2010) Pattern-based model refactoring. In: International Conference on Computer Engineering and Systems (ICCES)

  • Enckevort TV (2009) Refactoring UML models: using openarchitectureware to measure uml model quality and perform pattern matching on UML models with OCL queries. In: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, Orlando, Florida, USA

  • Ermel C, Ehrig H, Ehrig K (2009) Refactoring of model transformations. In: Proceedings of the Eighth International Workshop on Graph Transformation and Visual Modeling Techniques

  • Estler HC, Wehrheim H (2008) Alloy as a refactoring checker? Electron Notes Theor Comput Sci 214:331–357. doi:10.1016/j.entcs.2008.06.015

    Article  MATH  Google Scholar 

  • Estler HC, Ruhroth T, Wehrheim H (2007) Modelchecking correctness of refactorings—some experiments. Electron Notes Theor Comput Sci 187:3–17. doi:10.1016/j.entcs.2006.08.041

    Article  Google Scholar 

  • Evans A, France R, Lano K, Rumpe B (1999) The UML as a formal modeling notation. In: Bézivin J, Muller P-A (eds) The unified modeling language. «UML»’98: beyond the notation, vol 1618. Lecture Notes in Computer Science. Springer, Berlin, pp 336–348. doi:10.1007/978-3-540-48480-6_26

    Chapter  Google Scholar 

  • Favre L, Pereira C (2007) Improving MDA-based process quality through refactoring patterns. In: Proceedings of the 1st International Workshop on Software Patterns and Quality

  • Favre L, Pereira C (2008) Formalizing MDA-based refactorings. In: 19th Australian Conference on Software Engineering

  • Fernández-Sáez AM, Genero M, Chaudron MRV (2013) Empirical studies concerning the maintenance of UML diagrams and their use in the maintenance of code: A systematic mapping study. Inf Softw Technol 55(7):1119–1142. doi:10.1016/j.infsof.2012.12.006

    Article  Google Scholar 

  • Folli A, Mens T (2007) Refactoring of UML models using AGG. In: Proceedings of the Third International ERCIM Symposium on Software Evolution

  • Fourati R, Bouassida N, Abdallah H (2011) A metric-based approach for anti-pattern detection in UML designs. In: Lee R (ed) Computer and information science, vol 364. Studies in Computational Intelligence. Springer, Berlin, pp 17–33. doi:10.1007/978-3-642-21378-6_2

    Chapter  Google Scholar 

  • Fowler M, Beck K, Brant J, Opdyke W (1999) Refactoring: improving the design of existing code. Addison-Wesley

  • France RB, Bieman JM (2001) Multi-view software evolution: a UML-based framework for evolving object-oriented software. In: 17th IEEE International Conference on Software Maintenance (ICSM’01)

  • France RB, Ghosh S, Song E, Kim D-K (2003) A metamodeling approach to pattern-based model refactoring, vol 20. IEEE Software, Colorado Springs

    Google Scholar 

  • Fujaba (2011) Fujaba tool suite, vol 5. University of Paderborn, Germany

    Google Scholar 

  • Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Professional Computing Series, Addison Wesley

    MATH  Google Scholar 

  • Garcia J, Popescu D, Edwards G, Medvidovic N (2009) Toward a catalogue of architectural bad smells. In: Mirandola R, Gorton I, Hofmeister C (eds) Architectures for adaptive software systems, vol 5581. Lecture Notes in Computer Science. Springer, Berlin, pp 146–162. doi:10.1007/978-3-642-02351-4_10

    Chapter  Google Scholar 

  • Genero M, Piattini M, Calero C (2002) Empirical validation of class diagram metrics. In: Proceedings. 2002 International Symposium in Empirical Software Engineering, pp 195–203

  • Genero M, Miranda D, Piattini M (2003) Defining metrics for UML statechart diagrams in a methodological way. In: Conceptual Modeling for Novel Application Domains, vol 2814. Lecture Notes in Computer Science. Springer, Berlin, pp 118–128

  • Genero M, Fernández-Sáez AM, Nelson HJ, Poels G, Piattini M (2011) A systematic literature review on the quality of UML models. J Database Manag 22(3):46–70

    Article  Google Scholar 

  • Ghannem A, Kessentini M, El Boussaidi G (2011) Detecting model refactoring opportunities using heuristic search. In: Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research, Toronto, Ontario, Canada

  • Gheyi R, Massoni T, Borba P (2005a) A rigorous approach for proving model refactorings. In: 20th IEEE/ACM International Conference on Automated Software Engineering

  • Gheyi R, Massoni T, Borba P (2005b) Type-safe refactorings for alloy. In: Proceedings of the 8th Brazilian Symposium on Formal Methods, Porto Alegre, Brazil

  • Gronback R (2004) Model validation: applying audits and metrics to UML models. http://conferences.embarcadero.com/jp/article/32089. Accessed May 2012

  • Grunske L, Geiger L, Zündorf A, Eetvelde N, Gorp P, Varró D (2005) Using graph transformation for practical model-driven software engineering. In: Beydeda S, Book M, Gruhn V (eds) Model-driven software development. Springer, Berlin Heidelberg, pp 91–117. doi:10.1007/3-540-28554-7_5

    Chapter  Google Scholar 

  • Heitz C, Thiemann P, Wölfle T (2007) Integration of an action language via UML action semantics. In: Draheim D, Weber G (eds) Trends in enterprise application architecture, vol 4473. Lecture Notes in Computer Science. Springer, Berlin, pp 172–186. doi:10.1007/978-3-540-75912-6_13

    Chapter  Google Scholar 

  • Hermann F, Hülsbusch M, König B (2010) Specification and verification of model transformations. In: International Colloquium on Graph and Model Transformation

  • Hitz M, Montazeri B (1995) Measuring product attributes of object-oriented systems. In: Schäfer W, Botella P (eds) Software engineering—ESEC ’95, vol 989. Lecture Notes in Computer Science. Springer, Berlin, pp 124–136. doi:10.1007/3-540-60406-5_11

    Chapter  Google Scholar 

  • Hoare CAR (1985) Communicating sequential processes. Prentice Hall

  • Hosseini S, Azgomi MA (2008) UML model refactoring with emphasis on behavior preservation. In: Proceedings of the 2008 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering

  • Iivari J (1995) Object-orientation as structural, functional and behavioural modelling: a comparison of six methods for object-oriented analysis. Inf Softw Technol 37(3):155–163

    Article  Google Scholar 

  • Issa A (2007) Utilising refactoring to restructure use-case models. In: Proceedings of International Conference of Information Engineering, London, UK. World Congress of Engineering, pp 523–527

  • Jackson D, Shlyakhter I, Sridharan M (2001) A micromodularity mechanism. SIGSOFT Softw Eng Notes 26(5):62–73. doi:10.1145/503271.503219

    Article  Google Scholar 

  • Jalbani AA, Grabowski J, Neukirchen H, Zeiss B (2009) Towards an integrated quality assessment and improvement approach for UML models. In: Proceedings of the 14th International SDL Conference on Design for Motes and Mobiles, Bochum, Germany

  • Jensen AC, Cheng BHC (2010) On the use of genetic programming for automated refactoring and the introduction of design patterns. In: Proceedings of the 12th Annual Conference on Genetic and Evolutionary Computation, Portland, Oregon, USA

  • Jouault F, Allilaire F, Bézivin J, Kurtev I, Valduriez P (2006) ATL: a QVT-like transformation language. In: Companion to the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications, Portland, Oregon, USA

  • Judson SR, France RB, Carver DL (2004) Supporting rigorous evolution of UML models. In: Ninth IEEE International Conference on Engineering of Complex Computer Systems, pp 128–137

  • Junbing C, Zhijian W, Bo C, Si Q Towards (2009) A model refactoring conflict resolution algorithm. In: 1st International Conference on Information Science and Engineering (ICISE2009). IEEE, pp 5439–5442

  • Kalleberg KT (2007) Abstractions for language-independent program Transformations. Doctoral thesis, University of Bergen, Bergen, Norway

  • Kazato H, Takaishi M, Kobayashi T, Saeki M (2004) Formalizing refactoring by using graph transformation. IEICE Trans Inf Syst E87-D(4):855–867

    Google Scholar 

  • Kempen MV, Chaudron M, Kourie D, Boake A (2005) Towards proving preservation of behaviour of refactoring of UML models. In: Proceedings of the 2005 annual research conference of the South African Institute of Computer Scientists and Information Technologists on IT Research in Developing Countries, White River, South Africa

  • Khan KS, Ter Riet G, Glanville J, Sowden AJ, Kleijnen J (2001) Undertaking systematic review of research on effectiveness, CRD’s guidance for those carrying out or commissioning reviews. NHS Centre for Reviews and Dissemination. University of York, York

    Google Scholar 

  • Kim D-K (2008) Software quality improvement via pattern-based model refactoring. In: 11th IEEE High Assurance Systems Engineering Symposium, pp 293–302

  • Kim H, Boldyreff C (2002) Developing software metrics applicable to UML models. In: 6th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering. 6th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering

  • Kim Y, Doh K-G (2007) The service modeling process based on use case refactoring. In: Abramowicz W (ed) Business information systems, vol 4439. Lecture Notes in Computer Science. Springer, Berlin, pp 108–120. doi:10.1007/978-3-540-72035-5_9

    Chapter  Google Scholar 

  • Kitchenham BA (2007) Guidelines for performing systematic literature reviews in software engineering ver. 2.3. vol EBSE technical report. Keele University and University of Durham, UK

    Google Scholar 

  • Kohler C, Lewin H, Taentzer G (2007) Ensuring containment constraints in graph-based model transformation approaches. In: Margaria T, Padberg J, Taentzer G (eds) Proceedings of the Sixth International Workshop on Graph Transformation and Visual Modeling Techniques. Electronic Communications of the EASST

  • Kovse J, Härder T (2002) Generic XMI-based UML model transformations. In: Bellahsène Z, Patel D, Rolland C (eds) Object-oriented information systems, vol 2425. Lecture Notes in Computer Science. Springer, Berlin, pp 183–190. doi:10.1007/3-540-46102-7_24

    Chapter  Google Scholar 

  • Küster JM (2004) Towards inconsistency handling of object-oriented behavioral models. Electron Notes Theor Comput Sci 109:57–69. doi:10.1016/j.entcs.2004.02.056

    Article  MATH  Google Scholar 

  • Kuzniarz L, Staron M (2007) Two techniques for UML model transformations. Int J Comput Appl 29(1):10–17

    Google Scholar 

  • Lange C (2007) Model size matters. In: Kühne T (ed) Models in software engineering, vol 4364. Lecture Notes in Computer Science. Springer, Berlin, pp 211–216. doi:10.1007/978-3-540-69489-2_26

    Chapter  Google Scholar 

  • Lange CFJ, Chaudron (2005) MRV managing model quality in UML-based software development. In: 13th IEEE International Workshop on Software Technology and Engineering Practice, IEEE Computer Society, pp 7–16

  • Lano K, Clark D (2008) Model transformation specification and verification. In: The Eighth International Conference on Quality Software, pp 45–54

  • Liu H, Ma Z, Zhang L, Shao W (2006) Detecting duplications in sequence diagrams based on suffix trees. In: 13th Asia Pacific Software Engineering Conference, Kanpur, India

  • Llano MT, Pooley R (2009) UML specification and correction of object-oriented anti-patterns. In: Fourth International Conference on Software Engineering Advances, pp 39–44

  • Lucas FJ, Molina F, Toval A (2009) A systematic review of UML model consistency management. Inf Softw Technol 51:1631–1645

    Article  Google Scholar 

  • Lugang X, Butler G (2006) Cascaded refactoring for framework development and evolution. In: Proceedigns of the Australian Software Engineering Conference

  • Maneerat N, Muenchaisri P (2011) Bad-smell prediction from software design model using machine learning techniques. In: Eighth International Joint Conference on Computer Science and Software Engineering

  • Marinescu R (2001) Detecting design flaws via metrics in object-oriented systems. In: Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS ’39), Washington, DC, USA

  • Markovic S, Baar T (2007) Synchronizing refactored UML class diagrams and OCL constraints. In: 1st Workshop on Refactoring Tools, ECOOP07 Conference Workshop

  • Markovic S, Baar T (2008) Refactoring OCL annotated UML class diagrams. Softw Syst Model 7(1):25–47

    Article  Google Scholar 

  • Massoni T, Gheyi R, Borba P (2005) Formal refactoring for UML class diagrams. In: 19th Brazilian Symposium on Software Engineering (SBES)

  • Massoni T, Gheyi R, Borba P (2008) Formal model-driven program refactoring. In: Fiadeiro J, Inverardi P (eds) Fundamental approaches to software engineering, vol 4961. Lecture Notes in Computer Science. Springer, Berlin, pp 362–376. doi:10.1007/978-3-540-78743-3_27

    Chapter  Google Scholar 

  • Massoni T, Gheyi R, Borba P (2011) Synchronizing model and program refactoring. In: Davies J, Silva L, Simao A (eds) Formal methods: foundations and applications, vol 6527. Lecture Notes in Computer Science. Springer, Berlin, pp 96–111. doi:10.1007/978-3-642-19829-8_7

    Chapter  MATH  Google Scholar 

  • Meng S, Barbosa LS (2008) A coalgebraic semantic framework for reasoning about UML sequence diagrams. In: The Eighth International Conference on Quality Software

  • 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, vol 4143. Lecture Notes in Computer Science. Springer, Berlin, pp 219–257. doi:10.1007/11877028_7

    Chapter  Google Scholar 

  • Mens T, Tourwe T (2004) A survey of software refactoring. IEEE Trans Softw Eng 30(2):126–139

    Article  Google Scholar 

  • Mens T, Van Deursen A (2003) Refactoring: emerging trends and open problems. In: Proceedings First International Workshop on REFactoring: Achievements, Challenges, Effects (REFACE)

  • Mens T, Van Gorp P (2006) A taxonomy of model transformation. Electron Notes Theor Comput Sci 152:125–142. doi:10.1016/j.entcs.2005.10.021

    Article  Google Scholar 

  • Mens T, Demeyer S, Janssens D (2002) Formalising behaviour preserving program transformations. In: Corradini A, Ehrig H, Kreowski H-J, Rozenberg G (eds) Graph transformation, vol 2505. Lecture Notes in Computer Science. Springer, Berlin, pp 286–301. doi:10.1007/3-540-45832-8_22

    Chapter  Google Scholar 

  • Mens T, Taentzer G, Müller D (2007a) Challenges in model refactoring. in: international workshop on object-oriented reengineering, Berlin, Germany

  • Mens T, Taentzer G, Runge O (2007b) Analysing refactoring dependencies using graph transformation. Softw Syst Model 6(3):269–285. doi:10.1007/s10270-006-0044-6

    Article  Google Scholar 

  • Mens T, Taentzer G, Müller D (2008) Model-driven software refactoring. In: Model-driven software development: integrating quality assurance. IDEA Group Publishing

  • Mihancea PF, Marinescu R (2005) Towards the optimization of automatic detection of design flaws in object-oriented software systems. In: Ninth European Conference on Software Maintenance and Reengineering

  • Millan T, Sabatier L, Le Thi T-T, Bazex P, Percebois C (2009) An OCL extension for checking and transforming UML models. In: Proceedings of the 8th WSEAS International Conference on Software engineering, parallel and distributed systems,Cambridge, UK

  • Miller J, Mukerji J (2003) MDA Guide Version 1.0.1. 1.0.1 edn

  • Misbhauddin M (2012) Towards an integrated metamodel based approach to software refactoring. King Fahd University of Petroleum and Minerals, Saudi Arabia. http://dl.acm.org/citation.cfm?id=2520700&coll=DL&dl=GUIDE&CFID=367426661&CFTOKEN=40741339

  • Misbhauddin M, Alshayeb M (2013) Extending the UML use case metamodel with behavioral information to facilitate model analysis and interchange. Softw Syst Model:1–26. doi:10.1007/s10270-013-0333-9

  • Moeini A, Rafe V, Mahdian F (2010) An approach to refactoring legacy systems. In: 3rd International Conference on Advanced Computer Theory and Engineering (ICACTE)

  • Moghadam IH, Cinnéide MO (2012) Automated refactoring using design differencing. In: 16th European Conference on Software Maintenance and Reengineering

  • Moha N, Mahé V, Barais O, Jézéquel J-M (2009) Generic model refactorings. In: Schürr A, Selic B (eds) Model driven engineering languages and systems, vol 5795. Lecture Notes in Computer Science. Springer, Berlin, pp 628–643. doi:10.1007/978-3-642-04425-0_50

    Chapter  Google Scholar 

  • Moha N, Gueheneuc YG, Duchien L, Le Meur AF (2010) DECOR: a method for the specification and detection of code and design smells. IEEE Trans Softw Eng 36(1):20–36

    Article  MATH  Google Scholar 

  • Mohamed M, Romdhani M, Ghedira K (2009) Classification of model refactoring approaches. J Object Technol 8(6):121–126. doi:10.5381/jot.2009.8.6.a3

    Article  Google Scholar 

  • Mohamed M, Romdhani M, Ghedira K (2011) M-REFACTOR: a new approach and tool for model refactoring ARPN. J Syst Softw 1(4):117–122

    Google Scholar 

  • Muskens J, Chaudron M, Lange C (2004) Investigations in applying metrics to multi-view architecture models. In: Proceedings of the 30th EUROMICRO Conference

  • Nugroho A, Chaudron MRV (2008) A survey into the rigor of UML use and its perceived impact on quality and productivity. In: Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement, Kaiserslautern, Germany

  • OMG (2001) Review of the response to OMG RFP as/98-11-01 action semantics for the UML

  • OMG (2003) UML 2.0 OCL Specification. Object Management Group

  • OMG (2004) Meta object faacility (MOF) 2.0 query/view/transformation specification. vol ad/04-10-11.

  • OMG (2007) XML Metadata Interchange Specification 2.1.1. vol formal/2007-12-01. Object Management Group

  • OMG (2011) Unified modeling language: superstructure. Version: 2.4.1, vol formal/2011-08-06. Object Management Group

  • Opdyke W (1992) Refactoring object-oriented frameworks. PhD thesis, University of Illinois at Urbana Champaign

  • openArchitectureware.org openArchitectureWare (oAW). http://www.openarchitectureware.org/. Accessed March 2012

  • Petre M (2013) UML in practice. In: 35th International Conference on Software Engineering (ICSE 2013), San Francisco, CA, USA

  • Porres I (2003) Model refactorings as rule-based update transformations. In: Stevens P, Whittle J, Booch G (eds) «UML» 2003 - The unified modeling language. Modeling languages and applications, vol 2863. Lecture Notes in Computer Science. Springer, Berlin, pp 159–174. doi:10.1007/978-3-540-45221-8_16

    Chapter  Google Scholar 

  • Porres I (2005) Rule-based update transformations and their application to model refactorings. Softw Syst Model 4(4):368–385. doi:10.1007/s10270-005-0088-z

    Article  Google Scholar 

  • Pretorius R, Budgen D (2008) A mapping study on empirical evidence related to the models and forms used in the UML. In: Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement, Kaiserslautern, Germany

  • Qayum F, Heckel R (2009) Analysing refactoring dependencies using unfolding of graph transformation systems. In: Proceedings of the 7th International Conference on Frontiers of Information Technology, Abbottabad, Pakistan

  • Rangel G, Lambers L, König B, Ehrig H, Baldan P (2008) Behavior preservation in model refactoring using DPO transformations with borrowed contexts. In: Ehrig H, Heckel R, Rozenberg G, Taentzer G (eds) Graph transformations, vol 5214. Lecture Notes in Computer Science. Springer, Berlin, pp 242–256. doi:10.1007/978-3-540-87405-8_17

    Chapter  MATH  Google Scholar 

  • Regnell B (1999) Requirements engineering with use cases—a basis for software development. Lund University

  • Ren S, Butler G, Rui K, Xu J, Yu W, Luo R (2004) A prototype tool for use case refactoring. In: Proceedings of the 6th International Conference on Enterprise Information Systems

  • Repond J, Dugerdil P, Descombes P (2011) Use-case and scenario metamodeling for automated processing in a reverse engineering tool. In: 4th India Software Engineering Conference, New York

  • Roscoe AW (1997) The theory and practice of concurrency. Prentice Hall

  • Ruhroth T, Voigt H, Wehrheim H (2009) Measure, diagnose, refactor: a formal quality cycle for software models. Proceedings of the 35th Euromicro Conference on Software Engineering and Advanced Applications:360–367. doi:10.1109/seaa.2009.39

  • Rui K, Butler G (2003) Refactoring use case models: the Metamodel. In: Proceedings of the 25th Australasian Computer Society Conference

  • Saadeh E, Kourie D (2008) Model refactorings as logic-based fine-grain transformations. In: Proceedings of the 9th African Conference on Research in Computer Science and Applied Mathematics

  • Saadeh E, Kourie D, Boake A (2009) Fine-grain transformations to refactor UML models. In: Proceedings of the Warm Up Workshop for ACM/IEEE ICSE 2010, Cape Town, South Africa

  • Saeki M, Kaiya H (2006) Model metrics and metrics of model transformation. In: ACM/IEEE 9th International Conference on Model Driven Engineering Languages and Systems

  • Simon F, Steinbrückner F, Lewerentz C (2001) Metrics based refactoring. In: Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, Washington, DC, USA

  • Smith G (2000) The object-Z specification language. Kluwer Academic Publisher

  • Song E, France RB, Kim D-K, Ghosh S (2002) Using roles for pattern-based model refactoring. In: Proceedings of Workshop on Critical Systems Development (CSDUML) with UML

  • Steimann F (2013) From well-formedness to meaning preservation: model refactoring for almost free. Softw Syst Model:1–14. doi:10.1007/s10270-013-0314-z

  • Stolc M, Polasek I (2010) A visual based framework for the model refactoring techniques. In: IEEE 8th International Symposium on Applied Machine Intelligence and Informatics

  • Sunyé G, Pollet D, Le Traon Y, Jézéquel J-M (2001) Refactoring UML Models. In: «UML» 2001—the unified modeling language. Modeling languages, concepts, and tools, vol 2185. Lecture Notes In Computer Science. Springer-Verlag, Berlin, pp 134–148

  • Taentzer G (2004) AGG: a graph transformation environment for modeling and validation of software. In: Pfaltz J, Nagl M, Böhlen B (eds) Applications of graph transformations with industrial relevance, vol 3062, Lecture Notes in Computer Science. Springer, Berlin Heidelberg, pp 446–453. doi:10.1007/978-3-540-25959-6_35

    Chapter  Google Scholar 

  • Tsantalis N, Chatzigeorgiou A (2011) Ranking refactoring suggestions based on historical volatility. In: Software Maintenance and Reengineering (CSMR), 2011 15th European Conference on, 1–4 March 2011, pp 25–34

  • Van Der Straeten R, D’Hondt M (2006) Model refactorings through rule-based inconsistency resolution. In: Proceedings of the 2006 ACM Symposium on Applied Computing, Dijon, France

  • Van Der Straeten R, Jonckers V, Mens T (2004) Supporting model refactorings through behaviour inheritance consistencies. In: Baar T, Strohmeier A, Moreira A, Mellor S (eds) <<UML> > 2004 - The unified modeling language. Modelling languages and applications, vol 3273. Lecture Notes in Computer Science. Springer, Berlin, pp 305–319. doi:10.1007/978-3-540-30187-5_22

    Chapter  Google Scholar 

  • Van Der Straeten R, Jonckers V, Mens T (2007) A formal approach to model refactoring and model refinement. Softw Syst Model 6(2):139–162. doi:10.1007/s10270-006-0025-9

    Article  Google Scholar 

  • Van Gorp P, Stenten H, Mens T, Demeyer S (2003) Towards automating source-consistent UML refactorings. In: Stevens P, Whittle J, Booch G (eds) «UML» 2003 - The unified modeling language. Modeling languages and applications, vol 2863. Lecture Notes in Computer Science. Springer, Berlin, pp 144–158. doi:10.1007/978-3-540-45221-8_15

    Chapter  Google Scholar 

  • W3C (2007) XSL Transformations (XSLT) Version 2.0. http://www.w3.org/TR/xslt20/. Accessed May 2012

  • W3C (2008) Extensible Markup Language (XML) Version 1.0. http://www.w3.org/TR/REC-xml/. Accessed May 2012

  • Xu J, Yu W, Rui K, Butler G (2004) Use case refactoring: a tool and a case study. In: Proceedings of the 11th Asia-Pacific Software Engineering Conference, Washington, DC, USA

  • Xue-Bin W, Quan-Yuan W, Huai-Min W, Dian-Xi S (2007) Research and implementation of design pattern-oriented model transformation. In: International Multi-Conference on Computing in the Global Information Technology, p 24

  • Yu W, Li J, Butler G (2004) Refactoring use case models on episodes. In: 19th IEEE International Conference on Automated Software Engineering (ASE’04)

  • Yue T, Ali S, Elaasar M (2010) A framework for measuring quality of models: experiences from a series of controlled experiments. Simula Research Laboratory, Oslo, Norway

    Google Scholar 

  • Zhang J, Lin Y, Gray J (2005) Generic and domain-specific model refactoring using a model transformation engine. In: Beydeda S, Book M, Gruhn V (eds) Model-driven software development. Springer, Berlin Heidelberg, pp 199–217. doi:10.1007/3-540-28554-7_9

    Chapter  Google Scholar 

  • Zotero (2013) Zotero. Roy rosenzweig center for history and new media. George Mason University, Virginia

    Google Scholar 

Download references

Acknowledgments

The authors acknowledge the support of King Abdul Aziz City for Science & Technology (KACST) and the Deanship of Scientific Research of the king Fahd University of Petroleum and Minerals in the development of this work.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohammad Alshayeb.

Additional information

Communicated by: Paolo Tonella

Appendix A

Appendix A

The detailed quality assessment performed over the selected studies is included in Table 12.

Table 12 Detailed quality assessment
Table 13 Selected papers and their venues

Rights and permissions

Reprints and permissions

About this article

Cite this article

Misbhauddin, M., Alshayeb, M. UML model refactoring: a systematic literature review. Empir Software Eng 20, 206–251 (2015). https://doi.org/10.1007/s10664-013-9283-7

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-013-9283-7

Keywords

Navigation