Skip to content

ABC Software Metric

A software-size metric reported as the triplet of assignment, branch and condition counts for a code unit, with an optional Euclidean magnitude summary.

Core Idea

The ABC metric decomposes program size into three control and state-changing dimensions rather than one line count. A parser or reviewer counts standardized statement categories, preserving the vector for comparison or combining it through a declared norm. The abstraction is therefore identified by a declared carrier, a transformation or constraint over that carrier, and an invariant that tells an analyst whether the named structure is genuinely present.

The load-bearing residual is not the broad topic of software metrics. It is A software-size metric reported as the triplet of assignment, branch and condition counts for a code unit, with an optional Euclidean magnitude summary.

How would you explain it like I'm…

Store, Jump, Ask Counting

To tell how big a computer program is, you could just count its lines. The ABC Software Metric counts three kinds of things instead: when the program stores a value, when it jumps to another job, and when it asks a yes-or-no question. Those three counts together tell you how big it is.

Three-Number Code Size

The ABC metric measures the size of a piece of code with three numbers instead of one. A counts assignments, when the program stores a value. B counts branches, when the program jumps off to run other code, such as calling a function. C counts conditions, the yes-or-no tests the program checks. You can keep the three numbers side by side to compare code, or combine them into one summary number. Either way, you need to follow the same counting rules for the programming language each time.

Assignment-Branch-Condition Metric

The ABC software metric measures program size as a vector of three counts for a unit of code: Assignments (storing data), Branches (transfers of control, such as calls), and Conditions (logical tests). Splitting size into these three dimensions gives more information than counting lines of code. You can compare the three-number vector directly, or summarize it with its Euclidean magnitude, the square root of A² + B² + C². The counts must follow one consistent, language-specific counting standard, otherwise comparisons are meaningless. And the single summary number shouldn't quietly replace the three counts, because different code can have the same magnitude with very different profiles.

 

The ABC metric decomposes the size of a code unit into three dimensions tied to state change and control: an Assignment count, a Branch count (control transfers such as function calls), and a Condition count (logical tests). A parser or reviewer applies a standardized, language-specific counting standard that classifies statements into these categories. The result is reported as the triplet <A, B, C>, which can be compared as a vector or combined through a declared norm, conventionally the Euclidean magnitude √(A² + B² + C²). Its identity requires that counts follow one language-specific ABC counting standard and that the triplet is not silently replaced by its scalar magnitude, since the magnitude discards the distribution among the dimensions. Line counts or other generic size metrics are neighbors, not instances.

Scope of Application

ABC Software Metric belongs to software metrics and is useful where the analyst can specify source code, language-specific counting rules, assignment count A, branch count B, condition count C, scope and aggregate score, then evaluate counts follow one language-specific ABC counting standard and the triplet is not silently replaced by its scalar magnitude. The scope is broad within that domain but bounded by the need for counts follow one language-specific ABC counting standard and the triplet is not silently replaced by its scalar magnitude. The entry records a descriptive analytical identity; practical use requires the governing domain's evidence, standards, and safety obligations.

Clarity

The abstraction clarifies a crowded vocabulary by making counts follow one language-specific ABC counting standard and the triplet is not silently replaced by its scalar magnitude the center of the account. A claim should name the carrier, the governing operation or relation, the applicable assumptions, and the recognition test. A bare label is insufficient because the name ABC Software Metric can be used for a formal identity, an implementation, or a neighboring result unless carrier and convention are stated.

Manages Complexity

Without the abstraction, an analyst must reason directly over many local details: the carrier roles, admissibility assumptions, competing conventions, derived invariants, boundary cases, and proof or validation obligations specific to ABC Software Metric. ABC Software Metric compresses them into the roles in the structural signature. That compression permits comparison across instances without erasing the variables that determine validity. It also exposes which details may be varied safely and which are constitutive.

Abstract Reasoning

  1. Identify the carrier. State what the elements, states, objects, or observations are: source code, language-specific counting rules, assignment count A, branch count B, condition count C, scope and aggregate score. Reject examples whose alleged carrier belongs to a different problem.
  2. Lock the constitutive rule. Express counts follow one language-specific ABC counting standard and the triplet is not silently replaced by its scalar magnitude independently of one notation or implementation.

Knowledge Transfer

Knowledge transfers strongly among subfields of software metrics because they reuse source code, language-specific counting rules, assignment count A, branch count B, condition count C, scope and aggregate score, A parser or reviewer counts standardized statement categories, preserving the vector for comparison or combining it through a declared norm., and type the carrier, state every parameter and convention in the definition, test that counts follow one language-specific ABC counting standard and the triplet is not silently replaced by its scalar magnitude, compare the nearest accepted identity, and report counterexamples, uncertainty, and limiting cases.

Relationships to Other Abstractions

Local relationship map for ABC Software MetricParents appear above the current abstraction, mutual partners to the right, and children below. Node labels state whether each abstraction is prime or domain-specific; colors identify relation types.ABC Software MetricDOMAINPrime abstraction: Measurement — is a kind ofMeasurementPRIME

Current abstraction ABC Software Metric Domain-specific

Parents (1) — outgoing typed relations

  • ABC Software Metric is a kind of Measurement Prime

    What makes it its own entry: A software-size metric reported as the triplet of assignment, branch and condition counts for a code unit, with an optional Euclidean magnitude summary.

Hierarchy path (1) — routes to 1 parentless root

Neighborhood in Abstraction Space

ABC Software Metric sits in a crowded region of the domain-specific corpus (40th percentile for distinctiveness): several abstractions share nearly its structure, so a description that fits it tends to fit its neighbors too.

Family — Measurement, Approximation & Numerical Error (17 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-10-25