The process of developing a software product using software development principles and methods is called software evolution. This involves initial software development, maintenance, and upgrades until the desired software product is developed that meets the expected requirements.
Evolution begins with the requirements gathering process. Developers then create a prototype of the intended software and show it to users to get their feedback early in the software product development process. Users suggest changes, on which several successive updates and maintenance also continue to change. This process changes to the original software until the desired software is done.
Even after the user has received the desired software, advanced technology and changing requirements force the software product to change accordingly. It is not possible to rebuild the software from scratch and go head-to-head with the requirement. The only possible and cost-effective solution is to upgrade existing software to meet the latest requirements.
Software Evolution Laws
Lehman gave laws for software evolution. He divided software into three categories:
Evolution of E-Type software.
Lehman gave eight laws for the evolution of E-Type software: