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
Unit 2: Agile Development & Scrum

The Agile Manifesto (2001)

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Scrum Framework

Scrum is the most widely used Agile framework.

Roles: Product Owner · Scrum Master · Development Team

Events: Sprint · Sprint Planning · Daily Scrum · Sprint Review · Retrospective

Artefacts: Product Backlog · Sprint Backlog · Increment