Project Analyzer

Design quality report - PicInfo sample application

Procedure length

Code lines (LLOC) Procs % Distribution
1-4 12 46% *********
5-9 9 35% *******
10-14 1 4% *
15-19 1 4% *
20-39 2 8% **
40-59 0 0%  
60-79 0 0%  
80-80 1 4% *
Total 26 100%
 
Longest procedure 80    
Average procedure 9.7    

Procedure length is measured by logical lines of code (LLOC).
Comments and whitespace are not counted.

Source file sizes

Average source file size

Average length 145 LINES  
Average kilobytes 5.6 kB

Smallest and largest source files

Longest file 249 LINES PicMain.bas
Shortest file 50 LINES PicInfo.cls
     
Largest file 10.2 kB PicMain.bas
Smallest file 1.9 kB PicInfo.cls

Line counts in this section are physical line counts (LINES).

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 maximum 5  
Actual maximum 5
Too high (DCOND > 5) 0 procedures (0%)
Average DCOND 0.8

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

Logical line: Lines continued on several lines 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 45
Lines of code (LLOC) 371
Source procedures 29
Problems / LLOC 0.1
Problems / procedure 1.6