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
- 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.
Normally available
- Fall and Winter
Related courses
- 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.
Software/hardware used
- MagicDraw
- Word processor, such as MS Word or LaTeX
Typical reference(s)
- 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
Required preparation
At the start of the course, students should be able to
- Write programs
Learning objectives
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