A survey on model versioning approaches

Purpose – The purpose of this paper is to provide a feature‐based characterization of version control systems (VCSs), providing an overview about the state‐of‐the‐art of versioning systems dedicated to modeling artifacts.Design/methodology/approach – Based on a literature study of existing approaches, a description of the features of versioning systems is established. Special focus is set on three‐way merging which is an integral component of optimistic versioning. This characterization is employed on current model versioning systems, which allows the derivation of challenges in this research area.Findings – The results of the evaluation show that several challenges need to be addressed in future developments of VCSs and merging tools in order to allow the parallel development of model artifacts.Practical implications – Making model‐driven engineering (MDE) a success requires supporting the parallel development of model artifacts as is done nowadays for text‐based artifacts. Therefore, model versioning ca...

[1]  E. James Whitehead,et al.  Collaboration in Software Engineering: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[2]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[3]  Walter F. Tichy,et al.  Implementation and evaluation of a revision control system , 1982 .

[4]  Tien N. Nguyen,et al.  A Novel Structure-Oriented Difference Approach for Software Artifacts , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[5]  Richard F. Paige,et al.  Different models for model matching: An analysis of approaches to support model differencing , 2009, 2009 ICSE Workshop on Comparison and Versioning of Software Models.

[6]  Leonardo Murta,et al.  Towards odyssey-VCS 2: improvements over a UML-based version control system , 2008, CVSM@ICSE.

[7]  Petra Broschy Improving conflict resolution in model versioning systems , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[8]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[9]  Maik Schmidt,et al.  Constructing difference tools for models using the SiDiff framework , 2008, ICSE Companion '08.

[10]  Jesper Holck,et al.  Continuous Integration and Quality Assurance: a case study of two open source projects , 2003, Australas. J. Inf. Syst..

[11]  Ulf Asklund,et al.  Identifying Conflicts During Structural Merge , 1999 .

[12]  Andreas Zeller,et al.  Mining version histories to guide software changes , 2005, Proceedings. 26th International Conference on Software Engineering.

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

[14]  Michael Pilato Version Control with Subversion , 2004 .

[15]  David J. DeWitt,et al.  X-Diff: an effective change detection algorithm for XML documents , 2003, Proceedings 19th International Conference on Data Engineering (Cat. No.03CH37405).

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

[17]  Sarfraz Khurshid,et al.  Evaluation of Semantic Interference Detection in Parallel Changes: an Exploratory Experiment , 2007, 2007 IEEE International Conference on Software Maintenance.

[18]  Haifeng Shen,et al.  Flexible Merging for Asynchronous Collaborative Systems , 2002, OTM.

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

[20]  Jim Buffenbarger,et al.  Syntactic Software Merging , 1995, SCM.

[21]  Motoshi Saeki,et al.  Meta-Modeling Based Version Control System for Software Diagrams , 2006, IEICE Trans. Inf. Syst..

[22]  Patrick Könemann Model-independent differences , 2009 .

[23]  Kerstin Altmanninger Models in Conflict - A Semantically Enhanced Version Control System for Models , 2007, MoDELS.

[24]  Claudia-Lavinia Ignat,et al.  Operation-based Merging of Hierarchical Documents , 2005, CAiSE Short Paper Proceedings.

[25]  Reidar Conradi,et al.  Impact of software engineering research on the practice of software configuration management , 2005, ACM Trans. Softw. Eng. Methodol..

[26]  Boris Magnusson,et al.  Fine Grained Version Control of Configurations in COOP/Orm , 1996, SCM.

[27]  Antonio Vallecillo,et al.  Representing and Operating with Model Differences , 2008, TOOLS.

[28]  Ivan Porres,et al.  Version Control of Software Models , 2005 .

[29]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[30]  Christian Schneider,et al.  Experiences in using Optimisitic Locking in Fujaba , 2007, Softwaretechnik-Trends.

[31]  Reidar Conradi,et al.  Towards a Uniform Version Model for Software Configuration Management , 1997, SCM.

[32]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[33]  Gerardo Canfora,et al.  Tracking Your Changes: A Language-Independent Approach , 2009, IEEE Software.

[34]  Bernd Brügge,et al.  Supporting Distributed Software Development with fine-grained Artefact Management , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[35]  Wuu Yang,et al.  How to merge program texts , 1994, J. Syst. Softw..

[36]  Harvey P. Siy,et al.  Parallel changes in large scale software development: an observational case study , 1998, TSEM.

[37]  M. S. Feather Detecting interference when merging specification evolutions , 1989, IWSSD '89.

[38]  J. W. Hunt,et al.  An Algorithm for Differential File Comparison , 2008 .

[39]  Antonio Cicchetti,et al.  Managing Model Conflicts in Distributed Development , 2008, MoDELS.

[40]  Lars Bendix,et al.  CoEd - A Tool for Versioning of Hierarchical Documents , 1998, SCM.

[41]  Reinhard von Hanxleden,et al.  Visual Comparison of Graphical Models , 2009, 2009 14th IEEE International Conference on Engineering of Complex Computer Systems.

[42]  Jörg M. Haake,et al.  Supporting distributed software development by modes of collaboration , 2001, ECSCW.

[43]  Ernst Lippe,et al.  Operation-based merging , 1992 .

[44]  Tom Mens,et al.  Detecting model inconsistency through operation-based model construction , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[45]  Christoph Treude,et al.  Difference computation of large models , 2007, ESEC-FSE '07.

[46]  Vladimir I. Levenshtein,et al.  Binary codes capable of correcting deletions, insertions, and reversals , 1965 .

[47]  Andreas Zeller,et al.  Mining Version Histories to Guide Software Changes , 2004 .

[48]  Boris Magnusson,et al.  The Unified Extensional Versioning Model , 1999, SCM.

[49]  Richard W. Hamming,et al.  Error detecting and error correcting codes , 1950 .

[50]  Manuel Wimmer,et al.  Towards end-user adaptable model versioning: The By-Example Operation Recorder , 2009, 2009 ICSE Workshop on Comparison and Versioning of Software Models.

[51]  Bernhard Westfechtel,et al.  Structure-oriented merging of revisions of software documents , 1991, SCM '91.

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

[53]  Antonio Cicchetti,et al.  A Metamodel Independent Approach to Difference Representation , 2007, J. Object Technol..

[54]  Tudor Groza,et al.  SemVersion: RDF-based ontology versioning system , 2006 .

[55]  Gabriele Anderst-Kotsis,et al.  Towards Accurate Conflict Detection in a VCS for Model Artifacts: A Comparison of Two Semantically Enhanced Approaches , 2009, APCCM.

[56]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[57]  Ragnhild Van Der Straeten,et al.  Detecting and resolving model inconsistencies using transformation dependency analysis , 2006, MoDELS'06.

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

[59]  Jeffrey G. Gray,et al.  DSMDiff: a differentiation tool for domain-specific models , 2007 .

[60]  Boris Magnusson,et al.  Fine-grained revision control for collaborative software development , 1993, SIGSOFT '93.

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

[62]  Giuseppe Scanniello,et al.  COMOVER: Concurrent model versioning , 2008, 2008 IEEE International Conference on Software Maintenance.

[63]  Dewayne E. Perry,et al.  Parallel changes: detecting semantic interferences , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[64]  Torbjörn Ekman,et al.  Refactoring-aware versioning in Eclipse , 2004, Electron. Notes Theor. Comput. Sci..

[65]  W. Keith Edwards,et al.  Flexible conflict detection and management in collaborative applications , 1997, UIST '97.

[66]  Prasun Dewan,et al.  A flexible object merging framework , 1994, CSCW '94.

[67]  Ivan Porres,et al.  Difference and Union of Models , 2003, UML.