COMPGS01 - Systems Requirements Engineering

Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).

Code
COMPGS01 (Also taught as: COMPM014)
Year
MSc
Prerequisites
An understanding of the basics of programming and software engineering.
Term
1
Taught By
Emmanuel Letier (100%)
Aims
This module describes the role of requirements in the construction and continued maintenance of large, complex and evolving software-intensive systems. It introduces the important concepts and activities in systems requirements engineering, explains how they can knit together to form a through-life requirements engineering process, and demonstrates how such an end-to-end process can be defined and used in practice. The module provides a broad overview of the notations, techniques, methods and tools that can be used to support the various requirements engineering activities, and complements this with the opportunity to gain experience in a selection of these. The module seeks to illustrate the wider applicability of requirements engineering to everyday projects, the breath of skills required and the many contributing disciplines.
Learning Outcomes
On completion of this module, the successful student should have a good knowledge and understanding of the role of requirements engineering in the development of software-intensive systems and of the various activities involved in requirements engineering. The successful student should also be able to elicit, model, analyse, communicate, and evolve system requirements using state-of-the-art requirements modelling techniques and tools.

Content:

1. Introduction to requirements engineering
Definition of requirements engineering and role in system development
Fundamental concepts and activities of requirements engineering
Target qualities and common erros in software requirements documents
2. Project Initiation and Information Elicitation Techniques
Identifying the project scope and organizational context
Information elicitation techniques
Modelling scenarios
3. Goal Modelling
Fundamentals of goal-oriented requirements engineering
Modelling behavioural goals
Modelling quality goals
Goal modelling heuristics
4. Object Modelling
Fundamentals of object modelling for requirements engineering
Object modelling notations
Object modelling heuristics
Identifying objects from goals
5. Operation Modelling and Verification and Validation
Modelling use cases and state machines
Deriving operational requirements from goals
Requirements verification and validation
6. Managing Inconsistencies and Conflicts
Types of conflicts and inconsistencies
Fundamental techniques for inconsistency and conflict management
Handling Goal Conflicts
7. Managing Risks
Types of risks
Fundamentals of risk management
Software development risks
Goal obstacle analysis
8. Requirements selection and prioritization
The role of quality goals in the requirements selection process
Qualitative and quantitative techniques for requirements evaluation, selection and prioritization
9. Requirements Management and Evolution
Fundamentals of requirements management
Principles of requirements traceability and impact analysis
Requirements management tools
10. Requirements Engineering and Software Design
Relations between RE and software design

Method of Instruction:

Lecture presentations with associated tutorials. Practical workshops.

Assessment:

The course has the following assessment components:

  • Written Examination (2.5 hours, 75%)
  • Coursework Section (3 pieces, 25%)

To pass this course, students must:

  • Pass the coursework section
  • Obtain an overall pass mark of 50% for all sections combined

The examination rubric is:
Answer two questions. All questions carry equal marks

Resources:

Reading will be set from journal and conference articles and book chapters.