1 / 24

Software Evolution

Week 8 Lecture

Understanding Continuous Software Adaptation and Improvement

What is Software Evolution?

Definition: The process of continuously adapting and improving software systems after they have been deployed

Why Evolution Matters

>
Maintenance Costs
Exceed Development
Business
Requirements
Continuously Change
Development
& Maintenance
Are Integrating

Critical Reality: For custom systems, maintenance costs typically exceed original development costs

Software Evolution as Integrated Process

Specification
Implementation
Validation
Operation

Continuous, Integrated, Iterative Process

Types of Software Maintenance

Three main categories with effort distribution:

24%
Fault
Repairs
19%
Environmental
Adaptation
58%
Functionality
Addition

Most effort goes to adding NEW functionality!

Fault Repairs (24% of effort)

Purpose: Fix bugs, vulnerabilities, and deficiencies

Focus: Correcting problems in how the system meets its requirements

Examples:

Environmental Adaptation (19% of effort)

Purpose: Adapt software to different operating environments

Focus: Making system work with new platforms, OS versions, hardware

Examples:

Functionality Addition/Modification (58% of effort)

Purpose: Implement new or changed requirements

Focus: Adding features, enhancing capabilities

Examples:

This shows evolution is primarily about GROWTH and enhancement!

The Software Evolution Process

Change Requests
Impact Analysis
Release Planning
Change Implementation
System Release

All changes should be linked to affected components and include cost estimation

Release Planning: Three Paths

Release Planning
Fault Repair

Critical bug fixes

Platform Adaptation

Environmental changes

System Enhancement

New features

Urgent Changes

Sometimes normal process must be bypassed for:

Caution: Urgent changes can compromise system quality and should be minimized

Legacy Systems

Definition: Older software systems using obsolete technologies that remain business-critical

Characteristics:

  • Obsolete programming languages
  • Outdated architectures
  • Poor documentation
  • Business-critical functionality

Reality:

  • Expensive to maintain
  • Difficult to change
  • Risk to replace
  • Essential for business

Why Legacy Systems are Expensive to Change

Legacy System Assessment Framework

Business Value Assessment

Multiple Stakeholder Views:

  • System end-users
  • Business customers
  • Line managers
  • IT managers
  • Senior managers

Quality Assessment

Three Dimensions:

  • Business Process: Support effectiveness
  • Environment: Platform efficiency
  • Application: Software quality

Decision Matrix for Legacy Systems

Business Value
System Quality
Recommended Action
Low
Low
SCRAP the system
High
Low
RE-ENGINEER or replace
Low
High
REPLACE with COTS
High
High
CONTINUE maintenance

Evolution Metrics and Prediction

Process Metrics for Maintainability:

Warning Signs: If these metrics are increasing, maintainability may be declining

Maintenance Prediction Principles

Change acceptance depends on component maintainability
Implementing changes degrades the system over time
Maintenance costs depend on both number of changes and system maintainability

Modern Approaches: Agile and Evolution

Agile Methods Integration:

Agile blurs the line between development and maintenance

Software Lifecycle Stages

EVOLUTION
New features added
SERVICING
Only operational changes
PHASE-OUT
No changes made

Lifecycle Stage Characteristics

Evolution Stage

Characteristic: New features and requirements added

Result: New version releases

Focus: Growth and enhancement

Servicing Stage

Characteristic: Only operational changes made

Result: Bug fixes and environmental adaptations only

Focus: Keeping system running (no new functionality)

Phase-out Stage

Characteristic: No changes made

Result: System used but not maintained

Focus: End-of-life management

Key Takeaways: The Big Picture

Practical Implications

Design Phase

  • Design systems with evolution in mind
  • Maintain good documentation
  • Ensure code quality from start

Management Phase

  • Plan for long-term maintenance costs
  • Consider business value in decisions
  • Use metrics to monitor system health

Remember: Software evolution is not an afterthought—it's a core part of the software lifecycle

Critical Statistics to Remember

58%
New Features

Most maintenance effort goes to

adding new functionality

Maintenance costs typically

exceed development costs

>
Greater Than

Software Evolution

A Continuous Journey of Improvement

Software evolution is not just about fixing bugs—it's about continuously adapting and growing systems to meet changing business needs. Success requires planning, measurement, and strategic decision-making throughout the entire software lifecycle.

Questions?