This Article 
 Bibliographic References 
 Add to: 
Property-Based Software Engineering Measurement
January 1996 (vol. 22 no. 1)
pp. 68-86

Abstract—Little theory exists in the field of software system measurement. Concepts such as complexity, coupling, cohesion or even size are very often subject to interpretation and appear to have inconsistent definitions in the literature. As a consequence, there is little guidance provided to the analyst attempting to define proper measures for specific problems. Many controversies in the literature are simply misunderstandings and stem from the fact that some people talk about different measurement concepts under the same label (complexity is the most common case).

There is a need to define unambiguously the most important measurement concepts used in the measurement of software products. One way of doing so is to define precisely what mathematical properties characterize these concepts, regardless of the specific software artifacts to which these concepts are applied. Such a mathematical framework could generate a consensus in the software engineering community and provide a means for better communication among researchers, better guidelines for analysts, and better evaluation methods for commercial static analyzers for practitioners.

In this paper, we propose a mathematical framework which is generic, because it is not specific to any particular software artifact, and rigorous, because it is based on precise mathematical concepts. We use this framework to propose definitions of several important measurement concepts (size, length, complexity, cohesion, coupling). It does not intend to be complete or fully objective; other frameworks could have been proposed and different choices could have been made. However, we believe that the formalisms and properties we introduce are convenient and intuitive. This framework contributes constructively to a firmer theoretical ground of software measurement.

[1] N. Fenton, "Software Measurement: A Necessary Scientific Bias," IEEE Trans. Software Eng., vol. 20, pp. 199-206, Mar. 1994.
[2] D.L. Parnas, "On the Criteria to be Used in Decomposing Systems into Software Modules," Comm. ACM, Dec. 1972, pp. 1,053-1,058.
[3] L. Briand, S. Morasca, and V.R. Basili, "A goal-driven definition process for product metrics based on properties," Univ. of Maryland, Dept. of Computer Science, Tech. Report CS-TR-3346, UMIACS-TR-94-106, 1994. Submitted for publication.
[4] R.E. Courtney and D.A. Gustafson, “Shotgun Correlations in Software Measures,” Software Eng. J., vol. 8, no. 1, pp. 5-13, 1992.
[5] K.B. Lakshmanan, S. Jayaprakash, and P.K. Sinha, "Properties of Control-Flow Complexity Measures," IEEE Trans. Software Eng., vol. 17, no. 12, pp. 1,289-1,295, Dec. 1991.
[6] J. Tian and M.V. Zelkowitz,“A formal model of program complexity and its application,” J. Systems and Software, vol. 17, no. 3, pp. 253-266, 1992.
[7] E.J. Weyuker, "Evaluating Software Complexity Measures," IEEE Trans. Software Eng., Vol. 14, No. 9, 1988, pp. 1357-1365.
[8] S.R. Chidamber and C.F. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, 1994.
[9] W. Harrison, "An entropy-based measure of software complexity," IEEE Trans. Software Eng., vol. 18, no. 11, pp. 1,025-1,029, Nov. 1992.
[10] M. Shepperd, "Algebraic models and metric validation," Formal Aspects of Measurement, T. Denvir, R. Herman and R.W. Whitty, eds., pp. 157-173, Lecture Notes in Computer Science,Springer-Verlag, 1992.
[11] H. Zuse,Software Complexity.Berlin: Walter de Gruyter, 1991.
[12] J.C. Cherniavsky and C.H. Smith, "On Weyuker's Axioms for Software Complexity Measures," IEEE Trans. Software Eng., vol. 17, no. 6, pp. 636-638, June 1991.
[13] B. Henderson-Sellers and J. Edwards, Book Two of the OO Knowledge: The Working Object. Prentice Hall Object-Oriented Series, 1994.
[14] N.E. Fenton, Software Metrics, A Rigorous Approach. Chapman&Hall, 1991.
[15] M.H. Halstead, Elements of Software Science. North-Holland, 1977.
[16] B. Curtis, S. Sheppard, P. Milliman, M. Borst, and T. Love, "Measuring the psychological complexity of software maintenance task with the Halstead and McCabe metrics," IEEE Trans. Software Eng., vol. 5, no. 2, pp. 96-104, Mar. 1979.
[17] A.C. Melton et al., "Mathematical Perspective of Software Measures Research," Software Eng. J., Vol. 5, No. 5, 1990, pp. 246-254.
[18] E.I. Oviedo, "Control flow, data flow and program complexity," Proc. IEEE COMPSAC, pp. 146-152, Nov. 1980.
[19] T.J. McCabe, "A complexity measure," IEEE Trans. Software Eng., vol. 2, no. 5, pp. 308-320, Apr. 1976.
[20] S. Henry and D. Kafura, "Software structure metrics based on information flow," IEEE Trans. Software Eng., vol. 7, no. 5, pp. 510-518, Sept. 1981.
[21] D. Card and R.L. Glass, Measuring Software Design Quality. Prentice Hall, 1990.
[22] L. Briand, S. Morasca, and V. Basili, "Defining and validating high-level design metrics," CS-TR 3301, Univ. of Maryland, College Park, Md. Submitted for publication.
[23] J. Bieman and L. Ott, "Measuring Functional Cohesion," IEEE Trans. Software Eng., vol. 20, no. 8, pp. 644-657, Aug. 1994.
[24] F. Roberts, Measurement Theory with Applications to Decisionmaking, Utility, and the Social Sciences. Addison-Wesley, 1979.
[25] N. Fenton and A. Melton,“Deriving structurally based software measures,” J. Systems and Software, vol. 12, no. 3, pp. 177-187, 1990.
[26] R.E. Prather, "An axiomatic theory of software complexity measure," The Computer J., vol 27, no. 4, pp. 340-346, 1984.
[27] Encyclopaedia of Software Eng. John Wiley&Sons, 1994.
[28] L. Briand, K. El Emam, and S. Morasca, "On the application of measurement theory in software engineering," to appear in Empirical Software Engineering, An Int'l J.

Index Terms:
Software measurement, measure properties, measurement theory, size, complexity, cohesion, coupling.
Lionel C. Briand, Sandro Morasca, Victor R. Basili, "Property-Based Software Engineering Measurement," IEEE Transactions on Software Engineering, vol. 22, no. 1, pp. 68-86, Jan. 1996, doi:10.1109/32.481535
Usage of this product signifies your acceptance of the Terms of Use.