On the Criteria to Be Used in Decomposing Systems into Modules.¶
Parnas, D. L. (1972). On the Criteria to Be Used in Decomposing Systems into Modules. Communications of the ACM, 15(12), 1053-1058.
Cited by¶
21 citations across 21 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Abstraction
- T6: Naming vs Reality.
This sourceIntroduces information hiding: each module hides a design decision likely to change behind a stable interface, so the named abstraction conceals (and reifies) an underlying contestable choice
- T6: Naming vs Reality.
- Boundary
- Liskov's concept of data abstraction barriers and Parnas's information hiding principle
This sourceinformation-hiding principle — modules should be decomposed around the design decisions each hides, making system design fundamentally boundary-design.
- Liskov's concept of data abstraction barriers and Parnas's information hiding principle
- Catalysis
- Software engineering: build tools, scaffolding generators, formatters, and code-mod tools catalyse a codebase's transformation (refactor, upgrade, style) without becoming part of the output and while being reusable across many codebases.
This sourceEstablishes information hiding: a stable module interface shields clients while the hidden implementation can change — the structural basis for reusable build/codemod/formatter tools that transform a codebase without becoming part of its output.
- Software engineering: build tools, scaffolding generators, formatters, and code-mod tools catalyse a codebase's transformation (refactor, upgrade, style) without becoming part of the output and while being reusable across many codebases.
- Category Retrieval Lock In
- The property-rich substrate is a function whose true property list includes its memory behavior, exception profile, concurrency guarantees, and performance characteristics.
This sourceEstablishes information hiding: a module's interface is a stable label that compresses away (hides) its implementation properties, so callers bind to the interface, not the hidden operational behavior.
- The property-rich substrate is a function whose true property list includes its memory behavior, exception profile, concurrency guarantees, and performance characteristics.
- Compatibility
- Designers can reason about composition without exhaustive testing—the principle Parnas (1972) established as the foundation of modular system design through information hiding.
This sourceSeminal information-hiding paper: establishes modular decomposition so that modules can be designed and changed independently behind stable interfaces, the foundation for reasoning about composition without exhaustive testing.
- Designers can reason about composition without exhaustive testing—the principle Parnas (1972) established as the foundation of modular system design through information hiding.
- Decomposition
- Dependency
- Dependency is the directed relation in which one element relies on another being present, prior, compatible, or supplied — a structural asymmetry where A cannot proceed, function, be interpreted, or retain its value unless some condition on B is met, a relation Parnas (1972) made foundational to modular decomposition by treating "module A depends on module B" as the operational criterion governing which design changes propagate.
This sourceFounds modular decomposition on information hiding; treats which modules depend on which as the operational criterion governing how design changes propagate — supports markers 211, 219, 220.
- Dependency is the directed relation in which one element relies on another being present, prior, compatible, or supplied — a structural asymmetry where A cannot proceed, function, be interpreted, or retain its value unless some condition on B is met, a relation Parnas (1972) made foundational to modular decomposition by treating "module A depends on module B" as the operational criterion governing which design changes propagate.
- Division of Labor
- Listed in the references but not attached to a specific claim.
- Information Hiding
- In software engineering it is Parnas's module decomposition, encapsulation in object-oriented programming, API design where only the documented interface is the contract, opaque handle types, and the principle of least privilege.
This sourceOriginates information hiding — modules should hide the design decisions most likely to change behind a stable interface, capping each consumer's dependency at the public surface so internals can change freely.
- In software engineering it is Parnas's module decomposition, encapsulation in object-oriented programming, API design where only the documented interface is the contract, opaque handle types, and the principle of least privilege.
- Interface
- Layered Accumulation
- Listed in the references but not attached to a specific claim.
- Layering
- Minimalism
- Modularity
- Preparatory Field Conditioning
- Refactoring
- The architectural insight that the held-constant envelope can be the only externally visible commitment — a heritage facade behind which everything is renovated — transfers to long-lived software APIs, where the published interface is the facade and everything behind it is free to change.
This sourceIntroduces information hiding: a stable interface is presented to the rest of the system while the design decisions likely to change are hidden behind it — the foundation for treating a published API as a held-constant facade behind which internals freely change.
- The architectural insight that the held-constant envelope can be the only externally visible commitment — a heritage facade behind which everything is renovated — transfers to long-lived software APIs, where the published interface is the facade and everything behind it is free to change.
- Substitutability
- Task Interdependence
Domain-specific¶
- Interface segregation principle
- The principle is a specific application of information hiding (Parnas) and minimised coupling to the OO method-contract level
This sourceParnas's information-hiding criterion - each module hides a design decision, its interface revealing as little as possible - which is the underlying idea the article traces ISP to, though Parnas draws no connection to object-oriented method contracts.
- The principle is a specific application of information hiding (Parnas) and minimised coupling to the OO method-contract level
Mechanisms¶
- Layered Model
- Its strength is independent evolution: a layer can be rewritten, optimized, or replaced behind a stable interface without touching the rest, and each layer can be understood and tested on its own terms.
This sourceShows that information-hiding modules can be changed or replaced independently and studied and tested one at a time.
- Its strength is independent evolution: a layer can be rewritten, optimized, or replaced behind a stable interface without touching the rest, and each layer can be understood and tested on its own terms.
- Software Module Decomposition
- This is the original argument for decomposing by information hiding rather than by flowchart step.
This sourceIt remains the canonical justification for boundary-by-secret over boundary-by-function.
- This is the original argument for decomposing by information hiding rather than by flowchart step.
Verification¶
This reference passed the adversarial substantiation pipeline: it was checked to exist and to support the claim it is attached to. See how references were verified.
Registry ID ref:bd3a3b7ad83e · see in the full table