IDY0201 Requirements engeneering

Course code

IDY0201

Name of the course

Requirements Engineering

Credit points

6.0

Control form

Examination

Semester

autumn - spring

The Goals of the course

The objectives of this subject are for students to understand different kinds of requirements, viewpoints in requirements engineering, the role of requirements in the software engineering process, and various kinds of models and other means for capturing requirements. Topics covered include requirements engineering stages, functional and non-functional requirements, and requirements engineering techniques and tools. The course also comprises advanced requirements engineering methods, such as goal-oriented requirements engineering and agent-oriented requirements engineering.

Learning results

On successful completion of this course, students will able to:
1. Understand and explain different kinds of requirements.
2. Take advantage of viewpoints in requirements engineering.
3. Explain and apply different stages in requirements engineering.
4. Apply various means for capturing requirements.
5. Apply the methods of goal-oriented and agent-oriented requirements engineering.

The content of the course

The course will cover:
1. The kinds of requirements: functional and non-functional requirements, user requirements, and system requirements.
2. Viewpoints in requirements engineering: interaction, information, and behaviour viewpoints, and the viewpoints of different stakeholders.
3. The stages of requirements engineering processes: requirements elicitation and elaboration, requirements negotiation, requirements representation, requirements validation, and requirements management.
4. Means for capturing requirements: use cases, scenarios, preliminary information, interaction and behaviour models, rapid prototyping.
5. Advanced requirements engineering methods: goal-oriented requirements engineering, agent-oriented requirements engineering, aspect-oriented requirements engineering.

Literature

SWEBOK. Guide to the Software Engineering Body of Knowledge. A project of the IEEE Computer Society Professional Practices Committee. 2004. 204p

Lamsweerde, A. v. (2009). Requirements Engineering (p. 682). Wiley.

Laplante, P. A. (2009). Requirements Engineering for Software and Systems (Applied Software Engineering Series) (p. 242). Auerbach Publications.

 

 

Topical Outline:

1.0 The Context of Requirements
1.1 Mission of Organizations
1.2 Origins of the Need to Develop or Modify A System
1.3 Stakeholders

2.0 The Start of Requirements
2.1 Specific Mission Needs and Market Opportunities
2.2 Understanding the Capabilities of Technology
2.3 Developing a System Operational Concept
2.4 Prioritizing Functional and Performance Needs

3.0 Developing Requirements
3.1 Writing a Functional Requirement
3.2 Writing a Performance Requirement
3.3 Interfaces and Requirements
3.4 Sources of Derived Requirements
3.5 How To Derive Requirements

4.0 Developing Requirements –MDA approach
4.1 Busines proccess model
4.2 Data Model
4.3 User Interfaces
4.4 Business rules
4.5 Performance measurements

5.0 Checking the Usefulness of Requirements
5.1 Checking Requirements Correctness
5.2 Checking Requirements Completeness
5.3 Checking Requirements Consistency
5.4 Checking Requirements Measurability
5.5 Checking Requirements Testability
5.6 Checking Requirements for Clarity and Lack of Ambiguity


6.0 Changing Requirements and Reaching Closure
6.1 Why Requirements Change Is Inevitable
6.2 Choices in Managing Requirements Change
6.3 Some Mechanisms for Managing Requirements Changes
6.4 Satisfying Requirements
6.5 Unsatisfied Requirements and Desirements as Market Opportunities

7.0 Case Studies and Student Projects

 

Exam: project – 80%, questions -20%