Towards an Understanding of Requirements for Model Versioning Support

Towards an Understanding of Requirements for Model Versioning Support

Konrad Wieland (Vienna University of Technology, Austria), Geraldine Fitzpatrick (Vienna University of Technology, Austria), Gerti Kappel (Vienna University of Technology, Austria), Martina Seidl (Vienna University of Technology, Austria) and Manuel Wimmer (Vienna University of Technology, Austria)
Copyright: © 2011 |Pages: 23
DOI: 10.4018/ijpop.2011070101


When software is developed in teams – the standard way software is developed today – versioning systems are the first choice for the management of collaboration. From a technical point of view, versioning systems have to face several challenges. Depending on the applied versioning paradigm, functionalities such as synchronous editing, branching, storing different versions, merging, etc. are required. Since much effort has been spent into realizing these tasks, measurable progress has been achieved over the last decades. Unfortunately, there is a lack of empirical studies to find out the actual requirements arising from practice. Therefore, the authors conducted an online survey and interviewed representative users of versioning systems from academia and industry. Special emphasis is placed on the versioning of software models, which are nowadays becoming more and more important as there is a trend to model-driven software engineering. The results of our empirical studies show that not all requirements of developers are satisfied by current versioning systems. Especially, more emphasis needs to be put on the management of collaborative development, e.g., the division of work and the management of conflicts.
Article Preview

1. Introduction

Software engineering, as any other engineering discipline, must provide the ability and means to build systems which are so large and complex that they have to be built by teams or even by teams of teams of engineers (Ghezzi et al., 2002). Today, not only code but also other artifacts like models play an important role in software engineering. All of these artifacts entail significant overhead to manage throughout the lifecycle, especially when practical concerns require parallel strands of development.

For this purpose, Software Configuration Management (SCM) provides key tools and techniques for making the parallel development of software systems more manageable (Tichy, 1988). Amongst others, SCM offers Version Control Systems (VCS), which allow reusing single-user modeling/programming environments for parallel development. Central repositories, to which developers can commit their changes and from which developers can update their local version to the latest version in the repository, support the management and administration of software artifacts under development such as code and models.

Of course, this holds true not only for traditional, code-centric software engineering, but also for model-driven software engineering (MDSE) (cf. Schmidt, 2006), which has recently gained momentum in academia as well as in practice, changing the way in which modern software systems are built. In MDSE, the task of programming, i.e., writing code in a textual programming language such as Java, is replaced by modeling in a graphical modeling language such as the Unified Modeling Language (OMG, 2010). The powerful abstraction mechanisms of models are not only used for documentation purposes, but also for compiling executable code directly out of models (Bézivin, 2005).

Software artifacts, code and models differ in key ways with implications for versioning and conflict management. In general, standard techniques established for text-based artifacts for handling software evolution like versioning perform poorly if directly used for models (cf. Chawate et al., 1996). From a technical point of view, these incompatibilities might be explained by the graph-based structure of models, which might be taken into account by dedicated algorithms for matching, comparing, and merging models. While there has been considerable work to understand and support conflicting approaches with code artifacts, the implications and issues when using model artifacts are less well understood.

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 6: 2 Issues (2017)
Volume 5: 1 Issue (2016)
Volume 4: 2 Issues (2015)
Volume 3: 2 Issues (2014)
Volume 2: 2 Issues (2012)
Volume 1: 2 Issues (2011)
View Complete Journal Contents Listing