The program development life cycle
| English | Chinese | Pinyin |
|---|---|---|
| requirements | 需求 | xū qiú |
| development life cycle | 开发生命周期 | kāi fā shēng mìng zhōu qī |
| waterfall | 瀑布模型 | pù bù mó xíng |
| maintenance | 维护 | wéi hù |
| iterative model | 迭代模型 | dié dài mó xíng |
| rapid application development | 快速应用开发 | kuài sù yìng yòng kāi fā |
| prototype | 原型 | yuán xíng |
| agile | 敏捷 | mǐn jié |
| implementation | 实现 | shí xiàn |
The airport that opened sixteen months late
- Denver's new airport was due to open in October 1993 with the most ambitious baggage system ever built: 4,000 automatic carts, 35 km of track, no human hands. It opened in February 1995, $560 million over budget, with the carts shredding suitcases in test runs.
- The schedule had been fixed before anyone analysed what the system had to do. Requirements kept changing while it was being built. Testing started when there was no time left to fix what it found.
- Every one of those failures has a name in this lesson. A development life cycle 开发生命周期 exists so that a project is planned, managed and controlled instead of discovered.
- This lesson is what a life cycle is for, the three models the syllabus names, and the five stages every program goes through.
Why a life cycle is needed
- A development life cycle is the set of stages from idea to finished, maintained software. Its purpose is to plan, manage and control a project: the right product, on time, with good quality.
- It manages complexity by breaking a big program into phases, coordinates a team, and tracks progress against milestones.
- It builds in testing rather than leaving it to the end, records design decisions for whoever maintains the program later, and manages risk.
A development life cycle is used to:
It structures the work into stages so the team builds the right product, on time, with quality.
Which are purposes of a development life cycle? Select all that apply.
A life cycle plans, manages and controls. It cannot guarantee correctness; it makes finding and fixing errors part of the plan.
Why there is more than one
- No single life cycle fits every project, so several exist and the exam asks you to choose.
- The choice depends on the size and complexity of the program, how clear the requirements 需求 are at the start, how much change is expected, the risk if it fails, the team, and the deadline.
- A payroll system with fixed legal rules and a game whose players do not yet know what they want are different projects. They deserve different cycles.
Waterfall
- The waterfall 瀑布模型 model is a linear sequence: analysis, design, coding, testing, maintenance. Each stage is finished, documented and signed off before the next begins.
- Benefits: clear structure, easy to manage and schedule, thorough documentation at every stage, well suited to stable requirements.
- Drawbacks: a change of requirements mid-project means going back up the waterfall; the customer sees nothing working until the end; errors in analysis surface only at testing.

Water does not flow back uphill
The waterfall model is best suited to projects where:
Waterfall is linear with each stage finished before the next — great for stable requirements, poor at mid-project change.
In the waterfall model the customer sees a working version of the program early in the project.
Nothing runs until coding and testing, near the end. Seeing working software early is the iterative model's and RAD's strength.
Iterative
- The iterative model 迭代模型 makes repeated passes. Each pass produces a partial working version that is reviewed by the user and refined in the next pass.
- Benefits: problems are caught earlier; the user sees working software early and often; good when requirements are discovered over time.
- Drawbacks: harder to estimate the total cost and time; repeated reviews need the user's attention; the design can drift without discipline.

Build, show, refine, repeat
Rapid application development
- Rapid application development 快速应用开发 (RAD) builds a prototype 原型 quickly, puts it in front of the users, and rebuilds it from their feedback until it becomes the product. Teams often work on parts in parallel.
- Benefits: a very fast first delivery; requirements that change are absorbed as they appear; users shape the product directly.
- Drawbacks: it depends on users being available throughout; the prototype's shortcuts can survive into the product; it suits smaller systems better than large safety-critical ones. Agile 敏捷 methods take the same idea further, with short sprints and constant testing.

Prototype, feedback, prototype again
In the waterfall model each stage is finished before the next begins, whereas agile works in short iterative sprints with constant feedback.
Waterfall is linear (good for stable requirements); agile adapts through short sprints with continuous customer collaboration and testing.
Match each model to its key idea.
Waterfall = linear; iterative = repeated refinement; RAD = prototype-driven and fast.
Rapid application development builds a ____ that users try and give feedback on, then rebuilds it.
The prototype is RAD's defining feature; user feedback on it is how the requirements are discovered.
Worked example: choose a life cycle and justify it
- A company needs software to calculate employees' pay under tax rules that are fixed by law. Which life cycle, and why? Waterfall: the requirements are stable and fully known at the start, the rules can be documented completely in analysis, and the thorough documentation matters for a system that must be correct and audited.
- A start-up wants an app for a new kind of social event; its users are not sure what features they want. RAD: the requirements are unclear and will change, so a prototype that users try and react to discovers them quickly, and the small system suits fast rebuilding.
- Name the model, then link two of its properties to two facts in the scenario.
A small team must build an app whose users are unsure what they want, and the users can try versions every week. Which life cycle fits best?
Unclear, changing requirements plus available users is the RAD case. Waterfall needs the requirements fixed at the start.
The five stages
- Analysis: find out what the program must do; gather and document the requirements from the users.
- Design: decide how: data structures, algorithms, modules, the user interface, file layouts, expressed in structure charts, flowcharts and pseudocode.
- Coding (implementation 实现): write the source code following the design. Testing: run it against planned test data and correct the errors found.
- Maintenance 维护: after release, keep it working and useful, correcting faults, adapting to change and improving it.
The program development life cycle
Step through the stages every project passes through. Getting the requirements right in analysis matters most — a mistake caught in testing is far costlier to fix than one caught early.
The analysis stage is mainly about deciding:
Analysis gathers requirements (the "what"); design decides the "how".
Put the stages of the program development life cycle in order.
What, how, build, check, keep working. In the iterative model the middle stages repeat, but the order inside each pass is the same.
Worked example: what happens in analysis and design
- Describe what happens during the analysis and design stages of the program development life cycle. [4]
- Analysis: the developers interview and observe the users to find out what the program must do; they identify the inputs, the outputs and the processing required, and write a requirements specification that the customer agrees.
- Design: the developers decide how the program will meet those requirements: they choose the data structures and algorithms, decompose the program into modules on a structure chart, design the screens and files, and write pseudocode.
- Two actions and a product for each stage. "They analyse the problem" restates the heading and earns nothing.
Marks that slip away
- Analysis is what, design is how. "Deciding the algorithms" belongs to design.
- Waterfall is not "the bad one". Its strength is stable, documented requirements; its weakness is change. Give both when asked for benefits and drawbacks.
- RAD is not just "fast". Its defining feature is the prototype and the users' feedback on it.
- Maintenance is a stage, not an afterthought: most of a program's lifetime cost is spent there.
You've got it
- a life cycle plans, manages and controls a project: phases, milestones, testing built in, decisions recorded, risk managed
- waterfall: linear, each stage signed off, best for stable requirements, poor at change · iterative: repeated refined versions, catches problems early, harder to estimate · RAD: prototype plus user feedback, fast and flexible, needs available users
- choose by requirement clarity, expected change, size and risk, and justify with the scenario
- the stages: analysis (what) → design (how) → coding → testing → maintenance