Unit 1: Software Processes & Lifecycle Models
What is a Software Process?
A software process is an ordered set of activities aimed at producing a software product.
Key components:
- Activities — what is done (requirements, design, coding, testing)
- Roles — who does it
- Artefacts — what is produced
- Tools — what supports the work
Classic Lifecycle Models
- Waterfall — sequential phases; each phase finishes before the next begins
- Incremental — core product first, then added in increments
- Spiral — risk-driven; each loop refines requirements and design
- Unified Process (UP) — iterative, use-case driven, architecture-centric
The V-Model
The V-Model maps development phases to corresponding test phases:
- Unit Tests ↔ Component Design
- Integration Tests ↔ System Architecture
- System Tests ↔ Requirements Specification
- Acceptance Tests ↔ Business Requirements