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.
Similar content being viewed by others
References
AGG (2011) The attributed graph grammar system. Technische Universität, Berlin
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
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
Ambler SW (2005) The elements of UML 2.0 Style. Cambridge University Press, New York
Amelunxen C, Schürr A (2008) Formalising model transformation rules for UML/MOF 2. IET Softw 2(3):204–222
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
Baader F, Calvanese D, McGuinness D, Nardi D, Patel-Schneider P (2003) The description logic handbook: theory, implementation and applications. Cambridge University Press, Cambridge
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
Bansiya J, Davis CG (2002) A hierarchical model for object-oriented design quality assessment. IEEE Trans Softw Eng 28(1):4–17
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
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
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
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
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
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
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
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
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
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
Butler G, Xu L (2001) Cascaded refactoring for framework. SIGSOFT Softw Eng Notes 26(3):51–57. doi:10.1145/379377.375239
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
Correa A, Werner C (2007) Refactoring object constraint language specifications. Softw Syst Model 6(2):113–138. doi:10.1007/s10270-006-0023-y
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
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
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
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
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
Derrick J, Wehrheim H (2010) Model transformations across views. Sci Comput Program 75(3):192–210
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
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
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
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
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
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
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
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
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
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
Fujaba (2011) Fujaba tool suite, vol 5. University of Paderborn, Germany
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Professional Computing Series, Addison Wesley
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
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
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
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
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
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
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
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
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
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
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
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
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
Kuzniarz L, Staron M (2007) Two techniques for UML model transformations. Int J Comput Appl 29(1):10–17
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
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
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
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
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
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
Mens T, Tourwe T (2004) A survey of software refactoring. IEEE Trans Softw Eng 30(2):126–139
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Zotero (2013) Zotero. Roy rosenzweig center for history and new media. George Mason University, Virginia
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
Corresponding author
Additional information
Communicated by: Paolo Tonella
Appendix A
Appendix A
The detailed quality assessment performed over the selected studies is included in Table 12.
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-013-9283-7