Abc Metric

From an article by Jerry Fitzpatrick originally published in C++ Report, June 1997.

ABC is strictly a software size metric, although it has often been misconstrued as a complexity metric.

Size is computed by counting the number of assignments, branches and conditions for a section of code. The counting rules in the original C++ Report article were specifically for the C, C++ and Java languages, and defined as:

A scalar ABC size value (or "aggregate magnitude") is computed as:

       |ABC| = sqrt((A*A)+(B*B)+(C*C))

The individual A, B and C counts provide distinct information about the code that the overall size value doesn't. For example, the B (branch) count is virtually identical to "cyclomatic complexity".

Due to syntax differences, the ABC counting rules for a specific language must generally be tweaked to fulfill the goals of the metric. Futhermore, the metric is probably unsuitable for non-imperative languages (e.g. Prolog).

See CyclomaticComplexityMetric, LinesOfCode, FunctionPoint

View edit of October 17, 2012 or FindPage with title or text search