Skip to main content

2016 | Book

Requirements in Engineering Projects


About this book

This book focuses on various topics related to engineering and management of requirements, in particular elicitation, negotiation, prioritisation, and documentation (whether with natural languages or with graphical models). The book provides methods and techniques that help to characterise, in a systematic manner, the requirements of the intended engineering system.

It was written with the goal of being adopted as the main text for courses on requirements engineering, or as a strong reference to the topics of requirements in courses with a broader scope. It can also be used in vocational courses, for professionals interested in the software and information systems domain.

Readers who have finished this book will be able to:

- establish and plan a requirements engineering process within the development of

complex engineering systems;

- define and identify the types of relevant requirements in engineering projects;

- choose and apply the most appropriate techniques to elicit the requirements of a

given system;

- conduct and manage negotiation and prioritisation processes for the requirements

of a given engineering system;

- document the requirements of the system under development, either in natural

language or with graphical and formal models.

Each chapter includes a set of exercises.

Table of Contents

Chapter 1. Presentation of the Book
This chapter makes an overall presentation of the book. In addition to a first introduction to the problems associated with the requirements, the objectives of the book and how it is structured are presented. There is also a discussion about taxonomical issues, in which the terms most commonly used in this book are introduced and defined. The chapter concludes with a short biographical note about the authors.
João M. Fernandes, Ricardo J. Machado
Chapter 2. Software Engineering
Software engineering is an engineering discipline that is focused on all aspects concerning the development of software-based systems. This chapter begins with an explanation of the contributions of software engineering to the issues related to requirements, discussing the possibility of adopting their methods on projects of other engineering disciplines. The chapter also characterises the software engineering, identifying and describing the fifteen knowledge areas of the SWEBOK guide. Additionally, the most relevant characteristics associated with the software are discussed. Finally, some of the most popular development process models are presented.
João M. Fernandes, Ricardo J. Machado
Chapter 3. Requirements
A requirement identifies an attribute, a capacity, a characteristic or a quality that a system should exhibit in order to have value for the users and customers. This chapter defines what is a requirement and presents the different types of requirements (functional requirement, non-functional requirement, user requirement, system requirement). The chapter ends with a discussion of several concepts related to requirements, such as functionality, use cases, service and feature.
João M. Fernandes, Ricardo J. Machado
Chapter 4. Requirements Engineering
The chapter begins with a general discussion about the requirements engineering area, with the aim of introducing what is its scope of activity and what are its purposes. Next, the various activities that make up the requirements engineering process are presented, emphasising those activities that are deemed to be fundamental. The chapter closes with a debate about the main challenges and problems which the requirements engineers are faced with.
João M. Fernandes, Ricardo J. Machado
Chapter 5. Requirements Elicitation
Requirements elicitation is one of the crucial tasks of the requirements engineering process, as it allows one to discover which requirements the users want to see incorporated into the system at hand. The core content of this chapter is the description of some techniques that can be applied to elicit requirements. The chapter presents a non-exhaustive, but sufficiently representative, set of requirements elicitation techniques that can be used in engineering projects. Additionally, the chapter discusses a generic process that can be adopted for eliciting requirements and it describes some of the potential stakeholders of the system.
João M. Fernandes, Ricardo J. Machado
Chapter 6. Requirements Negotiation and Prioritisation
The quality of a software application is highly dependent on its ability to meet the necessities of customers and users, so it is crucial to capture and specify all requirements that the system must possess. However, many projects have more candidate requirements than those that can be built without exceeding the available time and budget. This chapter presents and discusses the need to allow stakeholders to collectively negotiate the requirements in order to decide which ones shall be incorporated in the system. The chapter also discusses the importance of assigning priorities to requirements, in the context of a system project. The aspects related to requirements prioritisation and some of the most popular prioritisation techniques are also presented.
João M. Fernandes, Ricardo J. Machado
Chapter 7. Writing in a Natural Language
This chapter is focused on describing a set of practical recommendations to write requirements in good English (e.g., write simple sentences, use a limited vocabulary, and avoid ambiguity) and on analysing the structure of a document template for writing requirements. It is expected that the reader realises on the advantages that result in having requirements written in a clear, methodic and standardised way. The chapter also discusses ambiguity in natural languages, emphasising the special care that must be taken in the use of such type of languages to write requirements. Although some of the contents in this chapter can be used in other natural languages, the target is the English language.
João M. Fernandes, Ricardo J. Machado
Chapter 8. Modelling
In addition to the use of natural language, the requirements documentation can include formal models for specifying the system in the perspective of those who will build it. This chapter covers topics of modelling in software engineering, with a special focus on the most relevant models for the activities associated with the requirements engineering process. The chapter begins by providing a definition for the ‘model’ concept. Then, the chapter discusses the ideal characteristics for a model, so that it can meet the goals and purposes defined for its use. The chapter also presents an ontology that allows to accurately relate the various concepts associated with the modelling process. It concludes with a discussion of some structural and behavioural models that are used in the context of software projects, with an emphasis on those that are part of the UML language.
João M. Fernandes, Ricardo J. Machado
Requirements in Engineering Projects
João M. Fernandes
Ricardo J. Machado
Copyright Year
Electronic ISBN
Print ISBN

Premium Partners