Coherent dependence clusters

Large clusters of mutual dependence can cause problems for comprehension, testing and maintenance. This paper introduces the concept of coherent dependence clusters, techniques for their efficient identification, visualizations to better understand them, empirical results concerning their practical significance. As the paper will show, coherent dependence clusters facilitate a fine grained analysis of the subtle relationships between clusters of dependence.

[1]  Amr Elssamadisy,et al.  Recognizing and responding to "bad smells" in extreme programming , 2002, ICSE '02.

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

[3]  Carol D. Berkowitz,et al.  Recognizing and Responding to , 2005 .

[4]  Sue Black,et al.  Computing ripple effect for software maintenance , 2001, J. Softw. Maintenance Res. Pract..

[5]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[6]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984 .

[7]  Mark Harman,et al.  Forward slices are smaller than backward slices , 2005, Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05).

[8]  Gerardo Canfora,et al.  An Integrated Environment for Reuse Reengineering C Code , 1996, SEKE.

[9]  Mark Harman,et al.  Identifying 'Linchpin Vertices' That Cause Large Dependence Clusters , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[10]  Mark Harman,et al.  Assessing the impact of global variables on program dependence and dependence clusters , 2010, J. Syst. Softw..

[11]  Mark Harman,et al.  Dependence Anti Patterns , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[12]  Tao Jiang,et al.  Locating dependence structures using search-based slicing , 2008, Inf. Softw. Technol..

[13]  Keith Brian Gallagher,et al.  Improving visual impact analysis , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[14]  Tracy Hall,et al.  Using Program Slicing to Identify Faults in Software , 2005, Beyond Program Slicing.

[15]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[16]  David W. Binkley,et al.  Semantics Guided Regression Test Cost Reduction , 1997, IEEE Trans. Software Eng..

[17]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[18]  Mark Harman,et al.  Locating dependence clusters and dependence pollution , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[19]  David W. Binkley,et al.  Source Code Analysis: A Road Map , 2007, Future of Software Engineering (FOSE '07).

[20]  Francoise Balmas,et al.  Using dependence graphs as a support to document programs , 2002, Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation.

[21]  Paolo Tonella,et al.  Using a Concept Lattice of Decomposition Slices for Program Understanding and Impact Analysis , 2003, IEEE Trans. Software Eng..

[22]  Mark Harman,et al.  Dependence clusters in source code , 2009, TOPL.