Abstraction Layering¶
Complex systems become manageable when organized into layers where each layer only depends on abstractions provided by layers below, not their implementations.
Tension Addressed¶
Abstraction vs. Concreteness; Flexibility vs. Safety
Recognizable As¶
OSI model, clean architecture layers, compiler phases, virtual machines, API layers
Canonical Sources¶
Dijkstra, THE Multiprogramming System (1968); Clean Architecture (Robert Martin); Hennessy & Patterson on ISA abstraction
Transfers To¶
System Architecture, Network Design, Compiler Design, Operating Systems, Database Engines
Each layer presents a simpler interface upward while hiding complexity below. This is how we build systems more complex than any human can fully understand.
Related Concepts¶
- Abstraction - Software Architecture