T :+251 111 275026

Software Requirements Engineering

Course Objectives

At the end of the course, students will

  • discover or elicit requirements using a variety of techniques,
  • organize and prioritize requirements,
  • apply analysis techniques such as needs analysis, goal analysis, and use case analysis,
  • validate requirements according to criteria such as feasibility, clarity, freedom from ambiguity, etc.,
  • represent functional and non-functional requirements for different types of systems using formal and informal techniques,
  • specify and measure quality attributes,
  • negotiate among different stakeholders in order to agree on a set of requirements, and
  • detect and resolve feature interactions.

Course Description

Domain engineering; Techniques for discovering and 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 of agile processes; Requirements management: Handling requirements changes.

Course Content

  1. Introduction
  2. Requirements Engineering Process
  3. Requirements Elicitation
  4. Requirements Modelling (Modelling Techniques, Objects, Relationships, States. and Events)
  5. Prioritizing Requirements
  6. Requirements Specification
  7. Verification and Validation