|
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. |
| Metric | Tag | Overall | Per Module |
|---|---|---|---|
| Number of modules | NOM | 54 | |
| Lines of Code | LOC | 7406 | 137.148 |
| McCabe's Cyclomatic Number | MVG | 588 | 10.889 |
| Lines of Comment | COM | 1560 | 28.889 |
| LOC/COM | L_C | 4.747 | |
| MVG/COM | M_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 parser | REJ | 868 |
| Module Name | LOC | MVG | COM | L_C | M_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 | 8 | 17.000 | 4.500 |
| CCCC_Html_Stream | 1152 | 78 | 83 | 13.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 | 14 | 12.500 | 1.571 |
| CCCC_Project | 344 | 52 | 45 | 7.644 | 1.156 |
| CCCC_Record | 64 | 8 | 4 | 16.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 | 12 | 53.667 | ------ |
| CParser | 271 | 3 | 6 | 45.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 | 12 | 42.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 | ------ | ------ |
| Module Name | WMC1 | WMCv | DIT | NOC | CBO |
|---|---|---|---|---|---|
| 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 |
| Module Name | Fan-out | Fan-in | IF4 | vis | con | inc | vis | con | incl | vis | con | inc |
|---|---|---|---|---|---|---|---|---|---|
| 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 |
| Location | Text | LOC | COM | MVG |
|---|---|---|---|---|
./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 |
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/.