Software does not end when the code compiles. A program must be correct, usable, reliable and easy to change for years after release. Software Quality Assurance (SQA) is the umbrella of activities that build that confidence, and software maintenance is the largest and longest phase of the whole life cycle — often 60–80% of total cost. This lesson pulls together the quality models (McCall, ISO 9126/25010), the assurance activities (verification vs validation, testing levels including gamma testing), the process-maturity frameworks (CMM, CMMI, Six Sigma), and the whole maintenance-and-evolution world (Lehman's laws, re-engineering, refactoring, legacy systems, configuration management). These are among the most frequently repeated one-mark and short-note questions in BCS, Bank IT and IT-officer exams.
Learning objectives
- List and explain software quality attributes — McCall's factors and ISO 9126 / ISO 25010 characteristics.
- Describe the main SQA activities and distinguish verification vs validation.
- Recall alpha, beta and gamma testing and where each fits.
- Reproduce the five levels of CMM and CMMI in the correct order and explain Six Sigma briefly.
- Classify the four types of software maintenance and state Lehman's eight laws and the staged evolution model.
- Differentiate forward vs reverse engineering, re-engineering, refactoring and porting, and describe legacy systems.
- Compare open source vs proprietary software and explain Software Configuration Management (SCM).
- Solve numerical problems on reliability, availability, defect density and Six Sigma.