CPN CPE Software Engineering study materials
CPN CPE Software Engineering study resources

CPN CPE Software Engineering: Software Maintenance and Evolution

CPN CPE Software Engineering · Work through your exam, one topic at a time.

All guide sections

Software Maintenance and Evolution

What the domain covers

This domain tests maintenance categories, legacy-system evolution, impact analysis, refactoring, reengineering, and regression control. Expect questions on corrective, adaptive, perfective, and preventive maintenance, plus technical debt and Lehman’s laws.

Core rules

  • Corrective maintenance fixes defects; adaptive maintenance responds to environment changes; perfective maintenance adds or improves features; preventive maintenance reduces future deterioration.
  • Impact analysis identifies affected components, interfaces, tests, and data before a change.
  • Refactoring improves structure without changing behavior; reengineering restructures a system more deeply, often with reverse engineering.
  • Regression tests protect existing behavior during evolution.

Worked example

A tax calculation module must change because the government revised tax brackets. This is adaptive maintenance: the external business rule changed, not a defect. Reasoning: no coding error is being corrected, and no new customer feature is being added. The change still requires impact analysis, updated test data, and regression tests because bracket logic affects many outputs.

Traps

  • Classifying every change as corrective because it arrives as a ticket.
  • Skipping impact analysis for a “small” change.
  • Breaking public interfaces without versioning or deprecation.
  • Refactoring and adding features in the same uncontrolled change.

Exam focus

Classify the change by its cause, then state the necessary maintenance controls.