Software evolution refers to the process of developing software incrementally
over time, through updates, modifications, and enhancements to meet new requirements,
fix issues, or adapt to changing technologies. As software grows and becomes more
complex, the need for ongoing improvement becomes essential to maintain its
functionality and relevance.
Key stages in the software evolution process:
EVOLUTION PROCESSES
The software evolution process is a structured method for managing changes and
improvements in software systems. This process includes several key stages that enable
the system to adapt to new requirements, fix issues, and improve functionality. Here’s an
overview of each stage:
1. Change Requests: This is the initial stage where requests for modifications or
enhancements to the software are submitted. These requests could come from
users, customers, or stakeholders who identify new needs or issues in the system.
2. Impact Analysis: This stage involves evaluating the effects of the proposed changes.
Impact analysis assesses the cost and potential effects on the system, helping to
understand the scope and feasibility of the changes.
3. Release Planning: Once the changes are analyzed and accepted, a release plan is
created. This plan determines the types of changes (such as fault repair, platform
adaptation, or system enhancement) that will be included in the next release.
Decisions are made here regarding the implementation schedule and prioritization
of changes.
4. Change Implementation: In this stage, the approved changes are actually
implemented. The process involves making revisions to the system’s design, code,
and tests. New requirements are developed, validated, and integrated into the
system.
5. System Release: After implementation, the updated system is released to the users.
This version of the software reflects the latest changes and improvements made
during the previous stages.
Types of Changes in the Evolution Process
Fault Repair: Fixes for existing issues in the software to maintain its functionality.
Platform Adaptation: Modifications made to adapt the software to new platforms or
environments.
System Enhancement: Improvements or additions to the system’s functionality.
Key Points of the Evolution Process
The process is iterative, meaning that after each release, new change requests are
assessed, leading to the next cycle of the evolution process.
Change implementation often involves thorough analysis, design, and testing to ensure the
changes do not introduce new problems into the existing system.
Urgent change requests are handled promptly, especially if they relate to serious system
faults that impact the software’s normal operation.
• Reasons for Urgent Changes
A serious fault that needs immediate repair to allow normal operation.