Synopsis Understanding and managing the continuous change of software.
Description Meir M. Lehman was one of the first scientist to observe that software evolves over its lifetime. He formulated several laws about software evolution. Here are three examples of his laws (slightly paraphrased):
  • Continuing Change: Programs must be continually adapted or they become progressively less usefull.
  • Increasing Complexity: When a program evolves, its complexity increases unless work is done to maintain or reduce it.
  • Continuing Growth: The functional content of programs must be continually increased to maintain user satisfaction over their lifetime.
Software evolution is a specialisation in SoftwareEngineering that address the following:
  • Understanding the reasons for software evolution.
  • Understanding the impact of software evolution on the structure and quality of source code.
  • Developing SoftwareMetrics and tools to measure the impact of software evolution.
  • Developing methods and tools for the better understanding of source code.
  • Developing Refactoring tools to counter the effects of software evolution.
Is this page unclear, or have you spotted an error? Please add a comment below and help us to improve it. For all other questions and remarks, visit