The role of comprehension in software inspection

In spite of code inspections having been demonstrated as an effective defect detection process, little work has been done to determine how this process best supports the object-oriented paradigm. In contrast, this paradigm (or at least its questionable manifestation in C++) is well supported by tools that purport to aid comprehension. These tools typically take the form of visualisation tools designed to assist in the maintenance process, and it is natural to consider that these tools (or adaptations thereof) might also support inspection. However, since these tools claim to aid comprehension, it is important to consider the role of comprehension in inspection. Or put simply, does comprehension matter, or are there simple techniques in existence which are similarly effective in detecting defects? This paper presents the issues associated with inspections (and the complications presented by the object-oriented paradigm) and comprehension, and presents the results of two experiments which considered the relationship between comprehension and inspection. The results indicate a relationship, but further work is needed to determine the precise nature of this relationship and how inspections might best be supported in the future.

[1]  Gruia-Catalin Roman,et al.  Program visualization: the art of mapping programs to pictures , 1992, International Conference on Software Engineering.

[2]  Marc Roper,et al.  Applying Inspection to Object‐Oriented Code , 1996 .

[3]  Glen W. Russell,et al.  Experience with inspection in ultralarge-scale development , 1991, IEEE Software.

[4]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[5]  Gerardo Canfora,et al.  A workbench for program comprehension during software maintenance , 1996, WPC '96. 4th Workshop on Program Comprehension.

[6]  Oliver Laitenberger,et al.  Perspective-based reading of code documents at Robert Bosch GmbH , 1997, Inf. Softw. Technol..

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

[8]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[9]  Alan F. Blackwell,et al.  Cognitive Questions in Software Visualisation , 1997 .

[10]  Laurent Dumas,et al.  Visualizing program dependencies: An experimental study , 1994, Softw. Pract. Exp..

[11]  Hausi A. Müller,et al.  On designing an experiment to evaluate a reverse engineering tool , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[12]  Michael E. Fagan Advances in software inspections , 1986, IEEE Transactions on Software Engineering.

[13]  Adam A. Porter,et al.  An experiment to assess different defect detection methods for software requirements inspections , 1994, Proceedings of 16th International Conference on Software Engineering.

[14]  Norman Wilde,et al.  Maintaining object-oriented software , 1993, IEEE Software.

[15]  Arthur L. Price,et al.  Managing code inspection information , 1994, IEEE Software.

[16]  Norman Wilde,et al.  Maintenance support for object oriented programs , 1991, Proceedings. Conference on Software Maintenance 1991.

[17]  Keith H. Bennett,et al.  Approaches to program comprehension , 1991, J. Syst. Softw..

[18]  Ben Shneiderman,et al.  Software psychology: Human factors in computer and information systems (Winthrop computer systems series) , 1980 .

[19]  Stuart K. Card,et al.  Information Visualization , 1997, IEEE Computer Graphics and Applications.

[20]  J. MillerEmpirical,et al.  Modelling Software Inspection Methods for the Application of Tool Support , 1995 .

[21]  Lawrence G. Votta,et al.  Does every inspection need a meeting? , 1993, SIGSOFT '93.

[22]  Dennis B. Smith,et al.  Towards a framework for program understanding , 1996, WPC '96. 4th Workshop on Program Comprehension.

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

[24]  Edward F. Weller,et al.  Lessons from three years of inspection data (software development) , 1993, IEEE Software.

[25]  F. MacDonald,et al.  A review of tool support for software inspection , 1995, Proceedings Seventh International Workshop on Computer-Aided Software Engineering.

[26]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[27]  Paul W. Oman Maintenance tools , 1990, IEEE Software.

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

[29]  Thomas Gilb,et al.  Software Inspection , 1994 .

[30]  Harvey P. Siy,et al.  A Review of Software Inspections , 1995, Adv. Comput..

[31]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[32]  Hausi A. Müller,et al.  Cognitive design elements to support the construction of a mental model during software visualization , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.