Measuring size, complexity, and coupling of hypergraph abstractions of software: An information-theory approach

  • Authors:
  • Edward B. Allen;Sampath Gottipati;Rajiv Govindarajan

  • Affiliations:
  • Department of Computer Science and Engineering, Box 9637, Mississippi State University, Mississippi State, Mississippi, USA 39762;Technation Software Consulting, Inc., Sioux Falls, USA;Peri Software, Warrenville, USA

  • Venue:
  • Software Quality Control
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software development is fundamentally based on cognitive processes. Our motivating hypothesis is that amounts of various kinds of information in software artifacts may have useful statistical relationships with software-engineering attributes. This paper proposes measures of size, complexity and coupling in terms of the amount of information, building on formal definitions of these software-metric families proposed by Briand, Morasca, and Basili.Ordinary graphs represent relationships between pairs of nodes. We extend prior work with ordinary graphs to hypergraphs representing relationships among sets of nodes. Some software engineering abstractions, such as set-use relations for public variables, are better represented as hypergraphs than ordinary (binary) graphs.Traditional software metrics are based on counting. In contrast, we adopt information theory as the basis for measurement, because the design decisions embodied by software are information. This paper proposes software metrics of size, complexity, and coupling based on information in the pattern of incident hyperedges. For comparison, we also define corresponding counting-based metrics.Three exploratory case studies illustrate some of the distinctive features of the proposed metrics. The case studies found that information theory-based software metrics make distinctions that counting metrics do not, which may be relevant to software engineering quality and process. We also identify situations when information theory-based metrics are simply proportional to corresponding counting metrics.