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?