Lehman’s Software Classification
Details
- Full Name
-
Lehman’s Classification of Software (S-/P-/E-type) and Laws of Software Evolution
- Also known as
-
SPE Classification, Lehman’s SPE Taxonomy
Core Concepts:
Three software types, classified by their relationship to the real world:
- S-type (Specification)
-
Software whose problem can be fully and formally specified. Correctness is provable against the specification. The world outside the program is irrelevant to its validity. Example: a sorting algorithm, a compiler for a formally defined language.
- P-type (Problem)
-
Software that addresses a real-world problem which cannot be fully specified, only approximated. The specification is a model of the real problem; the solution must be validated against the actual problem, not just the spec. Example: a chess-playing program, a weather forecasting system.
- E-type (Embedded)
-
Software that becomes part of the real world and changes it through its use. This use in turn changes the environment and thereby the requirements — creating a feedback loop. Most business and organizational software is E-type. A "correct" E-type system drifts out of correctness over time even if nothing in it changes.
- Laws of Software Evolution
-
Lehman derived eight laws from observing E-type systems, including Continuing Change (E-type systems must be continually adapted or become progressively less satisfactory), Increasing Complexity (complexity increases unless work is done to reduce it), Self-Regulation, Conservation of Organisational Stability, Conservation of Familiarity, Continuing Growth, Declining Quality, and Feedback System.
- Key Proponents
-
Meir M. Lehman ("Programs, life cycles, and laws of software evolution", Proceedings of the IEEE, 1980); later developed with Laszlo Belady ("Program Evolution: Processes of Software Change", 1985).
When to Use:
-
Explaining why "finished" business software still needs ongoing investment
-
Deciding how much effort to spend on formal specification vs. validation with users
-
Framing requirements discussions — E-type means requirements will keep changing by nature, not by failure
-
Reasoning about why TDD and formal proofs map cleanly onto S-type but are subtler for E-type
-
Estimating maintenance budgets and justifying them to stakeholders
-
Architectural trade-offs: E-type systems need change-friendliness above all
Related Anchors:
-
arc42 - Documentation template well suited for evolving E-type systems
-
Cohesion Criteria - High cohesion reduces the cost of continuing change in E-type systems