Unit 1 — Software Processes & Life Cycles¶
Learning objectives¶
- Compare plan-driven, iterative, incremental, spiral, and continuous-development approaches.
- Explain why no single process is optimal for every context.
- Relate process choices to risk, compliance, team size, requirements volatility, and release constraints.
Process as a feedback design¶
A process determines when a team receives feedback about requirements, design, implementation, integration, and user value. Long feedback cycles can make errors expensive to discover.
flowchart TD
P[Plan-driven] -->|strong upfront coordination| S[Stable / regulated context]
I[Iterative & incremental] -->|frequent feedback| U[Uncertain / evolving context]
C[Continuous delivery] -->|automation + operations| W[Web/service context]
Common lifecycle activities¶
Regardless of process label, most projects perform:
- Specification.
- Design and implementation.
- Validation.
- Evolution.
The difference is how often and in what order these activities occur.
Selecting a process¶
Ask:
- How stable are requirements?
- How costly is a production failure?
- How quickly can users provide feedback?
- What evidence is required for approval or compliance?
- Can the product be delivered incrementally?
Exercise
Compare a medical-device controller, a university course portal, and an early-stage social application. Which lifecycle practices should differ, and why?