Abstract

Software development is a collaborative task where multiple teams work in a synchronous mode to carry out parallel assignments in a project. Version control system is an integral part of any large-scale software development project which is used to track the changes in the project artifacts and maintain the project evolution. Model-driven software development (MDSD) is expected to become a leading paradigm of software engineering in the twenty-first century. The shift of software development approach from code-centric to model-centric places models as first class entities in the development of model-based software projects. With the increasing adoption of MDSD techniques, the need of versioning mechanisms for supporting the evolution of model-based artifacts has become essential. Conventional VCSs like RCS, CVS or Subversion cannot be used for model versioning since they are based on the granularity of textual lines and not on the logical structure of a model. This paper explores the challenges faced in model-based version control systems including effective model comparison, delta computation, conflict detection, conflict resolution and model merging techniques. A prototype for model-based version control system has been designed to simulate the versioning capabilities for UML class diagrams. The tool uses a simple and efficient approach to compute differences between model versions and maintain the version history of changes performed on the UML models using XML storage mechanism. An effective technique for model merging has been proposed in case overlapping and conflicting changes are detected due to parallel development of model artifacts.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call