User features during Software changes: (1) Software maintenance is an inevitable process (2) software changes can lead to software degradation (3) The evolutionary characteristics of software systems are established in the early stages of development (4) The efficiency of software development is independent of the resources invested (5) Adding new functionality to a software system inevitably creates new flaws.
Software maintenance is the modification of a software product during a software run or maintenance phase. Software maintenance can be divided into three types according to different reasons of software maintenance: (1) Corrective maintenance (2) Adaptability 2 maintenance (3) perfect maintenance. The features of software maintenance are as follows: 1. Software maintenance is affected by the development process 2. Software maintenance is more difficult 3. Software maintenance involves establishing maintenance organizations, reporting and evaluating maintenance requests, and implementing maintenance procedures. Software maintenance organizations are generally informal organizations, but it is necessary to be clear about the responsibilities of the personnel involved in the maintenance work.
The software re-engineering takes the system understanding as the foundation, unifies the reverse process, the reconstruction and the forward process and so on, reconstructs the existing system to become the new form. Typical software re-engineering activities are as follows:
(1) Object Selection (2) reverse engineering (3) document refactoring (4) code refactoring (5) data refactoring (6) Forward engineering
Introduction to Software engineering 11-Evolution