Thesis

Investigating effective inspection of object-oriented code

Creator
Rights statement
Awarding institution
  • University of Strathclyde
Date of award
  • 2002
Thesis identifier
  • T10594
Qualification Level
Qualification Name
Department, School or Faculty
Abstract
  • Since the development of software inspection over twenty-five years ago it has become established as an effective means of detecting defects. Inspections were originally developed at a time when the procedural paradigm was dominant but, with the ObjectOriented (OO) paradigm growing in influence and use, there now exists a lack of guidance on how to apply inspections to OO systems. Object-oriented and procedural languages differ not only in their syntax but also in a number of more profound ways - the encapsulation of data and associated functionality, the common use of inheritance, and the concepts of polymorphism and dynamic binding. These factors influence the way that modules (classes) are created in OO systems, which in turn influences the way that OO systems are structured and execute. Failure to take this into account may hinder the application of inspections to OO code. This thesis shows that the way in which the objectoriented paradigm distributes related functionality can have a serious impact on code inspection and, to address this problem, it develops and empirically evaluates three code reading techniques. The results from an investigation into the characteristics of “hard to find” defects, in combination with a literature review and an industrial survey, revealed that one of the main difficulties affecting the inspection of OO code was the inherent delocalisation that occurred – OO features distributing closely related information throughout a system. From this, a systematic, abstraction-driven reading technique was developed, focusing on constructing abstract specifications, and evaluated by an empirical study. The results from this led to the development and evaluation of two further reading techniques – one based on a checklist and the other based on a more dynamic approach centered on the route that a use-case takes through a system – along with a refinement of the original systematic technique. The results indicate that, where practical, object-oriented inspections should be based on teams of inspectors using a combination of at least two techniques. Using a combination of reading techniques, such as those presented in this thesis, seems to offer the potential to deal with recurring defect types, defects that may require deeper insights, and defects that are associated with features of object-orientation that can distribute functionality throughout a software system.
Resource Type
DOI
EThOS ID
  • uk.bl.ethos.576206
Date Created
  • 2002
Former identifier
  • 655041

Relations

Items