Software Maintenance and Evolution
Software maintenance modifies software after delivery. It typically consumes 60-80% of total software cost.
Types of Maintenance
Corrective: fixing bugs. Adaptive: modifying for new environments. Perfective: adding features. Preventive: restructuring code.
Lehman's Laws
Laws describe software evolution: continuing change, increasing complexity, self-regulation, conservation of stability, and familiarity.
Legacy Systems
Old systems still serving business needs. Options: keep, wrap, migrate, or replace. Risk and cost analysis guides decisions.
Reengineering
Restructures existing systems: inventory, reverse engineering, code restructuring, data reengineering, forward engineering.
Configuration Management
Controls changes: version control, change control, build management, release management.
Software Metrics
Product metrics (LOC, complexity), process metrics (defect density), project metrics (effort, cost).
Summary
Software maintenance is the longest and most expensive phase. Understanding maintenance types, evolution laws, and metrics enables effective long-term management.