Further investigations into the development and evaluation of reading techniques for object-oriented code inspection

This paper describes the development and experimental evaluation of a rigorous approach for effective object-oriented (OO) code inspection. Since their development, inspections have been shown to be powerful defect detection strategies but little research has been done to investigate their application to OO systems, which have very different structural and execution models compared to procedural systems. Previous investigations have demonstrated that the delocalised nature of OO software - the resolution of frequent non-local references, and the incongruous relationship between its static and dynamic representations, are primary inhibitors to its effective inspection. The experiment investigates a set of three complementary code reading techniques devised specifically to address these problems: one based on a checklist adapted to address the identified problems of OO inspections, one focused on the systematic construction of abstract specifications, and the last centered on the dynamic slice that a use-case takes through a system. The analysis shows that there is a significant difference in the number of defects found between the three reading techniques. The checklist-based technique emerges as the most effective approach but the other techniques also have noticeable strengths and so for the best results in a practical situation a combination of techniques is recommended.

[1]  John W. Daly,et al.  Statistical power and its subcomponents - missing and misunderstood concepts in empirical software engineering research , 1997, Inf. Softw. Technol..

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

[3]  Mark Priestley,et al.  Practical Object-oriented Design with UML , 1997 .

[4]  A. Dunsmore An Empir ical Investigation of a Systematic ObjectOr iented Inspection Technique , 2000 .

[5]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[6]  M. Roper,et al.  Object-oriented inspection in the face of delocalisation , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[7]  Yuri Chernak A Statistical Approach to the Inspection Checklist Formal Synthesis and Improvement , 1996, IEEE Trans. Software Eng..

[8]  Oliver Laitenberger,et al.  An encompassing life cycle centric survey of software inspection , 2000, J. Syst. Softw..

[9]  Marc Roper,et al.  Systematic object-oriented inspection - an empirical study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

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

[11]  Alastair Dunsmore Survey of Object-Oriented Defect Detection Approaches and Experiences in Industry , 2000 .

[12]  John T. Baldwin An Abbreviated C++ Code Inspection Checklist , 1997 .

[13]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[14]  Mark Priestley Practical Object-Oriented Design , 1996 .

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

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