Complexity measurement of Electronic Switching System (ESS) software

  • Authors:
  • David R. Gross;Mary A. King;Michael R. Murr;Michael R. Eddy

  • Affiliations:
  • -;-;-;-

  • Venue:
  • SCORE '82 Selected papers of the 1982 ACM SIGMETRICS workshop on Software metrics: part 2
  • Year:
  • 1982

Quantified Score

Hi-index 0.00

Visualization

Abstract

We have been developing a tool that measures the complexity of software: 1) to predict the quality of software products and 2) to allocate proportionally more testing resources to complex modules. The software being measured is real-time and controls telephone switching systems. This software system is large and its development is distributed over a period of several years, with each release providing enhancements and bug fixes. We have developed a two-stage tool consisting of a parser and an analyzer. The parser operates on the source code and produces operator, operand, and miscellaneous tables. These tables are then processed by an analyzer program that calculates the complexity measures. Changes for tuning our Halstead counting rules involve simple changes to the analyzer only. During the development there were problems and issues to be confronted dealing with static analysis and code metrics. These are also described in this paper. In several systems we found that more than 80% of software failures can be traced to only 20% of the modules in the system. The McCabe complexity and some of Halstead's metrics score higher than the count of executable statements in their correlations with field failures. It is reasonable to expect that we could devote more effort to the review and test of high-complexity modules and increase the quality of the software product that we send to the field.