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.