19-Soft-A7 Software Development Process · May 2016
Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
National Exams, May 2016 — 04-Soft-A7, Software Process (open book, 3 hours). Notes on the paper: FIVE of the eight questions constitute a complete paper (the first five as answered in the answer book are marked, each of equal value); this solution answers all eight as a full study resource. Most questions call for short, bulleted written answers; Question 3 asks for an incremental-model schedule using three teams, and Question 4 introduces a hypothetical pilot take-off/landing emulator (a pilot requests take-off or landing from the dispatcher, and the dispatcher records the request and allows the movement) that Question 5 builds on.
Reference texts. Sommerville, Software Engineering, 10th ed., Ch. 2 (Software Processes), Ch. 3 (Agile Software Development), Ch. 5 (System Modeling), Ch. 8–9 (Testing), Ch. 22–23 (Project Management, Configuration Management), Ch. 9 (Software Evolution/Maintenance); Pressman, Software Engineering: A Practitioner's Approach, 9th ed., Ch. 2–3 (Process Models, Agile), Ch. 23–24 (Project Management, Risk Management), Ch. 29 (Function-Point sizing), Ch. 22 (SQA), Ch. 24 (Software Configuration Management); SWEBOK v4 (Software Engineering Process, Software Configuration Management, Software Maintenance KAs).
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) — QA efforts under the incremental model. QA is organised per increment: each increment's requirements and design are formally reviewed before implementation begins (catching defects while cheapest to fix); as the increment is implemented, unit testing covers each new/changed module; once the increment is code-complete, integration testing verifies it against the already-delivered increments (the Question 1(c) architecture-compatibility risk), followed by a formal system test of the increment's new functionality and a targeted regression test of prior increments' functionality to confirm nothing was broken; a final acceptance review gates the increment's release. The whole cycle (review → unit test → integration test → system/regression test → acceptance) repeats once per increment (Question 3's Team A/B/C QA stages).
Part b) — QA efforts under agile. QA is continuous and embedded in the sprint rather than a separate end-of-increment stage: automated unit tests are written alongside (often before, in TDD) the code they test and run on every commit via continuous integration; pair programming or lightweight peer code review substitutes for a separate formal design review; each story is tested and accepted within the same sprint it is built in (via acceptance-test-driven development against the story's acceptance criteria) rather than waiting for a later dedicated test phase; and the sprint review (customer demo) and retrospective serve as the process-level quality checkpoint, feeding improvements into the very next sprint. The key difference from Part (a) is cadence and integration: agile folds review, test, and regression into every few days of work rather than gating a whole increment at its end, so a defect is caught within roughly one sprint instead of at the end of a multi-week increment.