25-Comp-B11 Advanced Software Design · December 2018
Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
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.