Towards an Understanding of Requirements for Model Versioning Support
Konrad Wieland, G. Fitzpatrick, G. Kappel, M. Seidl, M. Wimmer
{"title":"Towards an Understanding of Requirements for Model Versioning Support","authors":"Konrad Wieland, G. Fitzpatrick, G. Kappel, M. Seidl, M. Wimmer","doi":"10.4018/ijpop.2011070101","DOIUrl":null,"url":null,"abstract":"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. DOI: 10.4018/ijpop.2011070101 2 International Journal of People-Oriented Programming, 1(2), 1-23, July-December 2011 Copyright © 2011, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global is prohibited. 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. Model versioning is still a young research area compared to code versioning (cf. Brosch et al., 2011a). In this heterogeneous field, a plethora of research directions exist trying to meet the technical challenges of model versioning systems, mostly concerned with precise conflict detection and supportive conflict resolution (cf. Altmanninger et al., 2009b). However, there is currently a lack of empirical studies trying to derive the “real” needs of software developers in practice concerning the collaborative development of software systems (cf. Mens, 2002). The current need for such studies is great, because several possibilities exist for how software can be developed collaboratively, both on the technical level as well as on the organizational level. The latter aspect is often ignored, especially in the model versioning research field. If we are able to understand real world experiences with model versioning then we would be better able to identify criteria which should determine the selection of versioning technologies as well as collaboration processes from an organizational viewpoint. Furthermore, lessons learned of current best practices in collaborative software development for the various development artifacts may be inferred from such studies. To the best of our knowledge, only a few investigations have been carried out in order to find answers to these questions. For example, several issues arising from practice when merging different versions of a model are identified in Bendix and Emanuelsson (2009). However, these findings are based on informal interviews within one company and do “not pretend to be general(ly)” applicable. Furthermore, the premise of Bendix and Emanuelsson (2009) is that “model-centric development and its problems do not vary much from company to company” which has not been proven so far. However, models can be used in different ways, namely as a sketch to discuss ideas and design alternatives, as a blueprint for implementation, or for direct code generation (cf. Fowler, 2003) and, thus, the collaborative development of models varies from company to company. To tackle these mentioned deficiencies, this paper provides a comprehensive empirical study, including on the one hand a survey and on the other hand in-depth qualitative interviews. The overall goal of the empirical study is to gain 21 more pages are available in the full version of this document, which may be purchased using the \"Add to Cart\" button on the product's webpage: www.igi-global.com/article/towards-understandingrequirements-model-versioning/72687?camid=4v1 This title is available in InfoSci-Journals, InfoSci-Journal Disciplines Communications and Social Science, InfoSciTechnology Adoption, Ethics, and Human Computer Interaction eJournal Collection, InfoSci-Digital Marketing, EBusiness, and E-Services eJournal Collection, InfoSciNetworking, Mobile Applications, and Web Technologies eJournal Collection. Recommend this product to your","PeriodicalId":309154,"journal":{"name":"Int. J. People Oriented Program.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Int. J. People Oriented Program.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4018/ijpop.2011070101","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4
Abstract
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. DOI: 10.4018/ijpop.2011070101 2 International Journal of People-Oriented Programming, 1(2), 1-23, July-December 2011 Copyright © 2011, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global is prohibited. 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. Model versioning is still a young research area compared to code versioning (cf. Brosch et al., 2011a). In this heterogeneous field, a plethora of research directions exist trying to meet the technical challenges of model versioning systems, mostly concerned with precise conflict detection and supportive conflict resolution (cf. Altmanninger et al., 2009b). However, there is currently a lack of empirical studies trying to derive the “real” needs of software developers in practice concerning the collaborative development of software systems (cf. Mens, 2002). The current need for such studies is great, because several possibilities exist for how software can be developed collaboratively, both on the technical level as well as on the organizational level. The latter aspect is often ignored, especially in the model versioning research field. If we are able to understand real world experiences with model versioning then we would be better able to identify criteria which should determine the selection of versioning technologies as well as collaboration processes from an organizational viewpoint. Furthermore, lessons learned of current best practices in collaborative software development for the various development artifacts may be inferred from such studies. To the best of our knowledge, only a few investigations have been carried out in order to find answers to these questions. For example, several issues arising from practice when merging different versions of a model are identified in Bendix and Emanuelsson (2009). However, these findings are based on informal interviews within one company and do “not pretend to be general(ly)” applicable. Furthermore, the premise of Bendix and Emanuelsson (2009) is that “model-centric development and its problems do not vary much from company to company” which has not been proven so far. However, models can be used in different ways, namely as a sketch to discuss ideas and design alternatives, as a blueprint for implementation, or for direct code generation (cf. Fowler, 2003) and, thus, the collaborative development of models varies from company to company. To tackle these mentioned deficiencies, this paper provides a comprehensive empirical study, including on the one hand a survey and on the other hand in-depth qualitative interviews. The overall goal of the empirical study is to gain 21 more pages are available in the full version of this document, which may be purchased using the "Add to Cart" button on the product's webpage: www.igi-global.com/article/towards-understandingrequirements-model-versioning/72687?camid=4v1 This title is available in InfoSci-Journals, InfoSci-Journal Disciplines Communications and Social Science, InfoSciTechnology Adoption, Ethics, and Human Computer Interaction eJournal Collection, InfoSci-Digital Marketing, EBusiness, and E-Services eJournal Collection, InfoSciNetworking, Mobile Applications, and Web Technologies eJournal Collection. Recommend this product to your
对模型版本控制支持需求的理解
当软件在团队中开发时(这是当今开发软件的标准方式),版本控制系统是管理协作的首选。从技术角度来看,版本控制系统必须面对几个挑战。根据应用的版本控制范例,需要同步编辑、分支、存储不同版本、合并等功能。由于为实现这些任务付出了许多努力,在过去几十年中取得了可衡量的进展。遗憾的是,缺乏实证研究来发现实践中产生的实际需求。因此,作者进行了一项在线调查,并采访了来自学术界和工业界的版本控制系统的代表性用户。特别强调的是软件模型的版本化,随着模型驱动软件工程的发展,软件模型的版本化变得越来越重要。我们的实证研究结果表明,当前的版本控制系统并不能满足开发人员的所有需求。尤其是协作开发的管理,如工作分工和冲突管理。DOI: 10.4018 / ijpop。2国际以人为本的程序设计杂志,1(2),1- 23,2011年7月- 12月版权所有©2011,IGI Global。未经IGI Global书面许可,禁止以印刷或电子形式复制或分发。为此,软件配置管理(SCM)提供了关键的工具和技术,使软件系统的并行开发更易于管理(Tichy, 1988)。其中,SCM提供了版本控制系统(VCS),它允许为并行开发重用单用户建模/编程环境。开发人员可以向中央存储库提交他们的更改,并且可以从中将本地版本更新为存储库中的最新版本,中央存储库支持对开发中的软件工件(如代码和模型)的管理和管理。当然,这不仅适用于传统的、以代码为中心的软件工程,也适用于模型驱动的软件工程(MDSE) (cf. Schmidt, 2006),它最近在学术界和实践中都获得了动力,改变了现代软件系统的构建方式。在MDSE中,编程任务,即用文本编程语言(如Java)编写代码,被用图形化建模语言(如统一建模语言,2010)进行建模所取代。模型的强大抽象机制不仅用于文档目的,而且还用于直接从模型中编译可执行代码(b2013.zivin, 2005)。软件工件、代码和模型在版本控制和冲突管理的关键方面有所不同。一般来说,如果直接用于模型,为处理软件演变(如版本控制)的基于文本的工件建立的标准技术表现不佳(参见Chawate等人,1996)。从技术角度来看,这些不兼容性可以用模型的基于图的结构来解释,这可以通过用于匹配、比较和合并模型的专用算法来考虑。虽然已经有相当多的工作来理解和支持与代码工件相冲突的方法,但使用模型工件时的含义和问题却没有得到很好的理解。与代码版本控制相比,模型版本控制仍然是一个年轻的研究领域(参见Brosch et al., 2011)。在这个异构领域,存在着大量的研究方向,试图满足模型版本控制系统的技术挑战,主要涉及精确的冲突检测和支持性的冲突解决(参见Altmanninger et al., 2009b)。然而,目前缺乏实证研究,试图得出软件开发人员在软件系统协同开发实践中的“真实”需求(cf. Mens, 2002)。当前对这类研究的需求是巨大的,因为在技术层面和组织层面上,存在着如何协作开发软件的几种可能性。后一个方面经常被忽略,特别是在模型版本控制研究领域。如果我们能够理解模型版本控制的真实世界经验,那么我们将能够更好地确定应该从组织的角度决定版本控制技术和协作过程的选择的标准。此外,对于各种开发工件的协作软件开发中当前最佳实践的经验教训可以从这样的研究中推断出来。据我们所知,为了找到这些问题的答案,只进行了很少的调查。
本文章由计算机程序翻译,如有差异,请以英文原文为准。