Software Engineering | Software Evolution

Software Evolution is a term which refers to the process of developing software initially, then timely updating it for various reasons, i.e., to add new features or to remove obsolete functionalities etc. The evolution process includes fundamental activities of change analysis, release planning, system implementation and releasing a system to customers.

The cost an impact of these changes are accessed to see how much system is affected by the change and how much it might cost to implement the change. If the proposed changes are accepted, a new release of the software system is planned. During release planning, all the proposed changes (fault repair, adaptation, and new functionality) are considered.

A design is then made on which changes to implement in the next version of the system. The process of change implementation is an iteration of the development process where the revisions to the system are designed, implemented and tested.

Laws used for Software Evolution:

  1. Law of continuing change:
    This law states that any software system that represents some real-world reality undergoes continuous change or become progressively less useful in that environment.
  2. Law of increasing complexity:
    As an evolving program changes, its structure becomes more complex unless effective efforts are made to avoid this phenomenon.
  3. Law of conservation of organization stability:
    Over the lifetime of a program, the rate of development of that program is approximately constant and independent of the resource devoted to system development.
  4. Law of conservation of familiarity:
    This law states that during the active lifetime of the program, changes made in the successive release are almost constant.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :


Please write to us at to report any issue with the above content.