Project Analyzer

Design quality report - PicInfo sample application

Procedure length

Lines (LLOC) Procs % Distribution
1- 12 46% *********
5- 9 35% *******
10- 1 4% *
15- 1 4% *
20- 1 4% *
30- 1 4% *
40- 0 0%  
50- 0 0%  
60- 0 0%  
70- 0 0%  
80- 1 4% *
Total 26 100%
 
Max lines 80   Longest procedure
Average lines 9,7   Average procedure
Procedure length is measured by logical lines of code (LLOC).

Complexity

Cyclomatic complexity

Complexity Procs % Distribution Description
1- 4 24 92% ****************** Simple procedure
5-10 1 4% * Well structured, stable
11-20 0 0%   More complex
21-50 1 4% * Complex, alarming
51- 0 0%   Error-prone, troublesome
Total 26 100%

Cyclomatic complexity (CC) = Number of decisions + 1
Recommended range: 1-10

Average complexity 2,65  
Decision density 0,27 DECDENS=CC/LLOC, complexity per a line of code
Total complexity 44 TCC = total number of decisions + 1

Depth of conditional nesting

DCOND = Maximum nested conditional statements in procedure. Recommended range: 0 to 5.

Average DCOND 0,8  
Max DCOND 5
DCOND >= 5 0 procedures (0%)

Other procedural complexity values

Average SFOUT 0,81 Structural fan-out
Average DLOOPS 0,00 Depth of looping
Average IFIN 2,42 Informational fan-in
Average IFIOUT 1,35 Informational fan-out
Average IC1 132 Informational complexity

Understandability

Comments and whitespace

Logical lines of code LLOC 371 52%  
Logical lines of comment LLOC' 173 24%
Lines of whitespace LLOW 173 24%
Total logical lines LLINES 717 100%
 
Comment types
Full-line comments 173 75%
End-of-line comments 58 25%
All comments 231 100%
 
Comment contents
Meaningful comments MCOMM 224 97%
Meaningless comments 7 3%
All comments 231 100%
 
Comment density
MCOMM per code line (MCOMM%) 60%   MCOMM/LLOC

Lines with the line continuation character '_' are counted as one logical line.
Lines excluded by conditional compilation are not included in the logical line counts.
A meaningful comment contains text rather than just whitespace or punctuation.

Meaningful comments per procedure

MCOMM Procs % Distribution
0 1 4% *
1-2 11 42% ********
3-5 9 35% *******
6 or more 5 19% ****
Total 26 100%
Average MCOMM 5,4

Length of names

Average length of names LEN 11,3  
Procedure names LENP 10,9 (excl. event handlers/implements procs)
Variable names LENV 9,3 (excl. event handler/implements params)
Constant names LENC 16,1
Control names 6,7
Type/Enum names 12,1 (incl. enum constants and type fields)

Length % Distribution
1 1%  
2 0%  
3 1%  
4-6 17% ***
7-9 27% *****
10-14 27% *****
15-19 17% ***
20-24 11% **

Number of names

Total names 167  
Unique names 143
Name uniqueness ratio UNIQ 86%

Structural fan-in and reuse

SFIN Procs % Distribution
0-1 No reuse 28 97% *******************
2-4 Slight reuse 1 3% *
5-9 Significant reuse 0 0%  
10- High reuse 0 0%  
Average: 0,7

Structural fan-in (SFIN) = number of calling procedures.

Problems

Dead code

  Problematic Total %
Dead procedures 4 29 14%
Removable code lines in procs 13 254 5%
Dead variables 2 25 8%
Dead constants 2 20 10%
Dead Types 0 6 0%
Dead Enums 0 2 0%

Dead code counts may include exposed code.

Problems with declarations

  Problematic Total %
Missing variable type 0 25 0%
Excess var/const scope 0 45 0%
No var/const scope 0 45 0%
Missing ByVal/ByRef 0 37 0%
Missing function type 0 21 0%
Excess procedure scope 1 29 3%
No procedure scope 0 29 0%

Problem statistics

Filter: <Default>
Problems reported 42
Lines of code (LLOC) 371
Procedures 29
Problems / LLOC 0,1
Problems / procedure 1,4