Practical Code Inspection Techniques for Object-Oriented Systems: An Experimental Comparison

A. Dunsmore, M. Roper, M. Wood

Research output: Contribution to journalArticle

21 Citations (Scopus)

Abstract

Although inspection is an effective mechanism for detecting defects in procedural systems, object-oriented systems have different structural and execution models. This article describes the development and empirical investigation of three different techniques for reading object-oriented code during inspection. Research suggests that reading techniques must specifically address delocalization--the distribution of related functionality throughout an object-oriented system--and the fact that the static (compile time) and dynamic (run time) views of an object-oriented system are largely distinct. The three techniques that were developed consist of a checklist that specifically focuses on object-oriented issues, an abstraction-driven reading strategy that requires inspectors to reverse engineer specifications and a use-case driven approach that forces the inspector to consider the dynamic model. The investigation provides insights into all three techniques and, while the tailored checklist is found to be the most effective overall, the abstraction-driven strategy seems to deal better with delocalization issues. The significant message is that code inspection should explicitly address the characteristic features of object-orientation.
LanguageEnglish
Pages21-29
Number of pages8
JournalIEEE Software
Volume20
Issue number4
Publication statusPublished - 2003

Fingerprint

Inspection
Dynamic models
Specifications
Engineers
Defects

Cite this

@article{05a48dbb4fef47e49f31d3be4256760e,
title = "Practical Code Inspection Techniques for Object-Oriented Systems: An Experimental Comparison",
abstract = "Although inspection is an effective mechanism for detecting defects in procedural systems, object-oriented systems have different structural and execution models. This article describes the development and empirical investigation of three different techniques for reading object-oriented code during inspection. Research suggests that reading techniques must specifically address delocalization--the distribution of related functionality throughout an object-oriented system--and the fact that the static (compile time) and dynamic (run time) views of an object-oriented system are largely distinct. The three techniques that were developed consist of a checklist that specifically focuses on object-oriented issues, an abstraction-driven reading strategy that requires inspectors to reverse engineer specifications and a use-case driven approach that forces the inspector to consider the dynamic model. The investigation provides insights into all three techniques and, while the tailored checklist is found to be the most effective overall, the abstraction-driven strategy seems to deal better with delocalization issues. The significant message is that code inspection should explicitly address the characteristic features of object-orientation.",
author = "A. Dunsmore and M. Roper and M. Wood",
year = "2003",
language = "English",
volume = "20",
pages = "21--29",
journal = "IEEE Software",
issn = "0740-7459",
number = "4",

}

Practical Code Inspection Techniques for Object-Oriented Systems: An Experimental Comparison. / Dunsmore, A.; Roper, M.; Wood, M.

In: IEEE Software, Vol. 20, No. 4, 2003, p. 21-29.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Practical Code Inspection Techniques for Object-Oriented Systems: An Experimental Comparison

AU - Dunsmore, A.

AU - Roper, M.

AU - Wood, M.

PY - 2003

Y1 - 2003

N2 - Although inspection is an effective mechanism for detecting defects in procedural systems, object-oriented systems have different structural and execution models. This article describes the development and empirical investigation of three different techniques for reading object-oriented code during inspection. Research suggests that reading techniques must specifically address delocalization--the distribution of related functionality throughout an object-oriented system--and the fact that the static (compile time) and dynamic (run time) views of an object-oriented system are largely distinct. The three techniques that were developed consist of a checklist that specifically focuses on object-oriented issues, an abstraction-driven reading strategy that requires inspectors to reverse engineer specifications and a use-case driven approach that forces the inspector to consider the dynamic model. The investigation provides insights into all three techniques and, while the tailored checklist is found to be the most effective overall, the abstraction-driven strategy seems to deal better with delocalization issues. The significant message is that code inspection should explicitly address the characteristic features of object-orientation.

AB - Although inspection is an effective mechanism for detecting defects in procedural systems, object-oriented systems have different structural and execution models. This article describes the development and empirical investigation of three different techniques for reading object-oriented code during inspection. Research suggests that reading techniques must specifically address delocalization--the distribution of related functionality throughout an object-oriented system--and the fact that the static (compile time) and dynamic (run time) views of an object-oriented system are largely distinct. The three techniques that were developed consist of a checklist that specifically focuses on object-oriented issues, an abstraction-driven reading strategy that requires inspectors to reverse engineer specifications and a use-case driven approach that forces the inspector to consider the dynamic model. The investigation provides insights into all three techniques and, while the tailored checklist is found to be the most effective overall, the abstraction-driven strategy seems to deal better with delocalization issues. The significant message is that code inspection should explicitly address the characteristic features of object-orientation.

UR - http://doi.ieeecomputersociety.org/10.1109/MS.2003.1207450

M3 - Article

VL - 20

SP - 21

EP - 29

JO - IEEE Software

T2 - IEEE Software

JF - IEEE Software

SN - 0740-7459

IS - 4

ER -