The characteristics of software evolution are as follows: Software maintenance is an inevitable process, software changes will lead to software degradation, the evolution of software system is in the early stages of development, software development efficiency and input resources independent, for software changes caused by various problems, People usually use different strategies for processing,1) software maintenance 2) software re-engineering, to avoid software degradation and re-design of the software part of the code and testing to improve the maintenance and reliability of software, To further improve the software to lay a good foundation. According to the different reasons of software maintenance, software maintenance can be divided into the following three categories:1) Corrective Maintenance 2) Adaptive Maintenance 3) Perfect maintenance. However, the software maintenance is affected by the development process, because the software requirement analysis and the development method's flaw causes it to be more difficult, the maintenance cost is high
Methodology and practice of software Engineering theory 11th Chapter