CCCC Software Metrics Report
generated Sun Dec 9 20:14:00 2001

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 23 
Lines of CodeLOC 142862.087
McCabe's Cyclomatic NumberMVG 26311.435
Lines of CommentCOM 40817.739
LOC/COML_C 3.500 
MVG/COMM_C 0.645 
Information Flow measure (  inclusive )IF4 128 5.565
Information Flow measure (  visible )IF4v 60 2.609
Information Flow measure (  concrete )IF4c 9 0.391
Lines of Code rejected by parserREJ 94 

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
AAntrum 62 7 231.000 3.500
ABaseList 137 34 37 3.703 0.919
ABaseModel 47 5 147.000 5.000
AConfig 169 59 70 2.414 0.843
AFLOAT 0 0 0------------
AF_MODE_T 0 0 0------------
AFile 68 30 48 1.417 0.625
AInputFluid 52 15 27 1.926 0.556
AModel 79 13 326.333 4.333
AModelLine 36 4 23 1.565------
AOpenGL 172 13 50 3.440 0.260
APoint 58 1 28 2.071------
APointList 137 34 45 3.044 0.756
ATrace 95 18 37 2.568 0.486
FILE 0 0 0------------
GLdouble 0 0 0------------
GLfloat 0 0 0------------
IAInput 26 1 0******------
IAModel 64 9 0************
IAOpenGL 48 5 316.000 1.667
Tracker 0 0 0------------
anonymous 84 15 712.000 2.143
cfglist 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
AAntrum 3 3 0 0 3
ABaseList 11 11 0 0 2
ABaseModel 6 6 0 1 6
AConfig 8 8 0 0 1
AFLOAT 0 0 0 0 4
AF_MODE_T 0 0 0 0 1
AFile 5 5 0 0 3
AInputFluid 7 5 0 0 1
AModel 9 7 0 0 3
AModelLine 4 4 1 0 3
AOpenGL 15 15 0 0 4
APoint 5 5 0 0 4
APointList 11 11 0 0 3
ATrace 8 8 0 0 1
FILE 0 0 0 0 1
GLdouble 0 0 0 0 1
GLfloat 0 0 0 0 1
IAInput 3 3 0 0 4
IAModel 9 9 0 0 5
IAOpenGL 5 5 0 0 3
Tracker 0 0 0 0 1
anonymous 11 0 0 0 0
cfglist 0 0 0 0 1

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
AAntrum 0 0 0 0 3 3 0 0 0
ABaseList 0 1 1 1 0 1 0 0 1
ABaseModel 2 1 3 3 2 3 36 4 81
AConfig 0 0 0 1 0 1 0 0 0
AFLOAT 4 4 4 0 0 0 0 0 0
AF_MODE_T 1 1 1 0 0 0 0 0 0
AFile 1 0 1 1 1 2 1 0 4
AInputFluid 0 0 0 0 0 1 0 0 0
AModel 0 0 0 1 2 3 0 0 0
AModelLine 0 0 0 2 1 3 0 0 0
AOpenGL 0 0 0 2 2 4 0 0 0
APoint 3 0 3 1 1 1 9 0 9
APointList 1 1 2 1 0 1 1 0 4
ATrace 0 0 0 1 0 1 0 0 0
FILE 0 0 1 0 0 0 0 0 0
GLdouble 0 1 1 0 0 0 0 0 0
GLfloat 0 1 1 0 0 0 0 0 0
IAInput 2 1 3 1 1 1 4 1 9
IAModel 3 2 4 1 1 1 9 4 16
IAOpenGL 0 1 1 2 0 2 0 0 4
Tracker 0 0 1 0 0 0 0 0 0
anonymous 0 0 0 0 0 0 0 0 0
cfglist 1 0 1 0 0 0 0 0 0

Other Extents

LocationTextLOCCOMMVG
./main/AAntrum.cc:1
<file scope items> 3 0 0
./main/main.cc:1
<file scope items> 1 0 0
./input/AInputFluid.cc:1
<file scope items> 1 1 0
./input/IAInput.cc:1
<file scope items> 2 0 0
./model/ABaseList.cc:1
<file scope items> 1 0 0
./model/ABaseModel.cc:1
<file scope items> 1 0 0
./model/AModel.cc:1
<file scope items> 2 0 0
./model/AModelLine.cc:1
<file scope items> 3 9 0
./model/APoint.cc:1
<file scope items> 2 5 0
./model/APointList.cc:1
<file scope items> 1 0 0
./model/IAModel.cc:1
<file scope items> 3 0 0
./opengl/AOpenGL.cc:1
<file scope items> 3 0 0
./opengl/IAOpenGL.cc:1
<file scope items> 3 0 0
./util/AConfig.cc:1
<file scope items> 1 1 0
./util/AFile.cc:1
<file scope items> 1 1 0
./util/AGlobalFuncs.cc:1
<file scope items> 1 0 0
./util/ATrace.cc:1
<file scope items> 3 0 0
./main/AAntrum.h:1
<file scope items> 2 0 0
./input/AInputFluid.h:1
<file scope items> 1 1 0
./input/IAInput.h:1
<file scope items> 1 0 0
./model/ABaseList.h:1
<file scope items> 1 0 0
./model/ABaseModel.h:1
<file scope items> 1 0 0
./model/AModel.h:1
<file scope items> 2 0 0
./model/AModelLine.h:1
<file scope items> 1 1 0
./model/APoint.h:1
<file scope items> 1 1 0
./model/APointList.h:1
<file scope items> 1 1 0
./model/IAModel.h:1
<file scope items> 1 0 0
./opengl/AOpenGL.h:1
<file scope items> 2 0 0
./opengl/IAOpenGL.h:1
<file scope items> 1 0 0
./util/AConfig.h:1
<file scope items> 1 1 0
./util/ADefs.h:1
<file scope items> 33 2 0
./util/AFile.h:1
<file scope items> 1 1 0
./util/AGlobalFuncs.h:1
<file scope items> 1 0 0
./util/ATrace.h:1
<file scope items> 11 2 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 (tim_littlefair@hotmail.com) as part of a PhD research project. Tim is presently conducting an experiment to try to assess the practical value of this and similar tools in an industrial setting. Please visit http://www.fste.ac.cowan.edu.au/~tlittlef/CodeReviewExperiment.html to read about and/or to volunteer to participate in this experiment.

Please also visit the CCCC development website at http://cccc.sourceforge.net.