A software science analysis of programming size

  • Authors:
  • Charles P. Smith

  • Affiliations:
  • -

  • Venue:
  • ACM '80 Proceedings of the ACM 1980 annual conference
  • Year:
  • 1980

Quantified Score

Hi-index 0.01

Visualization

Abstract

Programming Development at IBM's Santa Teresa Laboratory has been investigating “The Elements of Software Science” as defined by Maurice H. Halstead.1,2 This report summarizes the findings after several large IBM products have been counted and analyzed. Program vocabulary, length, volume and lines of code are discussed and compared. It is shown that the size of a program can be estimated with reasonable accuracy once the vocabulary is known. Within the programming community the traditional measures of quality and productivity have been based upon the number of lines of source statements which have been coded for a given product. Estimating the costs, time duration, number of programmers required, and quality levels also hinge upon “lines-of-code” predictions for the product. Maurice H. Halstead 1,2 has suggested a comprehensive set of software metrics which we are using to examine the characteristics of existing program products. These software metrics do not hinge upon lines-of-code counts but rather upon the counting of operators and operands. This report explains how the “Elements of Software Science” as defined by Professor Halstead relate to IBM data from large programming products. The software science formulas are neither derived nor altered in this paper but are treated as theorems which we have set out to prove or to disprove by measuring Santa Teresa Laboratory program products. We were motivated to look for measures other than lines-of-code because of our historic inability to estimate the size of a project with any consistent degree of accuracy. In performing this study, we have counted and analyzed large volumes of existing program product code. This report focuses upon the Software Science size metrics (length and volume) in comparison to the traditional lines-of-code measure.