Start with nothing and create a finished product with no existing code, design, or previous system.
Start with an existing project/environment and create a finished product with existing code, design, or previous system
Changes to an existing system
Software Evolution = Software Development + Software Maintenance
A program that is used must be continually adapted; else, it becomes progressively less satisfactory
As a program is evolved, its complexity increases unless work is done to maintain or reduce it
The program evolution process is self-regulating with close to normal distribution of measures of product and process attributes
The average effective global activity rate on an evolving system is invariant over the product life time
During the active life of an evolving program, the content of successive releases is statistically invariant
Functional content of a program must be continually increased to maintain user satisfaction over its lifetime
… programs will be perceived as of declining quality unless rigorously maintained and adapted to a changing operational environment
Programming Processes constitute Multi-loop, Multi-level Feedback systems and must be treated as such to be successfully modified or improved
Law I: Continuing Change
Law II: Increasing Complexity
Law III: Self Regulation
Law IV: Conservation of Organisational Stability
Law V: Conservation of Familiarity
Law VI: Continuing Growth
Law VII: Declining Quality
Law VIII: Feedback System