LAWS OF SOFTWARE EVOLUTION - Lehman and Belady
- Law of continuing change: “A system that is used undergoes continuing change until it becomes more economical to replace it by a new or restructured system.”
- Law of increasing entropy: “The entropy of a system increases with time unless specific work is executed to maintain or reduce it.”
- Law of statistically smooth growth: “Growth trend measures of global system attributes may appear stochastic locally in time and space but are self-regulating and statistically smooth.”
FEAST Laws [*]
- Law of Continuing Growth: “The functional capability of E-type systems must be continually increased to maintain user satisfaction over the system lifetime”
- Law of Declining Quality: “The quality of E-type systems will appear to be declining unless they are rigorously adapted, as required, to take into account changes in the operational environment”
- Principle of Software Uncertainty: “The real world outcome of any E-type software execution is inherently uncertain with the precise area of uncertainty also unknowable.”
(NOTE: FEAST Hypothesis. Short for Feedback, Evolution and Software Technology, FEAST fine-tunes the definition of evolvable software programs, differentiating between “S-type” and “E-type”: S-type or specification-based programs and algorithms being built to handle an immutable task, and “E-type” programs being built to handle evolving tasks. http://www.doc.ic.ac.uk/~mml/feast/ )