0% found this document useful (0 votes)
56 views12 pages

Cyclomatic Complexity

Cyclomatic complexity measures the logical complexity of program code by counting the number of decisions in the code. Higher complexity indicates more complex code that is less testable and more expensive to develop and maintain. The document discusses how to calculate complexity using control flow graphs and presents examples of complexity calculations for code snippets.

Uploaded by

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

Cyclomatic Complexity

Cyclomatic complexity measures the logical complexity of program code by counting the number of decisions in the code. Higher complexity indicates more complex code that is less testable and more expensive to develop and maintain. The document discusses how to calculate complexity using control flow graphs and presents examples of complexity calculations for code snippets.

Uploaded by

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

Cyclomatic Complexity-

Cyclomatic Complexity may be defined as-


 It is a software metric that measures the logical complexity of the program code.
 It counts the number of decisions in the given program code.
 It measures the number of linearly independent paths through the program code.

Cyclomatic complexity indicates several information about the program code-

Cyclomatic Complexity Meaning

 Structured and Well Written Code


1 – 10  High Testability
 Less Cost and Effort

 Complex Code
10 – 20  Medium Testability
 Medium Cost and Effort

 Very Complex Code


20 – 40  Low Testability
 High Cost and Effort

 Highly Complex Code


> 40  Not at all Testable
 Very High Cost and Effort

Importance of Cyclomatic Complexity-

 It helps in determining the software quality.


 It is an important indicator of program code’s readability, maintainability and portability.
 It helps the developers and testers to determine independent path executions.
 It helps to focus more on the uncovered paths.
 It evaluates the risk associated with the application or program.
 It provides assurance to the developers that all the paths have been tested at least once.
Properties of Cyclomatic Complexity-

 It is the maximum number of independent paths through the program code.


 It depends only on the number of decisions in the program code.
 Insertion or deletion of functional statements from the code does not affect its cyclomatic
complexity.
 It is always greater than or equal to 1.

Calculating Cyclomatic Complexity-

Cyclomatic complexity is calculated using the control flow representation of the program
code.
In control flow representation of the program code,
 Nodes represent parts of the code having no branches.
 Edges represent possible control flow transfers during program execution

There are 3 commonly used methods for calculating the cyclomatic complexity-

Method-01:

Cyclomatic Complexity = Total number of closed regions in the control flow graph + 1

Method-02:

Cyclomatic Complexity = E – N + 2

Here-
 E = Total number of edges in the control flow graph
 N = Total number of nodes in the control flow graph

Method-03:

Cyclomatic Complexity = P + 1
Here,
P = Total number of predicate nodes contained in the control flow graph

Note-

 Predicate nodes are the conditional nodes.


 They give rise to two branches in the control flow graph.

PRACTICE PROBLEMS BASED ON CYCLOMATIC


COMPLEXITY-

Problem-01:

Calculate cyclomatic complexity for the given code-

IF A = 354

THEN IF B > C

THEN A = B

ELSE A = C

END IF

END IF

PRINT A

Solution-

We draw the following control flow graph for the given code-
Using the above control flow graph, the cyclomatic complexity may be calculated as-

Method-01:

Cyclomatic Complexity
= Total number of closed regions in the control flow graph + 1
=2+1
=3

Method-02:
Cyclomatic Complexity
=E–N+2
=8–7+2
=3

Method-03:

Cyclomatic Complexity
=P+1
=2+1
=3

Problem-02:

Calculate cyclomatic complexity for the given code-

{ int i, j, k;

for (i=0 ; i<=N ; i++)

p[i] = 1;

for (i=2 ; i<=N ; i++)

k = p[i]; j=1;

while (a[p[j-1]] > a[k] {

p[j] = p[j-1];

j--;

p[j]=k;

}
Solution-

We draw the following control flow graph for the given code-
Using the above control flow graph, the cyclomatic complexity may be calculated as-

Method-01:

Cyclomatic Complexity
= Total number of closed regions in the control flow graph + 1
=3+1
=4

Method-02:

Cyclomatic Complexity
=E–N+2
= 16 – 14 + 2
=4

Method-03:

Cyclomatic Complexity
=P+1
=3+1
=4

Problem-03:

Calculate cyclomatic complexity for the given code-

begin int x, y, power;

float z;
input(x, y);

if(y<0)

power = -y;

else power = y;

z=1;

while(power!=0)

{ z=z*x;

power=power-1;

} if(y<0)

z=1/z;

output(z);

end

Solution-

We draw the following control flow graph for the given code-
Using the above control flow graph, the cyclomatic complexity may be calculated as-
Method-01:

Cyclomatic Complexity
= Total number of closed regions in the control flow graph + 1
=3+1
=4

Method-02:

Cyclomatic Complexity
=E–N+2
= 16 – 14 + 2
=4

Method-03:

Cyclomatic Complexity
=P+1
=3+1
=4

Problem-04:
void main c { int a, b, c, max,
1. print f ('enter 3 integers"),
2. scan f (" %d %d %d", & a, & , & c),b
3. if (a >) b
4. if ( a > c)
5. Max = a
6. else max = c,
7. else if (b > c)
8. Max = b
9. else max = c
10. print and ( "a max = % d", max), 3
No. of independent paths
v (a) = e - n + 2
= 11 - 9 + 2
=4
No. of procedures = 1
∴∴ cyclomatic complexity
=e-n+2P
= 11 - 9 + 2
=4

You might also like