Multi-dimensional Software Metrics

Most of the program complexity metrics in the literature can be defined in terms of a parse tree of program structure. This is achieved by treating a metric as an ‘attribute’ calculated during the parsing process. In other words the metric can be calculated by passing data values up the parse tree towards the root. We propose that the complexity of the data type required for this purpose gives a measure of how complex the metric is. We give several examples and argue that the complexity of a metric relates to how the metric should be used in practice.