Analyzing software science data with partial repeatability
Halstead's software science postulates that there exist physics-like laws that obey each piece of software. In this paper we re-examine this postulate by using two datasets collected from real programs, and argue that software science data are featured with partial repeatability. Conventional sciences embody the nature of full repeatability in the sense that they can either be proved repeatably in mathematics or be validated to a high accuracy repeatably in physics (experimentally). By partial repeatability we mean that complex phenomena may demonstrate an invariant property that neither can be proved in mathematics nor validated to a high accuracy in physics, but still (partially) governs the behavior of the phenomena. We propose a new kind of mathematical model, namely, parepeatic model, to characterize partial repeatability quantitatively. A parepeatic model defines the relationship between a central function and a fluctuation zone and identifies the degree of correctness of the relationship without making any statistical assumption. We develop parepeatic models for the relationships among several program complexity measures including the number of distinct operators, the number of distinct operands and the program length, among others, and present some new findings about the relationships. Illustrative case study shows that the developed parepeatic models can really help software engineering practice. (C) 2002 Elsevier Science Inc. All rights reserved.
partial repeatability halstead's software science full repeatability parepeatic model software measurement software complexity type iii laws genetic algorithm