Models based on software metrics can predict quality factors early enough for corrective action to be cost-effective, and thus, contribute to the quality of the delivered product. Much of software-metrics research to date has been based on analysis of code and control flow graphs, which are available rather late in development. In contrast, this project is developing metrics on abstractions of software that are created during high-level design, so that quality problems may be detected earlier. Since many design abstractions are represented by graphs, metrics of graph attributes will likely find broad application. This project is defining and validating specific metrics that have the formal properties recently proposed for attributes of directed graphs in general, namely, size, length, complexity, cohesion, and coupling.
Software is, in essence, information.
It is the product of a large number of design decisions on many levels. Each decision is an element of information. Many traditional software metrics count features, as if all items were equally important in the design process. Information theory is an alternative approach that focuses on the amount of information in an attribute, rather than a count. This project is establishing a new generation of information theory-based software design metrics by defining and validating metrics for size, length, complexity, cohesion, and coupling.