Back to blog
Foundations of ComputingPart 3
Software Design Is About Promises
Software Design Is About Promises, Not Code
Abstraction as Contract
Interfaces define promises clients rely on.
Client → Interface → Implementation
Specifications
Specs define what must be true, not how it is done.
requires: valid input
ensures: condition X holds
Representation Invariants
Internal consistency ensures abstraction correctness.
Abstract View
↑
Invariant
↑
Representation
Takeaway
Design clarity enables correctness.