SEG 3101 (Fall 2017)

SEG 3101 - Software Requirements Analysis

Techniques for eliciting requirements. Languages and models for representing requirements. Analysis and validation techniques, including need, goal and use-case analysis. Requirements in the context of system engineering. Specifying and measuring external qualities: performance, reliability, availability, safety, security, etc. Specifying and analyzing requirements for various types of systems: embedded systems, consumer systems, web-based systems, business systems, systems for scientists and other engineers. Resolving feature interactions. Requirements documentation standards. Traceability. Human factors. Requirements in the context agile processes. Requirements management: Handling requirements changes. Prerequisite: SEG2105 or SEG2100.

Dr. Daniel Amyot

Teaching Assistants


Main Resources


No manual is mandatory. However, the following books are recommended to improve your understanding:
Other interesting books providing more details on the different aspects of requirements engineering:

Tools and Tutorials

 Course Schedule


14:30-16:00 VNR 2095
VNR 2095

Tutorials/Laboratories (after September 11)

Tuesday 17:30-19:00 VNR 3035
Friday 13:00-14:30 STE 2052 (only one section left)



Midterm Exam

Final Exam


Marking Scheme

 About the Course


Upon completion of this course, students will have the ability to:

And to a lesser extent:


  1. Basics of requirements engineering
  2. Requirements writing and specification
  3. Requirements elicitation
  4. Requirements analysis and modeling
  5. Requirements prioritization, verification, and validation
  6. Requirements management
  7. Examples of requirements approaches in typical development processes


Project description and instructions will be available online. There are 3 deliverables (brainstorming session report and first prioritization, elicitation report and user requirements, and validated software requirements specification).

Last modification: