NivaarExam PrepOfficial exam papers ↗

25-Comp-B11 Advanced Software Design · December 2018

Question 1 of 28: Waterfall, Iterative & Incremental, and RUP Lifecycle Models

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

Notes on this paper

17-Comp-B11 Advanced Software Design — National Exams, December 2018. 3 hours, closed book exam with up to 2 aid sheets allowed (written on both sides), no calculator permitted. The paper is organized into five parts, and candidates were instructed to answer any five (5) questions in Part I, any three (3) in Part II, any four (4) in Part III, any two (2) in Part IV, and any five (5) in Part V — only the first questions answered, in each part, as they appear in the answer book are marked. All questions carry equal weight, so the 19 questions actually marked (5+3+4+2+5 of 28) each count for 100/19 ≈ 5.26% of the paper. All 28 questions are answered below for completeness.

Reference texts: Sommerville, Software Engineering (10th ed., Pearson) — software processes, requirements engineering, design principles, dependability; Pressman, Software Engineering: A Practitioner's Approach (9th ed.) — supplementary process and quality coverage; Gamma, Helm, Johnson & Vlissides (GoF), Design Patterns: Elements of Reusable Object-Oriented Software — creational/structural/behavioural pattern catalogue and the "program to an interface, not an implementation" / "favor object composition over class inheritance" principles; Sebesta, Concepts of Programming Languages (12th ed.) — polymorphism, dynamic binding, inheritance and language-level object semantics; Bertrand Meyer, Object-Oriented Software Construction — design by contract, preconditions/postconditions/invariants; Barbara Liskov's 1987 substitutability paper for Question 11; Karl Wiegers, Software Requirements (3rd ed.) — the functional/quality/process/implementation/business requirements taxonomy of Question 2; Kruchten, The Rational Unified Process: An Introduction, for Question 1; Myers, The Art of Software Testing, for Questions 6 and 28.

PART I — General Principles (answer any 5 of 7)

Question 1: Waterfall, Iterative & Incremental, and RUP Lifecycle Models (Part I)

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.

The Waterfall model is a linear, single-pass process: requirements → design → implementation → testing → deployment → maintenance, each phase completed and formally signed off before the next begins. Scope and schedule are committed up front, and a phase is, in principle, never revisited once approved.

The Iterative and Incremental model combines two independent ideas: incremental delivery partitions the system into separately-usable slices of functionality shipped one after another (each increment adds new capability to what already exists), while iterative development repeatedly revisits and refines the SAME body of work across cycles rather than adding new scope each time. A process can be incremental without being iterative (each slice built once and never revisited) or iterative without being incremental (successive refinements of one complete prototype); most real processes, including RUP below, combine both.

The Rational Unified Process (RUP) is a concrete, commercially-defined process framework that is explicitly both iterative and incremental: it organizes a project into four phases — Inception (establish scope/business case), Elaboration (stabilize architecture, retire the highest risks), Construction (build out the bulk of functionality across several increments), Transition (deploy to users) — and each phase is itself divided into one or more time-boxed ITERATIONS, each iteration producing a running, integrated, incrementally-more-complete executable. RUP additionally prescribes a specific set of disciplines/workflows (requirements, analysis & design, implementation, test, deployment) that run in every iteration with varying emphasis, and is risk-driven in the same spirit as the Spiral model (front-loading the iterations that retire the greatest architectural risk).

Differences. Waterfall delivers once, at the very end, with no built-in mechanism to revisit an earlier phase's decisions; RUP (and Iterative/Incremental generally) delivers a growing sequence of working executables throughout the project and explicitly expects earlier decisions to be revised as later iterations reveal new information. Waterfall has no named phases oriented around risk; RUP's Inception/Elaboration split exists specifically to retire architectural risk before the bulk of construction effort is committed. "Iterative and Incremental" on its own is a general PRINCIPLE with no fixed set of phases or disciplines; RUP is one specific, fully fleshed-out PROCESS that instantiates that principle with a named phase/discipline structure.

Similarities. All three are plan-driven, phase- or iteration-gated processes with defined milestones and documented deliverables at each boundary (none is as lightweight or continuously customer-collaborative as a pure agile method). Every RUP iteration internally still passes through a small Waterfall-like sequence of its own disciplines (elicit requirements for this iteration's scope, design, implement, test) before the next iteration begins — so Waterfall's sequential logic survives inside each RUP iteration, just repeated and re-scoped many times rather than performed once across the whole project.

← Paper overview