Evaluating Key Statements Analysis

Key statement analysis extracts from a program, statements that form the core of the programpsilas computation. A good set of key statements is small but has a large impact. Key statements form a useful starting point for understanding and manipulating a program. An empirical investigation of three kinds of key statements is presented. The three are based on Bieman and Ottpsilas principal variables. To be effective, the key statements must have high impact and form a small, highly cohesive unit. Using a minor improvement of metrics for measuring impact and cohesion, key statements are shown to capture about 75% of the semantic effect of the function from which they are drawn. At the same time, they have cohesion about 20 percentage points higher than the corresponding function. A statistical analysis of the differences shows that key statements have higher average impact and higher average cohesion (p<0.001).

[1]  David W. Binkley,et al.  Precise executable interprocedural slices , 1993, LOPL.

[2]  Malcolm Munro,et al.  Moral Dominance Relations for Program Comprehension , 2003, IEEE Trans. Software Eng..

[3]  G. A. Venkatesh,et al.  The semantic approach to program slicing , 1991, PLDI '91.

[4]  Mark Harman,et al.  Unifying program slicing and concept assignment for higher‐level executable source code extraction , 2005, Softw. Pract. Exp..

[5]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

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

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

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

[9]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[10]  Mark Harman,et al.  An empirical study of static program slice size , 2007, TSEM.

[11]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[12]  Stephen S. Yau,et al.  Design Stability Measures for Software Maintenance , 1985, IEEE Transactions on Software Engineering.

[13]  Ben Shneiderman,et al.  Measuring Computer Program Quality and Comprehension , 1977, Int. J. Man Mach. Stud..

[14]  James M. Bieman,et al.  Measuring Functional Cohesion , 1994, IEEE Trans. Software Eng..

[15]  Mark Harman,et al.  Code extraction algorithms which unify slicing and concept assignment , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..