Laws of Program Evolution
Program Evolution: Processes of Software Change
(Lehman & Belady)
P-type programs
Well-defined, precisely
specified
The challenge is efficient
implementation
Ex: sort
E-type programs
Ill-defined, fit into an ever-
changing environment
The challenge is managing
change
Also, S-type programs
Ex: chess
Law of continuing change
“A large program that is
used undergoes continuing
change or becomes
progressively less useful.”
Analogies to biological
evolution have been made;
the rate of change in
software is generally far
faster