Personal tools
You are here: Home Theories

Theories

In this section, I will post some theories coming from my empirical studies in the area of software engineering so that they can be tested by a wider range of software practitioners and researchers. The refinements and enhancements on this page will take place slowly and over a long period of time.

 

I. Theory of Relative Defect Proneness (RDP)



In large-scale software systems, smaller modules will be proportionally more defect prone compared to larger ones.

 

Explanatory Remarks:

  • A defect is a flaw in a software module that needs a corrective change (defect fix).
  • Defects are caused by programmer mistakes and can result in failures (non-conformance to requirements). Note the difference in the meanings of these three concepts.
  • Higher module quality is associated with lower number of defects, and vice versa.
  • The theory of RDP is not a design guideline. It does not imply that developers should create modules of certain sizes (e.g. larger). In any software design, modules and their sizes will take shape according to the nature of the problem, solutions developed, and design guidelines used by the developers.
  • The theory of RDP does not depend on the design methodologies used.
  • The theory talks about relativity because, in the underlying research, the effect of size on relative defect proneness was examined. Note that larger modules are more defect prone but they are proportionally less defect prone.
  • Some earlier research studies reported higher defect density (defects per line of code) for smaller module sizes, but this approach was critiqued here in 2002 for studying size versus its inverse, defect density, which creates artificial and spurious correlations and masks the original functional form of the size-defect relationship. In addition, such an approach can lead to some optimal module size and threshold effect observations (known as Goldilocks conjecture). The Editor In Chief of the IEEE Software, Hakan Erdogmus, addressed this important point in the May/June 2008 issue (click here to download) and stated that such observations could be made even if no particular relationship was observed for the size-defect relationship. Since I have received questions regarding whether we studied size versus defect density, I can say we did not. We simply looked at the functional form of the original relationship between size and defect proneness. But thanks for the question, it is a very good, timely, and useful one to discuss and clarify.



For comments and opinions, please contact me.
Document Actions