|
ABSTRACT
Software Science is a field of Natural Science which deals with the development of measurements which reveal properties of software programs. These measurements are qualified as to their degree of correlation to human beings being able to construct or understand a subject program. Maurice Halstead has pioneered much of the theories in this field ((5) through (10)), which applies statistical and psychological testing techniques to the evaluation of the measurements. The basic inputs to the Halstead predictors are easily measured: the number of distinct operators and operands, and the number of occurrences of the operators and operands. Due to the statistical nature of the measurements, there can be erroneous results when applying them to small sample spaces. However, the predictors are very adequate when applied to large samples, that is, large software systems. In an excellent review article by Fitzsimmons and Love (4), it is pointed out that several of the estimators defined by Halstead assumed that the subject programs were well-structured, and inaccurancy in the predictors can result if they are applied to "unpolished" programs. In fact, Halstead qualified six classes of impurities in code which can cause the length predictor to be inaccurate. The definition of volume for software, another predictor introduced in Halstead's book, is related to the level of the specification of the program. An algorithm which is written in assembly language will have a greater volume than the same algorithm written in Pascal, due to the richness of the semantic constructs that are available in the higher-level languages. Hence, this predictor is language dependent.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Roger Bate and George Ligler, "A Software Development Methodology: Issues, Techniques, and Tools," Proceedings of the 11th Hawaiian International Conference on System Sciences, Honolulu (January 1978), pages 40-44.
|
| |
2
|
E. W. Dijkstra, "Structured Programming," Software Engineering Techniques, NATO Scientific Affairs Division, Brussels 39, Belgium, published in January 1969, pages 84-88.
|
| |
3
|
Edward Ferguson and George Ligler, "The TI Pascal System: Run-time Support," Proceedings of the 11th Hawaiian International Conference on Software Sciences, Honolulu (January 1978), pages 92-96.
|
 |
4
|
|
 |
5
|
|
| |
6
|
Maurice H. Halstead, "A Theoritical Relationship Between Mental Work and Machine Language Programming," CSD-TR 67, Purdue University, Lafayette, Indiana, May 1972.
|
 |
7
|
|
| |
8
|
Maurice H. Halstead, "Software Physics: Basic Principles," IBM Research Journal, No. 1582, IBM Research, Yorktown Heights, New York, 1975.
|
| |
9
|
Maurice H. Halstead, "Using the Methodology of Natural Science to Understand Software," CDS-TR 190, Purdue University, Lafayette, Indiana, 1976.
|
| |
10
|
|
 |
11
|
|
| |
12
|
R. M. Karp, "A Note on the Application of Graph Theory to Digital Computer Programming," Inform. Contr., Vol. 3 (1960), pages 179-190.
|
| |
13
|
Thomas J. McCabe, "A Complexity Measure," IEEE Transactions on Software Engineering, Vol. SE-2, No. 4 (December 1976), pages 308-320.
|
| |
14
|
G. A. Miller, "The Magical Number Seven, Plus-or-minus Two: Some Limits on Our Capacity for Processing Information," Psychological Review, Vol. 63, No. 2 (March 1956), pages 81-97.
|
| |
15
|
|
 |
16
|
|
| |
17
|
Michael Paige and J. P. Benson, "The Use of Software Probes in Testing Fortran Programs", Computer (July 1974), pages 40-47.
|
 |
18
|
|
| |
19
|
"Process Design Methodology," Vol. 1, Process Design Language Specifications, Texas Instruments Incorporated, Huntsville, Alabama, April 1976.
|
| |
20
|
N. F. Schneidewind and H. M. Hoffman, "An Experiment in Software Error Data Collection and Analysis," Proceedings of the 6th Texas Conference on Computing Systems, Austin, Texas (November 1977), pages 4A-1 -4A-12.
|
| |
21
|
|
|