Key Concepts
There is no single correct process. Choose based on your project type, team size, and how well requirements are understood.
Waterfall Model
Sequential phases: Requirements → Design → Implementation → Testing → Maintenance. Move down, never up.
Incremental Development
Develop the system in increments. Each increment delivers a working slice of functionality.
Reuse-Oriented Engineering
Base the system on integrating existing components — COTS, open-source, services.
4 Process Activities
Every software process — regardless of model — contains these 4 core activities.
Concept Deep Dives
Click each concept to expand — real examples, diagrams, pros & cons.
Waterfall Model
When to Use
Requirements are well-understood upfront. Safety-critical systems. Fixed contracts.
Real-World Example
Defense systems, medical device firmware, large government contracts where requirements are locked.
✓ Advantages
- Easy to manage — clear phase boundaries
- Good for stable, well-understood requirements
- Strong documentation
⚠ Watch Out
- Inflexible to change
- Customer only sees product at the end
- Late discovery of problems = expensive fixes
Incremental Development
When to Use
Requirements likely to change. Customer needs early delivery. Internet-based systems.
Real-World Example
Spotify — shipped a minimal music player first, then added playlists, recommendations, podcasts incrementally.
✓ Advantages
- Early value delivery
- Easier to accommodate change
- Customer feedback improves each increment
⚠ Watch Out
- Process less visible (no clear phases)
- Structure degrades without refactoring
- Hard to manage large teams
Reuse-Oriented Engineering
When to Use
Suitable components exist. Budget-constrained. Faster time-to-market needed.
Real-World Example
A startup building a SaaS app: uses Stripe (payments), Auth0 (auth), Twilio (SMS) — all existing services.
✓ Advantages
- Reduced cost and risk
- Faster delivery
- Battle-tested components
⚠ Watch Out
- Loss of control over evolution
- Components may not fit exactly
- Security risk from third-party dependencies
4 Process Activities
When to Use
Always applicable — waterfall runs them sequentially, agile interleaves them.
Real-World Example
Even a solo weekend project: you decide what to build (spec), write it (dev), test it (validate), then update it (evolve).
✓ Advantages
- Universal framework for understanding any process
- Maps to team roles and responsibilities
⚠ Watch Out
- Oversimplification — real projects are messier
Quick Reference
- 1Software processes are the coherent sets of activities for producing a software system.
- 2Waterfall: plan-driven, sequential phases. Good for stable requirements.
- 3Incremental development: interleaves specification, development, validation. Cheaper to accommodate changes.
- 4Reuse-oriented: based on systematic reuse. Reduces development costs and risks but may not meet exact user needs.
- 5All processes include: specification, development, validation, and evolution.
- 6Process improvement: CMMI framework measures process maturity on a 5-level scale.
Quiz — Test Yourself
Think through your answer first, then reveal.