Carregando...
Glossary term

Software Evolution(Evolving)

Definition(s):

Software evolution/evolving is a fact in software products’ lifecycle.

According to Sommerville (2020) software evolution refers to “accommodation of perfective, corrective and adaptive maintenance, which may involve some reengineering activity“.

Those activities which are geared towards improving the software itself, rather than increasing one’s understanding of the same. Examples include restructuring, redocumenting and data reengineering. All are meant to evolve the subject system from its current form to one that better meets the new requirements.” (SEI, 1995)

In a Software Engineering context, the term evolution can be interpreted in two ways. One view considers that important topics regarding the evolution of software are the ones that describe the means through which evolution occurs, i.e., the mechanism, instruments, and tools used in this process. In this case, the focus is the understanding of how software is modified. Another view seeks to understand the nature of the evolution phenomenon, its causes, properties and characteristics, consequences, impacts, management, and control. In this case, the focus is to investigate what software evolution is and why it happens. In this context, the Laws of Software Evolution (LSEs) mean to support the understanding of the evolutionary process of software.” (Araujo, Monteiro and Travassos, 2012)

Source(s):

Glossary