NivaarExam PrepOfficial exam papers ↗

19-Soft-A6 Software Quality Assurance · May 2018

Question 6 of 8

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

Notes on this paper

04-Soft-A6, Software Quality Assurance — National Exams, May 2018 (3 hours, open book, 8 questions of equal value; the first FIVE as they appear in the answer book are marked — all eight are solved here as a study resource).

Reference texts: Pressman, Software Engineering: A Practitioner's Approach, 9th ed. (SQA planning, review, testing strategies/techniques, software metrics, reliability & safety); Sommerville, Software Engineering, 10th ed. (software process, configuration management); ISO/IEC 25010 SQuaRE (software quality characteristics); ISO/IEC 12207 (life-cycle/configuration-management processes).

Question 6 (10 marks)

Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.

Part (a) — factors influencing OO design quality.

Part (b) — a proposed OO quality metric: Coupling Between Object classes (CBO). CBO for a class counts the number of other classes to which it is coupled — through method calls, attribute references, inheritance, or parameter/return types. It is computed by static analysis of the class's source: every distinct class referenced from within the class under measurement (excluding itself and standard library types, by convention) increments the count. A high CBO for a class is a direct, measurable signal of poor encapsulation and higher coupling: the class cannot be understood, tested, or changed in isolation, and a change to any of its many collaborators risks breaking it. Tracked across a whole system, CBO highlights architecturally significant classes — the ones sitting at the centre of many dependencies — which is exactly the information a maintainer needs before touching the system: classes with high CBO should be prioritized for design review, refactoring, and extra regression-test coverage before any change, since empirically higher-coupling classes are associated with a disproportionate share of post-release defects and higher maintenance effort. In this way a single, cheaply computed static metric feeds directly back into both understanding the existing architecture (where are the risky dependency hubs) and planning the maintenance process (where should limited review/test effort be spent).