Software Process Models
Every software project follows some process, chosen or not. This Part walks through the formal life-cycle models, from the code-and-fix chaos that came first, through the waterfall, the V-model, incremental, evolutionary and prototyping models, to Boehm's risk-driven spiral, and then shows you how to pick one for a real project and defend the choice the way the exam wants.
- You willtell defined from empirical process control, and explain why the software crisis led to phased processes.
- You willdraw each model (waterfall, Royce's original, V, incremental, evolutionary, prototyping, spiral) and walk a project through it.
- You willseparate incremental from evolutionary, and prototyping from the spiral, without mixing them up.
- You willrecommend one model for a case such as Medic, justified fact by fact against its trade-offs.
Processes, Process Control and Process Models
Before we can compare ways of building software, we need words for what is being compared. This section sets up that vocabulary: what a process is, what a model of a process adds, and the two basic ways of keeping a process under control. Every later section in this Part, and much of Part III, leans on these terms.
Process, process model, SDLC exam
A process is "a series of progressive and interdependent steps by which an end is attained". Making a cup of tea is a process: boil water, add the tea, wait, pour.
A process model is a simplified description of the steps you need to take to reach your goal. A software process model tells you which activities should happen when, so that you build what the customer wants and make sure it is right.
An SDLC (software or systems development life cycle) is a process for planning, creating, testing and deploying an information system. In this subject "SDLC" and "process" mean the same thing, and are used interchangeably.
Whatever the model, the same handful of SDLC activities turn up. The slides list them in order: requirements gathering (finding out what the system must do), system or architectural design (deciding how it will be structured), implementation (coding and putting the pieces together, called integration), testing, and evolution, which covers delivery, release and deployment as well as maintenance after go-live.
Process model versus method
Boehm (1988) sharpens the idea. A process model fixes two things: the order of the stages and the transition criteria for moving from one stage to the next. So a model answers exactly two questions: "What shall we do next?" and "How long shall we continue to do it?". A method is a different thing: it tells you how to do the work inside one phase. "Do design after requirements, and stop when the design document is signed off" is process; "draw UML class diagrams to do the design" is method.
Check yourselfA team lead says: "Our process is: we use user stories for requirements and write unit tests in JUnit." By Boehm's definition, has she described a process model?
No. User stories and JUnit are methods: they say how to work inside a phase. A process model would say what happens next and how long each stage continues, i.e. the order of stages and the criteria for moving on (for example "requirements are fixed before design starts", or "every two weeks we review and re-plan").
Defined versus empirical process control exam
"Process control" means how you keep the work heading where it should. There are two basic ways. Defined control fixes the steps in advance and follows them, trusting that the same inputs give the same output. Empirical control accepts that you can't foresee everything, so it steers by observing what actually happens, inspecting the result and adapting. What decides between them is how predictable the work is.
| Defined process control | Empirical process control | |
|---|---|---|
| Idea | A well-defined set of steps. Same inputs → same output every time. | "Expect the unexpected". Control by observation, inspection and adaptation. |
| Environment | Low volatility, predictable. | Complex, volatile, novel. |
| Characteristics (Visual Paradigm reading) | Plan what you expect to happen; enforce the plan; use change control because change is expensive. | Learn as we progress; expect and embrace change; inspect and adapt using short development cycles; estimates are indicative only. |
| Slide analogy | A burger recipe: fixed ingredients and sequence, identical result. | A flight: the plane keeps correcting course for weather. |
| SDLC examples | Waterfall, V-model. | Scrum and other agile frameworks (Part III). |
Software development is mostly novel work: each system is built once, often with people, tools or problems the team hasn't met before. So a purely defined process rarely fits it well. That is where the iterative, spiral and agile models come in: each one adds some empirical feedback to the plan.
Check yourselfWhich statements describe empirical process control? (Select all that apply.)
- Estimates are treated as indicative only.
- Change control is used because change is expensive.
- It suits complex, volatile or novel environments.
- The same inputs reliably give the same output.
- Short development cycles are used to inspect and adapt.
A, C and E. B and D are the defined side: enforcing a plan with change control, and the "same inputs, same output" recipe idea. In an MRQ each wrong tick cancels a right one, so leave B and D blank rather than guessing.
- A process model fixes the order of stages and the transition criteria; a method says how to work inside a stage.
- Models re-arrange the same SDLC activities (requirements, design, implementation, testing, evolution), differing in order, overlap, repetition and criteria for moving on.
- Defined control (recipe; waterfall, V-model) fits predictable work; empirical control (flight; Scrum) fits novel, volatile work, which is what most software is.
Before SDLCs: Code-and-Fix and the Software Crisis
Formal life cycles weren't invented for fun: each phase they contain exists because its absence once caused real damage. The quickest way to see why is to look at what people did before, starting with the process almost every student has used.
The "student programming assignment" process
The lecture opens with a process you may recognise. Step through it, and watch each of its three problems point at an activity that is missing.
- The student process: maybe read the spec, code until it compiles, check against the lecturer's one example, submit. Dashed arrows are the "go back and fix" loops. Step through to see its three problems.
- Problem 1: the submitted code is tested by the marker with different examples, and fails. The lesson is inadequate testing: one example and no test plan.
- Problem 2: the student submits something different from what the lecturer wanted. The lesson is no requirements analysis: reading the spec was "optional".
- Problem 3: the student is marked down for "poor design". The lesson is that there was no design step at all.
- Each lesson names a missing activity: requirements, design and testing. Those are exactly the phases that formal SDLCs make compulsory.
Code-and-fix (ad hoc development)
Code-and-fix is the simplest possible process: write some code, then edit it until it seems to meet the requirements, then deliver. There are no separate requirements, design or test phases. It is "ad hoc", meaning improvised for the situation rather than planned.
Surprisingly, it worked in the 1940s and 50s, and the slides give four reasons why:
- Systems were small.
- Developers were exceptionally able, often with higher degrees.
- Developer, client and user were often the same person, so there were few requirements problems: you can't misunderstand yourself.
- Programs often ran only once, so there was little need for maintenance or version control.
At scale it fails, and Boehm (1988) explains how. The useful way to read his list is that each failure created the need for one of the phases later processes introduced:
Check yourselfWhich were reasons code-and-fix worked in the 1940s–50s, according to the slides? (Select all that apply.)
- Programs often ran only once.
- Compilers caught most design errors.
- Developer, client and user were often the same person.
- Systems were small.
- Requirements were written down formally.
A, C and D. The fourth reason on the slides is that developers were exceptionally able, often with higher degrees. B and E are invented: there were no formal requirements (that is the point of code-and-fix), and nothing about compilers appears in the list.
The 1960s software crisis exam
The cause of the crisis was growth. Computers became far more powerful, programs and user expectations grew with them, and the methods for building software couldn't keep up. Dijkstra (1972) put it memorably: when there were no machines, programming was "no problem at all"; once there were gigantic computers, programming became a gigantic problem. Kimble points to the economics behind this: hardware costs fell while software costs rose.
The symptoms (slides) were that most large projects shipped late or not at all, went catastrophically over budget, didn't work, or all three. The readings add that debugging took longer than writing the code, and that the code was almost impossible to maintain.
The response came at the 1968–69 NATO Software Engineering Conferences, held in Garmisch, Germany, in 1968 and in Rome in 1969. Attendees included Dijkstra, Hoare, Gill, Perlis and Naur. The term "software crisis" was coined there, and "software engineering" came into common use. The phrase was chosen deliberately to provoke: the point was that software should rest on the theory and discipline of the established engineering fields. One famous remark from the conferences (paraphrased) captures the mood: we build systems the way the Wright brothers built aeroplanes, by pushing one off a cliff, letting it crash, and starting again.
The outcome was a resolution to replace craft-style code-and-fix with disciplined, phased processes, the first of which was the waterfall.
Check yourselfIn an exam answer about the software crisis, sort these into cause, symptom and response: (a) debugging took longer than writing the code; (b) far more powerful computers raised program size and expectations; (c) the 1968 NATO conference in Garmisch; (d) projects went catastrophically over budget; (e) falling hardware costs alongside rising software costs.
Cause: (b) and (e): growth in computing power and expectations outran methods, and the economics flipped (hardware cheaper, software dearer). Symptoms: (a) and (d), along with late, cancelled or non-working projects and unmaintainable code. Response: (c), where "software engineering" came into common use and phased processes were resolved upon.
- The student process lacks requirements, design and testing; each of its three problems teaches that lesson.
- Code-and-fix worked when systems were small, developers expert, developer = client = user, and programs ran once. At scale it produced decaying code, misfit software and no plan for test or change, which created the design, requirements and test/evolution phases.
- The 1960s crisis (cause: growth; symptoms: late, over budget, broken) led to the 1968–69 NATO conferences, "software engineering", and phased processes starting with the waterfall.
Waterfall: the Plan-Driven Approach (1970)
The waterfall answers code-and-fix's chaos with order: do each activity once, completely, in a fixed sequence, and write down the result before moving on. It is the classic plan-driven model, meaning the work follows a plan made up front rather than adapting as it goes. Understanding it well matters twice over: it is examined directly, and every later model is described as a fix for one of its weaknesses.
The model exam
The W02 slide splits the waterfall into six phases. Each phase answers one question and produces an output that the next phase works from. Step a project through it.
- A new system is about to be built with the waterfall. Nothing exists yet. Each step below adds one phase, with the question it answers (gold card) and the document it outputs (file icon).
- Requirements: what do stakeholders (everyone with an interest in the system: clients, users, sponsors…) want the product to do? The output is a requirements list.
- Analysis: exactly what does each requirement mean? The output is the Software Requirements Specification (SRS), the precise, agreed statement of what the software must do.
- Design: how will we build it? The output is the design documentation. Implementation cannot start until design is complete.
- Implementation: code and integrate the parts. The output is the working product, and the slides count source code as a document too.
- Maintenance: after delivery, repair faults or add enhancements. The output is an updated product and updated documents.
- Retirement: the system is removed from service. There is no output document.
- The three characteristics: phases are distinct and don't overlap; each phase outputs a document; and although testing and QA aren't drawn as phases, every document is QA-reviewed (gold diamonds) before the next phase starts.
Notice that testing doesn't appear as a phase on this slide's version. The slides make the point that testing and QA (quality assurance: checking that the work meets its standards) still happen, through the review of every document before the next phase begins. Many textbook versions do draw a separate testing phase; Royce's original, in 2.4, has one.
A more realistic waterfall, with feedback
Real projects don't flow in one direction. An error found in design may reveal a mistake in the analysis; a fault found in implementation may force a design change. So the slides also show "a more realistic waterfall – with feedback", where work loops back, and where changed requirements re-enter at analysis.
Document-driven, and why that is costly
The waterfall is document-driven: what moves the project from one phase to the next is finishing a document, notably the SRS and the design. That gives managers something concrete to check and sign off. But it has a price. When an error is found late and the system must change, every affected document must be updated, and this is very costly.
The slides conclude that the waterfall works badly when (1) errors are likely in requirements elicitation, analysis or design, or (2) requirements are hard to work out or likely to change. In both cases the late, expensive document rework above becomes almost certain.
Problems with documentation (slides). These explain why "just freeze the requirements" rarely holds. Very few real projects are insulated from change, even when customers really know what they want. Business and regulatory environments are beyond the control of developers and customers alike: a new law or a competitor's product can change what is needed. The technical environment (operating systems, libraries, network speed) changes too.
Check yourselfAccording to the slides, the waterfall works badly when… (Select all that apply.)
- errors are likely in requirements elicitation, analysis or design.
- the system is large.
- requirements are hard to work out or likely to change.
- the technology is mature.
A and C. Size alone isn't on the list (the comparison grid in 2.10 says waterfall suits any size, including large contracted work), and mature technology is a reason for a formal model, not against one.
Check yourself · past exam[PAST EXAM 433-443 1998 Q2, predecessor subject] Briefly describe the benefits of the waterfall process.
The guide's model answer gives seven benefits:
- It is simple to understand, teach and manage.
- Its distinct phases, each with deliverables and sign-offs, give clear milestones and visibility of progress.
- Fixing the requirements early enables estimation, budgeting, fixed-price contracts and resource planning.
- Doing design before code avoids the decay that code-and-fix suffers.
- QA reviews at each phase stop errors propagating into later phases.
- The documentation supports maintenance, staff turnover, outsourcing and audits.
- It suits stable requirements, mature technology, and regulated or safety work.
- Six slide phases: requirements → analysis (SRS) → design → implementation → maintenance → retirement; no overlap, a document from each phase, every document QA-reviewed.
- Real projects loop back; changed requirements re-enter at analysis.
- It is document-driven, so late change means updating every affected document, which is very costly. It works badly when errors in early phases are likely or requirements are hard to pin down or likely to change.
What Royce Actually Said (1970)
The slides cite Winston Royce's 1970 paper as the source of the waterfall. The surprise, and a favourite exam trap, is that Royce never used the word "waterfall" and criticised the naive single pass. Knowing what he really argued lets you answer "evaluate the waterfall" questions with more than the usual clichés.
Royce's diagnosis exam
Royce argued that analysis then coding is enough for small programs run by the people who built them, but that for large systems this approach is "doomed to failure". He drew the steps as system requirements, software requirements, analysis, program design, coding, testing and operations, and he hoped that any iteration would stay between adjacent steps. He said he believed in the concept, but that this implementation "is risky and invites failure".
Royce's five fixes exam
Royce didn't abandon the sequence; he added five steps to make it safe. The guide says to memorise them. Step through to see each one bolted onto his model.
- Royce's seven steps, done once in order. On their own they are "risky and invite failure", because testing comes last. Each step adds one of his fixes.
- Fix 1: program design comes first. Do a preliminary design before analysis, so the designers set the storage, timing and interface constraints, and write an overview document.
- Fix 2: document the design. Royce wants "quite a lot" of documentation: about 1,500 specification pages for $5M of software, against about 30 for $5M of hardware. Early on, the documentation is the design.
- Fix 3: do it twice. Build a pilot or simulation of the critical areas first, so that the version you deliver is really the second one. This is the origin of prototyping (2.8).
- Fix 4: plan, control and monitor testing. Testing is the biggest resource consumer and the biggest risk, so use test specialists and second-party code inspection (someone other than the author checks the code), and test every logic path at least once.
- Fix 5: involve the customer formally, at several points after requirements definition (the C badges), rather than only at the start and the end.
The history the slides leave out
Larman & Basili (2003) add some history. Iterative and incremental development (IID), building a system in repeated cycles that each add to it, is not new: it dates back to the 1950s.
Check yourselfWhich statements about Royce (1970) are correct? (Select all that apply.)
- He named the model "the waterfall".
- He said analysis-then-coding is fine for small programs run by their builders.
- He recommended building a pilot of the critical areas first.
- He argued testing should be minimised because it consumes resources.
- He called the single-pass implementation "risky".
B, C and E. A is the classic myth: Royce never used the word. D inverts fix 4: testing is the biggest resource consumer and the biggest risk, so it should be planned, controlled and monitored, not minimised.
Check yourself · self-testWhat were Royce's five recommendations, and why does the paper matter?
Royce recommended (1) doing program design first, (2) documenting the design, (3) doing it twice (a pilot), (4) planning, controlling and monitoring testing, and (5) involving the customer. The paper matters because Royce called the single-pass sequence "risky": testing comes last, so problems surface late, with up to 100% overrun. The "waterfall" people attack is the naive version he criticised.
- Royce never said "waterfall"; he called the single pass risky because testing comes last, when timing, storage and I/O are first experienced (up to 100% overrun).
- His five fixes: program design first, document the design, do it twice, plan/control/monitor testing, involve the customer.
- IID dates to the 1950s (Mercury) and succeeded on the space shuttle; the DoD's single-pass standard was linked to failure; waterfall persisted because it is simple and looks orderly.
The V-Model
The waterfall's biggest weakness is that testing comes last, so nobody thinks hard about how each thing will be tested until it is too late. The V-model is a waterfall variant that fixes this one problem: it pairs each development phase with a test phase, and plans that test during the development phase. The guide treats it briefly, but its pairing is a favourite short-answer question.
Two terms help. Verification asks "are we building the product right?", i.e. does it match its specification. Validation asks "are we building the right product?", i.e. does it meet the users' real needs. In the V, every test level verifies the artefact opposite it, and the top level, acceptance testing, validates against the user needs. (Part VII covers both in depth.)
- The V-model bends the waterfall into a V. Development goes down the left arm (breaking the system into ever smaller parts), coding sits at the bottom, and testing comes up the right arm (putting the parts back together and checking them).
- Requirements / user needs are captured, and right away the acceptance tests are planned: how will the customer decide the product is acceptable? The right-hand box is faded because it is only planned, not yet run.
- System specification is written, and the system tests that will check the whole system against it are planned.
- Architectural design splits the system into components, and the integration tests that will check the components work together are planned.
- Module (detailed) design designs each component internally, and the unit tests for each module are planned.
- Coding: the bottom of the V.
- Unit testing runs, verifying each module against its module design.
- Integration testing runs, verifying the combined components against the architectural design.
- System testing runs, verifying the whole system against the system specification.
- Acceptance testing runs against the requirements. This top level is validation: is it the right product for the users?
- The pairing gives the V its strengths (early test planning forces testability; clear traceability) and it keeps the waterfall's weaknesses (sequential, document-heavy, late working software, costly change).
Traceability means you can follow a line from each requirement to the design that meets it and to the test that checks it, in both directions. In the V that line is drawn for you: each horizontal pair is a trace. That is why the guide recommends the V-model for safety-critical, embedded and regulated systems with stable requirements, such as medical devices and avionics, where auditors want proof that every requirement was tested.
Check yourself · self-testIn the V-model, which test level checks which artefact? Give one strength and one weakness.
Unit testing checks the module design, integration testing checks the architectural design, system testing checks the system specification, and acceptance testing checks the requirements. One strength is that tests are planned early, so the work is testable and traceable. One weakness is that the model is sequential, so working software arrives late and change is costly.
Check yourselfA team building avionics software with fixed, certified requirements is choosing between the V-model and Scrum. Which suits it better, by the guide, and why in one sentence?
The V-model: requirements are stable and the system is safety-critical and regulated, so early test planning and requirement-to-test traceability are exactly what certification needs, while the V-model's weakness (costly change) matters little when requirements won't change.
- The V-model pairs each development phase (left) with a test level (right) at the same height; each test level is planned during its phase and later verifies it. Acceptance testing validates the requirements.
- Pairs: requirements–acceptance, system spec–system, architecture–integration, module design–unit.
- Strengths: testability, traceability. Weaknesses: sequential, document-heavy, late software, costly change. Use for safety-critical, regulated work with stable requirements.
The Incremental Model exam
The waterfall makes the customer wait until the very end for anything usable, and all the risk lands at once. The incremental model keeps the up-front requirements but delivers the system in slices, so the most important part is in use early and the risk is spread out.
The idea
In the slides' version, you first capture the project requirements, then build the system as a series of "mini waterfalls", each running through analysis, design, development, testing and deployment, to give Release 1, 2 … n. Each increment is an operational, deliverable part of the product: something users can actually use, not a demo. Basic features come first and supplementary features later, so the product grows from A, to A+B, to A+B+C. A stable architecture (the overall structure: main components and how they connect) must be designed early, so that later increments fit.
- All the requirements are captured up front and partitioned: A holds the basic features, B and C the supplementary ones. Each colour marks one slice.
- A stable architecture is designed early, so that every later increment will fit into it.
- Increment 1 runs a complete mini waterfall on slice A and is deployed: the customer now has a working, operational product with the basic features.
- Two things happen between increments. Lessons from increment 1 improve the later ones. And when a change request arrives late, it doesn't disrupt the current work: it can be deferred to a later increment.
- Increment 2 adds slice B, and the product in use becomes A+B. Because B's requirements were known from the start, increment 2 could even have started before increment 1 finished: increments can overlap.
- Increment 3 adds C: the full product A+B+C, which was known from the very beginning.
- The slides' advantages: major requirements are developed first; development risk is spread across the increments; lessons from each increment improve the later ones; each release is operational; initial delivery is faster; the risk of failure is reduced.
Advantages and disadvantages
- Major requirements are developed first.
- Development risk is spread across the increments.
- Lessons from each increment improve the later ones.
- Each release is an operational increment.
- Initial delivery is faster.
- The risk of failure is reduced.
- It needs good planning and design, and designing the increments may not be straightforward.
- It needs early definition of requirements, otherwise you can't identify the increments at all.
- It is rigid: there is no iteration within an increment or mini waterfall.
Three further features round out the model. A stable architecture must be designed early so later increments fit; change requests can be deferred to a later increment; and increments can be overlapped (pipelined, like an assembly line), because their requirements are already known.
Check yourselfWhich are disadvantages of the incremental model on the slides? (Select all that apply.)
- It needs early definition of requirements to identify the increments.
- The customer gets nothing usable until the end.
- There is no iteration within an increment.
- It cannot accept any change request.
A and C (the third listed disadvantage is that it needs good planning and design). B is the waterfall's problem: incremental delivers operational releases early. D is wrong: change requests can be deferred to a later increment.
Deliver each increment, or keep it internal? exam
A predecessor-subject exam asked about a real trade-off: do you hand each increment to the customer, or treat increments as internal milestones and deliver only at the end?
| Deliver increments to the customer | Keep increments as internal milestones | |
|---|---|---|
| Risk | lower Early user feedback catches misunderstood requirements; the customer gets early value; integration is tested in the real environment. | higher Requirements and acceptance risk are deferred to the end, as in the waterfall. |
| Cost and schedule | higher Every delivery must be release quality (testing, installation, documentation, training, support); several versions in the field must be maintained; feedback brings change requests and scope creep. | lower Cheaper and more predictable. |
| Choose when | Requirements risk is high. | Requirements are stable, or partial deployment is impractical. |
Check yourself · past exam[PAST EXAM 433-443 1999 Q2, predecessor subject] In the incremental model, discuss the risk vs cost/schedule trade-off of delivering increments to the customer versus keeping them as internal milestones.
- Delivering increments lowers risk: early user feedback catches misunderstood requirements, the customer gets early value, and integration is tested in the real environment. But it raises cost and schedule, because every delivery must be of release quality (testing, installation, documentation, training, support), several versions in the field must be maintained, and the feedback brings change requests and scope creep.
- Keeping increments as internal milestones is cheaper and more predictable, but the requirements and acceptance risk are deferred to the end, as in the waterfall.
- So deliver when requirements risk is high, and keep increments internal when requirements are stable or partial deployment is impractical. A compromise is to demonstrate increments at review milestones.
Check yourself · past exam[PAST EXAM 433-443 1999 Q19.2, predecessor subject] Build A is infrastructure, B is core, and C (advanced) proceeds only if B succeeds. A whole-system SRS is reviewed at T0+4. Each build goes through analysis, design, implementation and test, and is delivered at T0+4, +10 and +16. Characterise the process model.
- This is an incremental, staged-delivery model. Requirements for the whole system are baselined (formally fixed) up front, waterfall-style, with the SRS review at T0+4. The system is then built and delivered in three increments, each a mini waterfall of the four phases with its own acceptance review. The analysis of B and C overlaps A, and C's design starts after B is accepted.
- It is risk-ordered (infrastructure, then core, then advanced), with a spiral-like go/no-go decision at Build B.
- It is not evolutionary, because the requirements come from the SRS, not from feedback on delivered builds.
- Capture all requirements first, design a stable architecture, then deliver operational releases through mini waterfalls: A → A+B → A+B+C.
- Pros: core first, risk spread, lessons carried forward, faster first delivery. Cons: needs early requirements and good planning; no iteration inside an increment.
- Change requests can be deferred to later increments, and increments can overlap because their requirements are known.
Evolutionary Development, and Incremental vs Evolutionary exam
Incremental development assumes you know the requirements at the start. Sometimes you simply can't: the users say "I can't tell you what I want, but I'll know it when I see it". Evolutionary development is built for that situation: instead of planning the whole product, you build a first version and let real use tell you what the next version should be.
The model
Evolutionary development is a model whose stages are "expanding increments of an operational software product, with the directions of evolution being determined by operational experience". In practice: build a first version from outline requirements, let the customer use it, and use their feedback to define the next version. It gives a rapid initial capability.
- The customer can give only outline requirements: they genuinely don't know the details until they see something working.
- Version 1 is built quickly from the outline, and it is operational: the customer really uses it, which gives a rapid initial capability.
- The customer uses version 1, and their feedback becomes the requirements for the next version. Requirements analysis happens again, every cycle.
- Version 2 is not just "version 1 plus a slice": it revises earlier functions (X is reworked, gold) as well as adding new ones (Z, green). The next cycle can't start until this version has been used.
- Another round of use and feedback gives version 3, and the customer says "that's it". The end product emerged; nobody could have specified it on day one.
- Boehm's difficulties. It is hard to tell apart from code-and-fix, with the same risk of spaghetti code (tangled, unstructured code) and little planning. And it assumes the system can absorb unplanned evolution, which fails in three situations explained below the stepper.
Boehm's second difficulty deserves unpacking, because each failure case is a realistic situation. The assumption that the system can absorb unplanned evolution breaks down when independently evolved applications must later be integrated (each grew its own way, so they don't fit together); when temporary workarounds harden into fixed constraints, which Boehm calls "information sclerosis" (a quick fix becomes something everything else depends on, so it can no longer be changed); and when new software must gradually replace a poorly modularised old system (you can't evolve away from something you can't take apart).
Incremental versus evolutionary, side by side
The two are easy to confuse, because both deliver in cycles. The root difference is where the requirements come from: incremental partitions requirements known up front; evolutionary discovers them from feedback. Every other difference follows from that one.
| Incremental | Evolutionary | |
|---|---|---|
| Requirements | Mostly defined up front, then partitioned | Only an outline at first; they emerge from feedback |
| Each cycle | Adds a planned slice (A → A+B → A+B+C) | A new version that may revise earlier functions |
| End product | Known at the start | Emerges |
| Requirements analysis | Once, at the start | Repeated every cycle |
| Cycles overlap? | Yes, they can be pipelined | No. Each depends on feedback from the last delivery |
| Main risk | Wrong partitioning; late requirement change | Poor structure; hard to plan, cost or contract |
Incremental is a known jigsaw built piece by piece; evolutionary is sculpting until the customer says "that's it". A third word, iterative, means repeating cycles to rework something. Agile is iterative and incremental (Part III).
Gantt sketches: waterfall, incremental, evolutionary exam
Two predecessor-subject exams (433-443 1999 Q1 and 2000 Q1b) asked students to draw these models as Gantt charts: bar charts with time across the page and one row per task. In each sketch below, the rows are summary tasks (a summary task groups the detailed tasks under it), the gold diamonds are customer-review milestones (zero-length events), and the dates are arbitrary. All three share one time axis, so you can compare when the first delivery arrives.
Annotate the key differences on your chart, because that is what earns the marks: incremental has one requirements phase and overlapping increments; evolutionary repeats requirements every cycle and its cycles are strictly sequential. Mark every customer review as a milestone diamond.
Check yourselfClassify each project as incremental or evolutionary: (a) a payroll system with a signed SRS, released in three planned slices; (b) a research team's data tool where scientists keep discovering what they need after trying each version; (c) a project where release 2 deliberately redesigns the screens built in release 1 because users disliked them.
(a) Incremental: requirements known up front (the SRS) and partitioned into planned slices. (b) Evolutionary: requirements emerge from using each version. (c) Evolutionary: a cycle that revises earlier functions because of feedback is the evolutionary signature; incremental cycles add planned slices.
Check yourself · past exam[PAST EXAM 433-443 1999 Q1, predecessor subject] Draw Gantt charts for the waterfall, incremental and evolutionary models, with summary tasks and customer reviews as milestones.
Use the three sketches above.
- The waterfall chart has its phases in sequence, with review milestones after requirements, after design, and at acceptance.
- The incremental chart has one requirements and architecture phase, followed by overlapping increment summaries, each ending in a delivery review.
- The evolutionary chart has sequential "version n" summaries, each ending in a customer evaluation that feeds the next cycle.
Check yourself · past exam[PAST EXAM 433-443 2000 Q1 a–d, predecessor subject] (a) Distinguish waterfall, incremental and evolutionary. (b) Draw two Gantt charts contrasting incremental and evolutionary. (c) What is meant by the spiral model (2 sentences)? (d) What tool would you use if the commissioner's goals are unclear or a technology is used for the first time?
- (a) Waterfall does each phase once, with one delivery. Incremental fixes requirements up front, then delivers planned slices that each add function. Evolutionary starts from outline requirements and delivers versions revised from user feedback, so the product emerges.
- (b) Use the charts above, annotated to show the differences: single versus repeated requirements, and overlapping versus sequential cycles.
- (c) Boehm's spiral is a risk-driven iterative process. Each loop sets objectives, alternatives and constraints, resolves the biggest risks (often by prototyping), develops and verifies the next level of product, and plans the next loop after a stakeholder commitment review. (See 2.9.)
- (d) Prototyping: use a throwaway or proof-of-concept prototype, within a risk-driven (spiral) approach. (See 2.8.)
- Evolutionary: build from outline requirements, let the customer use it, let feedback define the next version; good for "I'll know it when I see it". Risks: code-and-fix-like spaghetti, and unplanned evolution failing on integration, information sclerosis or replacing old systems.
- The root difference: incremental requirements are known and partitioned (cycles add, can overlap); evolutionary requirements emerge (cycles revise, strictly sequential).
- On a Gantt chart: one requirements bar and overlapping increments, versus requirements in every version and back-to-back cycles.
Prototyping and Rapid Prototyping
When the customer can't say exactly what they want, or nobody is sure a technology will work, writing a 200-page SRS just records guesses. Prototyping attacks that problem directly: build something cheap that people can see and try, learn from it, and only then commit to the real thing. It is Royce's "do it twice" (2.4) turned into a model.
Prototyping (slides)
A prototype is an early, partial version of the software built to answer a question. In the prototyping model, you build a prototype to nail down the requirements, and then proceed waterfall-style: prototype, requirements, analysis, design, implementation, maintenance.
Rapid prototyping (slides)
Rapid prototyping evolved from prototyping. A rapid prototype is a working model functionally equivalent to a subset of the product: it really does some of what the final product will do. The approach is client-oriented: the client gives feedback before the team moves on, in a cycle of (1) prototype, (2) review, and (3) refine and iterate.
Two kinds of prototype
Whichever model you use, decide up front which kind of prototype you are building, because the two are built to different standards.
The main pitfall is treating a throwaway prototype as nearly finished. It skips the non-functional requirements (NFRs: qualities such as performance, security and error handling, as opposed to features), documentation and testing, so it is nowhere near shippable however good it looks. The other pitfalls are unplanned prototyping cost and endless refinement: the "one more tweak" loop is scope creep (scope quietly growing beyond what was agreed).
Check yourself · past exam[PAST EXAM 433-443 1998 Q11, predecessor subject] "We already have a working prototype so we just need to iron out some minor problems and the system is ready for delivery." Discuss the role of a prototype and the relationship between the prototyping and spiral models.
- A prototype is a cheap learning tool. It elicits and validates requirements, tests the UI and checks feasibility.
- A throwaway prototype omits non-functional quality (performance, security, error handling), design, documentation and testing. These are not "minor problems", so the right response is to discard it and engineer the system, unless it was built as an evolutionary prototype.
- The prototyping model uses one prototype to fix the requirements and then follows a waterfall. One prototype is often not enough, and that is what inspired the spiral.
- The spiral generalises prototyping. Every cycle analyses risk and builds a prototype (1, 2, 3, then operational) to resolve it, then develops, verifies, plans and reviews. Prototyping is therefore a risk-resolution tool within the spiral.
Check yourselfA team builds a quick UI mock-up in a drag-and-drop tool to settle what screens the users want. The manager now proposes shipping it after "a bit of polish". What kind of prototype is it, and what is missing?
It is a throwaway prototype: built fast to answer a requirements question. Shipping it is the main prototyping pitfall, because it lacks the non-functional requirements (performance, security, error handling), documentation and testing. The right move is to keep the lessons and engineer the real system; it could only be grown into the product if it had been built to production quality from the start (an evolutionary prototype).
- Prototyping: one prototype to nail down requirements, then waterfall. Prototypes can be costly and one may not be enough, which inspired the spiral.
- Rapid prototyping: a working model of a subset of the product, refined in a client-oriented prototype → review → refine loop.
- A prototype is for learning and risk reduction. Throwaway (discard after) vs evolutionary (production quality, grown into the system). Never ship a throwaway.
The Spiral Model (Boehm 1986; Journal Version 1988) exam
Each model so far is good against one kind of trouble: the waterfall against chaos, prototyping against unclear requirements, incremental against late delivery. Barry Boehm's spiral asks a more general question: what could sink this project right now? Whatever the answer, that is what the next loop of work attacks. A risk here is anything uncertain that could harm the project, such as an unproven technology or a misunderstood requirement (Part IV treats risk in depth).
Risk-driven, not document-driven or code-driven
The spiral diagram has two dimensions. The radial dimension (distance from the centre) is the cumulative cost so far; the angular dimension (how far round you are) is progress through the current cycle. The slides walk round it from the centre ("Start here") through Plan, Risk analysis, Prototype, and Build and validate. In Boehm's own wording, each cycle passes through four quadrants. Step a project round it.
- The four quadrants are fixed; the project spirals out through them, clockwise, starting at the centre. Watch the line get longer and further from the centre: that is money being spent.
- Quadrant 1 · determine objectives, alternatives, constraints for this portion of the product: what must it achieve (e.g. performance), what are the options (design A or B, reuse, buy), and what limits apply (cost, schedule)?
- Quadrant 2 · evaluate alternatives; identify and resolve risks. Find the major risks and resolve them cost-effectively, by prototyping, simulation, benchmarking or reference checks. On the first loop that is prototype 1 (P1).
- Quadrant 3 · develop and verify the next-level product ("build and validate" on the slides). On the first loop the "product" is just a concept of operation: how the system will be used. Here the remaining risk decides the step: if UI or performance risk dominates, take an evolutionary or prototyping step; if development risk dominates, take a waterfall-like step (requirements, design, code, test), possibly an incremental one.
- Quadrant 4 · plan the next phases (first loop: the requirements and life-cycle plan), then hold a stakeholder review (gold diamond) so that everyone is committed to the next loop. The project may also be terminated here, for example if it will miss its market window.
- Loop 2: with the concept settled, the risks shift. Prototype 2 resolves them, the loop develops and validates the requirements, plans development, and ends in another review and commitment.
- Loop 3: prototype 3, then the design is developed and verified, the integration and test plan is drawn up, and a third review commits to the final loop.
- Loop 4: an operational prototype, then detailed code, tests and installation. By now most risks are gone, so this loop looks a lot like a waterfall.
- Read the finished picture: the radius is cumulative cost, so outer loops are the expensive ones, and the angle is progress through a cycle. Resolving risks in the cheap inner loops is the whole point.
Colours in the stepper match the quadrants: objectives, risk, develop and plan. P1–P3 are prototypes 1–3 and OP the operational prototype.
- Identify the objectives, alternatives and constraints for this portion of the product.
- Evaluate the alternatives, find the major risks, and resolve them cost-effectively, by prototyping, simulation, benchmarking or reference checks.
- Let the remaining risk decide the next step. If UI or performance risk dominates, take an evolutionary or prototyping step. If development risk dominates, take a waterfall-like step (requirements, design, code, test), possibly an incremental one.
- Plan the next cycle, then hold a stakeholder review so that everyone is committed to the next phase. The project may also be terminated at this point.
Check yourselfPut Boehm's four quadrants in the order a cycle visits them: (a) plan next phases; (b) develop and verify next-level product; (c) determine objectives, alternatives, constraints; (d) evaluate alternatives, identify and resolve risks. Where does the review and commitment happen?
c → d → b → a: objectives, then risk, then develop, then plan. The review and commitment comes at the end of the plan quadrant, before the next cycle starts (on the boundary between quadrants 4 and 1), and it is also where the project can be terminated.
A meta-model: the spiral becomes what the risks require
Because risk decides each step, Boehm describes the spiral as a meta-model: a model for generating models. What it turns into depends on the project's risks.
Documents are risk-driven too. You write detailed documentation for the high-risk parts and defer it for the low-risk ones. That answers the awkward question every document-driven process faces: "how much documentation is enough?" Answer: as much as the risk justifies.
Check yourselfA project to re-host a well-understood payroll system has very clear user requirements and a stable UI, but a tight budget and a fixed go-live date. What does Boehm say the spiral turns into here?
- Evolutionary development
- A waterfall
- Rapid prototyping
- Code-and-fix
B. Low UI and performance risk with high budget and schedule risk is exactly the profile where the spiral behaves like a waterfall. A would follow from a high risk of getting the UI or user requirements wrong.
Advantages, difficulties and fit
- Eliminates errors and unattractive alternatives early.
- Encourages reuse.
- Builds quality objectives in.
- Handles growth and change.
- Uses one approach for both development and maintenance.
- Suits hardware–software systems.
- Matching to contract software. It works best for internal projects, because fixed contracts need deliverables specified in advance.
- Reliance on risk-assessment expertise. Inexperienced teams may detail the easy parts and gloss over the risky ones, which creates an illusion of progress.
- Needs further elaboration of its milestones, reviews and status tracking.
A further problem is that the per-cycle overhead (risk analysis, prototypes, reviews in every loop) makes cost and schedule hard to predict.
Use the spiral for…
large, complex, high-risk, novel systems, with an experienced team and a flexible contract.Avoid it for…
small or low-risk work, fixed-price fixed-scope contracts, or teams without risk-management skill.Boehm's top-10 software risk list, which feeds the spiral's risk quadrant, is covered in Part IV.
Check yourselfWhich are among Boehm's three named difficulties of the spiral? (Select all that apply.)
- It relies on risk-assessment expertise.
- It cannot handle hardware–software systems.
- It is hard to match to contract software.
- It never delivers a working system.
- Its milestones, reviews and status tracking need further elaboration.
A, C and E. B contradicts an advantage (it suits hardware–software systems), and D is false: the last loop develops, tests and installs the system.
- The spiral is risk-driven: each loop tackles the highest remaining risks. Radius = cumulative cost; angle = progress through the cycle.
- Each loop: objectives/alternatives/constraints → evaluate and resolve risks (prototypes 1, 2, 3, operational) → develop and verify → plan, then a review and commitment (or termination).
- It is a meta-model: waterfall-like, evolutionary or mixed depending on the risks; documents are risk-driven too.
- Difficulties: contract fit, reliance on risk expertise, under-elaborated milestones; plus hard-to-predict cost. Fits large, novel, high-risk work with experienced teams and flexible contracts.
The Spectrum and the Comparison Grid exam
You now know seven models. Exam questions rarely ask you to recite one; they ask you to compare them, or to place a project among them. This section gives you two tools for that: a spectrum to locate each model, and a comparison grid to revise from.
From plan-driven to agile
The models sit on a spectrum. Formal models are at the defined, plan-driven end; agile frameworks (Part III) are at the empirical end; and the incremental, evolutionary and spiral models fall in between, each adding some feedback to a plan.
T02 "SDLC summary" exam
The world is known
The customer knows what they want at the start; requirements are stable, precise and known; change is not expected; the technologies and tools are mature.The answer emerges
The customer gives time to the project; requirements keep emerging; change is welcome.A process is imposed
The client already has a prescriptive model established, e.g. mandated phase gates with agile delivery inside them. A hybrid is a tailoring, not a formal SDLC.Van Lamsweerde's agile assumptions (covered in Part III) mark the limits of agile: a small co-located team, an available user, and a non-critical system. Mission-critical systems such as air traffic control, power plants and banking often break these assumptions, which is one reason formal models survive.
The comparison grid
This grid pulls the models together and is the one to revise from. Read across a row to compare the models on one dimension, or down a column for a quick profile of one model. First, a picture of four of its rows:
| Waterfall | V-model | Incremental | Evolutionary | Prototyping | Spiral | Agile (Part III) | |
|---|---|---|---|---|---|---|---|
| Requirements stability | Stable, fully known up front | Stable, testable | Mostly known up front, partitioned | Outline only; emerge from use | Unclear; prototype clarifies | Uncertain, high-risk; elaborated risk-first | Expected to change |
| Risk handling | Poor; risks surface at testing | Test planning early, but execution late | Spread over increments; core first | Early user feedback; architecture risk | Cuts requirements and UI risk | Explicit risk analysis every cycle | Short cycles, inspect and adapt |
| Customer involvement | Start and end | Start and acceptance | Each release | High; uses each version | High during evaluation | Review and commitment each cycle | Continuous (Product Owner, reviews) |
| Documentation | Heavy, document-driven | Heavy + test plans per level | Moderate to heavy | Light, often poor | Light for prototype | Risk-driven: "as much as needed" | Light, just enough |
| Delivery | Once, at end | Once, at end | Several operational releases | Several versions | After prototyping, usually once | After final cycle (may be incremental) | Increment every sprint |
| Cost of late change | Very high | Very high | Moderate; defer to later increment | Low to moderate | Low early | Moderate, absorbed at cycle boundaries | Low; change welcome |
| Team / project size | Any; suits large, contracted | Large | Medium to large | Small to medium | Small to medium | Large, complex; needs risk experts | Small teams; scaled via SAFe (Part XI) |
| Typical domains | Regulated, fixed-price, well-understood upgrades | Safety-critical, embedded, medical | Business systems needing an early core | Novel or exploratory apps, 4GL | UI-heavy, novel interaction | Defence, aerospace, novel hardware and software | Web and mobile products, volatile markets |
| Pros | Simple, visible, predictable, documented | Traceable V&V, testability | Early value, lower risk, feedback | Fast first version; requirements discovered | Clarifies needs, cheap learning | Handles risk; flexible meta-model | Fast feedback, adaptable, value early |
| Cons | Inflexible; late testing; costly change | Inflexible; late working code | Needs early requirements and good architecture | Spaghetti risk; hard to plan or contract | Prototype mistaken for product; cost | Complex, overhead; needs expertise; poor contract fit | Needs available customer; weak for critical or large work; light docs |
Two abbreviations in the grid: V&V is verification and validation (2.5), and a 4GL (fourth-generation language) is a high-level tool for building applications quickly, such as a database query and reporting language.
Check yourselfAccording to the comparison grid, which model's documentation is "risk-driven: as much as needed", and which model has customer involvement only at the "start and acceptance"?
- Spiral; V-model
- Agile; waterfall
- Spiral; waterfall
- Incremental; V-model
A. The waterfall's involvement is "start and end"; the V-model's is "start and acceptance", because acceptance testing is its customer touchpoint. Agile's documentation is "light, just enough"; risk-driven documentation is the spiral's signature.
Check yourselfWhich models in the grid deliver more than once? (Select all that apply.)
- Waterfall
- Incremental
- V-model
- Evolutionary
- Agile
B, D and E. Incremental gives several operational releases, evolutionary several versions, agile an increment every sprint. Waterfall and V-model deliver once, at the end. (The spiral delivers after its final cycle, which may itself be incremental; prototyping usually delivers once.)
- Spectrum: waterfall and V-model (plan-driven) … incremental, evolutionary, spiral … agile (empirical). Agility is not binary.
- T02: formal when requirements are known, stable and tech is mature; agile when requirements emerge and the customer gives time; hybrid when the client imposes a prescriptive model.
- The grid compares requirements, risk, customer, documentation, delivery, cost of late change, size, domains, pros and cons. Cost of late change falls as models expect more change.
Choosing an SDLC for a Project exam
Knowing the models is only half the job; the exam's extended questions ask you to choose one for a given project and justify the choice. This section gives you a checklist of factors, a visual decision guide built from it, the difference between weak and strong arguments, and a seven-step framework for a full "evaluate and recommend" answer.
The decision checklist
- Requirements clarity and stability. Clear and stable → waterfall or V-model. Mostly clear and early value needed → incremental. Unclear or volatile → prototyping, evolutionary or agile.
- Technical novelty and risk. New hardware, algorithms or platforms point to the spiral, or to a prototype as a proof of concept.
- Criticality and regulation. Safety-critical or audit-heavy work calls for V-model or waterfall-style V&V and documentation, or for the spiral. Avoid a purely agile approach for the critical parts.
- Customer availability. Often available → agile or evolutionary. Available only at fixed points → a plan-driven model, or a spiral with scheduled reviews.
- Size and distribution. Small, co-located work → agile. Large, multi-team or contracted work → plan-driven, the spiral, or scaled agile.
- Need for early delivery → incremental or agile.
- Team experience with the domain, the technology and the process. A spiral needs risk expertise; agile needs self-management.
- Contract and culture. Fixed price and fixed scope → plan-driven; time-and-materials (the client pays for the work actually done) → iterative; a client with a mandated process → hybrid.
- Maintenance and handover. If another team will maintain the system, you need more documentation.
- Predictability required up front → plan-driven.
The mnemonic, from Boehm & Turner's "home grounds" for agile versus plan-driven methods, is size, criticality, dynamism, personnel, culture. "Dynamism" means how much the requirements change; "personnel" means the team's skill and experience.
The decision guide, as a picture
Here is the same checklist laid out so you can scan a scenario against it. For each factor, find the branch that matches the project's facts and note the models it points to. The model that keeps turning up, and whose prerequisites the project meets, is your candidate. 2.12 runs the Medic case through it step by step.
Strong versus weak arguments (T02)
A weak argument describes the SDLC or the project but never connects the two. "Waterfall gives us many phases" leaves the marker asking "so what?"; "Agile perfectly suits the project" leaves them asking "how? why?". A strong argument follows a chain from a project fact to the trade-off.
"We should use prototyping because it is good for unclear requirements."
Generic: true of every project, linked to no fact of this one.
"Senior doctors are rarely available, so their input must be concentrated. Prototyping front-loads requirements workshops and one mid-project UI-mockup review, using their limited time where it most reduces the risk of an unusable UI."
Check yourselfRewrite this weak argument as a strong one: "The spiral is good because it handles risk." Use this fact: the project depends on a GPS chip the team has never used.
One strong version: "The project depends on a GPS chip the team has never used (fact), so there is a high technical risk that it won't meet accuracy or timing needs, discovered only at integration (risk). The spiral's second quadrant resolves the biggest risks first by prototyping (SDLC feature), so an early loop can benchmark the chip before major investment, and the review at the end of the loop can switch hardware or stop (how it helps). The cost is per-cycle overhead and a less predictable schedule, and it needs someone skilled in risk analysis (trade-off)." The point is the chain, not these exact words.
The "evaluate the SDLC used / recommend an alternative" framework (from A1)
Assignment 1 asked students to evaluate the SDLC a failed project used and recommend an alternative. Its structure is a ready-made plan for the exam's case-study questions:
- Context and goals. Set out the project's size, novelty, criticality, stakeholders and contract.
- Identify the SDLC used. If it isn't named, infer it from the evidence and say so. For example, up-front specification, phase sign-offs and one "big bang" delivery imply waterfall.
- Setbacks. Describe them with specific evidence of delay, cost, scope, quality or cancellation.
- Causes linked to SDLC practices. Trace each one from cause, to practice, to effect (see the chain below).
- Better use of the same SDLC. Give fixes tied to each cause. Royce's five steps (2.4) are a ready-made source, and you can add phase-gate reviews, change control and risk management.
- Alternative SDLC. Recommend one, with a table whose columns are issue, feature of the new SDLC and why it helps. Admit its costs and assumptions, for example that Scrum needs an available Product Owner.
- Conclude in one or two sentences.
Illustration. For the Surrey Police SIREN project (begun 2009, later abandoned), a good answer infers the process from the documented practices, links the setbacks to them, and justifies an alternative feature by feature, rather than just saying "agile would have been better".
Extended questions are often "evaluate and recommend". They want one recommendation, justified against the case's facts, with the trade-offs admitted. Marks go to the reasoning chain, not to naming a fashionable model.
Check yourself · past exam[PAST EXAM 433-443 1998 Q12, predecessor subject] A bank's accounting-systems team (programmers with 7+ years in the domain) wants to try the spiral model, which they have just heard of, for new functionality in an existing system. Discuss the factors that affect process selection, and recommend.
- The factors are those in the checklist above: requirements stability, technical risk, size, criticality, customer availability, team experience with the domain and the process, contract and culture, time pressure, and documentation.
- The recommendation is not to adopt the full spiral here. This is an enhancement of a well-understood system by domain experts, so risk is low and the requirements are fairly clear, which makes per-cycle risk analysis unjustified overhead. The spiral also relies on risk-assessment expertise that the team lacks, and it fits contract work poorly (Boehm).
- Instead, the team should keep their proven process and add Boehm's lightweight risk management plan (top-10 risks reviewed monthly). They should also train staff and pilot the spiral on a novel, high-risk project.
Check yourself · past exam[PAST EXAM 433-443 2002 Q10, predecessor subject] The customer is hesitant, doesn't know the application area and keeps changing their mind. How would you organise the project?
- Use an iterative, empirical life cycle (prototyping, evolutionary or Scrum), not waterfall.
- Start with workshops and mock-ups or prototypes, so that the customer reacts to something concrete.
- Run short iterations, each ending in a demo and review, and deliver the most certain, highest-value core first.
- Have one empowered customer representative, supported by a domain expert or business analyst.
- Keep a prioritised backlog and change control, and get sign-off at each iteration.
- Use a time-and-materials or staged contract rather than a fixed price, and log requirements volatility as a risk.
Check yourself · past exam[PAST EXAM 433-341 2009 Q2, predecessor subject] Port management system: 18 months, new monitoring hardware, port modelling that is hard to estimate. Should it use (A) a modified waterfall with feedback or (B) an iterative model with prototyping? Give benefits and drawbacks, and choose.
| Benefits | Drawbacks | |
|---|---|---|
| (A) Modified waterfall | Clear phases, documents and milestones; a predictable plan; traceability for a safety-related system. | Hardware and modelling problems surface only at integration and test; feedback is costly; estimates are unreliable. |
| (B) Iterative with prototyping | Prototypes of the monitoring, model and scheduling resolve technical and requirements risk early; estimates improve with each iteration. | Less predictable up-front cost and schedule; more management; lighter documentation. |
Choose B. Technological novelty and estimation uncertainty dominate, and prototyping attacks both; the plan already front-loads prototypes and a feasibility study. Keep strong V&V, though, because ship separation is safety-critical.
- Weigh ten factors (requirements, novelty, criticality, customer availability, size, early delivery, team experience, contract, maintenance, predictability); mnemonic: size, criticality, dynamism, personnel, culture.
- Strong arguments chain fact → need/risk → SDLC feature → how it helps → trade-off. Recommend one SDLC.
- A1 framework: context, identify the SDLC (infer if needed), setbacks, causes linked to practices, better use of the same SDLC, one alternative with an issue/feature/why table, conclusion.
Applying It to the Medic Case: Which SDLC and Why
The tutorials' running case is Medic: a virtual-reality surgical simulator for the hospital RVEEH, letting trainee surgeons practise cochlear-implant and temporal-bone surgery, because good-quality cadavers for practice are scarce. The trainee feels the drill through haptic devices (hardware that pushes back on your hand to simulate touch and force) while viewing the anatomy in stereoscopic 3-D. Tutorial 2 asks: which SDLC should the Medic project use? This section works the answer the way the exam wants it: from case facts, to risks, to a model.
Case facts that drive the choice
Each fact below implies a risk or a need, and together they decide the SDLC (Medic case study; T02 recap).
Running Medic through the decision guide
Now take the decision guide from 2.11 and walk Medic's facts through it, factor by factor. Gold rings mark the branch each fact selects.
- The ten factors from the checklist. We'll test Medic's case facts against each one and see which models keep turning up.
- 1 · Requirements: fidelity is open-ended ("How close can we get?"), with non-standard analysis and complex force algorithms. The requirements are partly unknown, so the "unclear or volatile" branch: prototyping, evolutionary or agile.
- 2 · Technical novelty: new haptic hardware and stereoscopic 3-D. That points squarely to the spiral, or a proof-of-concept prototype.
- 3 · Criticality (partial match, dashed): Medic isn't described as regulated, but its strict performance and reliability requirements need up-front analysis. That counts against a purely agile approach for those parts, which is one reason the guide rates Scrum only a partial fit.
- 4 · Customer availability: two busy senior surgeons, available only at agreed points. That points to a plan-driven model or a spiral with scheduled reviews, and away from agile's constant customer.
- 5 · Size: 12 developers plus 2 managers, more than one Scrum team. The "large, multi-team" branch: plan-driven, spiral or scaled agile.
- 7 · Team experience: the developers are inexperienced, but the spiral's prerequisite is risk expertise, and the two experienced managers can supply it by leading the risk analysis.
- 9 · Maintenance: RVEEH IT will maintain the system, so more documentation is needed. The spiral's risk-driven documentation can deliver it where it matters.
- Factors 6, 8 and 10 (early delivery, contract, up-front predictability) aren't settled by the case facts used here, so they don't decide the choice.
- Verdict: the spiral. It is pointed to by novelty, customer availability and size; its one prerequisite is met by the managers; and its risk-driven documentation serves the handover. Factor 1 shows why prototyping is the strongest runner-up.
Evaluating the candidates
What Medic's spiral looks like
Recommending the spiral is only convincing if you can say what its loops would actually contain for Medic:
"Spiral, because Medic's dominant problems are risks (new haptic hardware, real-time performance, fidelity, usability, an inexperienced team). Explicit risk analysis and a prototype per cycle resolve these before major investment, and the review points match the surgeons' limited availability."
This analysis uses the original case, where the client surgeons are busy. The Week 4 stakeholder addendum, however, makes two liaison surgeons available day-to-day, and with that fact an adapted (hybrid) Scrum becomes just as defensible (see Part III). T02's own worked example argued for prototyping. So in the exam, say which facts you rely on: marks go to a justification tied to the case facts, not to one "correct" model.
Check yourself · self-testA Medic team member says "use Scrum because agile suits changing requirements". Critique this and give a stronger evaluation.
The argument is weak because it states a generic feature with no link to the case. A stronger evaluation weighs both sides. For Scrum, the surgeons could give usability feedback each sprint, and spikes (short time-boxed experiments) would let the team learn haptics. Against it, the busy surgeons can't be an always-available Product Owner, strict performance and reliability need up-front analysis, the new hardware brings high technical risk, 12 inexperienced developers exceed one Scrum team, and the RVEEH IT team needs documentation. On balance, a risk-driven spiral fits better.
Check yourselfAn exam version of the Medic case states that two liaison surgeons are available to the team every day. Does the spiral recommendation still stand, and what should your answer say?
It is no longer the only defensible answer. With a customer available day-to-day, the main objection to Scrum (no constantly available Product Owner) falls away, and the guide says an adapted (hybrid) Scrum becomes just as defensible. Your answer should state which facts it relies on, pick one model, and justify it against those facts with its trade-offs (e.g. for adapted Scrum: up-front architecture and performance work and handover documentation still needed; for the spiral: per-cycle overhead and reliance on the managers' risk expertise).
- Medic's facts (new haptic hardware, strict performance, open-ended fidelity, non-expert users, busy surgeons, an inexperienced team, maintenance by RVEEH IT) mostly create risks.
- Waterfall: poor. Scrum and incremental: partial. Prototyping: strong for UI and availability. Spiral: recommended, with risk-resolving prototypes, short scheduled reviews and risk-driven documentation; the managers lead risk analysis.
- Different facts (the Week 4 addendum) can justify adapted Scrum; always say which facts you rely on.
Common Pitfalls and Self-Test
These are the mistakes that cost marks on this topic, collected in one place. Each one is a sentence you might be tempted to write; the fix follows it.
- "Royce advocated the waterfall." He didn't: he called the single pass "risky" and added iteration, prototyping and customer involvement (2.4).
- Treating incremental and evolutionary as synonyms. They differ in where the requirements come from and in whether cycles can overlap (2.7).
- "Spiral = waterfall in a circle." Its defining feature is risk analysis (2.9).
- Shipping a throwaway prototype as the product, even though it was never built to production quality (2.8).
- "Waterfall is always bad." It is the right choice for stable, well-understood, regulated or fixed-price work.
- Agile misconceptions (T02). These include slipping back into waterfall under pressure, calling "lots of short waterfalls" agile, and labelling a waterfall as agile.
- Generic justifications that don't connect a feature of the SDLC to a case fact (2.11).
Mixed self-test
Check yourselfWhich statements are correct? (Select all that apply.)
- The spiral's defining feature is that it repeats the waterfall phases in a loop.
- Incremental cycles can overlap because their requirements are already known.
- A throwaway prototype can be shipped once its minor bugs are fixed.
- Waterfall can be the right choice for regulated, fixed-price work with stable requirements.
- Evolutionary cycles revise earlier functions in response to feedback.
B, D and E. A is the "waterfall in a circle" pitfall: the defining feature is risk analysis. C is the throwaway-prototype pitfall: it lacks NFRs, documentation and testing, which are not "minor bugs".
Check yourselfA small co-located startup team of five is building a social app for a market nobody fully understands yet; the founder sits with the team daily and features change weekly. Which end of the spectrum, and which factor-checklist items justify it?
The agile (empirical) end. Checklist items: requirements are unclear and volatile (factor 1 → prototyping, evolutionary or agile), the customer is often available (factor 4 → agile or evolutionary), the team is small and co-located (factor 5 → agile), and early delivery matters (factor 6 → incremental or agile). Agile is the model all four point to. The trade-off to admit: the team needs self-management (factor 7), and documentation will be light.
Check yourselfIn one sentence each: what does each of these add to the plain waterfall? (a) Royce's "do it twice"; (b) the V-model; (c) the incremental model; (d) the spiral.
(a) A pilot of the critical areas first, so the delivered system is really the second version (the origin of prototyping). (b) A test level paired with, and planned during, each development phase. (c) Delivery in operational slices through mini waterfalls, after up-front requirements. (d) Explicit risk analysis in every loop, letting the remaining risk decide what kind of step comes next.
- Don't say Royce advocated the waterfall, don't merge incremental and evolutionary, don't call the spiral a circular waterfall, don't ship a throwaway prototype, and don't dismiss the waterfall outright.
- Short waterfalls in a row are not agile.
- Every justification must link an SDLC feature to a case fact and admit the trade-off.