Cohesion: Core Conclusions
The cohesion series reworks one of the oldest and most abused concepts in software design. Cohesion entered the field with Stevens, Myers, and Constantine in 1974 and was codified by Yourdon and Constantine. Five decades of research and measurement followed. This page collects what the cohesion series concludes.
1 Cohesion is correctness relative to a partitioning rule
The central definitional result: cohesion is correctness relative to a partitioning rule.
A partitioning rule sorts the element set into equivalence classes — the elements that belong together. Against such a rule, a module deviates in exactly two ways:
- Impurity. The module contains elements that belong to a different class.
- Incompleteness. Some element of the module’s class resides outside the module.
So cohesion is assessed on two axes: purity and completeness. A module that is both pure and complete is fully cohesive: it holds exactly the elements its class requires, and nothing else.
2 One pair per rule — the cohesion profile
A system is partitioned by many rules at once: logical code structure, deployment packaging, temporal grouping, security, platform. These are not separate things being partitioned. There is one element set , and each rule groups it by some of the change drivers acting on its elements.
For a system assessed under partitioning rules, cohesion is the -tuple of (purity, completeness) pairs — one pair per rule. A module is fully cohesive when it scores maximally on every component.
3 Structural proxies do not define cohesion
The series argues that published definitions of cohesion overwhelmingly specify structural properties of code — method-call overlap, shared-field density, connected components.
These are not cohesion as defined by a modularization principle. They are structural proxies: observable patterns that correlate with cohesion but do not define it. A survey of 24 cohesion metrics spanning five decades shows that each measures structural coupling, not principled cohesion, reporting at most one axis and only as a proxy.
The distinction matters: a metric that counts structural overlap cannot detect the actual failure mode — whether a module holds elements the domain says belong elsewhere, or scatters the elements the domain says belong together.
4 The Γ-equivalence rule is the coarsest change-containing partition
Among all partitioning rules, one is special. Grouping elements by their full change-driver set — the Γ-equivalence rule — is the coarsest partition that still contains every change to one module.
Every modularization principle groups by a subset of the change drivers. Therefore every principle’s classes are unions of Γ-classes, and the Γ-decomposition is a refinement of every principle’s partition. A single Γ-decomposition is correct under all the principles at once.
This is the bridge from cohesion to the Independent Variation Principle: Γ-equivalence is the change-driver concretization of the general cohesion schema.
5 The causal cohesion metric
When the partitioning rule is change-driver-assignment identity — elements belong together iff they share the same change-driver set — cohesion becomes causal cohesion.
For a single rule, causal cohesion is the two-dimensional metric
in . It is one slot of the full cohesion profile, not the whole profile. Both axes are directly interpretable and map to design actions: low purity says separate elements of impure modules into distinct modules; low completeness says merge the scattered elements of a class into one module.
The metric satisfies the six necessary conditions the schema imposes on any admissible cohesion metric, and it has an operational computation procedure.
6 The four conditions are necessary and exhaustive
Under the change-driver hypothesis and the objective of minimizing change propagation, four conditions are necessary and structurally exhaustive:
- Admissibility — every element has at least one driver.
- Element Form — every element is pure or irreducibly composite.
- Separation — different-driver elements belong in different modules.
- Unification — same-driver elements belong in the same module.
The first two constrain the element set; the last two constrain the partition. These are exactly the four conditions of IVP. The causal (purity, completeness) pair is the two-axis criterion these conditions reduce to when .
7 Where the proofs live
The derivations — that the four conditions are necessary and exhaustive, that Γ-equivalence is the unique minimizer, that the knowledge-embodiment theorem holds — are proved in the published cohesion papers: cohesion as correctness relative to a partitioning rule in the paper on the nature of cohesion [1], the four necessary and exhaustive conditions in the paper on cohesion and change propagation [2], and the causal cohesion metric in the paper on causal cohesion [3].
The knowledge-embodiment theorem — the result that maximal cohesion is maximal embodiment of domain knowledge — is treated on its own page.
The formal development. The definitions, theorems, and proofs behind this page are published in:
- On the Nature of Cohesion: Cohesion as Correctness Relative to a Partitioning Rule — Zenodo, 2026 — doi:10.5281/zenodo.21703193
- Cohesion and Change Propagation: Four Necessary Conditions for Optimal Modularization — Zenodo, 2026 — doi:10.5281/zenodo.21362420
- Causal Cohesion — Zenodo, 2026 — doi:10.5281/zenodo.21703156