0% found this document useful (0 votes)
140 views106 pages

Chapter 6 Software Metrics

The document discusses software metrics which are quantitative measures used to characterize aspects of a software system. It defines metrics, areas they can be applied, categories of metrics including product, process and project metrics, and counting rules for metrics in C language programs.

Uploaded by

atul211988
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
140 views106 pages

Chapter 6 Software Metrics

The document discusses software metrics which are quantitative measures used to characterize aspects of a software system. It defines metrics, areas they can be applied, categories of metrics including product, process and project metrics, and counting rules for metrics in C language programs.

Uploaded by

atul211988
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 106

Software Engineering (3rd ed.), By K.

K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 1
Software Metrics

Software Metrics: What and Why ?

1. How to measure the size of a software?

2. How much will it cost to develop a software?

3. How many bugs can we expect?

4. When can we stop testing?

5. When can we release the software?

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 2
Software Metrics

6. What is the complexity of a module?

7. What is the module strength and coupling?

8. What is the reliability at the time of release?

9. Which test technique is more effective?

10. Are we testing hard or are we testing smart?

11. Do we have a strong program or a week test suite?

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 3
Software Metrics

❖ Pressman explained as “A measure provides a quantitative


indication of the extent, amount, dimension, capacity, or size
of some attribute of the product or process”.
❖ Measurement is the act of determine a measure
❖ The metric is a quantitative measure of the degree to which
a system, component, or process possesses a given
attribute.
❖ Fenton defined measurement as “ it is the process by which
numbers or symbols are assigned to attributes of entities in
the real world in such a way as to describe them according
to clearly defined rules”.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 4
Software Metrics

▪ Definition

Software metrics can be defined as “The continuous application of


measurement based techniques to the software development
process and its products to supply meaningful and timely
management information, together with the use of those techniques
to improve that process and its products”.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 5
Software Metrics

▪ Areas of Applications
The most established area of software metrics is cost and size
estimation techniques.

The prediction of quality levels for software, often in terms of


reliability, is another area where software metrics have an important
role to play.

The use of software metrics to provide quantitative checks on


software design is also a well established area.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 6
Software Metrics

▪ Problems During Implementation


➢ Statement : Software development is to complex; it
cannot be managed like other parts of
the organization.

Management view : Forget it, we will find developers


managers who and
will development. manage
that
➢ Statement : I am only six months late with project.

Management view : Fine, you are only out of a job.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 7
Software Metrics

➢ Statement : I am only six months late with project.

Management view : Fine, you are only out of a job.

➢ Statement : But you cannot put reliability constraints


in the contract.
Management view : Then we may not get the contract.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 8
Software Metrics
▪ Categories of Metrics
i. Product metrics: describe the characteristics of the
product such as size, complexity, design features,
performance, efficiency, reliability, portability, etc.
ii. Process metrics: describe the effectiveness and
quality of the processes that produce the software
product. Examples are:
• effort required in the process
• time to produce the product
• effectiveness of defect removal during development
• number of defects found during testing
• maturity of the process
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 9
Software Metrics

ii. Project metrics: describe the project


characteristics and execution. Examples are :

• number of software developers

• staffing pattern over the life cycle of the software

• cost and schedule

• productivity

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 10
Software Metrics

Token Count
The size of the vocabulary of a program, which consists of
the number of unique tokens used to build a program is defined as:

η = η1 + η2
η : vocabulary of a program
where
η1 : number of unique operators
η2 : number of unique operands

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 11
Software Metrics

The length of the program in the terms of the total number of tokens
used is

N = N1+N2
N : program length
where
N1 : total occurrences of operators

N2 : total occurrences of operands

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 12
Software Metrics
Volume

V = N * log2 η
The unit of measurement of volume is the common unit for
size “bits”. It is the actual size of a program if a uniform
binary encoding for the vocabulary is used.

Program Level
L = V* / V
The value of L ranges between zero and one, with L=1
representing a program written at the highest possible level
(i.e., with minimum size).
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 13
Software Metrics
Program Difficulty
D=1/L
As the volume of an implementation of a program increases,
the program level decreases and the difficulty increases.
Thus, programming practices such as redundant usage of
operands, or the failure to use higher-level control constructs
will tend to increase the volume as well as the difficulty.

Effort
E=V/L=D*V
The unit of measurement of E is elementary
mental discriminations.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 14
Software Metrics
▪ Estimated Program Length

  1 log 2 1   2 log 2  2

  14 log2 14 10 log2 10
= 53.34 + 33.22 = 86.56

The following alternate expressions have been published


to estimate program length.

J  Log2 (1!)  log2 (2!)


Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 15
Software Metrics

B  1Log22 2 log2 1

c   1 1   2  2

s  ( log2 ) / 2
The definitions of unique operators, unique operands,
total operators and total operands are not specifically
delineated.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 16
Software Metrics

▪ Counting rules for C language

1. Comments are not considered.

2. The identifier and function declarations are not considered.

3. All the variables and constants are considered operands.

4. Global variables used in different modules of the same


program are counted as multiple occurrences of the same
variable.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 17
Software Metrics

5. Local variables with the same name in different functions are


counted as unique operands.

6. Functions calls are considered as operators.

7. All looping statements e.g., do {…} while ( ), while ( ) {…}, for


()
{…}, all control statements e.g., if ( ) {…}, if ( ) {…} else {…}, etc.
are considered as operators.

8. In control construct switch ( ) {case:…}, switch as well as all the


case statements are considered as operators.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 18
Software Metrics

9. The reserve words like return, default, continue, break, sizeof,


etc., are considered as operators.

10. All the brackets, commas, and terminators are considered as


operators.

11. GOTO is counted as an operator and the label is counted as


an operand.

12. The unary and binary occurrence of “+” and “-” are dealt
separately. Similarly “*” (multiplication operator) are dealt with
separately.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 19
Software Metrics

13. In the array variables such as “array-name [index]” “array-


name” and “index” are considered as operands and [ ] is
considered as operator.

14. In the structure variables such as “struct-name, member-name”


or “struct-name -> member-name”, struct-name, member-name
are taken as operands and ‘.’, ‘->’ are taken as operators. Some
names of member elements in different structure variables are
counted as unique operands.

15. All the hash directive are ignored.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 20
Software Metrics
▪ Potential Volume
V *  (2  * ) log (2   * )
2
2
2

▪ Estimated Program Level / Difficulty


Halstead offered an alternate formula that estimate the program
level.

L  22 /(12 )
where

1  1  2
D 
L 2 2

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 21
Software Metrics
▪ Effort and Time
 
V/LV*D
 (n1 N 2 N log2 ) / 22
TE/
β is normally set to 18 since this seemed to give best results in
Halstead’s earliest experiments, which compared the
times with observed programming times, predicted
including design, coding, and testing. the
time
for

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 22
Software Metrics

▪ Language Level

  L V *  L2V
Using this formula, Halstead and other researchers determined the
language level for various languages as shown in Table 1.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 23
Software Metrics

Table 1: Language levels

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 24
Software Metrics

Example- 6.I

Consider the sorting program in Fig. 2 of chapter 4. List out the


operators and operands and also calculate the values of software

science measures like , N ,V , E,  etc.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 25
Software Metrics
Solution
The list of operators and operands is given in table 2.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 26
Software Metrics

Table 2: Operators and operands of sorting program of fig. 2 of chapter 4

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 27
Software Metrics
Here N1=53 and N2=38. The program length N=N1+N2=91

Vocabulary of the program   1 2  14 10 


24
Volume V  N log 2 

= 91 x log224 = 417 bits



The estimated program length N of the program
= 14 log214 + 10 log210

= 14 * 3.81 + 10 * 3.32
= 53.34 + 33.2 = 86.45
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 28
Software Metrics

Conceptually unique input and output parameters are

represented by  2
*

2*  3 {x: array holding the integer to be sorted. This is used


both as input and output}.
{N: the size of the array to be sorted}.

The potential volume V* = 5 log25 = 11.6

Since L = V* / V

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 29
Software Metrics

11.6
 417  0.027

D=I/L

1
 
0.027 37.03

Estimated program level


2
2 10 2
L    
1 N 2 0.038
14 38

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 30
Software Metrics
We may use another formula
 
V  V  L  417 
0.038  15.67
  
E  V / L  DV
=417 / 0.038 = 10973.68
Therefore, 10974 elementary mental discrimination are
required to construct the program.

10974
T  E /   18  610 seconds  10
This is minutes
probably a reasonable time to produce the program,
which is very simple
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 31
Software Metrics

Table 3
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 32
Software Metrics

Table 3
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 33
Software Metrics

Example- 6.2

Consider the program in Table 3. Calculate the various


shown software science
metrics.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 34
Software Metrics
Solution
List of operators and operands are given in Table 4.

Table 4

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 35
Software Metrics

Table 5
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 36
Software Metrics

Program vocabulary   42
Program length N = N1 +N2
= 84 + 55 = 139

Estimated length N  24 log2 24 18 log2 18 
% error 185.115
Program volume = 24.91
V = 749.605 bits
Estimated program level  2  2
1 N2
2 18
   0.02727
24 55
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 37
Software Metrics
Minimal volume V*=20.4417

Effort V/L

748.605
 .02727
= 27488.33 elementary mental discriminations.
27488.33
Time T = E/
 18
= 1527.1295 seconds
= 25.452 minutes

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 38
Software Metrics
Data Structure Metrics
Program Data Input Internal Data Data Output

Payroll Name/ Social Security Withholding rates Gross pay withholding


No./ Pay Rate/ Number Overtime factors Net pay
of hours worked Insurance premium Pay ledgers
Rates

Spreadsheet Item Names/ Item Cell computations Spreadsheet of items


amounts/ Relationships Sub-totals and totals
among items

Software Program size/ No. of Model parameters Est. project effort


Planner software developers on Constants Est. project duration
team Coefficients

Fig.1: Some examples of input, internal, and output data


Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 39
Software Metrics

▪ The Amount of Data

One method for determining the amount of data is to count the


number of entries in the cross-reference list.

A variable is a string of alphanumeric characters that is defined by a


developer and that is used to represent some value during either
compilation or execution.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 40
Software Metrics

Fig.2: Payday program

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 41
Software Metrics

check 2

gross 4 12 13 14 15

hours 6 11 12

net 4 14 15

pay 5 12 13 13 14

14 14 15 15 15

rate 6 11 12

tax 4 13 14 15

Fig.3: A cross reference of program payday


Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 42
Software Metrics
feof 9

stdin 10

Fig.4: Some items not counted as VARS

2 = VARS + unique constants + labels.


to be a count
Halstead introduced a metric that he referred to as  2
of the operands in a program – including all variables, constants, and
labels. Thus,
2  VARS  uniqueconstants  labels
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 43
Software Metrics

Fig.6: Program payday with operands in brackets


Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 44
Software Metrics

The Usage of Data within a Module

✓Live Variables

Definitions :
1. A variable is live from the beginning of a procedure to the end
of the procedure.

2. A variable is live at a particular statement only if it is referenced


a certain number of statements before or after that statement.

3. A variable is live from its first to its last references


within a procedure.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 45
Software Metrics

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 cont…
46
Software Metrics

Fig.6: Bubble sort program


Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 47
Software Metrics

It is thus possible to define the average number of live variables,

(LV ) which is the sum of the count of live variables divided by


the count of executable statements in a procedure. This is a
complexity measure for data usage in a procedure or program.
The live variables in the program in fig. 6 appear in fig. 7 the
average live variables for this program is

124
34  3.647
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 48
Software Metrics
Line Live Variables Count
4 ---- 0
5 ---- 0
6 t, x, k 3
7 t, x, k 3
8 t, x, k 3
9 ---- 0
10 ---- 0
11 ---- 0
12 ---- 0
13 ---- 0
14 size 1
15 size, j 2
16 Size, j, a, b 4
cont…
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 49
Software Metrics
Line Live Variables Count
17 size, j, a, b, last 5
18 size, j, a, b, last, continue 6
19 size, j, a, b, last, continue 6
20 size, j, a, b, last, continue 6
21 size, j, a, b, last, continue 6
22 size, j, a, b, last, continue 6
23 size, j, a, b, last, continue, i 7
24 size, j, a, b, last, continue, i 7
25 size, j, a, b, continue, i 6
26 size, j, a, b, continue, i 6
27 size, j, a, b, continue, i 6
28 size, j, a, b, continue, i 6
29 size, j, a, b, i 5
cont…
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 50
Software Metrics
Line Live Variables Count
30 size, j, a, b, i 5
31 size, j, a, b, i 5
32 size, j, a, b, i 5
33 size, j, a, b 4
34 size, j, a, b 4
35 size, j, a, b 4
36 j, a, b 3
37 -- 0

Fig.7: Live variables for the program in fig.6

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 51
Software Metrics
✓ Variable spans

scanf (“%d %d, &a, &b)
21
… x =a;

32 y = a – b;

z = a;
45
… printf
(“%d %d,
53 a, b);
…Fig.: Statements in ac program referring to variables a and b.
60

The size of a span indicates the number of statements that pass
between successive uses of a variables
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 52
Software Metrics
▪ Making program-wide metrics from intra-module metrics
For example if we want to characterize the average number of live variables
for a program having modules, we can use this equation.
m

 LVi
LV program  i1
m
where (LV )i is the average live variable metric computed from
the ith module

The average span size (SP) for a program of n spans could be computed
by using the equation.
n
 SPi
SPprogram  i1
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
n 53
Software Metrics

▪ Program Weakness

A program consists of modules. Using the average number of


live
variables and average life variables ( ) , the module weakness
has been defined as
(LV )

WM  LV *

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 54
Software Metrics
A program is normally a combination of various modules, hence
program weakness can be a useful measure and is defined as:

 
  WM
m i
WP   m
i1 
where, WMi : weakness of ith module
WP : weakness of the program
m : number of modules in the program

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 55
Software Metrics

Example- 6.3

Consider a program for sorting and searching. The program sorts an


array using selection sort and than search for an element in
sorted array. The program is given in fig. 8. Generate cross
the

reference list for the program and also calculateLVan,d W, M for


the program.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 56
Software Metrics
Solution
The given program is of 66 lines and has 11 variables. The variables
are a, I, j, item, min, temp, low, high, mid, loc and option.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 57
Software Metrics

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 58
Software Metrics

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 59
Software Metrics

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 60
Software Metrics

Fig.8: Sorting & searching program

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 61
Software Metrics
Cross-Reference list of the program is given below:
a 11 18 19 27 27 29 30 30 31 37 47 49 59

i 12 16 16 16 18 19 22 22 22 24 36 36 36 37 37

j 12 25 25 25 27 30 31

item 12 44 47 49 59 62

min 12 24 27 29 30

temp 12 29 31

low 13 46 47 50 52 54

high 13 45 46 47 51 52 54

mid 13 46 47 49 50 51 52 59 61

loc 13 56 61 62

option 14 40 41

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 62
Live Variables per line are calculated as:
Line Live Variables Count

13 low 1
14 low 1
15 low 1
16 low, i 2
17 low, i 2
18 low, i, a 3
19 low, i, a 3
20 low, i, a 3
22 low, i, a 3
23 low, i, a 3
24 low, i, a, min 4
25 low, i, a, min, j 5
26 low, i, a, min, j 5
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
cont…63
Software Metrics
Line Live Variables Count

27 low, i, a, min, j 5
28 low, i, a, min, j 5
29 low, i, a, min, j, temp 6
30 low, i, a, min, j, temp 6
31 low, i, a, j, temp 5
32 low, i, a 3
33 low, i, a 3
34 low, i, a 3
35 low, i, a 3
36 low, i, a 3
37 low, i, a 3
38 low, a 2
39 low, a 2
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
cont…64
Software Metrics
Line Live Variables Count
40 low, a, option 3
41 low, a, option 3
42 low, a 2
43 low, a 2
44 low, a, item 3
45 low, a, item, high 4
46 low, a, item, high, mid 5
47 low, a, item, high, mid 5
48 low, a, item, high, mid 5
49 low, a, item, high, mid 5
50 low, a, item, high, mid 5
51 low, a, item, high, mid 5
52 low, a, item, high, mid 5
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
cont…65
Software Metrics
Line Live Variables Count
53 low, a, item, high, mid 5
54 low, a, item, high, mid 5
55 a, item, mid 3
56 a, item, mid, loc 4
57 a, item, mid, loc 4
58 a, item, mid, loc 4
59 a, item, mid, loc 4
60 item, mid, loc 3
61 item, mid, loc 3
62 item, loc 2

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
cont…66
Software Metrics

Line Live Variables Count


63 0
64 0
65 0
66 0
Total 174

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 67
Software Metrics

Average number of live variables (LV) = Sum of count of live variables


Count of executable statements

LV  174 
53 3 .28
of live variables
Sum of count
  Total number of variables
174  15 .8
 11
Module (WM)  LV  
Weakness
WM  3 .28  15 .8 
51 .8

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 68
Software Metrics

▪ The Sharing of Data Among Modules


A program normally contains several modules and share coupling
among modules. However, it may be desirable to know the amount
of data being shared among the modules.

Fig.10: Three modules from an imaginary program

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 69
Software Metrics

Fig.11: ”Pipes” of data shared among the modules

Fig.12: The data shared in program bubble

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 70
Software Metrics
Information Flow Metrics
Component : Any element identified by decomposing
a
(software)
system into
its

constituent parts.

Cohesion : The degree to which a


component
performs a single function.

Coupling : The term used to describe the degree of


linkage between one component to71
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007

others in the same system.


Software Metrics
▪ The Basic Information Flow Model
Information Flow metrics are applied to the Components of a
system design. Fig. 13 shows a fragment of such a design, and for
component ‘A’ we can define three measures, but remember that
these are the simplest models of IF.
1. ‘FAN IN’ is simply a count of the number of other Components
that can call, or pass control, to Component A.
2. ‘FANOUT’ is the number of Components that are called by
Component A.
3. This is derived from the first two by using the following formula.
We will call this measure the INFORMATION FLOW index of
Component A, abbreviated as IF(A).
IF(A) = [FAN IN(A) x FAN OUT (A)]2
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 72
Software Metrics

Fig.13: Aspects of complexity

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 73
Software Metrics
The following is a step-by-step guide to deriving these most simple
of IF metrics.

1. Note the level of each Component in the system design.


2. For each Component, count the number of calls so that
Component – this is the FAN IN of that Component. Some
organizations allow more than one Component at the highest
level in the design, so for Components at the highest level which
should have a FAN IN of zero, assign a FAN IN of one. Also
note that a simple model of FAN IN can penalize reused
Components.

3. For each Component, count the number of calls from the


Component. For Component that call no other, assign a FAN
OUT value of one.
cont…
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 74
Software Metrics
4. Calculate the IF value for each Component using the above
formula.

5. Sum the IF value for all Components within each level which is
called as the LEVEL SUM.

6. Sum the IF values for the total system design which is called the
SYSTEM SUM.
7. For each level, rank the Component in that level according to
FAN IN, FAN OUT and IF values. Three histograms or line plots
should be prepared for each level.

8. Plot the LEVEL SUM values for each level using a histogram or
line plot.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 75
Software Metrics

▪ A More Sophisticated Information Flow Model


a = the number of components that call A.
b = the number of parameters
passedto A from components higher in the
hierarchy.
c = the number of parameters
passedto A from components lower in the
hierarchy.
d = the number of data elements read by component A.

Then:
FAN IN(A)= a + b + c + d
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 76
Software Metrics

Also let:
e = the number of components called by A;
f = the number of parameters passed from A to components higher
in the hierarchy;
g = the number of parameters passed from A to components lower
in the hierarchy;
h = the number of data elements written to by A.

Then:
FAN OUT(A)= e + f + g + h

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 77
Object Oriented Metrics
Terminologies
S.No Term Meaning/purpose
1 Object Object is an entity able to save a state (information)
and offers a number of operations (behavior) to
either examine or affect this state.
2 Message A request that an object makes of another object to
perform an operation.
3 Class A set of objects that share a common structure and
common behavior manifested by a set of methods;
the set serves as a template from which object can
be created.
4 Method an operation upon an object, defined as part of the
declaration of a class.
5 Attribute Defines the structural properties of a class
and unique within a class.
6 Operation An action performed by or on an object,
available to all instances of class, need not be
unique.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 78
Object Oriented Metrics
Terminologies
S.No Term Meaning/purpose
7 Instantiation The process of creating an instance of the object
and binding or adding the specific data.
8 Inheritance A relationship among classes, where in an object
in a class acquires characteristics from one or
more other classes.
9 Cohesion The degree to which the methods within a class
are related to one another.
10 Coupling Object A is coupled to object B, if and only if A
sends a message to B.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 79
Object Oriented Metrics

• Measuring on class level


– coupling
– inheritance
– methods
– attributes
– cohesion
• Measuring on system level

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 80
Object Oriented Metrics

Size Metrics:
• Number of Methods per Class (NOM)

• Number of Attributes per Class (NOA)

• Weighted Number Methods in a Class (WMC)


– Methods implemented within a the sum of
class or complexities of all the
methods

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 81
Object Oriented Metrics
Coupling Metrics:
• Response for a Class (RFC )
– Number of methods (internal and external) in a
class.

• Data Abstraction Coupling(DAC)


- Number of Abstract Data Types in a class.

• Coupling between Objects (CBO)


– Number of other classes to which it is coupled.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 82
Object Oriented Metrics

• Message Passing Coupling (MPC)


– Number of send statements defined in a class.

• Coupling Factor (CF)


– Ratio of actual number of coupling in the system to
the max. possible coupling.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 83
Object Oriented Metrics
Cohesion Metrics:
• LCOM: Lack of cohesion in methods
– Consider a class C1 with n methods M1, M2…., Mn.
Let (Ij)
= set of all instance variables used by method Mi. There
are n such sets {I1},…….{In}. Let
P {(Ii , I j ) | Ii I j  0}andQ {((Ii , I j ) | Ii I j  0}

If all n {( I1 },........ .(I n)}sets are 0 then P=0

LCOM | P | - | Q |, if | P |  | Q |
 0 otherwise

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 84
Object Oriented Metrics

• Tight Class Cohesion (TCC)


_ Percentage of pairs of public methods of the class
with common attribute usage.
• Loose Class Cohesion (LCC)
– Same as TCC except that this metric also
consider indirectly connected methods.
• Information based Cohesion (ICH)
– Number of invocations of other methods of the
class, weighted by the number of parameters of
same
the invoked method.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 85
Object Oriented Metrics

Inheritance Metrics:

• DIT - Depth of inheritance tree

• NOC - Number of children


– only immediate subclasses are
counted.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 86
Object Oriented Metrics

Inheritance Metrics:
• AIF- Attribute Inheritance Factor
– Ratio of the sum of inherited attributes in all classes of the
system to the total number of attributes for all classes.


TC
A d (C i )
AIF  i


1TC
i
Aa (C i )
1
Aa(Ci )  Ai(Ci )  Ad(Ci )

TC= total number of classes


Ad (Ci) = number of attribute declared in a class
Ai (Ci) = number of attribute inherited in a class
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 87
Object Oriented Metrics

Inheritance Metrics:
• MIF- Method Inheritance Factor
– Ratio of the sum of inherited methods in all classes of the
system to the total number of methods for all classes.


TC
Mi(Ci)
MIF  i
1

TC
i
Ma(C i)
1

Ma (C i )  Mi (C i )  M d (C i )
TC= total number of classes
Md(Ci)= the number of methods declared in a
class
Mi(Ci)= the number of methods inherited in a
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 88

class
Use-Case Oriented Metrics
• Counting actors
Type Description Factor
Simple Program interface 1
Average Interactive or protocol 2
driven interface
Complex Graphical interface 3

Actor weighting factors


o Simple actor: represents another system with a defined interface.
o Average actor: another system that interacts through a text based
interface through a protocol such as TCP/IP.
o Complex actor: person interacting through a GUI interface.
The actors weight can be calculated by adding these values together.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 89
Use-Case Oriented Metrics
• Counting use cases

Type Description Factor


Simple 3 or fewer transactions 5
Average 4 to 7 transactions 10
Complex More than 7 transactions 15

Transaction-based weighting factors

The number of each use case type is counted in the software and
then each number is multiplied by a weighting factor as shown in
table above.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 90
Web Engineering Project Metrics

Ð Number of static web pages


Ð Number of dynamic web pages
Ð Number of internal page links
Ð Word count
Ð Web page similarity
Ð Web page search and retrieval
Ð Number of static content
objects
Ð Number of dynamic content
objects

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 91
Metrics Analysis

Statistical Techniques
• Summary statistics such as mean, median, max. and min.
• Graphical representations such as histograms, pie charts
and box plots.
• Principal component analysis
• Regression and correlation analysis
• Reliability models for predicting future reliability.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 92
Metrics Analysis

Problems with metric data:


• Normal Distribution
• Outliers
• Measurement Scale
• Multicollinearity

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 93
Metrics Analysis

Common pool of data:


• The selection of projects should be representative and
not all come from a single application domain or development
styles.
• No single very large project should be allowed to dominate the
pool.
• For some projects, certain metrics may not have been collected.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 94
Metrics Analysis

Pattern of Successful Applications:


• Any metric is better then none.
• Automation is essential.
• Empiricism is better then theory.
• Use multifactor rather then single metrics.
• Don’t confuse productivity metrics with complexity metrics.
• Let them mature.
• Maintain them.
• Let them die.

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 95
Multiple Choice Questions
Note: Choose most appropriate answer of the following questions:
6.1 Which one is not a category of software metrics ?
(a) Product metrics (b) Process metrics
(c) Project metrics (d) People metrics
6.2 Software science measures are developed by
(a) M.Halstead (b) B.Littlewood
(c) T.J.McCabe (d) G.Rothermal
6.3 Vocabulary of a program is defined as:
(a)  1  2 (b)  1 2

(c)  1 2 (d )  1 /2

4. In halstead theory of software science, volume is measured in bits. The bits are
(a) Number of bits required to store the program
(b) Actual size of a program if a uniform binary encoding scheme for
vocabulary is used
(c) Number of bits required to execute the program
(d) None of the above
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 96
Multiple Choice Questions
5. In Halstead theory, effort is measured in
(a) Person-months (b) Hours
(c) Elementary mental discriminations (d) None of the above
6. Language level is defined as
(a)   L3V (b)  
(c)   LV * LV)  
(d
6.7 Program weakness L2V
is
(a)WM  LV   (b)WM  LV / 
(a)WM  LV   (d) None of the above

8. ‘FAN IN’ of a component A is defined as


(a)Count of the number of components that can call, or pass
control, to component A
(b) Number of components related to component A
(c) Number of components dependent on component A
(d) None of the above
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 97
Multiple Choice Questions
6.9 ‘FAN OUT’ of a component A is defined as
(a) number of components related to component A
(b) number of components dependent on component A
(c) number of components that are called by component A
(d) none of the above
6.10 Which is not a size metric?
(a) LOC (b) Function count
(c) Program length (d) Cyclomatic complexity

6.11 Which one is not a measure of software science theory?


(a) Vocabulary (b) Volume
(c) Level (d) Logic

6.12 A human mind is capable of making how many number of elementary mental
discriminations per second (i.e., stroud number)?
(a) 5 to 20 (b) 20 to 40
(c) 1 to 10 (d) 40 to 80

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 98
Multiple Choice Questions
6.13 Minimal implementation of any algorithm was given the following name by
Halstead:
(a) Volume (b) Potential volume
(c) Effective volume (d) None of the
above
6.14 Program volume of a software product is
(a) V=N log2n (b) V=(N/2) log2n
(c) V=2N log2n (d) V=N log2n+1

6.15 Which one is the international standard for size measure?


(a) LOC (b) Function count
(c) Program length (d) None of the above
6.16 Which one is not an object oriented metric?
(a) RFC (b) CBO
(d) OBC
(c)DAC

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 99
Multiple Choice Questions
6.17 Which metric also consider indirect connected methods?
(a) TCC (b) LCC
(c) Both of the above (d) None of the above
6.18 depth of inheritance tree (DIT) can be measured by:
(a) Number of ancestors classes (b) Number of successor classes
(c) Number of failure classes (d) Number of root classes
6.19 A dynamic page is:
(a) where contents are not dependent on the actions of the user
(b) where contents are dependent on the actions of the user
(c) where contents cannot be displayed
(d) None of the above
6.20 Which of the following is not a size metric?
(a) LOC (b) FP
(c) Cyclomatic Complexity (d) program length

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 100
Exercises
1. Define software metrics. Why do we really need metrics in software?
2. Discus the areas of applications of software metrics? What are
the problems during implementation of metrics in any organizations?
3. What are the various categories of software metrics? Discuss with the
help of suitable example.
4. Explain the Halstead theory of software science. Is it
significant in today’s scenario of component based software
development?
5. What is the importance of language level in Halstead theory of
software science?
6. (i)
Give Halstead’s
Program software science measure
Length for:
(ii) Program volume
(iii) Program level (iv) Effort
(v) Language level

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 101
Exercises
6.7 For a program with number of unique operators 1  20 and number of
unique operands 2  40 , Compute the following:
(i) Program volume (ii) Effort and time
(iii) Program length (iv) Program level
8. Develop a small software tool that will perform a Halstead analysis on a
programming language source code of your choice.

9. Write a program in C and also PASCAL for the calculation of the roots of
a quadratic equation, Find out all software science metrics for both the
programs. Compare the outcomes and comment on the efficiency and
size of both the source codes.
10. How should a procedure identifier be considered, both when declared
and when called/ What about the identifier of a procedure that is passed
as a parameter to another procedure?
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 102
Exercises
11. Assume that the previous payroll program is expected to read a file
containing information about all the cheques that have been printed. The
file is supposed to be printed and also used by the program next time it is
run, to produce a report that compares payroll expenses of the current
month with those of the previous month. Compute functions points for
this program. Justify the difference between the function points of this
program and previous one by considering how the complexity of the
program is affected by adding the requirement of interfacing with
another application (in this case, itself).
12. Define data structure metrics. How can we calculate amount of data in a
program?
13. Describe the concept of module weakness. Is it applicable to programs
also.

14. Write a program for the calculation of roots of a quadratic equation.


Generate cross reference list for the program and also calculate for this
program.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 103
Exercises
15. Show that the value of SP at a particular statement is also the value of
LV at that point.
16. Discuss the significance of data structure metrics during testing.
17. What are information flow metrics? Explain the basic information flow
model.
18. Discuss the problems with metrics data. Explain two methods for the
analysis of such data.
19. Show why and how software metrics can improve the software process.
Enumerate the effect of metrics on software productivity.
20. Why does lines of code (LOC) not measure software nesting and control
structures?
21. Several researchers in software metrics concentrate on data structure to
measure complexity. Is data structure a complexity or quality issue, or
both?

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 104
Exercises
22. List the benefits and disadvantages of using Library routines rather than
writing own code.
23. Compare software science measure and function points as measure of
complexity. Which do you think more useful as a predictor of how much
particular software’s development will cost?
24. Some experimental evidence suggests that the initial size estimate for a
project affects the nature and results of the project. Consider two
different managers charged with developing the same application. One
estimates that the size of the application will be 50,000 lines, while the
other estimates that it will be 100,000 lines. Discuss how these estimates
affect the project throughout its life cycle.

25. Which one is the most appropriate size estimation technique and why?
26. Discuss the object oriented metrics. What is the importance of metrics in
object oriented software development ?

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 105
Exercises
27. Define the following: RFC, CBO, DAC, TCC, LCC & DIT.
28. What is the significance of use case metrics? Is it really important to
design such metrics?

Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 106

You might also like