Appendix 2: A Standard for the Measurement of C Programming Language Attributes

A2.1 Introduction

In this appendix, we will develop precise rules for the standard measurement of 19 program attributes for the C programming language. Moses did not come down from the mountain to give us our new 19 rules. They are not holy. They are, however, intended to be unambiguous and completely reproducible by others. That is the intent of a standard. It is hoped that this standard will serve as a framework for new measures for C program attributes and also as a framework for the development of similar standards for other programming languages.

This standard is meant to capture the metrics at the C function level. These are the smallest compilable C program units. This standard is carefully defined from the C compiler perspective. It will assume that all compiler directives have been resolved prior to the measurement process. Header files (the .h files) will have been resolved prior to measurement as well.

The proposed measurement standard will identify procedures for the precise enumeration of 19 metrics:

  1. Comments

  2. Executable statements

  3. Nonexecutable statements

  4. Operators

  5. Unique operators

  6. Unique nonoverloaded operators

  7. Total operands

  8. Unique operands

  9. Unique actual operands

  10. Nodes

  11. Edges

  12. Paths

  13. Maximum path length

  14. Average path length

  15. Cycles

  16. Total system fan-out

  17. Unique system fan-out

  18. Total standard C fan-out

  19. Unique standard C fan-out

Each of these 19 metrics will be described in an unambiguous manner so that new measurement tools written to this standard will all produce identical results. That is the whole notion of a standard. These definitions will be organized into the four basic measurement groups: style and statement metrics, lexical metrics, control flowgraph metrics, and coupling metrics.



Software Engineering Measurement
Software Engineering Measurement
ISBN: 0849315034
EAN: 2147483647
Year: 2003
Pages: 139

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net