Detecting defects in object-oriented designs: using reading techniques to increase software quality

Inspections can be used to identify defects in software artifacts. In this way, inspection methods help to improve software quality, especially when used early in software development. Inspections of software design may be especially crucial since design defects (problems of correctness and completeness with respect to the requirements, internal consistency, or other quality attributes) can directly affect the quality of, and effort required for, the implementation. We have created a set of “reading techniques” (so called because they help a reviewer to “read” a design artifact for the purpose of finding relevant information) that gives specific and practical guidance for identifying defects in Object-Oriented designs. Each reading technique in the family focuses the reviewer on some aspect of the design, with the goal that an inspection team applying the entire family should achieve a high degree of coverage of the design defects. In this paper, we present an overview of this new set of reading techniques. We discuss how some elements of these techniques are based on empirical results concerning an analogous set of reading techniques that supports defect detection in requirements documents. We present an initial empirical study that was run to assess the feasibility of these new techniques, and discuss the changes made to the latest version of the techniques based on the results of this study.

[1]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[2]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

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

[4]  Ben Shneiderman,et al.  An Empirical Study of Perspective-Based Usability Inspection , 1998 .

[5]  Guilherme Horta Travassos,et al.  An approach to perform behavior testing in object-oriented systems , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224).

[6]  Forrest Shull,et al.  Experimenting with error abstraction in requirements documents , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

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

[8]  Forrest Shull,et al.  Developing techniques for using software documents: a series of empirical studies , 1998 .

[9]  Adam A. Porter,et al.  Comparing Detection Methods for Software Requirements Inspections: A Replicated Experiment , 1995, IEEE Trans. Software Eng..

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

[11]  Peter J. Middleton,et al.  Software Inspection , 1994, J. Inf. Technol..

[12]  John C. Knight,et al.  An improved inspection technique , 1993, CACM.

[13]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[14]  Gill Smith,et al.  Object-oriented analysis , 1988, WADAS '88.

[15]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[16]  Kendall Scott,et al.  UML distilled - applying the standard object modeling language , 1997 .

[17]  Edward Yourdon,et al.  Object-oriented analysis (2nd ed.) , 1991 .