Parallel changes: detecting semantic interferences

Parallel changes are a basic fact of modern software development. Where previously we looked at prima facie interference, here we investigate a less direct form that we call semantic interference. We reduce the forms of semantic interference that we are interested in to overlapping defuse pairs. Using program slicing and data flow analysis, we present algorithms for detecting semantic interference for both concurrent changes (allowed in optimistic version management systems) and sequential parallel changes (supported in pessimistic version management systems), and for changes that are both immediate and distant in time. We provide these algorithms for changes that are additions, showing that interference caused by deletions can be detected by considering the two sets of changes in reverse-time order.

[1]  Wei-Tek Tsai,et al.  The Role of Program Slicing in Ripple Effect Analysis , 1996, SEKE.

[2]  Dewayne E. Perry,et al.  Challenges in Evolving a Large Scale Software Product , 1998 .

[3]  Boris Magnusson,et al.  A Case-Study of Configuration Management with ClearCase in an Industrial Environment , 1997, SCM.

[4]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

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

[6]  Paul Anderson,et al.  Software Inspection Using CodeSurfer , 2001 .

[7]  Frank Tip,et al.  Chianti: a tool for change impact analysis of java programs , 2004, OOPSLA.

[8]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[9]  Dewayne E. Perry,et al.  Implications of evolution metrics on software maintenance , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[10]  Dewayne E. Perry,et al.  Towards Understanding Software Evolution : One-Line Changes , 2002 .

[11]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.

[12]  RepsThomas,et al.  A program integration algorithm that accommodates semantics-preserving transformations , 1992 .

[13]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[14]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[15]  Wuu Yang,et al.  A program integration algorithm that accommodates semantics-preserving transformations , 1992, SDE 4.

[16]  David B. Leblang The CM challenge: configuration management that works , 1995 .

[17]  J. Wang,et al.  Proceedings of the 29th Annual International Computer Software and Applications Conference—Workshops and Fast Abstracts COMPSAC 2005 , 2005 .

[18]  Dewayne E. Perry,et al.  Mining Change and Version Management Histories to Evaluate an Analysis Tool – Extended Abstract – , 2005 .

[19]  Audris Mockus,et al.  Identifying reasons for software changes using historic databases , 2000, Proceedings 2000 International Conference on Software Maintenance.

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