Revised December 11, 2015

CS 445: Software Requirements Specification and Analysis


Watch a video introduction to this course on YouTube.

General description

This course introduces students to the requirements definition phase of software development. It discusses processes, models, and notations, and processes for software requirements elicitation, identification, analysis, modeling, representation, specification, and validation. An important component is a group project: the software requirements specification of a large software system.

Logistics

Audience

Normally available

Related courses

For official details, see the UW calendar.

Software/hardware used

Typical reference(s)

Required preparation

At the start of the course, students should be able to

Learning objectives

At the end of the course, students should be able to

Typical syllabus

Introduction (3 hours)

  • Overview of the software development process and life cycle models. Requirements: identification, representation, validation, analysis; related standards and CASE tools.
  • Software development groups (3 hours)

  • Project discussion, including group management, member duties and group dynamics.
  • Requirements elicitation (2 hours)

  • Methods for obtaining requirements from various sources.
  • Informal notations for behavioural requirements (10 hours)

  • Overview of notations and presentation of case studies: entity relationship models, data flow diagrams and structured analysis, SDL, and UML.
  • Formal notations for behavioural requirements (6 hours)

  • Classification of requirements specification notations; relationship to application characteristics. Specification of control, functional, and data requirements.
  • Non-behavioural requirements (2 hours)

  • Specification of maintainability, safety, reliability, performance, etc.
  • Requirements validation (5 hours)

  • Methods for validating a requirements specification: active reviews, scenarios and threads, executable specifications, automated analysis, formal verification.
  • Cost estimation (3 hours)

  • Estimating duration and cost of project: CPM graphs, Gantt charts, milestones, algorithmic cost models, expert judgement, Delphi estimates.
  • Other topics (2 hours)

  • Relationship between requirements and design specifications; estimation of resources, cost, and schedules for a large software project.