Académique Documents
Professionnel Documents
Culture Documents
Introduction
What you want and what you get are two different things.
Christine Holt
The points raised here make the case for understanding requirements. To understand the requirements, it is necessary to engineer them, and this gives rise to the
discipline known as requirements engineering. An effective approach to requirements engineering will result in a concise, consistent and lucid definition of the
requirements of any system and will yield the following benefits:
Introduction
The requirements engineering must be carried out within the context of a project
life cycle and it is usual for this to happen close to the beginning of a project. Any
life cycle will be made up of a number of stages, or phases, one of which will
represent the first stage in a project and have a name like conception, initial,
requirements or inception. It should be kept in mind, however, that the
requirements set is a living entity and, as such, it will evolve and change as the
project progresses through its life cycle. It is crucial, therefore, that the requirements set is managed and that it can be revisited at different points in the project to
validate that the project is being developed correctly.
The approach described in this book covers all of these aspects and may be
used during any life cycle stage. The approach itself is model-based, in that the
model forms the heart of all requirements engineering activities, and uses the idea
of a context, or viewpoint, as a basis for the model and its realisation.
1.2.1
Defining requirement
1.2.1.1
Dictionary definition
This section will look at several definitions of the term requirement and then
define exactly what is meant by this term for the purposes of this book.
The basic definition of a requirement in the Oxford English Dictionary is:
(noun) a thing that is needed or wanted [6]
This definition, albeit a very high-level one, is very interesting for two main
reasons:
1.2.1.2
INCOSE definition
The next definition that is considered is taken from the world of systems engineering. The whole area of systems engineering advocates that requirements must
be understood, so much so that the areas of requirements engineering and systems
engineering are often confused. The next definition, therefore, is taken from the
International Council on Systems Engineering (INCOSE):
A statement that identifies a system, product or process characteristic or
constraint, which is unambiguous, clear, unique, consistent, stand-alone
(not grouped), and verifiable, and is deemed necessary for stakeholder
acceptability. [7]
This definition is more complex than the previous one, although it also shares some
characteristics with it. Consider the following:
For the first time, this definition states explicitly that a requirement takes the
form of a statement.
Introduction
In conclusion, therefore, a fuller definition of the term that adds more detail when
compared with the OED definition.
The term desired is used here, which really lies somewhere between wanted
and needed.
The term requirement is defined in the context of being a property of a system rather than the context of the stakeholder.
In conclusion, therefore, another simple definition and, again, one that is very
similar to both the INCOSE and OED definitions.
For the first time, the term expectation is used here as an alternative to need.
The main difference between these two terms is that one is more specific than
the other. A need may need to be stated, whereas an expectation may be
viewed as more assumed than stated.
Following directly on from the previous point, this definition provides three
qualifiers on the term requirement. It states that a requirement may be
stated explicitly, generally implied implicitly or obligatory, in that it is
mandatory.
In conclusion, therefore, this definition has similarities with the previous definitions but adds more detail with the nature of the requirement.
1.2.1.5
This list of definitions could go on indefinitely, but the list so far includes examples
from a good cross-section of the systems engineering community. Therefore, based
on these definitions, the definition that will be used for the purposes of this book is
the following:
a requirement is the definition of a property of a system that is either
needed or wanted by a stakeholder
A few points to consider about this definition:
The term definition is used here rather than statement because the term
statement may imply a text-only description of a requirement.
The term property of a system is used rather than thing or a list of what it
may or may not be. This was chosen because it leaves the definition of a
property open and ties this property to the system.
The terms needed and wanted were kept as part of this definition, as both
are seen as very important and are discussed later in this book.
Everything about a requirement must be related back to a stakeholder, hence
the use of the term here.
This definition has been deliberately held at a high level, but is one that will be
expanded upon later in this chapter and throughout the remainder of this book.
1.2.2
1.2.2.1
Types of requirements
Basic types of requirement
This section looks at some of the different types of requirement that exist. There is
no definitive list of different types of requirement, but there are some basic generic
types that exist in most organisations.
Requirement
Business
Requirement
Non-functional
Requirement
1..*
1..*
drives
1..*
Functional
Requirement
1..*
constrains
Introduction
The business requirements drive the functional requirements, which are themselves constrained by non-functional requirements. The exact nature of these
three main types of requirement is described in more detail in the following
sections.
Business requirements always exist but must be identified and classified accordingly. It will be seen later how the use of contexts will facilitate this.
non-functional requirements in order to provide a complete picture of the requirements and their context.
1.2.2.4
Non-functional requirements
1.2.2.5
Introduction
1.2.3 Stakeholders
One of the most important concepts to understand when dealing with requirements
is that of the stakeholder. A stakeholder is defined, for the purposes of this
book, as:
the role of any person, organisation or thing, that has an interest in, or is
influenced by, the system or project under development
The concept of a stakeholder, and the different types of stakeholder, is fundamental
to the approach described in this book, and there will be several discussions in later
chapters concerning stakeholders.
To provide a quick overview of the various types of stakeholders, which may
exist, consider the diagram in Figure 1.2.
Stakeholder
Customer
User
Supplier
Sponsor
Operator
Management
Engineering
External
Law
Standard
Customer that describes all roles that may make use of the system or service
or that the supplier needs to keep satisfied. In many cases, the supplier may
have some influence over the customer and be in a position to discuss issues
and agree compromises with them.
External that describes the roles that must be satisfied by the supplier but that
cannot be negotiated with in any way. In other words, the supplier has no
influence on external stakeholder roles.
Supplier that describes all the roles that are involved with the development
and delivery of the product or service.
Each of the stakeholder roles will have one or more names associated with it, which
describe who or what realises this role.
10
The User role will be realised by any number of passengers who are the end
users of the airline. In almost all cases, this will be a list of names that can be
specified to realise a single role. In other words, a single stakeholder role is not
limited to a single name and may have any number of names associated with it
in order to realise that role.
The Operator role will encompass all the employees or associates of the
airline, ranging from ticket sellers, to the pilots and stewards, to the air-traffic
controllers. Again, this is an example of many names that will realise a single
role. Notice here that the role does not imply in any way how the role is
realised. For example, the role of ticket sellers may be realised by a person (or
people) or by an automated system. The stakeholder role does not care how it is
realised and is only concerned with the definition of the role.
The Sponsor role will represent all the people or businesses that have a
financial stake in the airline enterprise. Again, this will be realised by many
names in reality. Notice here, however, that some of the names may represent
organisations or businesses, rather than individual names.
This quite nicely makes the case for a single stakeholder role having any number of
names associated with it. It is also possible, however, to have a single person that
takes on any number of roles. Imagine a person who is a pilot for his or her main
job. When working, this person takes on the role of a pilot, which will be a type of
Operator. When the person is not working, he or she may go on holiday and may
travel on an aeroplane. In this situation, the same person that usually takes on the
role of pilot (when working) will take on the role of passenger (which will be a
special type of User). Also, this person may have shares in the company, which
means that the same person will sometimes take the role of shareholder, which will
be a type of Sponsor. In this example, it is possible for a single person to take on
multiple roles, which is why it is essential to avoid individual or company names
when it comes to specifying stakeholder roles.
For external roles, the following will happen:
The Law role will include all legal roles that may exist. Examples of this role
include individual piece of legislation, treaties or agreements, national or
international laws or any industry-specific mandatory requirements. This will
be realised by all the laws and legislation that apply to the world of air travel.
The Standard role will encompass all the standards that may apply to the
airline. This will range from international standards, to country-specific standards, to industry standards, right down to in-house processes, guidelines and
work instructions.
Notice in the example here that none of the roles discussed in this section are realised
by people, but are things. In some cases these things may be pieces of paper (documents) or may even be virtual documents (such as work instructions on the internet).
Introduction
11
The Management roles will be realised by all the managers involved in the
project. This will include, for example, project managers, operational managers, configuration managers.
The Engineering role will be realised by all the engineers involved in the
project, such as software engineers, hardware engineers, electrical engineers,
mechanical engineers.
In the example provided here, almost all of these roles will be taken by actual
people rather than things.
It is important that the various stakeholder roles involved with the project can
be identified properly and accurately because the requirements will differ for each
stakeholder and they may even conflict with other stakeholders requirements. To
put it another way, each stakeholder has, potentially, its own individual set of
requirements. A set of requirements from a particular stakeholders point of view is
known as a context, which must be understood for any effective requirements
engineering. It is this idea of the context that forms the basis for the approach
described in this book.
12
identified. This is a good way to identify the high-level system interfaces by using a
context.
The point to be stressed here is that any system can be looked at from a number
of points of view (contexts) and that invariably there will be conflicts between these
different points of view. To look at a system from only a single point of view is
quite simply a folly.
The idea of a context, however, is not just related to points of view based on
stakeholders but may be based on other definitions, for example:
The context is also crucial from the point of view of validating requirements. It is
essential that each and every requirement can be validated, but this validation will
differ depending on the context of the requirement. Therefore, the validation of
requirements is achieved by validating the use cases in each context and, hence, the
requirements may be demonstrated to be validated.
The main philosophy of this book is to consider a number of contexts and then
to use them as a basis for truly understanding the requirements of a system.
1.2.4.1
The approach described in this book forms part of an overall model-based systems
engineering (MBSE) approach. Systems engineering is concerned with realising
successful systems [7] across the whole life cycle whilst keeping all of the
stakeholder requirements satisfied. MBSE is an approach to systems engineering
where the model forms the basis of all of the system artefacts see Chapter 2 for
more discussion on this point. This results in a number of benefits, such as the
following:
Introduction
13
The whole issue of the maintenance of documentation is also made far simpler,
as only the model need be maintained. All documentation may be generated
directly from the model; therefore, there are no multiple sources of information
to complicate configuration control.
Process
1..*
Tool
drives
enables
1..*
Person
Person, or people. By this, we mean competent people who hold the necessary
skills and experience to enable the process.
Process, or processes. By this, we mean the approach taken to MBSE, which
will be realised by process and methodology. This is enabled by the people and
drives the tools.
Tool, or tools. By this, we mean anything that can be employed to make the
people enable the process more efficiently or effectively. This may include
software-based tools, techniques, notations, standards, frameworks and even
pen-and-paper systems!
These fundamentals will be described in great detail throughout this book, and the
diagram in Figure 1.3 will also be seen again in subsequent chapters.
14
Part two is aimed at introducing the basic approach that forms ACRE.
Chapter 4 introduces the concept of the ACRE ontology that describes the
concepts and terminology that are used in the book.
Chapter 5 introduces the ACRE framework that describes a number of views
that are necessary for effective requirement modelling.
Chapter 6 provides an in-depth case study that looks at examples of how all of
the ACRE views may be realised.
Chapter 7 looks at the pragmatic issues associated with people, processes and
tools that are required to realise ACRE.
References
1.
2.
3.
4.
5.
6.
7.
8.