CS 445 Software Requirements Specification and Analysis


Watch a video introduction to this course on YouTube.

Objectives

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

Intended Audience

CS 445 is a course for CS major students and is usually taken in a student's 3B term. This course is one of three that form the core of the software engineering option. This option will be of particular interest to students specializing in the development of large software systems. Students from other plans in Computer Science may elect to enrol in this course.

Related Courses

Prerequisites: CS 350; Computer Science students only.

Antirequisites: SE 463.

Related courses: CS 446, CS 447.

Cross-listed as: ECE 451.

References

Requirement Engineering by Axel van Lumsweerde Published by Wiley (optional)

Hardware/Software

Used in Course: SDL/SDT, UML/Rose.

Assumed Background: UNIX. Familiarity with document processing tools is an asset.

References

Course notes are required. Applying UML and Patterns, 2nd ed., C. Larman, Prentice Hall, 2002 is required. UML Distilled, 2nd ed., by M. Fowler, Addison-Wesley, Requirements Analysis and Systems Design, by L. Maciaszek, Addison-Wesley, SDL: Formal Object-Oriented Language for Communicating Systems, 2nd ed., by J. Ellsberger et al, Prentice Hall, Mastering the Requirements Process by S. Robertson and J. Robertson, Addison-Wesley, Exploring Requirements: Quality Before Decision by D. Gause and G. Weinberg, Dorset House, and Managing Software Requirements, A Unified Approach, by Leffingwell and Widrig, Addison Wesley are all recommended.

Schedule

3 lecture hours, 1 tutorial hour, and 1 discussion hour (for project group meetings). Normally available in Fall and Winter.

Outline

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 (6 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 (10 hours)

Classification of requirements specification notations; relationship to application characteristics. Specification of control, functional, 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 schedule for a large software project.


Campaign Waterloo

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1

Tel: 519-888-4567 x33293
Fax: 519-885-1208

Contact | Feedback: cs-uops@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics


Valid HTML 4.01!Valid CSS! Last modified: Wednesday, 15-Feb-2012 10:56:42 EST


Menu:ShowHide