Software Engineering--Evolution of theory, method and practice
Once the software is in use, some of the exposed software problems need to be further revised and improved, while new requirements will continue to emerge, and the original requirements will change as the business changes. Therefore, the software system continues to evolve after delivery, that is, to go into the software maintenance phase, in order to ensure the long-term availability of software, and to adapt to the continuous changes in the actual business.
Software maintenance is the modification of a software product during the run or maintenance phase of the software, which may be correcting errors in the software or adding new functionality to accommodate new requirements, but generally does not include significant changes in the structure of the software system.
Almost every mature software development organization maintains programs developed 15 or more years ago, which are also known as "legacy systems". Legacy systems typically provide critical support for the organization's core business, and therefore require the use of advanced software engineering methodologies to redesign, write, and test part of the entire software or software to improve the maintainability and reliability of the system and ensure the proper functioning of the systems, which is software re-engineering.
Software Engineering--Evolution of theory, method and practice