Requirements Engineering

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.


Prof. Ahmad Abdollahzadeh Barforoush

Teaching Assistant

Ali Kamali

  • 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.
  1. Introduction to Requirements and Requirements Engineering
  2. Classification of Software Requirements
  3. Requirements Engineering Process
  4. Requirements Elicitation (process, techniques, tools)
  5. Requirements Analysis and Modeling (process, techniques, tools)
  6. Requirements Specification (process, techniques, tools)
  7. Requirements Traceability (process, techniques, tools)
  8. Requirements Management (process, techniques, tools)
  9. Other topics in RE ( Goal Oriented RE, Aspect Oriented RE, …)
  • 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).

– Aspect Oriented RE

Aspect-oriented requirements engineering (AORE) techniques provide new composition mechanisms to specify and reason about dependencies that crosscut elements of a requirements specification. The research issue incorporates the basic concepts of aspect-oriented requirements engineering and its support for compositional reasoning–reasoning about dependencies and interactions–over a requirements specification. Typical applications of aspect-oriented requirements engineering techniques are also considered.

Suggested References :

[1]. A. Rashid, “Aspect Orieneted Requirements Engineering: an introduction” in Proceedings of 16th International Requirement Engineering Confernece, pp.306-309 , sept 2008.

[2]. A. Rashid and R. Chitchyan. Aspect-oriented requirements engineering: a roadmap. In Proceedings of the 13th International Workshop on Software Architectures and Mobility, pages 35{41. ACM, 2008.

– Goal Oriented RE (GORE):

Goal-oriented RE refers to the use of goals for eliciting, elaborating, structuring, specifying, analyzing, negotiating, documenting, and modifying requirements. Such use is based on a multi-view model showing how goals, objects, agents, scenarios, operations, and domain properties are inter-related in the system-as-is and the system-to-be.

Suggested References :

[1]. A. van Lamsweerde. Goal-Oriented Requirements Engineering: A Guided Tour. Proc.5th IEEE International Symposium on Requirements Engineering (RE’01), Toronto, Canada, August 2001.

[2]. Axel van Lamsweerde, ?Goal-Oriented Requirements Engineering: A Roundtrip from Research to Practice. 12th IEEE International Requirements Engineering Conference (RE’04), Kyoto, Japan, 2004.

– Service Oriented RE (SORE):

Service Oriented Requirements Engineering (SORE) shares some activities with traditional Requirements Engineering but its focus is on the identification of services and workflows used to modeling applications (developed in a SOA framework and running in a SOA framework) and on their reuse.

Suggested References :

[1]. Lichtenstein S., Lemai N., Hunter A., Issues in IT Service-Oriented Requirements Engineering, 9th Australian Workshop on Requirements Engineering (AWRE’04), 2004

[2]. B. Verlaine; Y. Dubois ; I.J. Jureta ; S. Faulkner, Towards conceptual foundations for service-oriented requirements engineering: bridging requirements and services ontologies, 2012

– Model Driven RE (MDRE):

Model driven requirements engineering (MDRE) is proposed to deal with the ever-increasing complexity of technical systems in the sense of providing requirement specification as models that are correct, complete, consistent, unambiguous and easy to read and easy to maintain. Model-driven system development (MDD) not only provides a structured and systematic approach to systems development, but also offers developers the possibility of using model-transformation technologies to derive models of a lower abstraction level that can be further refined, and even generate software code automatically.

Suggested References :

[1]. Maiden NAM, Jones SV, Manning S, Greenwood J, Renou L (2004) Model-driven requirements engineering: synchron- ising models in an air tra?c management case study. In: Proceedings CaiSE’2004, Springer-Verlag LNCS 3084, pp 368–383

– Requirement@Runtime (Runtime Requirements):

requirements@run.time will explore a radical challenge to the traditional view of requirements models as static, slowly-evolving and purely design-time entities. requirements@run.time will explore the potential for run-time abstractions and models of requirements as a practical means to address the challenges posed by volatile or poorly-understood environmental contexts. These include (e.g.) business environments that are subject to dramatic and unforeseen economic conditions, or physical environments that may be remote and hostile to humans and computers. For such systems, detailed a-priori domain understanding is not achievable at design-time. This inevitably acts against the formulation of stable requirements. Rather, the requirements will need to be revised and reappraised over periods too short to be achieved by off-line adaptive maintenance. To achieve this, systems will need to maintain requirements models that are dynamic, run-time entities that support reasoning, some times with the aid of human, and sometimes not, so that the systems can respond in appropriate ways to changes in their environments.


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.

Text Books:

  • “Requirements Engineering”, Elizabeth Hull, Ken Jackson, Jeremy Dick, Forth Edition, Springer, 2017.

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.
  7. Axel van Lamsweerde, Requirements Engineering: From System Goals to UML Models to Software Specifications, Wiley, 2009.

More info at

  1. Doors – Management Tool
  2. Desire – Check and Validate Requirement.
  3. Scenario plus – Visualize Requirement for Doors.
  4. Requisite Pro – Management Tool.

RE Slides