Software evolution and maintenance
Václav Rajlich
Abstract
Václav Rajlich
Abstract
Successful software requires constant change that is triggered by evolving requirements, technologies, and stakeholder knowledge. This constant change constitutes software evolution. Software evolution has gained steadily in importance and recently moved into the center of attention of software developers. There is the new prominence of evolutionary software development that includes agile, iterative, open source, inner source, and other processes. As a consequence, the bulk of software development now happens in the stage of software evolution and this changed the face of software engineering. This paper discusses evolutionary software development and also discusses the software change, which is the fundamental software evolution task. It further discusses research methodologies, teaching software evolution in undergraduate curriculum, and difference between software evolution and software maintenance. For all these themes, this travelogue paper presents the current state of the art and the perspective of the future advance.
OpenAlex reports 96 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Successful software requires constant change that is triggered by evolving requirements, technologies, and stakeholder knowledge. This constant change constitutes software evolution. Software evolution has gained steadily in importance and recently moved into the center of attention of software developers. There is the new prominence of evolutionary software development that includes agile, iterative, open source, inner source, and other processes. As a consequence, the bulk of software development now happens in the stage of software evolution and this changed the face of software engineering. This paper discusses evolutionary software development and also discusses the software change, which is the fundamental software evolution task. It further discusses research methodologies, teaching software evolution in undergraduate curriculum, and difference between software evolution and software maintenance. For all these themes, this travelogue paper presents the current state of the art and the perspective of the future advance.
Key concepts: Software evolution, Software development, Social software engineering, Software engineering, Personal software process, Software construction, Computer science, Software maintenance