Browse Prior Art Database

Methods for calculating Combined software complexity indicators

IP.com Disclosure Number: IPCOM000225180D
Publication Date: 2013-Jan-28
Document File: 5 page(s) / 281K

Publishing Venue

The IP.com Prior Art Database

Abstract

Software quality has many definitions and is an important aspect of any software being developed and every user is interested in it. Today it’s hard to determine software complexity using only existing metrics like McCabe complexity or Halstead complexity. In many cases quality is seen as a combination between low defect rate, reliability, and a low cost maintenance. A good software complexity indicator can help estimating the maintenance cost and test efforts. Our proposal is a new complexity indicator which is using multidimensional factors in order to determine an accurate complexity level. This will help establish the maintenances effort (cost) and the estimated defect density, and allow a much easier comparison between software applications. Another important aspect addressed in this paper is the dynamic analysis of the program complexity using program trace on a variable input data volume. This new indicator called Combined Complexity incorporates existing metrics (McCabe and Halstead), module complexity, and lines of code and uses them for dynamic complexity analysis and to compute new estimated decisional defect indicator.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

Methods for calculating Combined software complexity indicators

 

Abstract

Software quality has many definitions and is an important aspect of any software being developed and every user is interested in it. Today it’s hard to determine software complexity using only existing metrics like McCabe complexity or Halstead complexity. In many cases quality is seen as a combination between low defect rate, reliability, and a low cost maintenance. A good software complexity indicator can help estimating the maintenance cost and test efforts. 
Our proposal is a new complexity indicator which is using multidimensional factors in order to determine an accurate complexity level. This will help establish the maintenances effort (cost) and the estimated defect density, and allow a much easier comparison between software applications. Another important aspect addressed in this paper is the dynamic analysis of the program complexity using program trace on a variable input data volume. This new indicator called Combined Complexity incorporates existing metrics (McCabe and Halstead), module complexity, and lines of code and uses them for dynamic complexity analysis and to compute new estimated decisional defect indicator.

Abbreviations

CC - Combined complexity

CCs - Static combined complexity

CCd - Dynamic combined complexity

MC - Module complexity

NIM – number of in modules (receives data/from)

NOM – number of out modules (send data/control to)

p – number of unconnected  parts of the graph 

n – nodes

LOC – number of lines of code in module

KW - constant of Withrow(250)

KE - error constant, a human can make 3000 (error constant)

n1 – number of distinct operators

n2 – number of distinct operands

N1 – total number of operators

N2 – total number of operands

Description

Software quality in many cases is seen as a combination between low defect rate, reliability, and a low cost maintainability.  A good complexity software indicator can help estimating the maintenance cost and test efforts. In order to calculate a correct complexity level we need to consider all factors that are directly influencing this indicator.

            The software metrics used for calculating the new combined complexity indicator are:

 Existing (from specialized literature):

McCabe complexity – this a graphical approach to determine complexity of a program based on unique paths from execution graph.

            M = e - n+2p   e – edges   

Halstead complexity – using operators and operands from a program establishes the complexity level.

            H =

Lines of code – is the most used complexity indicator and easiest to calculate. Any programmer is aware that the number of lines of code influences directly the complexity of a program and increases defect density. Carol Withrow based an analysis of multiple modules he discovered that the optimal lines of code, lower density of defects, is 250 of lines...