Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Qualified design metrics with resource-level availability

...

NameKeyDescription

Afferent couplings

ca

A class' afferent couplings is a measure of how many other classes use the specific class. This metric is available only at the file level.

Depth in Tree

dit

The depth of inheritance tree (DIT) metric provides for each class a measure of the inheritance levels from the top of the object hierarchy. This metric is available only at the file level.

More details

Efferent couplings

ce

A class' efferent couplings is a measure of how many different classes are used by the specific class. This metric is available only at the file level.

File cycles

file_cycles

Minimal number of file cycles detected inside a package to be able to identify all undesired dependencies. This metric is available at the package, module and program levels.

Anchor
metricFileEdgesWeight
metricFileEdgesWeight
File edges weight

file_edges_weight

Number of file dependencies inside a package. This metric is available at the package, module and program levels.

File dependencies to cut

package_tangles

Number of file dependencies to cut in order to remove all cycles between packages. This metric is available at the package, module and program levels.

 

Anchor
metricFileTangle
metricFileTangle
File tangle

file_tangles

File tangle = Suspect file dependencies

This metric is available at the package, module and program levels.

Anchor
metricFileTangleIndex
metricFileTangleIndex
File tangle index

file_tangle_index

File tangle index = 2 * (File tangle / File edges weight) * 100.

 This metric is available at the package, module and program levels.

LCOM4

lcom4

Lack of cohesion of functions. See LCOM4 documentation page. This metric is available at all levels.

Number of children

noc

The number of direct and indirect descendants of this class. This metric is available at the file level.

Package cycles

package_cycles

Minimal number of package cycles detected to be able to identify all undesired dependencies. This metric is available at the package, module and program levels.

Package dependencies to cut

package_feedback_edges

Number of package dependencies to cut in order to remove all cycles between packages. This metric is available at the package, module and program levels.

Package tangle index

package_tangle_index

Level of package interdependency. Best value (0%) means that there is no cycle and worst value (100%) means that packages are really tangled. This metric is computed with the following formula: 2 * (File dependencies to cut / Number of file dependencies between packages) * 100. This metric is available at the package, module and program levels.

Response for class

rfc

See RFC documentation page. This metric is available at all levels.

Package edges weight

package_edges_weight

Number of file dependencies between packages. This metric is available at the package, module and program levels.

Anchor
metricFileFeedbackEdges
metricFileFeedbackEdges
Suspect file dependencies

file_feedback_edges

File dependencies to cut in order to remove cycles between files inside a package. Note that cycles between files inside a package does not always mean a bad quality architecture. This metric is available at the package level.

Suspect LCOM4 densitysuspect_lcom4_densityDensity of files having a LCOM4 density greater than 1. This metric is available at the package, module and program levels.

Documentation

NameKeyDescription
Blank commentscomment_blank_linesNumber of non-significant comment lines (empty comment line, comment line containing only special characters, etc.).
Anchor
metricCommentLines
metricCommentLines
Comment lines
comment_lines

Number of lines containing a comment.

More details

Comments (%)comment_lines_density

Density of comment lines = Comment lines / (Lines of code + Comment lines) * 100

With such a formula:

  • 50% means that the number of lines of code equals the number of comment lines
  • 100% means that the file only contains comment lines
Comments in Procedure Divisions Comments in Procedure divisions (Cobol only)
Anchor
metricPublicDocumentedApiDensity
metricPublicDocumentedApiDensity
Public documented API (%)
public_documented_api_densityDensity of public documented API = (Public API - Public undocumented API) / Public API * 100
Anchor
publicUndocumentedApi
publicUndocumentedApi
Public undocumented API
public_undocumented_apiPublic API without comments header.

...