Department of Computer Engineering and IT

Requirements Engineering
Course Outline


A. Abdollahzadeh Barforoush (Computer Engineering Dept.)


Requirements Engineering/ Graduate level


Computer Engineering and Information Technology

School Year:

2011 (Spring)


Sun., Tue. (10:45-12:00) starting January 2011


Background Courses:

This is the list of recommended background courses / knowledge that is necessary to fully understand the contents:

  • Software Engineering I
  • Software Engineering II

Lecture Format:

Lecture (2x1.5 hours sessions per week)





Course Description

This course presents a detailed discussion on requirements engineering activities including, requirements elicitation, requirements analysis, requirements specification and documentation, requirements validation, requirements tracing, requirements change management and requirements review for a large, complex, changing and software-intensive systems, from technical, organizational and management perspectives.The course will consider paradigms and methodologies in requirements engineering.

The goal of the course is to introduce the students to the notion of requirements engineering, and provide them with a general understanding of different types of requirements, evaluation with measuring the quantity of each requirement,building models of requirement engineering process and products, and the corresponding concepts and techniques, during software development lifecycle.

In this course, it is discussed how a user wish comes to a software requirement in the software systems. The process of disguise the stakeholders needs to software requirements is fully described. In this process the techniques and methods which are used to understand, document and review these requirements are emphasizes.

Learning Objectives

•Understanding the need for requirements for large-scale systems.

•Understanding the stakeholders involved in requirements engineering.

•Understanding requirements engineering processes and Products.

•Understanding models of requirements.

•Understanding functional requirements.

•Understanding non-functional requirements.

•Understanding scenario analysis.

•Understanding object-oriented,Agent-Oriented and goal-oriented requirements engineering.

Course Topics


Introduction to Requirements and Requirements Engineering


Classification of software requirements


Requirements Engineering process


Requirements Elicitation (process, techniques, tools)


Requirements Analysis and Modeling (process, techniques, tools)


Requirements Specification (process, techniques, tools)


Requirements Traceability (process, techniques, tools)


Requirements Management (process, techniques, tools)


Other topics in RE ( Goal Oriened RE, Aspect Oriented RE, ...)

Researches Area In Requirement Engineering

  • Requirements elicitation, analysis, documentation, validation and verification
  • Requirements specification languages, methods, processes and tools
  • Defining the system-human interface requirements
  • Role of software architecture in requirements
  • Requirement engineering in legacy system migration
  • Requirements management, traceability, viewpoints, prioritization and negotiation
  • Modeling of requirements, goals and domains
  • Formal analysis and verification
  • Prototyping, simulation and animation
  • Evolution of requirements over time, product families and variability
  • Relating requirements to business goals, architecture and testing
  • Social, cultural, global, personal and cognitive factors
  • Domain-specific problems, experiences and solutions
  • Requirements in service-oriented environments
  • Software product management (incl. topics such as requirements valuation, requirements for product lines, release planning, road-mapping, product life-cycle management as it pertains to requirements, and market focus).

Evaluation Criteria


Total mark




There is a Midterm (20%) and Final Exam (25%), that together determine 45% of the score each student achieves.

Class Activity


Although it seems low, class participation has a significant impact on the other evaluation criteria.



Project should be carried out during the term. In some session one student is randomly selected to talk about the current state of his/her project.



These are assigned on a weekly basis.

Useful Tools:

1. Doors - Management Tool

3. Desire - Check and Validate Requirement

4. Scenario plus - Visualize Requirement for Doors

5. Requisite Pro - Management Tool


"Requirements Engineering", Elizabeth Hull, Ken Jackson, Jeremy Dick, Third Edition, Springer, 2011

Recommended References:

1- RE Research Tree

2- Brian Berenbach, et al. Software & Systems Requirements Engineering: In Practice, 2009

3-Colin Hood, et al. Requirements Management: The Interface Between Requirements Development and All Other Systems Engineering Processes, 2008

4-Aybuke Aurum, et al. Engineering and Managing Software Requirements, 2005

5-Pressman Roger, Software Engineering: A Practitioner's Approach, 7th Edition, McGraw-Hill.

6-Sommerville, Ian, Software Engineering, 8th Edition, Addison-Wesley.

6-Axel van Lamsweerde, Requirements Engineering: From System Goals to UML Models to Software Specifications, Wiley, 2009.