Pre-conditions and Post-conditions¶
Specifying what must be true before an operation (pre-condition) and what will be true after (post-condition) enables modular reasoning about correctness without examining implementation details.
Tension Addressed¶
Generality vs. Efficiency (enables reasoning about components independently)
Recognizable As¶
Design-by-contract patterns, API documentation of valid inputs, exception conditions, function signatures with constraints, database constraints
Canonical Sources¶
Hoare, An Axiomatic Basis for Computer Programming (1969); Meyer, Applying Design by Contract (1992)
Transfers To¶
API design, service contracts, legal agreemAPI designfacturing quality control, medical protocols
This concept is the foundation of abstraction: defining what without specifying how.
Related Concepts¶
- Abstraction - Software Architecture