Revised December 11, 2015
CS 445: Software Requirements Specification and Analysis
Watch a video introduction to this course on YouTube.
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.
- CS major students, usually taken in the second term of third year. This course benefits students with an interest in software engineering, software development, and development of large software systems.
- Prerequisites: CS 350; Computer Science students only
- Antirequisites: SE 463
- Related courses: CS 446, CS 447
- Cross-listed as: CS 645, ECE 451
For official details, see the UW calendar.
- Word processor, such as MS Word or LaTeX
- Requirement Engineering, A. van Lamsweerde, Wiley; Applying UML and Patterns, 2nd ed., C. Larman, Prentice Hall
- UML Distilled, 2nd ed., M. Fowler, Addison-Wesley
- Requirements Analysis and Systems Design, L. Maciaszek, Addison-Wesley
- Mastering the Requirements Process, S. Robertson and J. Robertson, Addison-Wesley
- Exploring Requirements: Quality Before Decision, D. Gause and G. Weinberg, Dorset House
- Managing Software Requirements, A Unified Approach, D. Leffingwell and D. Widrig, Addison Wesley
At the start of the course, students should be able to
At the end of the course, students should be able to
- Elicit, identify, analyze, model, represent, specify, and validate requirements for a software-intensive system to be built
- Divide the world in which a software-intensive system sits into the system to be built, its environment, and the interface between the system and the environment
- Write a domain model and a use case model for a software-intensive system
- Write a user's manual and a software requirements specification (SRS) for a software-intensive system
Overview of the software development process and life cycle models.
Requirements: identification, representation, validation, analysis; related
standards and CASE tools.
Software development groups
Project discussion, including group management, member duties and group
Methods for obtaining requirements from various sources.
Informal notations for behavioural requirements
Overview of notations and presentation of case studies: entity
relationship models, data flow diagrams and structured analysis, SDL, and
Formal notations for behavioural requirements
Classification of requirements specification notations; relationship to
application characteristics. Specification of control, functional, and data
Specification of maintainability, safety, reliability, performance,
Methods for validating a requirements specification: active reviews,
scenarios and threads, executable specifications, automated analysis, formal
Estimating duration and cost of project: CPM graphs, Gantt charts,
milestones, algorithmic cost models, expert judgement, Delphi estimates.
Relationship between requirements and design specifications; estimation
of resources, cost, and schedules for a large software project.
Last modified: Friday, 17-Feb-2017 09:59:46 EST