Skills101

Software Engineering · Lesson 8 of 8 · Updated ·

Maintenance, Configuration Management, Quality, CMM and Reliability

Release day is the beginning, not the end. Most of a product's life — and most of its cost — is spent after release.

1. Types of maintenance

TypeWhyExample
Correctivefix bugs found after releasewrong GST total on invoices
Adaptiveadapt to a changed environmentnew Android version, new tax law, moving to cloud
Perfectiveimprove or add features users ask foradd dark mode, make search faster
Preventiveprevent future problemsrefactor messy code, update old libraries

Perfective maintenance usually takes the largest share.

2. Re-engineering and reverse engineering

  • Reverse engineering — study existing code to recover its design and specifications (often for old code with no documents).
  • Re-engineering — reverse engineer, then restructure and rebuild with better design or technology, keeping the same functionality (e.g. a COBOL system rewritten in Java).
  • Forward engineering — the normal direction: requirements → design → code.

Legacy system = old software still critical to the business, hard and risky to change.

3. Software Configuration Management (SCM)

Keeps control of every changing item (code, documents, test cases):

  • Configuration items and baselines — an approved version that changes only through formal control.
  • Version control — Git: who changed what, when, and why. (See our Git tutorial.)
  • Change control — a change request → impact analysis → approval by a change control board → implement → test → release.
  • Configuration audit and status reporting.

4. Quality: QA vs QC

Quality Assurance (QA)Quality Control (QC)
process-oriented — prevent defectsproduct-oriented — find defects
standards, reviews of process, auditstesting, inspections of the product
"Are we following a good process?""Does this build have bugs?"

Formal technical reviews (FTR), walkthroughs and inspections are QA activities that catch defects in documents and code before testing.

ISO 9001 — an international standard for quality management systems in any organisation (not software-specific). Certified companies follow documented, audited processes.

Six Sigma — a data-driven method aiming for fewer than 3.4 defects per million opportunities.

5. CMM / CMMI — process maturity

CMM maturity staircase: level 1 initial, 2 repeatable, 3 defined, 4 managed, 5 optimizing

LevelNameCharacteristics
1Initialchaotic, success depends on individual heroes
2Repeatablebasic project management: cost, schedule, tracking
3Defineda documented, standard process across the organisation
4Managedprocess and quality measured with data
5Optimizingcontinuous process improvement

Developed by the SEI (Carnegie Mellon). Many Indian IT companies are CMMI level 5. (In CMMI, level 2 is called "Managed" and level 4 "Quantitatively Managed".)

6. Reliability metrics

  • MTTF (mean time to failure) — average time the system runs before failing.
  • MTTR (mean time to repair) — average time to fix and restore it.
  • MTBF = MTTF + MTTR.
  • Availability = MTTF ÷ (MTTF + MTTR) × 100%.

Example: MTTF = 495 hours, MTTR = 5 hours → MTBF = 500 hours, availability = 495 ÷ 500 = 99%.

Others: ROCOF (rate of occurrence of failures) and POFOD (probability of failure on demand).

Common mistakes

  • Calling a new-law update "corrective" — it's adaptive (nothing was broken).
  • Saying QA = testing. Testing is QC; QA improves the process.
  • MTBF = MTTF + MTTR (not minus).

Quick recap

  • Maintenance: corrective, adaptive, perfective, preventive.
  • Reverse engineering recovers design; re-engineering rebuilds it better.
  • SCM: baselines, version control, change control.
  • QA prevents (process), QC detects (product). CMM: initial → repeatable → defined → managed → optimizing.
  • Availability = MTTF ÷ (MTTF + MTTR).

Practice what you learned

📝 Quiz: Maintenance and Quality5 questions · instant answers & explanations · +10 XP · counts towards your free certificateTake the quiz →