Halstead’s Theory Metrics in Software Engineering

Halstead’s theory is an analytical estimation technique to measure the size, development effort, and development cost of software products. Halstead’s used a few primitive program parameters to develop the expressions for overall program length, potential minimum volume, actual volume, effort & development time.

  • In Halstead software science the function name in a function call statement is also considered an operator and the arguments of the function call are called operands.
  • Operands are those variables and constants which are used with the operators in expressions.
  • In Halstead’s theory following is the list of operators used:
Function name in a function call, return, break, continue, goto, for, do, while, switch, else, default if, case, ;, {}, ?, :, ^=, &=, >>=, <<=, -=, +=, %=, /=, *=, &&, ||, ^, &, ==, <=, >=, >, <, <<, >>, -, +, %, /, *, --, ++, !, *, ,, ., [], (), ≠, ∼, -->, |=.

Table of Contents

The metrics of Halstead’s theory are as:

  • η1: no. of unique operations used in the program
  • η2: no. of unique operands used in the program
  • N1: Total no. of operators used in the program
  • N2: Total no. of operands used in the program
  • For Example: If Y= (a+b) * (C+d)*(d+e) then η1=3, η2=6, N1=6, N2=7
  • Length & Vocabulary:
    • The length of a program quantifies the total usage of all operators & operands in the program. Thus, Program Length,N = N1 + N2
    • The Program Vocabulary is the no. of unique operators & operands used in the program. Thus, Program Vocabulary, η = η1+ η2
  • Program Volume: The length of the program depends on the choice of operator and operands used. So, V = N^ log 2 η
    • where V is volume: minimum no. of bits required to encode the program.
    • i.e. V bits needed to store a program of length N.
  • Potential minimum volume: It is defined as the volume of the most limited program in which it can be encoded. So, V * = ( 2 + η2 ) log 2 ( 2 + η2 )
  • Program level is given by: L = V * / V
    • It is an attempt to measure the level of abstraction provided by the programming language.
    • Higher the level of a language the less effort it takes to develop a program in that language.
  • Effort : E = V/L
    • Where E is the no. of mental discrimination required to implement the program & the effort required to read & understand the program E = V/ L = V2/ V*
  • Programming Time : T = E/ S
    • Where S is the speed of mental discrimination known as stroud number. For software, it is taken as 18.
  • Length Estimation: Halstead determines the length of the program using no. of unique operators & operands used in the program.
    • N^ = log η1η1 + log η2η2 = η1 log η1 + η2 log η2

” Halstead theory tries to provide a formal definition & qualification of such qualitative, empirical & subjective quantities as program complexity, ease of understanding & level of abstraction based on some low-level quantities such as no. of operands & operators appearing the Program.”

Halstead Theory Metrics Example

Example 1: Consider the following C program

main ()
{
int a,b,c, avg;
scanf(%d %d %d", &a, &b, &c);
avg = (a+b+c)/3;
printf("avg = %d", avg);

Calculate the estimated length and program volume.

Solution 1: η1 = 12

main, (), {, int, scanf, &, ,, ;, =, +, /, printf

η2 = 11

a, b, c, avg, &a, &b, &c, a+b+c, 3, %d%d%d, avg=%d

N = 12 log 2 12 + 11 log 2 11 = 81

V = N log 2 η = 81 log 2 23 = 366

η = 12+ 11 = 23

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments