CCCC Software Metrics Report
generated Fri Mar 2 13:07:43 2012

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 42 
Lines of CodeLOC 9438224.714
McCabe's Cyclomatic NumberMVG 359 8.548
Lines of CommentCOM 79518.929
LOC/COML_C11.872 
MVG/COMM_C 0.452 
Information Flow measure (  inclusive )IF4 4 0.095
Information Flow measure (  visible )IF4v 4 0.095
Information Flow measure (  concrete )IF4c 0 0.000
Lines of Code rejected by parserREJ 7702 

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
BaseNode 45 4 15 3.000------
Call 0 0 0------------
Canvas 213 44 84 2.536 0.524
ClassBoxObject 17 1 3------------
ClassBoxObjectDialog 7 0 0------------
ClassConnection 31 3 310.333------
ConfigDialog 93 18 10 9.300 1.800
ConnectionNode 16 5 16------ 0.312
CreateNewPage 84 19 810.500 2.375
CreateOpenPage 53 15 317.667 5.000
DiagramType 0 0 0------------
Document 176 47 76 2.316 0.618
DrawingMode 0 0 0------------
ExtendsConnection 65 8 7 9.286 1.143
FinalStateObject 22 1 5 4.400------
FinalStateObjectDialog 7 0 0------------
IncludesConnection 65 8 610.833 1.333
InitialStateObject 16 1 3------------
InitialStateObjectDialog 7 0 0------------
InteractionConnection 18 1 4------------
MainWindow 373 43 167 2.234 0.257
NodeAction 32 15 132.00015.000
NodeFactory 20 5 13 1.538 0.385
ObjectNode 57 18 25 2.280 0.720
OvalObject 51 15 9 5.667 1.667
OvalObjectDialog 26 11 0************
QCloseEvent 0 0 0------------
QContextMenuEvent 0 0 0------------
QListWidgetItem 0 0 0------------
QMouseEvent 0 0 0------------
QPaintEvent 0 0 0------------
QPainter 0 0 0------------
QPoint 0 0 0------------
QWidget 0 0 0------------
SquareConnectionNode 40 39 6 6.667 6.500
StateObject 24 1 4 6.000------
StateObjectDialog 7 0 0------------
StickPersonObject 102 16 36 2.833 0.444
StickPersonObjectDialog 26 11 3 8.667 3.667
anonymous 21 3 24 0.875------
bool 0 0 0------------
mathfunctions 22 7 122.000 7.000

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
BaseNode 7 0 0 0 3
Call 0 0 0 0 12
Canvas 25 0 0 0 8
ClassBoxObject 3 0 0 0 1
ClassBoxObjectDialog 1 0 0 0 1
ClassConnection 1 0 0 0 1
ConfigDialog 10 0 0 0 2
ConnectionNode 1 0 0 0 1
CreateNewPage 7 0 0 0 2
CreateOpenPage 7 0 0 0 2
DiagramType 0 0 0 0 1
Document 19 0 0 0 3
DrawingMode 0 0 0 0 3
ExtendsConnection 3 0 0 0 1
FinalStateObject 3 0 0 0 1
FinalStateObjectDialog 1 0 0 0 1
IncludesConnection 3 0 0 0 1
InitialStateObject 3 0 0 0 1
InitialStateObjectDialog 1 0 0 0 1
InteractionConnection 1 0 0 0 1
MainWindow 34 0 0 0 7
NodeAction 5 0 0 0 2
NodeFactory 4 0 0 0 1
ObjectNode 7 0 0 0 3
OvalObject 7 0 0 0 2
OvalObjectDialog 5 0 0 0 2
QCloseEvent 0 0 0 0 1
QContextMenuEvent 0 0 0 0 1
QListWidgetItem 0 0 0 0 1
QMouseEvent 0 0 0 0 1
QPaintEvent 0 0 0 0 1
QPainter 0 0 0 0 13
QPoint 0 0 0 0 7
QWidget 0 0 0 0 10
SquareConnectionNode 1 0 0 0 1
StateObject 3 0 0 0 1
StateObjectDialog 1 0 0 0 1
StickPersonObject 7 0 0 0 2
StickPersonObjectDialog 5 0 0 0 2
anonymous 4 0 0 0 0
bool 0 0 0 0 1
mathfunctions 3 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
BaseNode 2 0 2 1 0 1 4 0 4
Call 12 12 12 0 0 0 0 0 0
Canvas 0 0 0 8 2 8 0 0 0
ClassBoxObject 0 0 0 1 0 1 0 0 0
ClassBoxObjectDialog 0 0 0 1 0 1 0 0 0
ClassConnection 0 0 0 1 0 1 0 0 0
ConfigDialog 0 0 0 2 1 2 0 0 0
ConnectionNode 0 0 0 1 0 1 0 0 0
CreateNewPage 0 0 0 2 1 2 0 0 0
CreateOpenPage 0 0 0 2 1 2 0 0 0
DiagramType 1 1 1 0 0 0 0 0 0
Document 0 0 0 3 1 3 0 0 0
DrawingMode 3 3 3 0 0 0 0 0 0
ExtendsConnection 0 0 0 1 0 1 0 0 0
FinalStateObject 0 0 0 1 0 1 0 0 0
FinalStateObjectDialog 0 0 0 1 0 1 0 0 0
IncludesConnection 0 0 0 1 0 1 0 0 0
InitialStateObject 0 0 0 1 0 1 0 0 0
InitialStateObjectDialog 0 0 0 1 0 1 0 0 0
InteractionConnection 0 0 0 1 0 1 0 0 0
MainWindow 0 0 0 7 4 7 0 0 0
NodeAction 0 0 0 2 2 2 0 0 0
NodeFactory 0 0 0 1 0 1 0 0 0
ObjectNode 0 0 0 3 1 3 0 0 0
OvalObject 0 0 0 2 1 2 0 0 0
OvalObjectDialog 0 0 0 2 1 2 0 0 0
QCloseEvent 1 0 1 0 0 0 0 0 0
QContextMenuEvent 1 0 1 0 0 0 0 0 0
QListWidgetItem 1 0 1 0 0 0 0 0 0
QMouseEvent 1 0 1 0 0 0 0 0 0
QPaintEvent 1 0 1 0 0 0 0 0 0
QPainter 13 0 13 0 0 0 0 0 0
QPoint 7 1 7 0 0 0 0 0 0
QWidget 10 0 10 0 0 0 0 0 0
SquareConnectionNode 0 0 0 1 0 1 0 0 0
StateObject 0 0 0 1 0 1 0 0 0
StateObjectDialog 0 0 0 1 0 1 0 0 0
StickPersonObject 0 0 0 2 1 2 0 0 0
StickPersonObjectDialog 0 0 0 2 1 2 0 0 0
anonymous 0 0 0 0 0 0 0 0 0
bool 1 1 1 0 0 0 0 0 0
mathfunctions 0 0 0 1 1 1 0 0 0

Other Extents

LocationTextLOCCOMMVG
canvas.cpp:1
<file scope items> 0 0 0
dialog.cpp:1
<file scope items> 2 1 0
dialogpages.cpp:1
<file scope items> 1 1 0
document.cpp:1
<file scope items> 1 1 0
main.cpp:1
<file scope items> 1 1 0
mainwindow.cpp:1
<file scope items> 2 1 0
mathfunctions.cpp:1
<file scope items> 1 1 0
moc_canvas.cpp:19
QT_BEGIN_MOC_NAMESPACE static const 26 20 0
moc_canvas.cpp:169
QT_END_MOC_NAMESPACE <EOF> <EOF> 1 0 0
moc_canvas.cpp:1
<file scope items> 18 1 0
moc_dialog.cpp:19
QT_BEGIN_MOC_NAMESPACE static const 17 19 0
moc_dialog.cpp:88
QT_END_MOC_NAMESPACE <EOF> <EOF> 1 0 0
moc_dialog.cpp:1
<file scope items> 11 1 0
moc_dialogpages.cpp:19
QT_BEGIN_MOC_NAMESPACE static const 15 20 0
moc_dialogpages.cpp:162
QT_END_MOC_NAMESPACE <EOF> <EOF> 1 0 0
moc_dialogpages.cpp:1
<file scope items> 31 14 0
moc_document.cpp:19
QT_BEGIN_MOC_NAMESPACE static const 22 20 0
moc_document.cpp:110
QT_END_MOC_NAMESPACE <EOF> <EOF> 1 0 0
moc_document.cpp:1
<file scope items> 15 1 0
moc_mainwindow.cpp:19
QT_BEGIN_MOC_NAMESPACE static const 33 19 0
moc_mainwindow.cpp:137
QT_END_MOC_NAMESPACE <EOF> <EOF> 1 0 0
moc_mainwindow.cpp:1
<file scope items> 28 1 0
moc_nodeaction.cpp:19
QT_BEGIN_MOC_NAMESPACE static const 15 20 0
moc_nodeaction.cpp:92
QT_END_MOC_NAMESPACE <EOF> <EOF> 1 0 0
moc_nodeaction.cpp:1
<file scope items> 10 1 0
moc_nodes.cpp:19
QT_BEGIN_MOC_NAMESPACE static const 13 18 0
moc_nodes.cpp:69
QT_END_MOC_NAMESPACE <EOF> <EOF> 1 0 0
moc_nodes.cpp:1
<file scope items> 8 1 0
moc_UMLnodes_usecase.cpp:19
QT_BEGIN_MOC_NAMESPACE static const 13 18 0
moc_UMLnodes_usecase.cpp:236
QT_END_MOC_NAMESPACE <EOF> <EOF> 1 0 0
moc_UMLnodes_usecase.cpp:1
<file scope items> 67 36 0
nodefactory.cpp:1
<file scope items> 3 3 0
nodes.cpp:1
<file scope items> 1 1 0
qrc_icons.cpp:7383
QT_BEGIN_NAMESPACE extern Q_CORE_EXPORT 3 0 0
qrc_icons.cpp:7388
Q_CORE_EXPORT bool qUnregisterResourceData 2 0 0
qrc_icons.cpp:1
<file scope items> 7332 41 0
UMLnodes_class.cpp:1
<file scope items> 1 1 0
UMLnodes_state.cpp:1
<file scope items> 1 0 0
UMLnodes_usecase.cpp:1
<file scope items> 1 1 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 CCCC development website at http://cccc.sourceforge.net.