To lock, or not to lock: That is the question

Mechanisms to control concurrent access over project artefacts are needed to execute the software development process in an organized way. These mechanisms are implemented by concurrency control policies in version control systems that may inhibit (i.e. 'to lock') or allow (i.e., 'not to lock') parallel development. This work presents a novel approach named Orion that analyzes the project's historical changes and suggests the most appropriate concurrency control policy for each software element. This suggestion aims at minimizing conflict situations and thus improving the productivity of the development team. In addition, it identifies critical elements that do not work well with any of these policies and are candidates to refactoring. We evaluated Orion through two experimental studies and the results, which indicated it was effective, led us to a prototype implementation. Apart from the Orion approach this paper also presents the planning, execution, and analysis stages of the evaluation, and details of prototype internals.

[1]  Cláudia Maria Lima Werner,et al.  On the Selection of Concurrency Control Policies for Configuration Management , 2009, 2009 XXIII Brazilian Symposium on Software Engineering.

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  Paul Dourish,et al.  Unifying artifacts and activities in a visual tool for distributed software development teams , 2004, Proceedings. 26th International Conference on Software Engineering.

[4]  Jacky Estublier Software configuration management: a roadmap , 2000, ICSE '00.

[5]  André van der Hoek,et al.  An experimental, pluggable infrastructure for modular configuration management policy composition , 2004, Proceedings. 26th International Conference on Software Engineering.

[6]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[7]  Stephen P. Berczuk,et al.  Software Configuration Management Patterns: Effective Teamwork, Practical Integration , 2003 .

[8]  Christopher Van der Westhuizen,et al.  Emerging design: new roles and uses for abstraction , 2006, ROA '06.

[9]  Orit Hazzan,et al.  Proceedings of the 2006 international workshop on Role of abstraction in software engineering , 2006, ICSE 2006.

[10]  André van der Hoek,et al.  Palantir: raising awareness among configuration management workspaces , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[11]  Jacky Estublier,et al.  Defining and Supporting Concurrent Engineering Policies in SCM , 2001, SCM.

[12]  B. Boehm Software risk management: principles and practices , 1991, IEEE Software.

[13]  Peter H. Feiler,et al.  Proceedings of the 3rd international workshop on Software configuration management , 1991 .

[14]  Michele Lanza,et al.  Visual Exploration of Large-Scale System Evolution , 2008, 2008 15th Working Conference on Reverse Engineering.

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

[16]  Moshe Bar,et al.  Open Source Development with CVS , 1999 .

[17]  Matthew McCullough,et al.  Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development , 2009 .

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

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

[20]  Harvey P. Siy,et al.  Parallel changes in large scale software development: an observational case study , 1998, Proceedings of the 20th International Conference on Software Engineering.

[21]  Cláudia Maria Lima Werner,et al.  Odyssey-SCM: An integrated software configuration management infrastructure for UML models , 2007, Sci. Comput. Program..

[22]  etc,et al.  Version Control with Subversion Edisi 2 , 2012 .

[23]  Cláudia Maria Lima Werner,et al.  Odyssey-VCS: a flexible version control system for UML model elements , 2005, SCM '05.

[24]  Rebecca E. Grinter Using a configuration management tool to coordinate software development , 1995, COCS '95.

[25]  Brian A. White Software Configuration Management Strategies and IBM Rational ClearCase: A Practical Introduction , 2005 .

[26]  Meilir Page-Jones,et al.  Fundamentals of object-oriented design in UML , 1999 .

[27]  Reidar Conradi,et al.  Cooperating transactions against the EPOS database , 1991, SCM '91.

[28]  Walter F. Tichy,et al.  Proceedings 25th International Conference on Software Engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[29]  Cláudia Maria Lima Werner,et al.  EvolTrack: improving design evolution awareness in software development , 2010, Journal of the Brazilian Computer Society.

[30]  Jacky Estublier Objects Control for Software Configuration Management , 2001, CAiSE.