Merging Model Refactorings-An Empirical Study -

Model-driven development promotes models as abstractions of a system from which the system code can be generated. As a consequence, many development activities such as refactoring have moved from the codeto the model-level. A model refactoring is a composite change— consisting of a series of model changes—that improves the model quality but does not change the system behavior. Version Control (VC) systems are applied to control change on models and to facilitate collaboration. Many of them are limited in their ability to detect composite changes and to use them for merging. To overcome these limitations, operationbased VC systems directly track the composite changes. In this paper, we present an empirical study to answer the following research questions: (1) Do developers produce a better merge result when merging with information about composite changes? (2) Do developers favor to discuss complex merges instead of being forced to solve them immediately? We show that merging can be improved significantly by information about composite changes, and that developers like to discuss merges when they reject changes from the repository.

[1]  Reidar Conradi,et al.  Change oriented versioning in a software engineering database , 1989, SCM.

[2]  Dewayne E. Perry,et al.  Metrics and laws of software evolution-the nineties view , 1997, Proceedings Fourth International Software Metrics Symposium.

[3]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[4]  Chisu Wu,et al.  An efficient version model of software diagrams , 1998, Proceedings 1998 Asia Pacific Software Engineering Conference (Cat. No.98EX240).

[5]  Tom Mens,et al.  A State-of-the-Art Survey on Software Merging , 2002, IEEE Trans. Software Eng..

[6]  José Antonio Pérez,et al.  Repairing syntax errors in LR parsers , 2002, TOPL.

[7]  Udo Kelter,et al.  A fine-grained version and configuration model in analysis and design , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[8]  Udo Kelter,et al.  Differences between versions of UML diagrams , 2003, ESEC/FSE-11.

[9]  Martin C. Rinard,et al.  Automatic detection and repair of errors in data structures , 2003, OOPSLA '03.

[10]  Martin Erwig,et al.  Toward the Automatic Derivation of XML Transformations , 2003, ER.

[11]  Kevin Knight,et al.  Training Tree Transducers , 2004, NAACL.

[12]  C. Schneider CoObRA - a small step for development tools to collaborative environments , 2004, ICSE 2004.

[13]  T.N. Nguyen,et al.  An infrastructure for development of object-oriented, multi-level configuration management services , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[14]  Alpana Dubey,et al.  Inferring Grammar Rules of Programming Language Dialects , 2006, ICGI.

[15]  Paul Grünbacher,et al.  Automating Software Traceability in Very Small Companies: A Case Study and Lessons Learne , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[16]  Ragnhild Van Der Straeten,et al.  Model refactorings through rule-based inconsistency resolution , 2006, SAC.

[17]  Ralph E. Johnson,et al.  Refactoring-Aware Configuration Management for Object-Oriented Programs , 2007, 29th International Conference on Software Engineering (ICSE'07).

[18]  Manuel Wimmer,et al.  Towards Model Transformation Generation By-Example , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[19]  Christian Bartelt Consistence preserving model merge in collaborative development processes , 2008, CVSM '08.

[20]  Wolfgang Schreiner,et al.  A Lightweight Model Driven Development Process based on XML Technology ( Draft ) , 2008 .

[21]  Dániel Varró,et al.  Model transformation by example using inductive logic programming , 2008, Software & Systems Modeling.

[22]  Antonio Cicchetti,et al.  Automating Co-evolution in Model-Driven Engineering , 2008, 2008 12th International IEEE Enterprise Distributed Object Computing Conference.

[23]  Maximilian Kögel Towards software configuration management for unified models , 2008, CVSM '08.

[24]  Petra Kaufmann,et al.  The operation recorder: specifying model refactorings by-example , 2009, OOPSLA Companion.

[25]  Jean Bézivin,et al.  Managing Model Adaptation by Precise Detection of Metamodel Changes , 2009, ECMDA-FA.

[26]  Markus Herrmannsdoerfer,et al.  Language Evolution in Practice: The History of GMF , 2009, SLE.

[27]  Maximilian Koegel,et al.  Operation-based conflict detection and resolution , 2009, 2009 ICSE Workshop on Comparison and Versioning of Software Models.

[28]  Dirk Draheim,et al.  A Lightweight MDSD Process Applied in Small Projects , 2009, 2009 35th Euromicro Conference on Software Engineering and Advanced Applications.

[29]  Saurabh Sinha,et al.  Debugging Model-Transformation Failures Using Dynamic Tainting , 2010, ECOOP.

[30]  Colin de la Higuera,et al.  Grammatical Inference: Learning Automata and Grammars , 2010 .