CCCC Software Metrics Report
generated Sat Sep 19 16:06:59 2015

Project Summary

Summary table of high level measures summed over all files processed in the current run.

Procedural Metrics Summary

Table of procedural measures (i.e. lines of code, lines of comment, McCabe's cyclomatic complexity summed over each module.

Object Oriented Design

Table of four of the 6 metrics proposed by Chidamber and Kemerer in their various papers on 'a metrics suite for object oriented design'.

Structural Metrics Summary

Structural metrics based on the relationships of each module with others. Includes fan-out (i.e. number of other modules the current module uses), fan-in (number of other modules which use the current module), and the Information Flow measure suggested by Henry and Kafura, which combines these to give a measure of coupling for the module.

Other Extents

Lexical counts for parts of submitted source files which the analyser was unable to assign to a module. Each record in this table relates to either a part of the code which triggered a parse failure, or to the residual lexical counts relating to parts of a file not associated with a specific module.

About CCCC

A description of the CCCC program.

Project Summary

This table shows measures over the project as a whole. Two variants on the information flow measure IF4 are also presented, one (IF4v) calculated using only relationships in the visible part of the module interface, and the other (IF4c) calculated using only those relationships which imply that changes to the client must be recompiled of the supplier's definition changes.
MetricTagOverallPer Module
Number of modulesNOM 54 
Lines of CodeLOC 7406137.148
McCabe's Cyclomatic NumberMVG 58810.889
Lines of CommentCOM 156028.889
LOC/COML_C 4.747 
MVG/COMM_C 0.377 
Information Flow measure (  inclusive )IF4 3916 72.519
Information Flow measure (  visible )IF4v 1481 27.426
Information Flow measure (  concrete )IF4c 68 1.259
Lines of Code rejected by parserREJ 868 

Procedural Metrics Summary

For descriptions of each of these metrics see the information preceding the project summary table. The label cell for each row in this table provides a link to the functions table in the detailed report for the module in question
Module NameLOCMVGCOML_CM_C
ANTLRAbstractToken 1 0 18------------
ANTLRChar 0 0 0------------
ANTLRCommonToken 0 0 0------------
ANTLRParser 0 0 0------------
ANTLRToken 80 5 66 1.212 0.076
ANTLRTokenBuffer 0 0 0------------
ANTLRTokenPtr 1 0 0------------
ANTLR_Assisted_Parser 4 0 16------------
AST 1 0 8------------
CCCC_Extent 136 36 817.000 4.500
CCCC_Html_Stream 1152 78 8313.880 0.940
CCCC_Item 134 16 48 2.792 0.333
CCCC_Member 199 36 32 6.219 1.125
CCCC_Metric 109 14 13 8.385 1.077
CCCC_Module 261 46 52 5.019 0.885
CCCC_Options 175 22 1412.500 1.571
CCCC_Project 344 52 45 7.644 1.156
CCCC_Record 64 8 416.000 2.000
CCCC_Table 112 14 26 4.308 0.538
CCCC_UseRelationship 220 41 40 5.500 1.025
CCCC_Xml_Stream 573 42 75 7.640 0.560
CLexer 644 1 1253.667------
CParser 271 3 645.167------
CharArray 0 0 0------------
DLGChar 0 0 0------------
DLGInputStream 0 0 0------------
DLGLexer 1 0 0------------
DLGLexerBase 0 0 0------------
DfaState 0 0 0------------
Extent_Table 0 0 0------------
FileExtentTable 0 0 0------------
JLexer 514 1 1242.833------
JParser 219 3 34 6.441------
LexicalCountArray 0 0 0------------
LineLexicalCountMatrix 0 0 0------------
Main 464 66 94 4.936 0.702
Metric_Treatment 35 7 45 0.778 0.156
ParseStore 232 19 67 3.463 0.284
ParseUtility 188 19 59 3.186 0.322
SetWordType 0 0 0------------
Source_Anchor 58 5 18 3.222 0.278
T 0 0 0------------
_ANTLRTokenPtr 0 0 0------------
anonymous 339 54 56 6.054 0.964
bool 0 0 0------------
ifstream 0 0 0------------
list 0 0 0------------
map 1 0 21------------
member_map_t 0 0 0------------
ofstream 0 0 0------------
ostream 0 0 0------------
relationship_map_t 0 0 0------------
string 0 0 0------------
unsigned 0 0 0------------

Object Oriented Design

The label cell for each row in this table provides a link to the module summary table in the detailed report for the module in question
Module NameWMC1WMCvDITNOCCBO
ANTLRAbstractToken 0 0 0 0 1
ANTLRChar 0 0 0 0 4
ANTLRCommonToken 0 0 0 1 1
ANTLRParser 0 0 0 3 4
ANTLRToken 12 12 1 0 3
ANTLRTokenBuffer 0 0 0 0 2
ANTLRTokenPtr 0 0 0 0 1
ANTLR_Assisted_Parser 1 1 1 0 2
AST 0 0 0 0 0
CCCC_Extent 10 10 0 0 4
CCCC_Html_Stream 32 3 0 0 9
CCCC_Item 14 14 0 0 11
CCCC_Member 8 7 1 0 6
CCCC_Metric 10 9 0 0 4
CCCC_Module 6 5 1 0 10
CCCC_Options 7 7 0 0 2
CCCC_Project 12 12 1 0 13
CCCC_Record 11 11 0 4 10
CCCC_Table 11 0 1 0 4
CCCC_UseRelationship 13 12 1 0 7
CCCC_Xml_Stream 28 3 0 0 8
CLexer 168 168 1 0 5
CParser 111 106 1 0 9
CharArray 0 0 0 0 1
DLGChar 0 0 0 0 2
DLGInputStream 0 0 0 0 2
DLGLexer 0 0 0 0 0
DLGLexerBase 0 0 0 2 2
DfaState 0 0 0 0 2
Extent_Table 0 0 0 0 1
FileExtentTable 0 0 0 0 1
JLexer 138 138 1 0 5
JParser 97 26 1 0 9
LexicalCountArray 0 0 0 0 1
LineLexicalCountMatrix 0 0 0 0 1
Main 15 14 0 0 3
Metric_Treatment 3 1 0 0 5
ParseStore 19 17 0 0 8
ParseUtility 11 9 0 0 10
SetWordType 0 0 0 0 3
Source_Anchor 8 8 0 0 2
T 0 0 0 0 1
_ANTLRTokenPtr 0 0 0 0 3
anonymous 37 1 0 0 0
bool 0 0 0 0 6
ifstream 0 0 0 0 5
list 0 0 0 0 1
map 0 0 0 1 2
member_map_t 0 0 0 0 1
ofstream 0 0 0 0 8
ostream 0 0 0 0 4
relationship_map_t 0 0 0 0 1
string 0 0 0 0 18
unsigned 0 0 0 0 2

Structural Metrics Summary

Note that the fan-in and fan-out are calculated by examining the interface of each module. As noted above, three variants of each each of these measures are presented: a count restricted to the part of the interface which is externally visible, a count which only includes relationships which imply the client module needs to be recompiled if the supplier's implementation changes, and an inclusive count The label cell for each row in this table provides a link to the relationships table in the detailed report for the module in question
Module Name Fan-out Fan-in IF4
visconincvisconinclvisconinc
ANTLRAbstractToken 1 0 1 0 0 0 0 0 0
ANTLRChar 4 0 4 0 0 0 0 0 0
ANTLRCommonToken 1 1 1 0 0 0 0 0 0
ANTLRParser 4 3 4 0 0 0 0 0 0
ANTLRToken 0 0 0 3 1 3 0 0 0
ANTLRTokenBuffer 2 0 2 0 0 0 0 0 0
ANTLRTokenPtr 1 0 1 0 0 0 0 0 0
ANTLR_Assisted_Parser 0 0 1 1 1 1 0 0 1
AST 0 0 0 0 0 0 0 0 0
CCCC_Extent 0 0 2 1 1 2 0 0 16
CCCC_Html_Stream 0 0 1 2 3 8 0 0 64
CCCC_Item 7 0 7 3 2 4 441 0 784
CCCC_Member 0 0 0 4 2 6 0 0 0
CCCC_Metric 0 0 3 0 0 1 0 0 9
CCCC_Module 0 0 3 5 4 7 0 0 441
CCCC_Options 0 0 0 2 0 2 0 0 0
CCCC_Project 4 0 5 7 5 8 784 0 1600
CCCC_Record 4 4 6 4 2 4 256 64 576
CCCC_Table 0 1 1 3 2 3 0 4 9
CCCC_UseRelationship 0 0 0 6 2 7 0 0 0
CCCC_Xml_Stream 0 0 0 2 3 8 0 0 0
CLexer 0 0 0 5 4 5 0 0 0
CParser 0 0 0 6 4 9 0 0 0
CharArray 1 1 1 0 0 0 0 0 0
DLGChar 2 2 2 0 0 0 0 0 0
DLGInputStream 2 0 2 0 0 0 0 0 0
DLGLexer 0 0 0 0 0 0 0 0 0
DLGLexerBase 2 2 2 0 0 0 0 0 0
DfaState 2 2 2 0 0 0 0 0 0
Extent_Table 1 1 1 0 0 0 0 0 0
FileExtentTable 1 1 1 0 0 0 0 0 0
JLexer 0 0 0 5 4 5 0 0 0
JParser 0 0 0 6 5 9 0 0 0
LexicalCountArray 1 1 1 0 0 0 0 0 0
LineLexicalCountMatrix 1 1 1 0 0 0 0 0 0
Main 0 0 0 3 2 3 0 0 0
Metric_Treatment 0 0 1 1 1 4 0 0 16
ParseStore 0 0 2 6 5 6 0 0 144
ParseUtility 0 0 2 7 2 8 0 0 256
SetWordType 3 2 3 0 0 0 0 0 0
Source_Anchor 0 0 0 2 1 2 0 0 0
T 1 0 1 0 0 0 0 0 0
_ANTLRTokenPtr 1 3 3 0 0 0 0 0 0
anonymous 0 0 0 0 0 0 0 0 0
bool 3 5 6 0 0 0 0 0 0
ifstream 5 0 5 0 0 0 0 0 0
list 1 1 1 0 0 0 0 0 0
map 2 2 2 0 0 0 0 0 0
member_map_t 1 1 1 0 0 0 0 0 0
ofstream 6 2 8 0 0 0 0 0 0
ostream 4 0 4 0 0 0 0 0 0
relationship_map_t 1 1 1 0 0 0 0 0 0
string 13 17 18 0 0 0 0 0 0
unsigned 2 2 2 0 0 0 0 0 0

Other Extents

LocationTextLOCCOMMVG
./cccc/cccc_db.cc:1
<file scope items> 15 22 0
./cccc/cccc_ext.cc:1
<file scope items> 2 21 0
./cccc/cccc_htm.cc:1
<file scope items> 6 25 0
./cccc/cccc_itm.cc:1
<file scope items> 1 1 0
./cccc/ccccmain.cc:1
<file scope items> 8 10 0
./cccc/cccc_mem.cc:1
<file scope items> 1 1 0
./cccc/cccc_met.cc:1
<file scope items> 30 19 0
./cccc/cccc_mod.cc:1
<file scope items> 1 1 0
./cccc/cccc_new.cc:1
<file scope items> 6 22 0
./cccc/cccc_opt.cc:1
<file scope items> 85 74 0
./cccc/cccc_prj.cc:1
<file scope items> 1 1 0
./cccc/cccc_rec.cc:1
<file scope items> 2 21 0
./cccc/cccc_tbl.cc:1
<file scope items> 5 1 0
./cccc/cccc_tok.cc:1
<file scope items> 6 24 0
./cccc/cccc_tpl.cc:1
<file scope items> 1 1 0
./cccc/cccc_use.cc:1
<file scope items> 1 1 0
./cccc/cccc_utl.cc:1
<file scope items> 14 23 0
./cccc/cccc_xml.cc:1
<file scope items> 83 25 0
./cccc/cccc_db.h:1
<file scope items> 12 40 0
./cccc/cccc_ext.h:1
<file scope items> 3 21 0
./cccc/cccc.h:1
<file scope items> 23 11 0
./cccc/cccc_htm.h:1
<file scope items> 12 18 0
./cccc/cccc_itm.h:1
<file scope items> 1 1 0
./cccc/cccc_mem.h:1
<file scope items> 4 21 0
./cccc/cccc_met.h:1
<file scope items> 2 18 0
./cccc/cccc_mod.h:1
<file scope items> 5 1 0
./cccc/cccc_opt.h:1
<file scope items> 1 1 0
./cccc/cccc_prj.h:1
<file scope items> 8 1 0
./cccc/cccc_rec.h:1
<file scope items> 2 29 0
./cccc/cccc_tbl.h:1
<file scope items> 2 23 0
./cccc/cccc_tok.h:1
<file scope items> 3 29 0
./cccc/cccc_use.h:1
<file scope items> 4 1 0
./cccc/cccc_utl.h:1
<file scope items> 40 39 0
./cccc/cccc_ver.h:1
<file scope items> 1 1 0
./cccc/cccc_xml.h:1
<file scope items> 1 1 0
./cccc/CLexer.h:1
<file scope items> 2 0 0
./cccc/CParser.h:1
<file scope items> 2 19 0
./cccc/Ctokens.h:1
<file scope items> 245 8 0
./cccc/JLexer.h:1
<file scope items> 2 0 0
./cccc/JParser.h:1
<file scope items> 1 1 0
./cccc/Jtokens.h:1
<file scope items> 224 8 0

About CCCC

This report was generated by the program CCCC, which is FREELY REDISTRIBUTABLE but carries NO WARRANTY.

CCCC was developed by Tim Littlefair. as part of a PhD research project. This project is now completed and descriptions of the findings can be accessed at http://www.chs.ecu.edu.au/~tlittlef.

User support for CCCC can be obtained by mailing the list cccc-users@lists.sourceforge.net.

Please also visit the new CCCC development website at http://sarnold.github.io/cccc/.