Requirements Engineering Processes and Techniques
Requirements Engineering Processes and Techniques
II Kg -3: .
■i.
1-3*5
'mm-r .m*!
- [,/ y
Jk
/ IbK*I
;-«| r ! I i ^gsrFI
|km
•<■
j j !3 1
jmM 11
■ Bj9
i.
L JK11
mL. m j
1 f
1
fi’141 • 1
yc £
I - •aM0p>.iJS
i- ®
— "~TT\1
£2*
L 1
https://archive.org/details/requirementsengi1998koto
WORLDWIDE
SERIES IN
COMPUTER
SCIENCE
The Worldwide Series in Computer Science has been created to publish textbooks
which both address and anticipate the needs of an ever evolving curriculum thereby
shaping its future. It is designed for undergraduates majoring in Computer Science
and practitioners who need to reskill. Its philosophy derives from the conviction that
the discipline of computing needs to produce technically skilled engineers who will
inevitably face, and possibly invent, radically new technologies throughout their future
careers. New media will be used innovatively to support high quality texts written by
leaders in the field.
Gerald Kotonya
Computing Department, Lancaster University
and
Ian Sommerville
Computing Department, Lancaster University
IkuiNi UNlViiRSI l V
PETERBOROUGH, ONTARIO
Preface ix
Chapter 1 Introduction 3
1.1 FAQs about requirements 6
1.2 Systems engineering 12
1.3 The requirements document 15
Key points 21
Exercises 22
References 23
Further reading 23
References 84
Further reading 85
Index 279
Preface
know about a range of different techniques and should select the technique
which is appropriate to their application.
After the introductory chapter, the book is split into two logical parts. The
first part is process-oriented and describes different activities in the require¬
ments engineering process. These include requirements elicitation and
analysis, requirements validation and requirements management. The second
part of the book focuses on requirements engineering techniques. It covers
the use of structured methods in requirements engineering, viewpoint-
oriented approaches, the specification of non-functional requirements and the
specification of interactive systems. Finally, we present a case study which
illustrates the application of a viewpoint-oriented approach to requirements
engineering. This is based on a real system which is currently being devel¬
oped for users of a group of university libraries.
It is always difficult when writing a book of this nature to find the right
balance between tried and tested techniques and new, promising research
work. The majority of the material in this text is based on good requirements
engineering practice but the chapters on viewpoints and interactive system
specification represent recent research which is not yet in widespread use. We
have tried to ensure the relevance of this by basing our description on real
system descriptions which demonstrate the applicability of the approach.
The book is primarily intended as a student text for senior undergraduate
and graduate students studying computer science, software engineering or
systems engineering. It can be used to support a one or two-semester course
in requirements engineering or as a supplement to other software engineering
texts. Possible ways in which the book may be used include the following
Software and systems engineers in industry may also find the book useful
if they are new to requirements engineering. Experienced requirements engi¬
neers may find the description of some techniques useful, particularly if the
book is read in conjunction with its companion text Requirements Engineering:
A Good Practice Guide (Ian Sommerville and Pete Sawyer, Wiley, 1997).
There is very little overlap between the material here and Requirements
Engineering: A Good Practice Guide. That book is also concerned with require¬
ments engineering processes but it is aimed specifically at practitioners and
managers who are already involved in requirements engineering. It assumes
that readers already have an understanding of the problems of requirements
engineering and requirements process improvement. That book proposes a
set of specific guidelines for requirements engineering process improvement,
information on formal methods for safety-critical systems specification and an
alternative viewpoint-oriented approach to that presented here. Although
designed for practising requirements engineers, students who have worked
through this book may find the practical advice on process improvement
useful.
Finally, we would like to thank our families for their support while this
book was being written, and the members of the EDDIS consortium for their
permission to use the case study material in Chapter 10.
Gerald Kotonya,
Ian Sommerville
April 1998
X PREFACE
know about a range of different techniques and should select the technique
which is appropriate to their application.
After the introductory chapter, the book is split into two logical parts. The
first part is process-oriented and describes different activities in the require¬
ments engineering process. These include requirements elicitation and
analysis, requirements validation and requirements management. The second
part of the book focuses on requirements engineering techniques. It covers
the use of structured methods in requirements engineering, viewpoint-
oriented approaches, the specification of non-functional requirements and the
specification of interactive systems. Finally, we present a case study which
illustrates the application of a viewpoint-oriented approach to requirements
engineering. This is based on a real system which is currently being devel¬
oped for users of a group of university libraries.
It is always difficult when writing a book of this nature to find the right
balance between tried and tested techniques and new, promising research
work. The majority of the material in this text is based on good requirements
engineering practice but the chapters on viewpoints and interactive system
specification represent recent research which is not yet in widespread use. We
have tried to ensure the relevance of this by basing our description on real
system descriptions which demonstrate the applicability of the approach.
The book is primarily intended as a student text for senior undergraduate
and graduate students studying computer science, software engineering or
systems engineering. It can be used to support a one or two-semester course
in requirements engineering or as a supplement to other software engineering
texts. Possible ways in which the book may be used include the following
Software and systems engineers in industry may also find the book useful
if they are new to requirements engineering. Experienced requirements engi¬
neers may find the description of some techniques useful, particularly if the
book is read in conjunction with its companion text Requirements Engineering:
A Good Practice Guide (Ian Sommerville and Pete Sawyer, Wiley, 1997).
There is very little overlap between the material here and Requirements
Engineering: A Good Practice Guide. That book is also concerned with require¬
ments engineering processes but it is aimed specifically at practitioners and
managers who are already involved in requirements engineering. It assumes
that readers already have an understanding of the problems of requirements
engineering and requirements process improvement. That book proposes a
set of specific guidelines for requirements engineering process improvement,
information on formal methods for safety-critical systems specification and an
alternative viewpoint-oriented approach to that presented here. Although
designed for practising requirements engineers, students who have worked
through this book may find the practical advice on process improvement
useful.
Finally, we would like to thank our families for their support while this
book was being written, and the members of the EDDIS consortium for their
permission to use the case study material in Chapter 10.
Gerald Kotonya,
Ian Sommerville
April 1998
•V
PART ONE
The Requirements
Engineering Process
♦ Summary
The goal of this part of the book is to introduce the processes involved in
eliciting, analysing, validating and managing requirements for complex systems.
The focus of this part is on ‘what’ is involved in requirements engineering,
in contrast to Part Two, which focuses on ‘how’ specific techniques may be
applied during these processes. Chapter 2 introduces processes in general
and discusses models of the overall requirements engineering process.
Chapter 3 covers requirements and associated requirements analysis, and
Chapter 4 discusses the validation of requirements after an initial version of
the requirements document has been issued. Finally, Chapter 5 discusses the
critically important process of managing requirements which are evolving as
the customer’s business and priorities change.
I Introduction
♦ Contents
♦ Summary
In other words, the requirements define the services that the system should
provide and they set out constraints on the system's operation. Here are some
examples of requirements for a library system.
2. The system shall allow users to search for an item by title, author, or
ISBN.
5. The system facilities which are available to public users shall be demon¬
strable in 10 minutes or less.
These requirements are written in a typical way and, of course, they need
to be supplemented with more detailed information in a complete specifica¬
tion of the system. You can see from these examples that requirements are of
different types.
1. Very general requirements, such as 1 above, which set out in broad terms
what the system should do.
1. the requirements don't reflect the real needs of the customer for the system
1. The system shall allow users to search for an item by title, author, or by
ISBN.
This seems a sensible requirement for a library system but what if the 'item'
that the user is searching for is a CD-ROM. It will certainly have a title but
it may not have an author; it certainly won't have an ISBN (International
Standard Book Number). This requirement has been written so that it only
applies to books and not to other items in the library. If this anomaly was not
discovered, the system implementors would either have to make their own
decisions on what it meant for non-book items or would have to spend time
clarifying the requirement with library staff.
The problems of writing requirements are universal and there will never
be a complete solution to these problems. However, good requirements engi¬
neering practice, as described in this book, can reduce the number of problems
and minimise their impact on the final system. These problems therefore
underlie almost all of the chapters in the book and we will look at some of
them again as we introduce particular requirements engineering techniques.
6 INTRODUCTION
Before you can start to understand requirements engineering, you need some
basic information and definitions. We present this information in this section
in the form of a frequently asked questions (FAQs) list. This style of presen¬
tation is increasingly used on the Internet to help people who are new to an
area. In essence, what we have tried to do is to anticipate your questions and
provide some answers to them. The questions and answers are summarised
in Figure 1.1.
Question Answer
What happens when the Systems are late, unreliable and don’t meet customers’ expectations
requirements are wrong?
Is there an ideal requirements No - processes must be tailored to organisational needs
engineering process?
What is a requirements The formal statement of the system requirements
document?
What are system stakeholders? Anyone who is affected in some way by the system
What is the relationship between Requirements and design are inter-leaved. They should, ideally, be
requirements and design? separate processes but in practice this is impossible
2. a very general system property (e.g. 'the system must ensure that
personal information is never made available without authorisation')
4. how to carry out some computation (e.g. 'the overall mark is computed
by adding the student examination, project and coursework marks based
on the following formula 'total_mark = exam_mark + 2 * project_mark
+ 2/3 * coursework_mark')
1. The readers of a document are often practical engineers who can relate
to implementation descriptions much better than they can understand
very abstract problem statements. You must write requirements which
are understandable to the likely readers of the document.
2. In almost all cases, the system being specified is only one of several
systems in an environment. To be compatible with its environment, and
to conform to standards and with organisational concerns, you may have
to specify implementation policies which constrain the options of the
system designers.
3. The specifiers of the system are often experts in the application domain
where the system is to be used. The requirements may be descriptions
of how to carry out a computation using application domain data.
This depends on the type and size of system being developed and exactly
what activities are included under the heading of requirements engineering.
In some cases, the system requirements are not developed in detail; in others,
a formal specification may be produced. Clearly, the costs of these will differ
significantly.
The surveys which have been carried out so far suggest that, for large hard¬
ware/software systems, about 15% of the total budget is taken up by require¬
ments engineering activities. This excludes the costs of detailed system
specification. For smaller systems which are mostly software, the requirements
costs are usually less than this, around 10% of the total budget of the system.
1. The system may be delivered late and cost more than originally
expected.
2. The customer and end-users are not satisfied with the system. They may
not use its facilities or may even decide to scrap it altogether.
3. The system may be unreliable in use, with regular system errors and
crashes disrupting normal operation.
FAQS ABOUT REQUIREMENTS 9
4. If the system continues in use, the costs of maintaining and evolving the
system are usually very high.
The costs of fixing requirements errors are, typically, much greater than
fixing errors which arise at later stages of the development process. Fixing
requirements problems may require rework of the system design, implemen¬
tation and testing. Consequently, the costs are high. It has been estimated that
the cost of fixing a requirements error can be up to 100 times the cost of fixing
a simple programming error.
The focus of this book is software requirements engineering but, for many
types of system, it is impossible to separate the requirements for the software
from broader requirements for the system as a whole. As well as software,
the system may include computer hardware, other types of hardware device
which are interfaced to the computer and the operational processes which are
used when the system is installed in some working environment.
Computer-based systems fall into two broad types.
1. Information systems
These are systems which are primarily concerned with processing infor¬
mation which is held in some kind of database. They are usually
implemented using standard computer hardware (e.g. mainframe
computers, workstations, PCs) and are built on top of commercial
SYSTEMS ENGINEERING 13
2. Embedded systems
These are systems where software is used as a controller in some broader
hardware system. They range from simple systems (e.g. in a CD player)
to very complex control systems (e.g. in a chemical plant). They often
rely on special-purpose hardware and operating systems. Requirements
engineering for these systems involves both hardware and software
requirements engineering.
f Requirements ^
J
partitioning
Software
requirements
engineering
Activity Description
System requirements The requirements for the system as a whole are established. These will
engineering usually be expressed in a fairly high-level fashion and written in natural
language. Some detailed constraints (such as compatibility constraints) may be
included if these are critical for the success of the system.
Requirements partitioning The requirements are partitioned to these sub-systems. At this stage,
decisions may be made about whether requirements should be hardware or
software requirements.
Software requirements The high-level software requirements are decomposed into a more detailed
engineering set of requirements for the software components of the system.
Sub-system development The hardware and the software subsystems are designed and implemented in
parallel.
System integration The hardware and software subsystems are put together to complete the
system.
Figure 1.3 software requirements. It actually includes some initial design activity where
Systems the overall structure (architecture) of the system is defined. This has to be
engineering carried out at this stage to help structure the system requirements and to allow
process the requirements for the different sub-systems to be developed in parallel.
activities.
THE REQUIREMENTS DOCUMENT 15
For systems which are primarily software systems, the requirements docu¬
ment may include a description of the hardware on which the system is to
run. The document should always include an introductory chapter which
provides an overview of the system and the business need that it is intended
to support and a glossary which defines the technical terms used in the docu¬
ment. The glossary is particularly important as different system stakeholders
from different backgrounds will read the requirements document and use it
in different ways (see Figure 1.4). The glossary is essential to ensure a common
understanding of the terms used in the requirements document.
There are many different ways to structure requirements documents,
depending on the type of system which is being developed, the level of detail
included in the requirements, organisational practice and the budget and
schedule for the requirements engineering process. To ensure that all essen¬
tial information is included, organisations may define their own standard for
requirements documents which sets out the sections which must be included.
A number of different large organisations such as the US Department of
Defense and the IEEE have defined standards for requirements documents.
Probably the most accessible of these standards is the IEEE/ANSI 830-1993
standard (IEEE, 1993) which suggests the following structure for requirements
documents.
16 INTRODUCTION
1. Introduction
1.1 Purpose of the requirements document
1.2 Scope of the product
1.3 Definitions, acronyms and abbreviations
1.4 References
1.5 Overview of the remainder of the document
2. General description
2.1 Product perspective
2.2 Product functions
2.3 User characteristics
2.4 General constraints
2.5 Assumptions and dependencies
Figure 1.4
Users of a
requirements
document.
THE REQUIREMENTS DOCUMENT 17
3. Specific requirements
covering functional, non-functional and interface requirements. These
should document external interfaces, functionality, performance require¬
ments, logical database requirements, design constraints, system
attributes and quality characteristics.
4. Appendices
5. Index
Although the IEEE standard is not ideal, it contains a great deal of good
advice on how to write requirements and how to avoid problems. It is there¬
fore a good starting point for defining a structure for a requirements
document. The first two parts in the standard are introductory chapters which
set out the background for the system and describe it in general terms. The
third section is the major section of the document, namely the detailed spec¬
ification of the requirements. The standard recognises that this varies
considerably depending on the type of system which is being specified and
it suggests alternative ways to organise specific requirements.
A requirements document standard must allow for differences between
systems. It should be possible to omit parts of the document and to add new
sections if necessary. Part of the document standard should therefore be
an introductory page which explains allowed variances from the defined
standard.
To allow for different types of document, a requirements document stan¬
dard may include a list of stable and variant parts. Stable parts are those
chapters (such as an introduction and a glossary) which should appear in all
requirements documents. Variant parts are those chapters which may but
need not be included and whose contents may vary depending on the system
being specified.
Here is an example of a possible organisational standard for requirements
documents which is based on the IEEE standard. Notice that this specifies that
the third part of the IEEE standard should be instantiated as several chapters
and optional appendices should be included with detailed information.
Assume that the organisation is involved in the production of computer-
controlled scientific instruments.
1. Preface
This should define the expected readership of the document and
describe its version history including a rationale for the creation of a
new version and a summary of the changes made in each version.
18 INTRODUCTION
2. Introduction
This should define the product in which the software is embedded, its
expected usage and present and overview of the functionality of the
control software.
3. Glossary
This should define all technical terms and abbreviations used in the
document.
5. System architecture
This chapter should present a high-level overview of the anticipated system
architecture showing the distribution of functions across system modules.
Architectural components which are to be reused should be highlighted.
6. Hardware specification
This is an optional chapter specifying the hardware that the software is
expected to control. It may be omitted if the standard instrument plat¬
form is used.
10. Index
THE REQUIREMENTS DOCUMENT 19
1. The user will be offered an initial set of databases to search. The set of
databases which can be searched will be determined by the PERMIS-
SION_VECTOR of the account to which the user has logged in (from a
requirements document for a library system).
3. The inverse transition SI—>S2 takes place when the front of the train has
just crossed an exit towards a non-equipped zone (from the requirements
document for a train protection system).
3. The writers of the requirement assume that the reader has specific
knowledge of the domain or the system and they leave essential infor¬
mation out of the requirements document.
These problems make it difficult to check the set of requirements for errors
and omissions. Different interpretations of the requirements may lead to
20 INTRODUCTION
1. Requirements are read more often than they are written. Investing effort
in writing requirements which are easy to read and understand is almost
always cost-effective.
3. Writing clearly and concisely is not easy. If you don't allow sufficient
time for requirements descriptions to be drafted, reviewed and
improved, you will inevitably end up with poorly written specifications.
Guideline Description
Define standard templates You should define a set of standard format for different types of
for describing requirements and always express requirements using that format. This makes
requirements is less likely that important information will be missed out and makes it easier
for the reader to understand the different parts of the requirement
Use language simply, Don’t write requirements using convoluted language but follow good writing
consistently and concisely practice such as using short sentences and paragraphs, using lists and tables
and avoiding jargon wherever possible.
Use diagrams You should not develop complex diagrams but should use diagrams to
appropriately present broad overviews and to show relationships between entities.
Supplement natural Don’t try to write everything in natural language. If readers of the
language with other requirements document are likely to be familiar with other types of notation
descriptions of (e.g. equations), you should not hesitate to use these.
requirements
Specify requirements Wherever possible, you should specify your requirements quantitatively. This
quantitatively is often possible when you are specifying the properties of a system such as
reliability, usability or performance.
Figure 1.5
Guidelines for
writing
requirements.
♦ Key Points
♦ The requirements for a system set out the services that the system should provide,
define constraints on the system and the process of developing the system and
provide domain information to system developers.
♦ Exercises
1.1 Explain the problems which might arise if the following requirements were included
in a requirements document for a library system.
The system shall provide an easy-to-use graphical interface based on MS Windows 95.
Accredited users should have privileged access to the cataloguing facilities of the
system.
The system software shall be implemented using separate modules for cataloging,
user access and archiving.
1.4 Using your knowledge of software engineering processes, compare these with the
systems engineering process described in section 1.2. What do you think are the
key differences between systems engineering and software engineering processes?
1.5 Systems integration is an important systems engineering activity. Suggest the prob¬
lems which might arise when subsystems from different suppliers are integrated.
1.6 Using examples from your own experience, explain why communication problems
arise when people use technical terminology.
1.7 Suggest the uses which each of the stakeholders that you have identified in 1.3
might make of a requirements document for a library system.
1.8 Suggest how the following requirements might be rewritten in a quantitative way.
You may use any metrics you like to express the requirements.
♦ References
Alford, M. W. (1985). SREM at the Age of Eight: The Distributed Computing Design
System. IEEE Computer 18(4): 36-46.
Rumbaugh, ]., Blaha, M., et al. (1991). Object-oriented Modeling and Design. Englewood
Cliffs, New Jersey: Prentice-Hall.
Sommerville, I., and Sawyer, P. (1997). Requirements Engineering: A Good Practice Guide.
Chichester: John Wiley and Sons.
♦ Further reading
There are many books on requirements engineering written from different perspec¬
tives and with different emphases. For readers getting started in this field, we
particularly recommend the following.
Software Requirements: Objects, Functions and States (A. Davis, Prentice-Hall, 1993). This
is probably the best known book in this area. Its orientation is towards the use of
structured methods for requirements engineering. It is quite long (more than 500
pages) and of most interest to practitioners who already have well-developed require¬
ments engineering practices. It is very good on system modelling but weak on areas
such as requirements validation and management.
Software Requirements Engineering (2nd edition) (R. H. Thayer and M. Dorfman, IEEE
Computer Society Press, 1997). An excellent tutorial volume of research papers in
requirements engineering.
Standards, Guidelines and Examples on System and Software Requirements Engineering (M.
Dorfman and R. H. Thayer, IEEE Computer Society Press, 1990). This is a compre¬
hensive set of standards which are relevant to requirements engineering.
♦ Contents
♦ Summary
In some cases, processes are defined at a very fine level of detail and the
steps in the process must be carried out exactly as described. However, this
usually only applies to very simple processes such as making a telephone call
from a payphone (lift receiver, insert coins or card, dial number). For more
complex processes, the description is usually less detailed and it is up to the
person or team who are executing the process to carry it out (enact
the process) in their own environment.
Different people usually enact the process in different ways. Sometimes the
same person will enact the same process in different ways at different times.
The reason for this is that enacting the different activities in the process
depends on the background of the people involved and the particular circum¬
stances in which the process is enacted. For example:
1. The process of writing this book: the inputs are background knowledge
and experience plus other books and papers, and the output is the book
that you are reading.
Figure 2.1
Inputs and
outputs of the
requirements
engineering
process.
Existing system information Input Information about the functionality of systems to be replaced or
other systems which interact with the system being specified
Stakeholder needs Input Descriptions of what system stakeholders need from the system
to support their work
Regulations Input External regulations such as health and safety regulations which
apply to the system.
Domain information Input General information about the application domain of the system
System specification Output This is a more detailed specification of the system functionality
which may be produced in some cases
System models Output A set of models such as a data-flow model, an object model, a
process model, etc. which describes the system from different
perspectives
Figure 2.2 Figure 2.2 expands on Figure 2.1 by providing more detail of the inputs
Input/output and outputs of the requirements engineering process. Although the require-
description. ments engineering process inevitably varies from one organisation to another
and may even vary within the same organisation, the inputs and outputs are
similar in most cases.
SUMMARY 29
To make this more concrete, let us look at some examples of the different
types of information which may be inputs to the requirements engineering
process. These have been taken from a library information system (LIS).
The LIS shall poll the bar code reader system and process all of the
transaction requests every two seconds.
2. Stakeholder needs
Assume that the stakeholder is a visitor to the library who has no
previous experience of using the system. An example of a stakeholder
need might be:
The system should provide a help facility which will explain the facilities
of the system to new users. This help facility should be accessible from
all user interface screens.
3. Organisational standards
Assume that the library uses a hardware platform for all of its systems.
A requirement from this might be:
The system shall run on a Sun server running the Solaris 2.0 operating
system.
4. Regulations
Regulations such as health and safety regulations are unlikely to have
much impact on this type of system. However, data protection laws do
apply to it. A requirement for data protection might be:
The system shall include a facility to print all of the personal informa¬
tion which is maintained for a library user.
5. Domain information
This is general information which is applicable to all or most library
systems. An example of a domain requirement might be:
1. Technical maturity
The technologies and methods used for requirements engineering vary
from one organisation to another.
2. Disciplinary involvement
The types of engineering and managerial disciplines involved in require¬
ments engineering vary from one organisation to another.
3. Organisational culture
The culture of an organisation has an important effect on all business
processes and, as the culture varies, so too does the requirements engi¬
neering process.
4. Application domain
Different types of application system need different types of require¬
ments engineering process.
The variability of RE processes is often there for a very good reason, and
it makes no sense to talk about 'ideal' requirements engineering processes or
to define some (technically sound) process and impose it on an organisation.
Rather, organisations should start with a generic RE process such as that docu¬
mented in Figure 2.3 and instantiate this into a more detailed process which
is appropriate to their own needs.
3. Role-action models
These are models which show the roles of different people involved in
the process and the actions which they take. These models may be
helpful for process understanding and automation.
4. Entity-relation models
These models show the process inputs, outputs and intermediate results
and the relationships between them. They may be used in a quality
management system and to supplement models of process activities.
32 REQUIREMENTS ENGINEERING PROCESSES
User needs
domain
information, Agreed
existing requirements
system
information,
regulations,
standards, etc.
Figure 2.3
Coarse-grain Different organisations tackle requirements engineering in radically
activity model different ways. An aerospace company which is specifying very complex
of the hardware/software systems will not use the same requirements engineering
requirements process as a company which is building consumer products for personal
engineering computers. However, the differences between these processes usually emerge
process. at the level of detailed process description. At an abstract level, most require¬
ments engineering processes can be described by the coarse-grain activity
model shown in Figure 2.3.
In Figure 2.3, we have shown requirements engineering activities using
cloud icons. These have been chosen to indicate that there are no distinct
boundaries between these activities. In practice, the activities are interleaved
and there is a great deal of iteration and feedback from one activity to another.
The activities in the requirements engineering process are as follows.
1. Requirements elicitation
The system requirements are discovered through consultation with
stakeholders, from system documents, domain knowledge and market
studies. Other names for this process are requirements acquisition or
requirements discovery.
3. Requirements documentation
The agreed requirements are documented at an appropriate level of
detail. In general, there needs to be a requirements document which is
understandable by all system stakeholders. As discussed in Chapter 1,
this usually means that the requirements must be documented using
natural language and diagrams. More detailed system documentation,
such as system models (see Chapter 6), may also be produced.
4. Requirements validation
There should be a careful check of the requirements for consistency and
completeness. This process is intended to detect problems in the require¬
ments document before it is used as a basis for the system development.
Figure 2.4 A
requirements engineering and design. Furthermore, requirements engineering
waterfall model
is also influenced by a more general systems acquisition or procurement
of the software
processes which are concerned with the commercial, legal and contractual
process.
issues of acquiring a system for an organisation. There are two-way information
flows between these processes as they are enacted and the detailed activities in
these processes change depending on this information (Figure 2.5).
Figures 2.4 and 2.5 illustrate that, even at very abstract levels, there are
different ways to look at processes. Neither Figure 2.4 nor Figure 2.5 is an
'incorrect' model but each presents different possible ways in which the RE
process interacts with other processes. The nature of models is that they hide
information. When you try to understand process models you must realise
that they will never present a complete (or unbiased) picture of whatever
process is being described.
Figure 2.5
The context
of the
requirements
engineering
process.
PROCESS MODELS 35
Activity models of processes such as Figure 2.3 and Figure 2.4 often show
a sequence of phases with the implication that phases follow each other. They
may show feedback from one phase to another and may suggest that phase
boundaries are blurred as in Figure 2.3. As information is fed back from one
activity to another, obviously the phase receiving the information must be re¬
entered in some way. An alternative way to present activity models which
makes this repetition of activities more explicit is as a spiral model as shown
in Figure 2.6.
Figure 2.6 shows that the different activities in requirements engineering
are repeated until a decision is made that the requirements document should
be accepted. If a draft of the requirements document is found to have prob¬
lems, the elicitation, analysis, documentation, validation spiral is re-entered.
This continues until an acceptable document is produced or until external
factors such as schedule pressure or lack of resources mean that the require¬
ments engineering process should end. A final requirements document should
then be produced. Any further changes to the requirements are then part of
the requirements management process.
Figure 2.6
A spiral model
of the
requirements
engineering
Informal statement of process.
requirements
Agreed
requirements
Draft requirements
document
36 REQUIREMENTS ENGINEERING PROCESSES
The actors in a process are the people who are involved in carrying out that
process. Normally actors are identified by their roles, e.g. project manager,
purchasing director, system engineer rather than as individuals. It is often
useful when modelling a process to identify the roles which would normally
be associated with activities in that process.
A characteristic of the requirements engineering process is that it involves
people who are primarily interested in the system as a way to help them solve
particular problems or support particular activities, as well as people who are
primarily concerned with solving the technical problems of developing the
system. In addition, another group of people, such as health and safety regu¬
lators for a safety-critical system, maintenance engineers and managers, may
be affected by the existence of the system. They may also participate in the
requirements engineering process. As explained in Chapter 1, the generic term
stakeholder is used to refer to all of these people.
Role-action diagrams are process models which show the actors associated
with different process activities. These models are not particularly useful at
the coarse-grain level but become more valuable when a process is described
in more detail. They are particularly important when some automated process
support or workflow system is available as they help the support system
designer understand the information needs of the different people involved
in the process.
To illustrate this type of diagram, consider Figure 2.7, which is a model of
part of the requirements elicitation process where a prototype software system
is being developed.
Figure 2.7 The roles which are identified in Figure 2.7 are described in Figure 2.8.
Role-action
diagram for
software
prototyping.
ROLES
ACTORS IN REQUIREMENTS ENGINEERING PROCESSES 37
Figure 2.8
Role Description Roles in the
prototyping
Domain expert Responsible for providing information about the process.
application domain and the specific problem in that domain
which is to be solved
System end-user Responsible for using the system after delivery
Requirements engineer Responsible for eliciting and specifying the system
requirements
Software engineer Responsible for developing the prototype software system
Project manager Responsible for planning and estimating the prototyping
project
the requirements often depends on personality and status and not necessarily
on reasoned argument.
To illustrate this, consider a simple situation where an end-user has a
requirement for some system facility which is clearly difficult to implement.
The software engineers responsible for the system may attempt to change that
requirement because they think that it will cause them to overrun their agreed
development schedule.
If the end-user is in a fairly junior position and is opposed by a senior soft¬
ware manager then it is likely that the software manager's views will prevail.
However, if the end-user has managerial support and comes from a depart¬
ment which is politically influential in an organisation then their requirement
will probably be accepted. Personalities are also important. If the end-user
has an aggressive and persistent personality, the engineers may agree to
accept their requirement simply to get rid of them. They may then, however,
deliberately give this a low priority so that they can later demonstrate that
this was an unreasonable requirement.
Within an organisation, different departments and individuals have differ¬
ing degrees of political influence. This influence depends on the individuals
involved, the priorities of the organisation and the success or otherwise of
the departments and individuals in meeting their goals. People try to influence
system requirements so that they can maintain or increase their own political
influence in the organisation. For example, in a university, there is a constant
tension between administration and academic departments. If a budget infor¬
mation system is planned, the administration is likely to propose requirements
which give them more power. However, the academic departments are likely
to oppose this and suggest system requirements which mean that they increase
their responsibility for their own financial management.
The need to provide some automated support for software processes has been
recognised since the 1980s. This led to the development of a large number of
CASE (Computer-Aided Software Engineering) tools which supported various
process activities such as software design, configuration management and
testing. Some over-optimistic commentators predicted that this automated
process support would lead to orders of magnitude improvement in software
productivity. In fact, the scale of improvement was much less than predicted.
Although CASE tools have an important role to play in supporting software
processes, they rarely lead to very large increases in productivity or quality.
CASE tool support has tended to develop around those parts of the soft¬
ware process which are common to all organisations and which are relatively
well-understood. Therefore, there are mature tools for programming support
(editors, compilers, debuggers, etc.), for activities such as configuration
PROCESS SUPPORT 39
Figure 2.9
A requirements
management
DC
Req. browser
Req. query
system
system.
NL
Traceability
requirements Req. convertor Requirements
support
document database
WP linker
> K Report
generator
Traceability
report
Since the late 1980s, the importance of processes and their role in a business
has been increasingly widely recognised. In many cases, analyses of busi¬
ness processes showed that they included redundant activities, unnecessary
duplication of information and inefficient flow of work from one process
participant to another. There may be scope for process 'improvement' where
the process is modified to meet some improvement objectives.
Process improvement objectives may include the following.
1. Quality improvement
The outputs produced by the process are of higher quality. In the case
of requirements, this means that they may contain fewer errors, may be
42 REQUIREMENTS ENGINEERING PROCESSES
more complete or may better reflect the real needs of system stake¬
holders.
2. Schedule reduction
The outputs from the process are produced more quickly. In the case of
requirements, this means that less time is needed to produce the final
version of the requirements document.
3. Resource reduction
Fewer resources such as staff time are needed to enact the process.
Therefore, a smaller team of requirements engineers can produce the
final requirements document.
existing methods, you might think that these will necessarily lead to process
improvements. A good example of this was the widespread investment in
CASE technology in the late 1980s and early 1990s. Many organisations which
invested in CASE tools found that they had no significant effect on the
productivity or quality of their products. The CASE tools changed the process
but did not address the real problems (such as requirements engineering prob¬
lems) faced by these organisations.
There are four questions which should be answered when planning process
improvements.
depend on the type of organisation and the organisational culture. For example,
improvements which depend on introducing more disciplined processes may
not be acceptable to small informal organisations but may be more appropriate
for large companies with a workforce spread over several different sites.
1. Initial level
organisations have an undisciplined process and it is left to individuals
to decide how to manage the process and which development techniques
to use.
2. Repeatable level
organisations have basic cost and schedule management procedures in
place. They are likely to be able to make consistent budget and schedule
predictions for projects in the same application area
3. Defined level
the software process for both management and engineering activities is
documented, standardized and integrated into a standard software
process for the organisation.
46 REQUIREMENTS ENGINEERING PROCESSES
Figure 2.10
Process maturity
levels.
4. Managed level
detailed measurements of both process and product quality are collected
and used to control the process.
5. Optimizing level
the organisation has a continuous process improvement strategy, based
on objective measurements, in place.
At each of these levels, a set of 'Key Practices' have been defined. Once all
of the practices at one level have been introduced in an organisation, it has
reached that level of maturity and moves up to the next level. Examples of
practices include requirements management (repeatable level), configuration
management (repeatable level), peer reviews (defined level), quantitative and
process management (managed level).
The SEl's Capability Maturity Model has been very influential and has
spawned other models, such as the Bootstrap and SPICE models, of process
maturity and process improvements (Koch, 1993; Kuvaja, Simila et al., 1994;
El Amam, Drouin et al., 1997) Many organisations are assessing their
processes using the CMM and have the declared objective to move to a gi\ en
level of maturity (usually either 2 or 3) within some defined timescale.
Experience has shown that moving from one level to another takes several
years in most organisations. As yet, few organisations have reached the higher
levels of the model.
PROCESS IMPROVEMENT 47
Figure 2.1 I
Requirements
engineering
process
maturity.
48 REQUIREMENTS ENGINEERING PROCESSES
Define a standard Initial Define a standard for requirements documents which includes all
document structure relevant system information.
Uniquely identify each Initial Make sure that each requirement has a unique identifier and that
requirement this identifier is always used to refer to that requirement.
Define policies for require¬ Initial Have an explicitly defined change management processes and put
ments management procedures in place to assure that this process is followed.
Use checklists for require¬ Initial Develop checklists of potential problems and explicitly check off
ments analysis these problems during the requirements validation process.
Use scenarios to elicit Repeatable Develop a set of usage scenarios and use these with stakeholders
requirements to elicit their specific requirements.
Reuse requirements Defined Wherever possible, reuse requirements from previous systems as
these will (to some extent) have already been validated.
Specify systems using Defined If you are involved in the development of critical systems, use a
formal specification mathematical specification language to specify the functionality of
the system.
Figure 2.12
Examples of
good practice
guidelines
♦ Key Points
♦ A spiral model of the requirements engineering process illustrates that the process
is iterative and involves repetition of elicitation, analysis and validation activities.
♦ Exercises
2.1 Explain why there is a great deal of variability in the requirements engineering
processes used in different organisations.
2.2 Define an activity model of the processes of checking a book out of a library,
making an omelette and installing some new software on your computer (this can
be very challenging!). You should choose an appropriate level of granularity for the
models.
2.3 Explain why both coarse-grain and fine-grain activity models of a process should
be produced in an organisation.
2.4 Explain why the waterfall model of the software process is not an accurate reflec¬
tion of the detailed software processes in most organisations. Why is a spiral model
more realistic?
2.5 Why is it important to understand the roles of people involved in requirements
engineering processes?
REFERENCES 51
2.6 Suggest four reasons why CASE tools have not been as effective in improving
productivity as was suggested in the 1980s. Do these reasons apply to CASE tools
for requirements engineering?
2.7 What are the key questions which must be answered when planning improvements
to business processes? What factors are likely to be particularly significant when
considering requirements engineering process improvement?
2.8 Apart from the practices shown in Figure 2.12, suggest other good practices which
might be incorporated into requirements engineering processes.
♦ References
Alford, M. W. (1985). SREM at the Age of Eight: The Distributed Computing Design
System. IEEE Computer 18(4): 36-46.
El Amam, K., Drouin,}., et al. (1997). SPICE: The Theory and Practice of Softioare Process
Improvement and Capability Determination. Los Alamitos, California: IEEE Computer
Society Press.
Hall, A. (1996). Using Formal Methods to Develop an ATC Information System. IEEE
Software 13(2): 66-76.
Ince, D. (1994). ISO 9001 and Software Quality Assurance. London: McGraw-Hill.
Kuvaja, P„ Simila, et al. (1994). Software Process Assessment and Improvement: The
BOOTSTRAP Approach. Oxford: Blackwell Publishers.
Paulk, M. C., Curtis, B„ et al. (1993). Capability Maturity Model, Version 1.1. IEEE
Software 10(4): 18-27.
Paulk, M. C., Weber, C. V., et al. (1995). The Capability Maturity Model: Guidelines for
Improving the Softivare Process. Reading, Massachusetts: Addison-Wesley.
Sommerville, I., Rodden, T., et al. (1993). Integrating ethnography into the require¬
ments engineering process. RE'93, San Diego California, IEEE Computer Society Press.
Sommerville, I., and Sawyer, P. (1997). Requirements Engineering:A Good Practice Guide.
Chichester: John Wiley & Sons.
Spivey, J. M. (1992). The Z Notation: A Reference Manual, 2nd edition. London: Prentice-
Hall.
♦ Further reading
Exploring Requirements: Quality before Design (D.C. Gause and G. M. Weinberg). This
book does not specifically discuss the requirements engineering process as such but
focuses on non-technical issues and human factors. This gives the reader a different
perspective on the practicalities of requirements engineering.
Requirements Elicitation
3 and Analysis
♦ Contents
3.3 Prototyping
♦ Summary
Problem analysis is the activity that encompasses learning about the problem
to be solved (often through brainstorming and/or questioning), understanding
the needs of potential users, trying to find out who the user really is, and
understanding all the constraints on the solution
Figure 3.1
Components of
requirements
elicitation.
2. Problem understanding
The details of the specific customer problem where the system will be
applied must be understood. Therefore, for a cataloguing system, you
must understand how a particular library organises its collection; for a
railway signalling system, you must know the way in which speed limits
are applied to particular track segments. During problem understanding,
you specialise and extend general domain knowledge.
3. Business understanding
Systems are generally intended to contribute in some way to the devel¬
opment of a business or organisation. You must understand how these
systems interact and affect the different parts of the business and how
they can contribute to overall business goals.
directly or indirectly from the system. They all may use different criteria to
judge the system's acceptability.
The multi-dimensional nature of requirements elicitation, as shown in
Figure 3.1, is reflected in the problems faced by requirements engineers when
trying to understand system requirements.
2. People who understand the problem to be solved are often too busy
solving the problem without any new system. They can't spend a lot of
time helping requirements engineers understand the requirements for
a new system. They will not necessarily be convinced of the need for a
new system so may not want to be involved in the requirements engi¬
neering process.
4. Stakeholders often don't really know what they want from the computer
system except in the most general terms. Even when they have a dear
idea of what they would like the system to do, they often find this diffi¬
cult to articulate. They may make unrealistic demands because they are
unaware of the costs of their requests. Different stakeholders have
different requirements and may express these in quite different ways.
Analysts must discover all potential sources of requirements and should
expose requirements commonalities and conflicts.
All of these factors mean that structured methods are not very useful for
requirements elicitation. In general, most of these methodsjcan only be used
to support analysis after some initial elicitation has been carried out. To use
a method, you need a generaTunderstanding of the application domain and
the problem to be solved. Methods do have a place in the elicitation process
but their use must always be supplemented by a more general understanding
of the requirements from the problem domain and system stakeholders.
/'
1. Objective setting
The overall organisational objectives should be established at this stage.
These include general goals of the business, an outline description of the
problem to be solved and why the system may be necessary and the
constraints on the system such as budget, schedule and inter-operability
constraints.
58 REQUIREMENTS ELICITATION AND ANALYSIS
Requirements
negotiation
3. Knowledge organisation
The large amount of knowledge which has been collected in the previous
stage must be organised and collated. This involves identifying system
stakeholders and their roles in the organisation, prioritising the goals of
the organisation and discarding domain knowledge which does not
contribute directly to the system requirements.
Establish objectives Understand background Organise knowledge Collect requirements Figure 3.3
A generic
Business Organisation Stakeholder Stakeholder requirements
goals al structure identification requirements elicitation
process.
Goal Domain
Problem to —► Application *- prioritisation requirements
be solved domain
Domain Organisation
System Existing al
knowledge
constraints systems requirements
filtering
n n n i i
1. Necessity checking
The need for the requirement is analysed. In some cases, requirements
may be proposed which don't contribute to the business goals of the
organisation or to the specific problem to be addressed by the system.
The
requirements
analysis and
negotiation
process.
Requirements negotiation
3. Feasibility checking
The requirements are checked to ensure that they are feasible in the
context of the budget and schedule available for the system development.
1. Requirements discussion
Requirements which have been highlighted as problematical are
discussed and the stakeholders involved present their views about the
requirements.
2. Requirements prioritisation
Disputed requirements are prioritised to identify critical requirements
and to help the decision making process.
3. Requirements agreement
Solutions to the requirements problems are identified and a compromise
set of requirements is agreed. Generally, this will involve making
changes to some of the requirements.
In many cases, of course, the analysis process will raise questions which can¬
not be answered and it may not be possible to reach agreement about changes
ELICITATION TECHN
♦ Partitioning
This is organisation of knowledge into aggregation relationships where
requirements knowledge is described in terms of its parts. For example,
in a booking system, a booking record may be defined as a flight refer¬
ence, a source and destination of the flight, the name and address of the
passenger, the fare paid and the date of travel.
♦ Abstraction
This is the organisation of knowledge according to general/specific rela¬
tionships. Requirements knowledge is described by relating specific
instances to abstract structures. Therefore, in a booking system, the
abstraction. Passenger, may be developed and used to refer to all classes
of passenger such as children or adults, people paying full-fare or
concessionary fares, etc.
♦ Projection
This is the organisation of knowledge from several different perspectives
or viewpoints. Different sources contribute different information about
the system and it is often important to explicitly identify these sources
during elicitation. For example, viewpoints on a booking system might
be travel agents, airline management, check-in desk operators, passen¬
gers, a bookings database, etc. This is the basis of viewpoint-oriented
requirements engineering, discussed in Chapter 7.
62 REQUIREMENTS ELICITATION AND ANALYSIS
Some of the many system failures which have been reported are a direct
consequence of these problems. Requirements engineers must be sensitive to
the needs of stakeholders and the demands made on their time. They should
not always assume that the specification of a system is a high-priority activity
for them.
3.2.1 Interviews
Interviews are a very commonly used technique of requirements elicitation.
The requirements engineer or analyst discusses the system with different
stakeholders and builds up an understanding of their requirements. There are,
basically, two types of interview:
explaining it. For example, for a librarian, it goes without saying that all
acquisitions are catalogued before they are shelved. However, this may
not be so obvious to a requirements engineer.
3.2.2 Scenarios
End-users and other system stakeholders find it easier to relate to real-life
examples rather than abstract descriptions of the functions provided by a
system. For this reason, it is often useful to develop a set of interaction
scenarios and to use these to elicit and clarify system requirements. Scenarios
are examples of interaction sessions which are concerned with a single type
of interaction between an end-user and the system. End-users simulate their
interaction using the scenario. Jhey explain to the requirements engineering
team what they are doing and the information which they need from the
system to carry out the task described in the scenario.
In addition, the process of developing a scenario, even without considering
user interaction, can help with requirements understanding. Discovering
possible scenarios exposes the range of possible system interactions and
reveals system facilities which may be required. Scenarios are a basic part
of some object-oriented analysis methods (Jacobsen, Christerson et al., 1993;
Fowler and Scott, 1997). Potts, Takahashi et al. (1994) and Gough, Fodemski
et al. (1995) give good descriptions of a scenario-based approach to require¬
ments analysis.
Scenarios can be thought of as stories which explain how the_svstem is
used. They are primarily useful for adding detail to an outline requirements
description. Once vuu have a basic idea of the facilities that a system should
provide you can develop usage scenarios around these facilities. You can
identify scenarios by initiaK^liscussionT\vith stakeholders who interact with
the system. For complex systemsTa Fairly large number (tens or hundreds) of
scenarios will usually be required.
Scenarios can be written in different ways but they should at least include
the following information.
4. The user selects one of the delivery options from the delivery menu.
This is a simple scenario but it doesn't cover what should happen if some¬
thing unexpected happens. We could add this to the natural language scenario
by including if clauses with each step. For example, step 3 could be amended.
This gives more detail but information such as some inputs and outputs
are still missing. These could also be added but as more and more informa¬
tion is included in the natural language scenario, it becomes harder and
harder to understand. As an alternative, a graphical representation of the
scenario may be developed as shown in Figure 3.5. In this case, the system is
idle before and after the scenario.
In Figure 3.5, the 'normal' flow of events is from left to right in the top
group of boxes. Each box shows some user action. Therefore, a user logs in
to the system, selects the 'order document' command, inputs the identifier of
the document required, confirms delivery and then logs out of the system.
66 REQUIREMENTS ELICITATION AND ANALYSIS
Operational terminal
Figure 3.5 The arrows at the top indicate control and showjhe condilinnsdhaGmust
Library scenario, be fulfilled Tailore control can move do the next action hn^_ THprpforp. a valid
user identifier and password must be input before an order can be placed,
the user must have permission to place and order, etc. If a control condition
is not satisfied then progress to the next stage is impossible.
Exceptions which may occur are shown beneath the associated action. The
exception boxes briefly set out the exception in the top part of the box and
describe the associated action in the bottom part of the box. Therefore, if the
user inputs an invalid document reference, he or she can retry or can enter
the help system to find out about document references.
Applying a scenario involves the requirements engineer and the system
end-user working through the scenario together with the engineer taking
notes of the user's comments, problems and suggestions. The end-user simu¬
lates the use of the system, following the scenario and points out areas where
the scenario is incorrect, simplistic, variable etc. The requirements engineer
may ask questions at various points about current user actions, how tasks are
carried out, who is involved in tasks, and what would happen if some alter¬
native approach was taken.
Scenarios take time to develop as they involve interaction with stakeholders
to understand what should happen. However, once available, they can be
reused in different systems. It may take 1 or 2 days to develop each scenario
depending on the complexity of the interaction. In an experiment with this
method, it was found that 88 scenarios were needed to describe interaction
with a medical system (Gough, Fodemski et al., 1995). Several months of effort
may therefore be needed to develop scenarios for a complex system. However,
scenario-based elicitation does not seem to require significantly more effort
that other approaches to elicitation for systems of a comparable size.
ELICITATION TECHNIQUES 67
Problem situation assessment This involves finding out about the situation where some problem exists.
It does not rely on pre-conceived problem descriptions but looks at the
whole organisational situation with an open mind. It involves finding out
who is involved, their perceptions of the situation, existing processesv etc.
Problem situation description The problem situation is described using ‘rich pictures’. Rich pictures are a
diagrammatic presentation of the organisation and the problem situation
which don’t rely on a limited set of symbols but where you can use any
appropriate icons (maps, schematic drawings, logos, etc.) to describe the
situation.
Abstract system definition One or more so-called ‘root definitions’ of the system are produced. A
from selected viewpoints root definition is produced from a particular viewpoint of world view and
should include information about customers who benefit from the system,
actors who are involved, transformations from inputs to outputs, the
world view from which the definition was produced, the system ‘owner’
and constraints on the system coming from its environment.
Conceptual system modelling Models of the system are produced which match the root definition.
These are called human-activity models and, a general method guideline is
that the activities in the model should be based on the verbs in the root
definition.
Model/real-world comparison The model produced is compared with the current situation in the real-
world. For each activity in the conceptual model, questions such as ‘is this
a real-world activity?’, ‘how can it be measured?’ are asked.
Change identification Based on the conceptual models and the model/real-world comparison a
set of possible changes to the existing real-world systems are identified.
These take into account what is desirable and what is feasible to
introduce into the organisation.
Recommendations for action The identified changes are assessed and a set of action recommendations
is produced.
Figure 3.6
The stages of and varies depending on the people involved, the physical environment and
soft systems the organisation in which the work takes place. People often find it very diffi¬
methodology. cult to explain how they carry out tasks and how they work together in
particular situations. Individuals and teams develop improvements to normal
ways of working and use tools and documents in an intuitive way. They may
not even realise what they are doing. When tasks become routine and people
don't have to consciously think about them, it becomes very difficult for them
to articulate how work is done.
Goguen and Linde (1993) give a good example of this type of task. They
point out that it is very difficult to describe how to tie a shoelace but easy to
ELICITATION TECHNIQUES 69
1. Assume that the people you are studying are good at doing their job
and look for non-standard ways of working. These often point to effi¬
ciencies which have been introduced through individual experience.
3. Detailed notes of all work practices should be made during the obser¬
vation and written up on a regular basis. The ethnographer must analyse
70 REQUIREMENTS ELICITATION AND ANALYSIS
5. Although video tapes and audio tape records of work can sometimes be
useful, they take a long time to process and are therefore very expensive.
Large-scale recording is impractical.
Figure 3.7
Using
ethnography in
requirements
elicitation.
elicit requirements. It then involves users in the system design process. This
approach seems to have been primarily used for interactive systems design
where user interface design is critical. However, the basic principles should
be applicable to other types of computer-based system.
For many systems, more than 50% of the requirements may fall into these
classes so there is considerable scope for cost savings by requirements reuse.
PROTOTYPING 73
The primary reason why costs are saved is that the reused requirements have
already been analysed and validated in other systems. Although some
analysis and validation is still required to check that the requirements are
appropriate, the time and effort needed should normally be less than for 'new'
requirements.
Ofjcourse, the danger with j-equirements reuse is that, when reused in a
different context from that in which they were developed, there may be unex¬
pected problems. There may be unanticipated interactions between the reused
requirements and 'new' requirements. As the reused requirements have
already been analysed, time and resource pressures may mean that analysis
may miss these problems. Considerable rework may be required when they
come to light at later stages in the process.
Currently, requirements reuse is an informal process which depends on the
individual knowledge of requirements engineers. As such, it is widely prac¬
tised but, clearly, a more systematic approach to requirements reuse is likely
to yield larger cost savings. We are not aware of any techniques which have
been found to be successful for requirements reuse although the ideas in design
'patterns' (Gamma, Helm et al., 1995) seem to have potential in this area.
3.3 Prototyping
Of course, there is not a hard and fast division between these different
approaches to prototyping. Sometimes, for good business reasons, throw-away
prototypes of software may evolve into the final delivered system. This is par¬
ticularly common when there are problems in meeting the delivery schedule
for a re-implementation of the prototype. However, although this can lead to
short-term gains, there are usually long-term costs. Prototypes are usually
poorly structured so the costs of maintenance and system evolution are high.
Consequently, the overall lifetime of the system is relatively short.
The principal-benefii-of developing a-preritrtype-during requirements elic¬
itation _is thaUb-crtfoWs^oistomers andend-users of the system to experiment
with the software. They can develop an understanding of howThe'System can
be used to support their work^JZeopIeiind it difficult to visualise-how a
writtem^aiemerU-oHrequirerm'nts will translate~irtto an executable-software
system. With a prototype system to demonstrate requirements which they
don't fully understand, stakeholders find it easier to discover problems and
suggest how the requirements may be improved.
As well as serving as an experimental system, there are other benefits from
developing a system prototype during the requirements engineering process.
♦ The prototype may help to establish the overall feasibility and useful¬
ness of the system before high development costs are incurred.
outputs are not the same, this suggests that an error or an inconsistency
may have been introduced into the software.
There are, of course, costs and problems associated with prototyping and
these must be traded-off against the benefits of this approach. These include
the following.
1. Training costs
If a company does not have experience of prototype development,
developers must be trained in the use of a prototyping environment
or in the particular prototyping techniques discussed in the following
section.
2. Development costs
These obviously depend on the type of system being prototyped and the
prototyping method which is used. They can range from a few person
days for small systems to several person-years for very large system
prototypes.
4. Incomplete prototyping
Prototyping can only simulate the functionality or the final system and
is of little help in determining the emergent system requirements. In fact,
it can mislead users, as they may think that the system as a whole will
have the same performance and reliability characteristics as the proto¬
type. They may express their requirements with this in mind.
Most organisations have found that taking the time to develop a system
prototype is worthwhile. Although initial development costs are Kigher, the
requirements are more likely to reflect the real neec^oHfhe~rttstomer. There
is less need for requirements rework after the system has gone into service.
76 REQUIREMENTS ELICITATION AND ANALYSIS
ment. However, they do have restrictions which are inherent in the inter¬
action facilities which they provide. These limitations may mean that
some facilities (e.g. navigation around a database by using a graphical
visualisation of the data) may be impossible.
Unnecessary requirements Is the requirement ‘gold plating’? That is, is the requirement a
cosmetic addition to the system which is not really necessary.
Use of non-standard hardware Does the requirement mean that non-standard hardware or software
must be used? To make this decision, you need to know the computer
platform requirements.
Conformance with business goals Is the requirement consistent with the business goals defined in the
introduction to the requirements document?
Requirements ambiguity Is the requirement ambiguous i.e. could it be read in different ways by
different people? What are the possible interpretations of the
requirement? Ambiguity is not necessarily a bad thing as it allows
system designers some freedom. However, it has to be removed at
some stage in the development process.
Requirements realism Is the requirement realistic given the technology which will be used to
implement the system?
Requirements testability Is the requirement testable, that is, is it stated in such a way that test
engineers can derive a test which can show if the system meets that
requirement?
Figure 3.8
overlaps. To help with this process, an interaction matrix can be constructed
Analysis
which displays this information. The simplest way to construct an interaction
checklist items.
matrix is to use a spreadsheet program and to label the rows and the columns
of the spreadsheet with the requirement identifiers. Each requirement is then
considered and compared with other requirements. You then fill in values in
the spreadsheet cells as follows:
If you can't decide whether requirements conflict, you should assume that
a conflict exists. If ymi assume a conflict where none exists then it is usually
fairly cheap-ter fix this problem; it can be much m oTtTex pensive Jo reso 1 v e
irpdptprtpd conflicts.
Figure 3.9 shows an example of an interaction matrix where 6 requirements
are compared.
80 REQUIREMENTS ELICITATION AND ANALYSIS
Figure 3.9
An interaction Requirement Rl R2 R3 R4 R5 R6
matrix.
Rl 0 0 1000 0 1 1
R2 0 0 0 0 0 0
R4 0 0 1000 0 1 1
R5 1 0 0 1 0 0
R6 1 0 1000 1 0 0
In the interaction matrix shown in Figure 3.9, we can see that R1 overlaps
with R3 and conflicts with R5 and R6; R2 is an independent requirement; R3
overlaps with Rl, R4 and R6 and so on. These overlaps and conflicts have to
be discussed and resolved during requirements negotiation.
The advantage of using nnmerie values Tor conflicts and overlaps is that
yon can then sum each row and column to Jind .themumber of conflicts (i.e.
the remainder when the total is divided by 1000) and the number of over¬
laps (the total divided by 1000). Requirements which have high values for
one or both of these figures should be carefully examined as part of the
analysis process. A large number of conflicts or overlaps means^that any
changes to that requlremenfwittprobably have a major impact on the rest of
the systemT"
Interaction ^matrices only worTyvheiLihereds-a^relaliyely small number of
requirements as they require each requirement to be compared with every
other requirement in the system. The upper size limit is probably about 200
requirements.
inevitable. They reflect the fact that different stakeholders in the system have
different needs and priorities. Tou cannot produce a system that will
completely satisfy everyone. If you do not have open and explicit conflict
negotiation, sommsfakeholders are likely to be disgruntled and hostile to the
system.
Meetings are the most effective way to negotiate requirements and resolve
requirements conflicts. Conflict resolution meetings should be solely
concerned with resolving outstanding requirements problems. The meeting
should be attended by analysts who have discovered requirements conflicts,
omissions and overlaps and system stakeholders who can help resolve the
problems which have been discovered.
The negotiation meeting should discuss those requirements where prob¬
lems cannot be resolved by informal discussions between stakeholders and
analysts. All requirements which are in conflict should be discussed individ¬
ually. You should not assume that decisions made for one requirement will
necessarily apply to related requirements.
The meeting should be conducted in three stages, as follows.
<3 £>Ao^s Av
flNCCLAv TO-
2T
1. An information stage where the nature of the problems associated with
a requirement is explained.
Meeting participants should be given copies of the results of the analysis (e.g.
requirements checklists.) and the meeting should be chaired by someone who is
not a stakeholder in the system. They should be independent, which makes it
easier for them to ensure that the views of all stakeholders are considered.
♦ Key Points
♦ Exercises
3.1 Using examples to support your answer, explain why domain knowledge is impor¬
tant in the requirements elicitation process.
3.2 Explain why it is simplistic to present requirements elicitation, analysis and negoti¬
ation as serial, sequential processes. Why is the spiral model shown in Figure 0.2
a better representation of these processes? What is the simplification in this model?
3.3 What are the advantages and disadvantages of interviewing as a requirements elic¬
itation technique. Explain how observation of work processes can be used to
supplement the information gained from interviews and discussions of the system
with stakeholders.
A stockholding system for oil companies which keeps track of the amount of petrol
(gas) at each of its sales outlets and automatically reorders new stock when the
tanks fall below a certain level.
A train protection system which will automatically bring a train to a halt if it exceeds
the speed limit for a track segment or if it goes through a red signal.
3.6 Explain why the combination of ethnography and prototyping is useful for require¬
ments elicitation.
3.7 What is the critical distinction between throw-away and evolutionary prototyping?
3.8 You have been asked to prototype the requirements for the EDDIS library system
which is discussed in Chapter 10. Giving reasons for your answer, suggest an appro¬
priate prototyping method which may be used.
3.9 Suggest two reasons why requirements may be ambiguous? Give examples of
possible ambiguities which may arise in a library system, a television scheduling
system or a fuel stock control system as described in Exercise 3.4.
84 REQUIREMENTS ELICITATION AND ANALYSIS
♦ References
Ackroyd, S., Harper, R., et al. (1992). Information Technology and Practical Police Work.
Milton Keynes: Open University Press.
Bentley, R., Rodden, T., et al. (1992). Ethnographically-informed Systems Design for
Air Traffic Control. CSCW'92, Toronto, Canada.
Bustard, D. W., Dobbin, T. J., et al. (1995). Integrating Soft Systems and Object Oriented
Analysis. Proc. ICRE'95, Colorado Springs, IEEE Press.
Checkland, P. (1981). Systems Thinking, Systems Practice. Chichester: John Wiley & Sons.
Fowler, M., and Scott, K. (1997). UML Distilled: Applying the Standard Object Modelling
Language. Reading, Massachusetts: Addison Wesley.
Gamma, E., Helm, R., et al. (1995). Design Patterns: Elements of Reusable Object-Oriented
Software. Reading, Massachusetts: Addison-Wesley.
Goguen, J. and Linde, C. (1993). Techniques for Requirements Elicitation. Proc. RE'93,
San Diego, California, IEEE Computer Society Press.
Gough, P. A., Fodemski, F. T., et al. (1995). Scenarios - An Industrial Case Study and
Hypermedia Enhancements. Proc. RE'95, York, UK, IEEE Press.
Harper, R., Hughes, J., et al. (1991). Harmonious Working and CSCW: Computer
Technology and Air Traffic Control. In: Studies in Computer-Supported Cooperative Work.
Eds J. M. Bowers and S. D. Benford. Amsterdam, Kluwer: 225-34.
Heath, C., Jirotka, M., et al. (1993). Unpacking collaboration: the interactional organi¬
sation of trading in a city dealing room. ECSCW’93, Milan.
Holtzblatt, K. and Beyer, H. (1993). Making Customer-Centred Design Work for Teams.
Communications of the ACM 36(10): 93-103.
Hughes, J., O'Brien, J., et al. (1995). Presenting Ethnography in the Requirements
Process. Proc. RE'95, York, UK, IEEE Computer Society Press.
Potts, C., Takahashi, K., et al. (1994). Inquiry-based Requirements Analysis. IEEE
Software 11(2): 21-32.
Suchman, L. (1987). Plans and Situated Actions. Cambridge: Cambridge University Press.
Yeh, R., and Zave, P. (1980) Specifying Software Requirements. Proceedings of the IEEE
68(9): 1077-85.
♦ Further reading
The Role of Ethnography in Interactive Systems Design (J. Hughes, V. King, T. Rodden,
H. Andersen, ACM Interactions, II.2, 56-65, April 1995). A general introduction to
ethnography and its use in analysing work processes with a view to understanding
their automation requirements.
Requirements Validation
4
♦ Contents
4.2 Prototyping
♦ Summary
ments, i.e. check the requirements to certify that they represent an acceptable
description of the system which is to be implemented. Thpjmrp« invplvpg
system stakeholders, requirements engineers and svstpm designprs—wtro
analyse the requirements for problems, omissions and ambiguities.
88 REQUIREMENTS VALIDATION
2. Organisational standards
The requirements validation process should check conformance with
company standards. Therefore, whatever standards are relevant for the
requirements document should be an input to the validation process.
3. Organisational knowledge
This is not a tangible input but is, in practice, very important. The people
involved in requirements validation may know the organisation, its
particular terminology and its practices and the skills of the people
involved in developing and using the system. This implicit knowledge
is very important as the same requirements may be closely linked to
organisational structure, standards and culture.
1. A problem list
This is a list of reported problems with the requirements document.
Ideally, it should be organised into problem type, e.g. ambiguity, incom¬
pleteness, etc. In practice, however, it is often difficult to classify problems
in this way.
2. Agreed actions
This is a list of actions in response to requirements problems which have
been agreed by those involved in the validation process. There is not
necessarily a 1:1 correspondence between problems and actions. Some
problems may result in several corrective actions; others may simply be
noted but with no associated corrective action.
vVK
X^
4.1 Requirements reviews
Figure 4.2
The
requirements
review process.
Follow-up Revise
actions document
Graham, 1993). The review process model described here is based on this
work and on our experience of requirements reviews.
Figure 4.2 shows a simple process model for the requirements review process.
The principal stages in the review process are as follows.
1. Plan review
The review team is selected and a time and place for the review meeting
is chosen.
2. Distribute documents
The requirements document and any other relevant documents are
distributed to the review team members.
5. Follow-up actions
The chair of the review checks that the agreed actions have been carried
out.
6. Revise document
The requirements document is revised to reflect the agreed actions. At
this stage, it may be accepted or it may be re-reviewed.
92 REQUIREMENTS VALIDATION
1. Requirements clarification
The requirement may be badly expressed or may have accidentally
omitted information which has been collected during requirements elic¬
itation. The author should improve the requirement by rewriting it.
2. Missing information
Some information is missing from the requirements document. It is the
responsibility of the requirements engineers who are revising the docu¬
ment to discover this information from system stakeholders or other
requirements sources.
3. Requirements conflict
There is a significant conflict between requirements. The stakeholders
involved must negotiate to resolve the conflict.
4. Unrealistic requirement
C.The requirement does not appear to be implementable with the tech¬
nology available or given other constraints on the system. Stakeholders
must be consulted to decide whether the requirement should be deleted
or modified to make it more realistic.
Reviews involve a lot of time and expense so it makes sense to minimise the
work of reviewers. Jurors which are avoidable and which can be detected
without a full review should be removed from the requirements document
beforeTt is circulated to the revie^Lleam. Avoidable errors are usually those
errors which can be detected automatically such as spelling mistakes and
errors of non-conformance to organisational standards.
Before distributing the requirements document for general review, one per¬
son should carry out a quick standards check to ensure that the document
structure and the defined requirements are consistent with whatever standards
have been defined. They should also process the document with whatever
automatic checkers are available to remove spelling mistakes, cross-reference
errors, etc. This is illustrated in Figure 4.3.
This is a quick and cheap way to check standards conformance as only one
person is needed to carry out this type of check. It is not worth everyone
involved in the review process checking the document against the standard
and all reporting the same standards deviations. Furthermore, checking
against a standard can quickly reveal problems with the requirements. If a
requirements document does not conform to company standards, it may
indicate large-scale problems with the requirements specification which
require management intervention for their solution.
An analyst or an engineer who is familiar with the requirements standards
but who has not been involved in the system requirements specification
should be responsible for this initial document check. It is not necessary for
the document checker to understand the requirements in detail. The checker
should compare the structure of the requirement document to the defined
standard and should highlight missing or incomplete sections. The search and
outline facilities provided with most word processing systems may be used
to find parts of the document and display the document structure. Individual
requirements should also be checked for standards conformance.
This initial check should also check that all pages in the document are num¬
bered, that all diagrams and figures are labelled, that there are no requirements Figure 4.3
Pre-review
checking.
94 REQUIREMENTS VALIDATION
which are unfinished or labelled 'To be completed and that all required appen¬
dices in the document have been included.
After the initial checking process is complete, there are two possible options
if deviations from the standard are found.
♦ Note the deviations from the standards and distribute this to document
reviewers. This saves the time and cost of creating a new version of the
requirements document. However, the deviations from standards may
make it harder for reviewers to understand the requirements.
Unless the requirements document is very large, this initial check of the
requirements should not normally take more than a day. The saving in time
for other document reviewers is therefore significant.
Selecting the right membership for the requirements review team is important.
Ideally, thejequirements document should be reviewedT>y a multi-discjplinary
tyarn drawn from people with different backgrounds..If possible^ the_team
should include a system end-user or end-user representatix e, a customer repre¬
sentative, one or more domain experts, engineers who will be responsible for
system design and implementation and requirements engineers.
The advantages of involving stakeholders"from-different disciplines are as
follows.
The review team should include different stakeholders who have been
involved in the requirements elicitation. If this is not possible, there should
be at least one domain expert and one end-user involved in the process.
System developers should become involved at this stage as they may find
requirements which are particularly difficult to implement. If these can be
REQUIREMENTS REVIEWS 95
discovered and modified before design and implementation, this can save a
lot of effort and expense.
Unlike program inspections where 4 or 5 members is the normal team size,
requirements reviews may involve a varying number of people ranging from
3 to perhaps 10 people. There is no ideal size - it depends on the type and
size of the system and the number of stakeholders who are likely to be
affected by the system.
Inspections require a group of people with different skills and responsi¬
bilities to read documents. They must get together in the same place at the
same time to carry out the inspection. As the people involved may work for
different organisations or different parts of the same organisation this can be
very difficult. Therefore, it is sometimes necessary to make compromises. A
review team which is less than ideal but which can meet fairly quickly to
review the requirements may be better than a delayed review.
Understandability Can readers of the document understand what the requirements mean? This
is probably the most important attribute of a requirements document - if it
can't be understood, the requirements can’t be validated.
Completeness Does the checker know of any missing requirements or is there any
information missing from individual requirement descriptions?
Ambiguity Are the requirements expressed using terms which are clearly defined? Could
readers from different backgrounds make different interpretations of the
requirements?
Conformance to standards Does the requirements document and individual requirements conform to
defined standards? If there is a departure from the standards, is it justified?
Figure 4.4 a general rule, checklists should not be too long. If checklists have more than
Requirements
10 items, checkers cannot remember all items. They must continually re¬
quality
consult the checklist to remind themselves about its contents.
attributes.
Checklists can be distributed and used to remind people what to look for
when reading the requirements document. Alternatively, they can be used
more systematically where, for each requirement, an indication is given that
the checklist item has been considered. This may be done on paper or you
can manage this type of checklist completion by using a simple database or
a spreadsheet.
Figure 4.5
Checklist question Quality attribute Examples of
checklist
Is each requirement uniquely identified? Traceability, Conformance to standards questions.
Are specialised terms defined in the Understandability
glossary
Minimally, this means that EDDIS must provide a form for the user to
sign the Copyright Declaration statement. It also means that EDDIS must
keep track of Copyright Declaration statements which have been
signed/not-signed. Under no circumstances must an order be sent to the
supplier if the copyright statement has not been signed.
Figure 4.6 shows some of the problems in this requirement which might
be revealed in a requirements review and recommendations which may be
agreed in a review meeting.
Other requirements for the EDDIS system are concerned with the user
interface. The intention is that distributed access to the system will be
provided through World-Wide-Web browsers. We see an example of redun¬
dancy and possible conflict in the requirements for the case study when we
consider requirements 8 and 11.
Figure 4.6
Problems with
Problem type Identified problem Recommendation
an individual
requirement. Incompleteness Requirement does not state Define all copyright
which international copyright legislation which is applicable
legislation is relevant. in a separate requirement
8.(i) The user interface will be html. Users will access EDDIS via stan¬
dard web browsers such as Netscape and Internet Explorer.
8.(ii) EDDIS will be primarily an end-user sysem. Users will use the
system within the constraints of the permissions assigned by the admin¬
istrator to identify, locate, order and receive documents.
11.(i) Users will communicate with EDDIS mainly via the html inter¬
face.
ll.(iii) EDDIS output to the user will be via the html interface, email
and print. The print output will mainly be documents supplied which,
because of copyright restrictions, must be printed and deleted immedi¬
ately upon receipt. The email output will be documents, messages from
the system and other output.
Figure 4.7 shows some of the problems with these requirements and the
associated meeting recommendations.
Figure 4.7
Problems with
Problem type Identified problem Recommendation
requirements
Completeness What versions of html and web Define the minimal HTML
browsers are assumed in standard and the browser
requirements 8.(i) and 1 1 ? versions supporting that
standard.
100 REQUIREMENTS VALIDATION
It is not at all clear what requirement is actually being stated here. It clearly
represents some discussions which took place about the system management
but without more details of these discussions, the requirement is not under¬
standable. A review meeting should recommend that this 'requirement'
should either be deleted or should be more clearly expressed as a number of
'administration' requirements.
4.2 Prototyping
We have already discussed how a system prototype may be used for require¬
ments elicitation and analysis. People find it very difficult to visualise how a
written statement of requirements will translate into an executable software
system. If you develop a prototype system to demonstrate requirements,
stakeholders and other end-users find it easier to discover problems and
suggest how the requirements may be improved.
If a prototype has been developed for requirements elicitation, it makes
sense to use this later in the requirements engineering process for validation.
However^ if a prototype system is not already available, it is not likely to be
cost-effective to develop a prototype system only for requirements validation.
Prototypes for validation must be more complete than elicitation prototypes.
Elicitation prototypes can simply include those requirements which are partic¬
ularly difficult to describe or understand. They may leave out well-understood
PROTOTYP I N G 101
requirements. While a validation prototype need not include all system facili¬
ties, there must be a sufficient number of facilities implemented in a reasonably
efficient and robust way that end-users can make practical use of the system.
Otherwise, they won't be able to use the system in a natural way.
Elicitation prototypes usually have missing functionality and may not
include changes agreed during the requirements analysis process. It is there¬
fore usually necessary to continue development of the prototype during the
requirements validation process as shown in Figure 4.8. This figure also shows
the other process activities which should go on in parallel with prototype
development.
3. Execute scenarios
The users of the system work, usually on their own, to try the system
by executing the planned scenarios. It is best that users work alone
because they are then more likely to use the system in a realistic way
and will not be biased by the advice given by requirements engineers.
However, requirements engineers should spend some time observing
Figure 4.8
Prototyping for
requirements
validation.
how end-users make use of the system. This can reveal particular
problem areas and the coping strategies which users develop for dealing
with system features which they find useful but awkward to use.
4. Document problems
To be effective problems which users encounter must be carefully docu¬
mented. Its usually best to define some kind of electronic or paper
problem report form which users fill in when they encounter a problem
or want to suggest some change to the system.
2. It should be made clear which parts of the system are not implemented.
Manual writers should not leave users to find this out when problems
arise.
Part of the requirements specification for a system may consist of one or more
system models as discussed in Chapter 6. These models may be data-flow
models of the system's functionality, object models, event models, entity-
relation models, etc. The validation of these models has three objectives.
2. If there are several models of the systems, to demonstrate that these are
internally and externally consistent. That is, entities which are referenced
in more than one model should be defined to be the same in each model,
comparable items should have the same names and the model interfaces
should be consistent.
1. transformation name
3. transformation function
Explain what the transformation is supposed to do to convert inputs to
outputs.
4. transformation outputs
Gives the name of each output and lists where the output goes to.
5. control
Any exception or control information which is included in the model.
Update details
106 REQUIREMENTS VALIDATION
Figure 4.1 0
Paraphrased Check user
description of
Inputs and sources User’s library card from end-user
‘Issue’ data-flow
Transformation function Checks that the user is a valid library user
diagram.
Transformation outputs The user’s status
Check item
Inputs and sources The requested item from the end-user
Issue item
Inputs and sources None
Transformation function Issues an item to the library user. Items are stamped
with a return date.
in Chapter 6). These models have several advantages over structured models
as they have a much more complete semantics and their consistency can be
proved mathematically. However, it is usually the case that only a few people
in an organisation can understand formal models so a translation to natural
language is essential to validate that they reflect the real requirements of the
system.
♦ Is it possible to check the requirement using a single test or are multiple test
cases required? If you need several tests, it may mean that there is more
than one requirement embedded in a single requirement description.
♦ Could the requirement be re-stated so that the required test cases are
fairly obvious?
A test record form should be designed and filled in for each requirement
which is 'tested'. This should include at least the following information.
2. Related requirements
These should be referenced as the test may also be relevant to these
requirements.
3. Test description
A brief description of the test which could be applied and why this is
an objective requirements test. This should include system inputs and
the corresponding outputs which are expected.
4. Requirements problems
A description of requirements problems which made test definition diffi¬
cult or impossible.
10.(iv) When users access EDDIS, they will be presented with web pages
and all the services available to them
Figure 4.11 shows the requirements test form which documents the test for
that requirement:
When designing requirements tests, the test designer need not be concerned
with practicalities such as testing costs, avoiding redundant tests, detailed test
data definition, etc. It isn't necessary to propose real tests which will be
applied to the final system. The tester can make any assumptions that he
wishes about the way in which the system satisfies other requirements and
the ways in which the test may actually be carried out.
However, wherever possible, it makes sense to try and design tests which
can be used as system tests. These are applied after implementation as part
of the system verification and validation process. By reusing requirements
tests in this way, the overall costs of test planning may be reduced.
There are problems, however, in designing tests for some types of require¬
ment.
1. System requirements
These are requirements which apply to the system as a whole. In general,
these are the most difficult requirements to validate irrespective of the
method used as they may be influenced by any of the functional require-
Figure 4.1 I
Requirements tested: 10(iv)
Requirements
test form. Related requirements: 10i), 10(ii), 10(iii),
10(vi), 10 (vii)
merits. Tests, which are not executed, cannot test for non-functional
system-wide characteristics such as usability.
2. Exclusive requirements
These are requirements which exclude specific behaviour. For example,
a requirement may state that system failures must never corrupt the
system database. It is not possible to test such a requirement exhaus¬
tively so, again, confidence simply increases with the number of system
tests.
♦ Key Points
♦ Requirements validation should focus on checking the final draft of the require¬
ments document for conflicts, omissions and deviations from standards.
♦ The inputs to the validation process are the requirements document, organisational
standards and implicit organisational knowledge. The outputs are a list of require¬
ments problems and agreed actions to address these problems.
♦ Reviews are the most widely used form of requirements validation. They involve
a group of people making a detailed analysis of the requirements.
♦ Review costs can be reduced by checking the requirements before the review for
deviations from organisational standards. These may result from more serious
requirements problems.
♦ Checklists of what to look for may be used to drive a requirements review process.
♦ System models may be validated by paraphrasing them. This means that they are
systematically translated into a natural language description.
♦ Designing tests for requirements can reveal problems with the requirements. If the
requirement is unclear, it may be impossible to define a test for it.
NO REQUIREMENTS VALIDATION
♦ Exercises
4.1 Explain why it is useful to involve people from different technical backgrounds in
a requirements review team.
4.2 Give four examples of problem types which may be discovered in a pre-review
check of a requirements document.
4.3 Using the natural language requirements for the EDDIS system, find examples of
problems of ambiguity, completeness and consistency in these requirements.
4.4 A centralised lock control system which controls the locks of all external doors
in University buildings is to be implemented. Some requirements for this system
are as follows.
A. Staff and students are issued with a card which provides them with access to
those buildings which they are authorised to use after normal working hours.
B. Access is implemented by wiping a personalised card through a card reader
and, if entry is allowed, the door lock is released.
C. Users must use the card to both enter and leave locked buildings.
E. If a card is lost, it should be reported to the security office who will issue a
new card and arrange for all access rights associated with the old card to be
cancelled.
Review these requirements using the checklist suggested in Figure 4.4 and discover
possible problems with them.
4.6 Why is it important to choose testers for a prototype rather than simply accept
anyone who volunteers for the job.
4.7 What validation problems might arise if a system prototype used in the validation
process exhibited very poor performance.
4.8 In checks of object models of a system, give examples of two problems which
can be discovered automatically by CASE tools and two problems which can only
be discovered by manual inspection.
4.10 Suggest tests which might be developed to validate the following requirements
for a centralised lock control system. Do these tests give any insights into possible
requirements problems?
F. The system shall provide a facility for an administrator to print the names
and card numbers of all users of an individual lock.
FURTHER READING III
G. The system shall allow a system administrator to change the access permis¬
sions of a user and thus forbid access to some or all rooms.
H. The lock control system shall allow the times at which individual users use
individual doors for access to be specified.
♦ References
Barnard, J. and Price, A. (1994). Managing Code Inspection Information. IEEE Software
11(2): 59-69.
Fagan, M. E. (1976). Design and code inspections to reduce errors in program devel¬
opment. IBM Systems journal 15(3): 182-211.
Gilb, T., and Graham, D. (1993). Software Inspection. Wokingham: Addison Wesley.
Weller, E. F. (1993). Lessons from Three Years of Inspection Data. IEEE Softxvare 10(5):
38-45.
Further reading
Twenty-two Tips for a Flappier, Healthier Prototype (J. Rudd and S. Isensee, ACM
Interactions, 1(1), 1994). An easy-to-read article which gives good practical advice on
developing prototypes which will be acceptable to end-users.
Requirements Engineering - A Good Practice Guide (I. Sommerville and P. Sawyer, Wiley,
1997) This book is written for practising requirements engineers and gives simple,
pragmatic advice on requirements engineering. The chapter on requirements valida¬
tion covers, in more detail, some of the topics introduced here.
Requirements Management
♦ Contents
5.4 Traceability
♦ Summary
Figure 5.1
Factors leading Change factor Description
to requirements
Requirements errors, As the requirements are analysed and implemented,
change.
conflicts and errors and inconsistencies emerge and must be
Organisational changes The organisation which intends to use the system may
change its structure and processes resulting in new
system requirements
1. Mutable requirements
These are requir^euts-whieh ehaRge-bucausa.af-ehangps to the environ-
mentTn which The system is operating. For example, the requirements for a
system which computes tax deductions evolve as the tax laws are changed.
2. Emergent requirements
These are requirements which cannot be completely defined when the
system is specified but which emerge as the system is designed and
implemented. For example, it may not be possible to specify, in advance,
the details of how information should be displayed. As stakeholders see
examples of possible presentations, they may think of new ways of
presenting information that would be useful to them.
3. Consequential requirements
These are requirements which are based on assumptions about how the
system will be used. When the system is put to use, some of these
assumptions will be wrong. Users will adapt to the system and find new
ways to use its functionality. This will result in demands from users for
system changes and modifications.
4. Compatibility requirements
These are requirements which depend on other equipment or processes.
As this equipment changes, these requirements also evolve. For example,
an instrument system in a power station control room may have to be
modified when a new type of information display is added.
Figure 5.2
Techniques for
Identification method Description
requirements
identification. Dynamic renumbering Some word processing systems allow for automatic
renumbering of paragraphs and the inclusion of cross-
references. You can therefore assign a number to a
requirement at any time. As you re-organise your
document and add new requirements, the system keeps
track of the cross-reference. It automatically renumbers
your requirement depending on its chapter, section and
position within the section. All references to the
requirement are also renumbered.
2. The facilities available for searching the requirements are limited to what¬
ever word processor searching facilities are available. It is not usually
easy to find groups of requirements which have common characteristics.
facilities (Brown, Earl et al., 1992) or, at least, provision for these facilities to
be implemented. Databases usually include facilities for browsing and report
generation. Related requirements are linked and simple scripts which scan
the database, extract parts of the record for each requirement and generate
skeletons of the requirements document may be developed.
Relational databases are now the most commonly used type of database.
Relational databases were designed for storing and managing large numbers
of records which have the same structure and minimal links between
them. A requirements database, however, may have relatively few records
(hundreds rather than hundreds of thousands) each of which includes many
links such as links to documents, text files and other requirements. Main¬
taining these links is possible with a relational database but it is inefficient.
It requires operations on several different tables. For very large numbers of
requirements, this type of database may be too slow.
Object-oriented databases have been developed relatively recently and are
structurally more suited to requirements management. They are better than
relational databases when there are many different types of entity to be
managed and where there are direct links between different entities in the
database. They allow different types of information to be maintained in
different objects and managing links between objects is fairly straightforward.
Figure 5.3 shows a set of object classes which could be defined in an object-
oriented requirements database.
The central class is REQUIREMENT which has 11 associated attributes.
1. Identifier
This is a simple text string which is assigned when a requirement object
is created and entered in the database.
Figure 5.3
2. Statement
Object classes
This is a statement of the requirement which may be natural language
for a text or a graphical description of some kind (e.g. a timing diagram).
requirements
database.
3. Date_entered
The date that the requirement was originally entered in the database.
4. Date_changed
The date of the last alteration to the requirement.
5. Sources
This is a reference to one or more of the sources of the requirement. This
helps with analysis when changes to the requirement are proposed.
6. Rationale
This is a reference to a set of information which provides a rationale
explaining why the requirement has been included. The associated infor¬
mation may include text, diagrams or photographs.
7. Status
This is a variable representing the status of the requirement. The status
may be 'proposed', 'under review', 'accepted', or 'rejected'. Rejected
requirements should be maintained in the database as they may be
proposed again in future. The analysis of the new proposal is simplified
if previous information is available.
8 Dependants
This is a list of references to requirements which are dependent on this
requirement (i.e. if this requirement is changed, they may also have to
be changed)
9. Is_dependent_on
This is a list of references to requirements on which this requirement
depends. The ls_dependent_on relationship is therefore the inverse of
Dependants.
10. Model_links
This is a link to one or more system models which add detail to the
requirement
11. Comments
This is any other information which may be useful. In practice, it is
almost impossible to define a schema which covers everything, and
having a general description field is often very useful.
This schema does not allow for links between the requirements and other
design or implementation information. If a single database is used to store all
of the documents from a systems engineering process (designs, source code,
I 22 REQUIREMENTS MANAGEMENT
Figure 5.4
Factors
Factor Description
influencing the
choice of a The statement of Requirements may be expressed in a mixture of natural
distribution and computer of people, perhaps from different organisations, you need
CASE tool use CASE tools of different types may be used at other
stages in the development process. If these use a
database it clearly makes sense to use the same database
for requirements management.
through other client workstations or PCs. This is an expensive approach but the
power of these systems allows for fast database manipulation. They usually
have excellent report generation tools which can be used to create skeletal
requirements documents from the requirements database. These databases can
support many simultaneous users and provide good facilities for backup and
recovery in the event of system failure. Commercial requirements management
systems usually rely on such commercial databases for requirements storage.
1. The change request process and the information required to process each
change request.
2. The process used to analyse the impact and costs of change and the asso¬
ciated traceability information.
4. The software support (if any) for the change control process.
Figure 5.5
Stages in the a set of system requirements. This is obviously comparable to other change
change manage¬ management processes such as change management to delivered software.
ment process. The change management process can be thought of as a three-stage process
as shown in Figure 5.5.
2 qqie proposed changes are analysed to see how many requirements (and,
if necessary, system components) are affected by the change and roughly
how much it would cost, in both time and money, to make the change.
The specific processes for problem analysis and change implementation are
dependent on the type of change, the requirements affected and the type of
requirements document. However, change analysis and costing is a more
general process, as shown in Figure 5.6.
Requirements Cost
' ’ changes information ^-
Propose Assess cost
Assess costs
requirements acceptability
of change
changes
t
Customer
Rejected request t
Customer
Rejected
request
information information
CHANGE MANAGEMENT 125
5. The costs of making the changes are estimated. This estimate should
include both the effort required to make the change and the amount of
calendar time needed. The availability of resources to implement the
change must also be considered.
♦ If the cost of implementing the change is too high or takes too long.
During the change management process, information about the change and
about the system is passed to and from a number of different people. To help
keep track of what stage in the process has been reached and to formally
document the change request, it is usual for a change request form to be
126 REQUIREMENTS MANAGEMENT
1. The initial proposer of the change and the person in the library respon¬
sible for liaison with the system developers. They fill in a description of
the required change.
2. The person in the system developer responsible for liaison with the
library. They check if the requested change is valid and fill in the appro¬
priate fields in the change request form. Often, people request changes
which have already been agreed or which are already in the system and
these changes are rejected at this stage.
4. System designers who assess the effects of the change on the system
design and, again, assess its impact and costs. Both requirements engi¬
neers and system designers document their analysis on the change
request form.
5. Managers from the library and the system developers who decide if it
is cost-effective to accept the change proposal.
2. date fields showing when the activity started and when it was passed
to a later activity
3. fields showing who was responsible for carrying out each activity
4. an overall status field which may have values such as rejected , under
consideration', 'accepted for immediate implementation', 'accepted for
later implementation', etc.
The general problem with these tools is that they all have their own implicit
model of the change process. Organisations which adopt these tools must con¬
form to that model. Special-purpose tools are also fairly expensive and there
may be difficulties when integrating these with other CASE tools used in an
organisation. For these reasons, specialised change support tools are mostly
used large organisations such as aerospace companies who are involved in
very large projects.
UIREMENTS MANAGEMENT
5.4 Traceability
Backward-from traceability
links requirements to their sources in other documents or people.
2. Forward-from traceability
links requirements to the design and implementation components.
TRACEABILITY 129
3. Backward-to traceability
links design and implementation components back to requirements.
4. Forward-to traceability
links other documents (which may have preceded the requirements
document) to relevant requirements.
Figure 5.8
Types of Traceability type Description
traceability.
Requirements-sources Links the requirement and the people or documents
R1 R3, R4 A traceability
R2 R5, R6 list.
R3 R4, R5
R4 R2
R5 R6
132 REQUIREMENTS MANAGEMENT
Figure 5.1 I
Factors
Factor Description
influencing
Number of requirements The greater the number of requirements, the more the traceability
need for formal traceability policies. However, complete policy
requirements-design traceability is impractical for large specialisation.
systems as there is too much information to maintain. If
there are a very large number of requirements, you have
to be realistic and limit the traceability information which
is maintained.
Project team size and With a small team, it may be possible to assess the
composition impact of proposed changes without structured
traceability information. With larger teams, however, you
need more formal traceability policies. This is particularly
true if members of the team work at different sites.
a project so project team members can (relatively) easily find the traceability
information they need. Maintaining a traceability manual is particularly
important for critical systems where it may be necessary to make a formal
case for system safety or security. The manual is a formal record which may
be used to show that components are independent or are unaffected by some
particular change proposal.
Traceability information must be regularly updated if it is to remain useful.
If the traceability manual is a paper document there will alwaysTBe the possi¬
bility that requirements engineers are working with an out-of-date document.
To avoid this possibility, the traceability manual should be implemented as a
networked electronic document rather than as a paper document. When trace-
ability information is required, the document is either consulted on-screen or
the relevant sections of the document are printed. The move towards
company-wide Intranets where information is accessed using Internet tech¬
nology now makes the maintenance of a web-based traceability manual
possible.
A traceability manual manager should have the responsibility of ensuring
that the traceability manual is kept up-to-date. He or she should work with
system developers to ensure that changes to the requirements/design, etc.,
have been incorporated in the manual and should review and update trace-
ability policies. The manager should be responsible for following up
deviations from traceability policies and ensuring that the necessary infor¬
mation is added to the traceability manual.
♦ Key Points
♦ Requirements which are concerned with the essence of a system are more likely
to be stable than requirements which are more concerned with how the system
is implemented in a particular environment. Types of volatile requirement include
mutable requirements, emergent requirements, consequential requirements and
compatibility requirements.
♦ Change management policies should define the processes used for change manage¬
ment and the information which should be associated with each change request.
They should also define who is responsible for doing what in the change manage¬
ment process.
♦ Some automated support for change management should be provided. This may
come through specialised requirements management tools or by configuring existing
tools such as spreadsheets and an electronic mail system to support the change
management process.
♦ Exercises
5.1 Suggest 5 reasons why the requirements for the EDDIS library system (see Chapter
10) might change.
5.2 Classify the following requirements from a library system as stable or volatile
requirements:
EDDIS will be configurable so that it will comply with the requirements of all UK
and (where relevant) international copyright legislation
EDDIS will support the management of ordering and supplying all types of docu¬
ments, both digitised and non-digitised
Users will access EDDIS via standard web browsers such as Netscape and Internet
Explorer
Users will log-in to EDDIS via accounts which will be created by the administrator.
There will be two types of accounts: individual and group accounts. In general, indi¬
vidual accounts will have access to more services than group accounts
5.3 Using the requirements database schema shown in Figure 5.3, write a program in
any suitable language which will create a requirements-requirements traceability
matrix for a set of requirements which are maintained in the database.
136 REQUIREMENTS MANAGEMENT
5.4 Using the information from Section 5.3, design a change control form for speci¬
fying requirements changes and the consequent change analysis.
5.5 Using the change analysis process described in Figure 5.6, suggest how software
which is commonly available on personal computers (word processor, spreadsheet,
etc.) could be used to support this process.
5.6 Suggest how prototyping (see Chapter 3) may be used in the requirements change
management process.
5.7 Explain why traceability matrices become difficult to manage when there are a large
number of requirements for a system. Suggest how the use of viewpoints (see
Chapter 7) may be used to help address this problem.
5.8 What are the advantages to an organisation of having a defined set of traceability
policies rather than asking each project manager to specify the traceability infor¬
mation which should be maintained.
♦ References
Andriole, S. J. (1996). Managing Systems Requirements: Methods, Tools and Cases. New
York: McGraw-Hill.
Brown, A. W., Earl, A. N., et al. (1992). Software Engineering Environments. London:
McGraw-Hill.
♦ Further reading
Considering the economic and practical importance of the topic, there is surprisingly
little good background information available on requirements management. Many
authors of requirements texts either don't mention it at all or only include a very brief
note on the topic.
Requirements
Engineering
Techniques
♦ Summary
The goals of the book are to introduce various techniques and methods for
requirements elicitation and formulation and to explain ‘how’ these techniques
may be applied during the requirements engineering process. Chapter 6 intro¬
duces structured techniques and methods. These include requirements tech¬
niques based on data-flow and object-oriented models and (briefly) techniques
based on formal methods. Chapter 7 describes emerging viewpoint-oriented
requirements engineering methods which support analysis of the system from
multipline perspectives. Chapter 8 covers non-functional requirements, dis¬
cusses why these are often critical for a system’s success and suggests some
techniques for modelling them. Chapter 9 develops some of the viewpoints
work introduced in Chapter 7 to explain how this approach may be used in
the specification of interactive systems. Lastly, Chapter 10 introduces a
detailed case study and shows how a viewpoint-based technique was used to
develop the system requirements.
V,
*
Methods for Requirements
Engineering
♦ Contents
♦ Summary
Requirements refer to the needs of the users. They include why the system is
being developed, what the system is intended to accomplish, and what design
constraints are to be observed. The process of formulating, structuring and
modelling requirements may be guided by a requirements method which is
a systematic approach to documenting and analysing system requirements.
Associated with the method is usually a notation that provides a means for
expressing the requirements. We believe that there are certain necessary
140 METHODS FOR REQUIREMENTS ENGINEERING
8. Tool support
Although notations and methods can provide much conceptual help
with the process of defining requirements, it is their incorporation into
or support by tools which make the biggest contribution to improving
our ability to manage complexity on large projects. System develop¬
ment generates a large amount of information that must be analysed. A
tool imposes consistency and efficiency on the requirements process
(Dorfman and Thayer, 1990).
1. Data-flow models
Data flow diagrams may be used to show how data is processed at
different stages in the system.
2. Compositional models
Entity-relationship diagrams may be used to show how some entities
are composed of other entities.
3. Classification models
Object/inheritance diagrams may be used to show how entities have
common attributes.
142 METHODS FOR REQUIREMENTS ENGINEERING
4. Stimulus-response models
State transition diagrams may be used to show how the system reacts
to internal and external events.
5. Process models
Process models may be used to show the principal activities and deliv¬
erables involved in carrying out some process.
The data-flow model is based on the notion that systems can be modelled as
a visualisation of the data interaction that the overall system or part of it has
with other activities, whether internal or external to the system. Data-flow
approaches use data-flow diagrams (DFDs) to graphically represent the
external entities, processes, data-flow, and data stores. Interconnections
between graphical entities are used to show the progressive transformation
of data. Figure 6.1 shows the data-flow diagram notation, first proposed by
Tom DeMarco (DeMarco, 1979). Variants of the notation have been proposed
by others (Ross and Schoman, 1977; Gane and Sarson, 1979; Orr, 1981). A DFD
is composed of data on the move, shown as a named arrow; transformations
of data into other data, shown as named bubbles; sources and destinations of
data, shown as rectangles called terminators; and data in static storage (i.e.
data store), shown as two parallel lines. Transformations form the basis for
further functional decomposition.
There is little uniformity in industry concerning the DFD notation. The
notation shown in Figure 6.1 was advanced by DeMarco; Gane and Sarson
use rounded rectangles for bubbles, shadowed rectangles for sources and
destinations, and squared-off C's for data stores; Orr uses rectangles for
bubbles, ellipses for sources and destinations, and ellipses for data stores.
The first data-flow diagram derived by the analyst represents the 'target'
system at its context level. The example in Figure 6.2 represents a simplified
context level data-flow diagram for a library system intended to automate the
issue of library items. The aim of the context level data-flow diagram, in data¬
flow analysis, is to view the system as an unexplored 'black box', and to direct
the focus of the analysis on the type of the data-flows that enter the system
from the source and those that travel from the system to their destination.
Data dictionary
DATA-FLOW MODELLING 143
Figure 6.2
The context-
level data-flow
diagram for
Issue library
item.
The creation of the context level data-flow diagram also permits the devel¬
oper to sketch the boundaries of the target system, so that the client and
developer can agree on the scope of the system to be developed.
The next level (level 1) of the data-flow diagram for the library system is
constructed by decomposing the top-level system bubble into sub-functions.
Figure 6.3 shows the next level of decomposition of the library system. Each
function in Figure 6.3 represents a potential sub-system through further
decomposition.
Figure 6.3
User database
Level I of the
Data-flow
diagram for the
Issue library
item.
Item database
144 METHODS FOR REQUIREMENTS ENGINEERING
same. Two major strategies dominate structured analysis. The 'old' method
popularised by DeMarco and Gane and Sarson, and the 'modern' approach
by McMenamin and Yourdon (McMenamin and Palmer, 1984; Yourdon, 1990).
The next section describes each of these strategies
The objective of the first step is to establish the details of the current phys¬
ical system, then to abstract from those details the logical data-flow model. The
derivation of the proposed logical model involves modifying the logical model
to incorporate logical requirements. The implementation of the proposed
model can be considered as arriving at a new physical system design.
♦ Entity
A distinct object or activity about which the organisation wishes to store
information. Examples include customers, orders and products. Each
entity has a unique identifier.
146 METHODS FOR REQUIREMENTS ENGINEERING
♦ Attribute
Every entity in an ERM is defined by its list of attributes. An attribute
describes some aspect of the entity to which it belongs. For example, a
customer entity might have attributes like account number, name,
address, phone number and so on.
♦ Relationship
A meaningful association between entities. A relationship has three
properties: cardinality or degree, optionality and dependency (defined
later).
♦ Cardinality or degree
In a typical orders database a customer might have multiple orders in a file
(that is, a customer can be associated with one or more orders) but any
particular order can be linked to only one customer (that is, each order can
be associated with only one customer). Relationships may be one-to-one
(1:1), one-to-many (1 :n), many-to-one (n: 1) or many-to-many (n:m).
♦ Optionality
Using the same example as above, a customer record might be stored in
the database, but have no orders currently on file (that is, a customer
can be associated with zero or more orders). An order, however, must
always be associated with a particular customer. Thus, in this relation¬
ship a customer entity is said to be mandatory (orders cannot exist
without an associated customer) and the orders entity is optional
(customers may exist without associated orders).
Hull and King (1987) have described a number of extensions to the basic ERM.
The extensions have involved adding sub and super-types to the basic entity
and relation primitives. Types may have sub-types through a special relation
Figure 6.4
<name>
Notation for
semantic data An entity or relation attribute
An entity
models.
An inheritance relation
^^pecif i cation^
^Jdentifier^^-
148 METHODS FOR REQUIREMENTS ENGINEERING
Object: many definitions for an object have been proposed, most of which
are quite similar. In this book we define an object as something real or abstract
about which we store data and those operations that manipulate the data.
Examples of these include an invoice, an account, a sensor, a software design,
a car and an organisation. It is possible for an object to be composite, that is,
composed of other objects. Every object is defined by its list of attributes (or
data). An attribute describes some aspect of the object to which it belongs.
For example, a customer entity might have attributes like account number,
name, address, phone number and so on.
Class: this is an implementation of an object type. For example, the object
type Bank Customer refers to a class of bank customers. A class refers to
objects that share common attributes and operations. An object is an instance
of a class. For example, if John Smith is a bank customer, then bank customer
is the class and John Smith is an instance of the bank customer.
Operations: operations are used to read and manipulate the data of an
object. The operations in an object type reference only the data structures of
that object type. To access the data structures of another object, they must
send messages to that object.
Method: methods specify the way in which operations are encoded in soft¬
ware. Each object has an associated set of methods (procedures or operations)
which may be 'called' from outside of the object and which act on the object
attributes.
Encapsulation: the packaging together of data and operations that manipu¬
late the data is known as encapsulation. An object conceals the details of its
internal implementation from the users of the object's data. Users understand
which operations may be requested from of the object but do not know the
details of how the operation is performed. Encapsulation prevents the unau¬
thorised access of an object's data.
150 METHODS FOR REQUIREMENTS ENGINEERING
Consider the partial requirements for a simple university library system which
is intended to provide its users with the ability to automate the process of
acquiring, cataloguing, browsing and loaning library items. Library items
comprise published and recorded material. It is intended that the system will
be administered by a member of the library staff, whose primary role will be
to maintain the library item and library user databases. Library users are
required to register with the system administrator before they can borrow
library items. Library items are to checked in and out by library staff. Library
users are drawn from three primary groups; students, members of staff and
Figure 6.6
Classification Class:
An illustration
Library item
of object-
oriented Attributes Classmark
concepts. Title
Book —
Author
Publisher Encapsulation of
Year data and operations
into a single object
Operation 1
Operation 2
OBJECT-ORIENTED APPROACHES 151
Operation 12
Operation 13
Operation 14
external users. All library users have as part of their registration a name, a
library number, an address and an account. In addition, students must
provide details of their degree programme and admission numbers. The staff
are required to provide staff numbers in addition to the basic registration
details. External users must also provide details of their employer.
In this section we will briefly illustrate how an object-oriented approach
can be used to model this simple library system. Most methods based on the
object-oriented model share certain common analysis steps. These are:
of the university staff and external users. We can distil these classes into the
four classes shown in Figure 6.9.
The second step identifies the relationships between the various classes.
We can identify the following relationships from the partial requirements.
Figure 6.10 shows the basic object model of the library system illustrating class
attributes and relationships.
Apart from the library user attribute account, the attributes shown are all
atomic, i.e. they do not have additional internal components. The account
attribute keeps track of the borrowed items and their due dates.
Figures 6.11 and 6.12 illustrate the additional development of the library
user and library item classes to show the inheritance relationships. In the
library item class, we have identified two new classes of book and journal to
exemplify the the notion of inheritance further.
Step 3 involves identifying the attributes for each object. Attributes can be
revealed by the analysis of the system requirements. For example, it is a
requirement that all library users must be registered before they can use the
library. This means that we need to keep registration data about library users
(e.g., name, address, account). Library users may also be provided with an
account to keep track of the items loaned to them (see Figure 6.10).
A Library item has the attributes; title, description and classmark. The
library item has two subclasses: published item and recorded item. The two
subclasses inherit the attributes and operations of the Library item class, in
addition to defining their own. Subclasses only show local attributes and local
operations, inherited attributes and operations are not repeated in the
Figure 6.9
Library user Library item Library staff Account
Initial classes for
library system.
OBJECT-ORIENTED APPROACHES 153
Figure 6.10
Object model
library system.
Figure 6.1 I
Inheritance
relationship for
library user.
subclasses (see Figure 6.11). The library user class has name, address and
library id as the general attributes. Specific attributes are contained within the
respective instances (see Figure 6.12).
Step 4 is intended to describe operations to be performed on the objects.
A number of operations are implicit from the object structure. These include
operations for accessing and modifying the attribute values. These operations
are assumed and we need not show them explicitly in the model. One way
of identifying operations is by modelling the messages that may be passed
between the objects. An object is requested to perform one of its operations
by sending it a message telling the object what to do. The receiver responds
154 METHODS FOR REQUIREMENTS ENGINEERING
Figure 6.1 2
Inheritance
relationship for
library item.
Figure 6.14
Operations for
library user.
Figure 6.1 5
Library staff
Operations for
library staff.
Password
Change-password
156 METHODS FOR REQUIREMENTS ENGINEERING
Figure 6.1 6
Operations for
library item.
such as Booch's method for object-oriented design (Booch, 1994) may also be
used in the requirements engineering process. At the time of writing, efforts
are underway to integrate several object-oriented methods to create a
tailorable universal method, and these are likely to come to fruition in the
next few years. The first stage in this, a set of modelling notations (UML), has
been published (Fowler and Scott, 1997).
Figure 6.18
Typical use case
scenario for a
library system.
♦ Syntax that defines the specific notation with which the specification is
represented. The syntactic domain of a formal specification is often based
on a syntax that is derived from standard set theory notation and pred¬
icate calculus (Wiltala, 1987).
FORMAL METHODS 161
♦ Semantics that help to define a 'universe of objects' (Wing, 1990) that will
be used to describe the system. The semantic domain of a specification
indicates how the language represents system requirements.
♦ Relations which define the rules that indicate which objects properly
satisfy the specification.
1. those that use model-based notations such as Z (Spivey, 1989) and the
Vienna Development Method (VDM) (Jones, 1990)
There is little doubt that f o r m a Is pecif ica tion-m e th ods.s.uch_ a,s .Z .and - VDM
offer-some advantages over informal methods. Because they are based on
mathematical formalism it is possible -to verify the correctness, incomplete¬
ness and inconsistency checking of the specification. In addition, formal
specification removes ambiguity and encourages greater rigour in the early
stages of software engineering.
However fonnal methods~suffer from several problems which inhibit their
practical application.
Predicates
The variable declarations are of the form identifier:type, and the predicates
give properties of and relationships between the variables. A schema may be
used to describe either a state or an operation. To describe a state, the declared
variables form the components of the state and the predicates give the
invariant properties of the state. For an operation, the declarations consist of
the initial state components, the final components, the inputs and the outputs
of the operation. For an operation, the predicate part describes the relation
between the inputs, outputs, and initial and final states.
The Vienna Development Method (VDM) is a model-based formal specifi¬
cation method based on the set theoretic approach. VDM was developed by
Bjorner and Jones (1978), originally as a mechanism for accurately defining
the structure and semantics of programming languages but has also been used
for specifying sequential systems.
The main steps in VDM can be summarised thus:
2. define the state invariant; this invariant must be verified at every oper¬
ation of the VDM state description
subset of a source set involved in relation R. We will now define three opera¬
tions on Library: Borrow, New and Return.
The schema in Figure 6.21 shows the Borrow operation. The notation A
Library, known as the delta schema, indicates that the Borrow operation
causes a state change to occur in Library. The state of a schema S after some
operation has been carried out is indicated with S/. The Borrow operation
takes two inputs, reader and book. Z uses a ? to denote inputs (for example,
reader ?) to an operation and ! to denote outputs. The predicates on the oper¬
ation indicate that the following required book must be a member of the set
of books in stock and not a member of the books on loan. The value of onLoan
is updated after the operation to include the borrowed book. The value of
stock remains unchanged after the operation.
The schemas for New and Return operations are shown in Figure 6.22. The
operation New adds a new book the current stock and Return returns a book
which has been on loan, to the library.
In the operation New, the predicate indicates that the value of stock is
updated to include the new addition ( stock'= stock U {book?} ). The set of
books on loan is unaffected by the operation. In the operation Return the stock
remains unchanged but the set of books on loan is updated.
book: e stock
book? £ dom onLoan
onLoan' = onLoan U {(book?, reader?)}
stock' = stock
KEY POINTS 165
— Return —
ALibrary
book?:Book
♦ Key Points
♦ The data-flow model is based on the notion that systems can be modelled as a set
of interacting functions. A data-flow diagram is composed of a set of inputs, a trans¬
forming process and a set of outputs.
♦ The object-oriented approach is based on the notion that systems can be modelled
as a set of interacting objects. Objects communicate by passing messages.
Fundamental concepts in object-oriented modelling are; objects and classes,
methods, messages, encapsulation and inheritance.
♦ Formal methods are based on mathematical principles and are intended to achieve
a high degree of confidence that a system will conform to its specifications. There
can never be an absolute guarantee of correctness, because the system will be
embedded in an informal world, where correctness is difficult to achieve.
166 METHODS FOR REQUIREMENTS ENGINEERING
♦ Exercises
6.1 Describe the necessary properties of an ideal requirements method. Explain one
way to address this lack of ‘perfection’ in requirements methods.
6.2 Explain the fundamental concepts behind of data-flow modelling; illustrate your
answer with an example. What is a common criticism of data-flow diagrams?
6.3 Modify the simple library example given in section 6.1 to incorporate the following
additional functionality:
6.4 Consider a simple auto-teller machine (cash-point). The machine accepts customer
requests and dispenses cash, displays and prints out mini statements, and provides
the bank manager with a daily transaction report. Users interact with the ATM
through a video display unit and a keypad. An ATM user must have a valid cash-
card and Personal Identification Number (PIN) before he or she can access the
services of the ATM. Cash withdrawals must be less than or equal to the user’s
balance. Apart from providing services to its users, the ATM is also required to
update the customer account database each time there is a cash withdrawal. The
bank manager uses a staff PIN to access the system for transaction reports.
Construct a two-level DFD of the ATM showing the services that are provided.
6.7 Identify possible objects for the ATM system described in question 6.4. and classes.
Construct an object model of the ATM system.
6.8 Explain the three primary components of a formal specification language. What are
the advantages of formal methods over informal methods? Explain why formal
methods are not widely used in industrial software development.
♦ References
Bjorner, D. and Jones, C. (1978). The Vienna Development Method. New York: Springer-
Verlag.
REFERENCES 167
Bjorner, D. (1987). 'On the use of formal methods in software development'. 9th IEEE
International Conference on Software Engineering, Washington, DC.
Chung, L. Mylopoulos, }., and Nixon, B. (1992). Representing and Using Nonfunctional
Requirements - A Process-oriented Approach. IEEE Transactions on software engineering,
8(6): 483-497.
Codd, E. F. (1979). Extending the database relational model to capture more meaning.
ACM Transactions on Database Systems, 4(4): 397-434.
Davis, A. (1992). Software Requirements: Objects, Functions and States. Englewood Cliffs,
New Jersey: Prentice-Hall.
DeMarco, T. (1979). Structured Analysis and System Specification. Englewood Cliffs, New
Jersey: Prentice-Hall.
Fowler, M., and Scott, K. (1997). UML Distilled: Applying the Standard Object Modelling
Language. Reading, Massachusetts: Addison-Wesley.
Gane, C., and Sarson, T. (1979). Structured Systems Analysis: Tools and Techniques.
Englewood Cliffs, New Jersey: Prentice-Hall.
Hammer, M., and McLeod, D. (1989). Database Description with SDM: A Semantic
Database Model. ACM Transactions on Database Systems, 6(3).
Harel, D., Lachover, D., Naamad, A., Pnueli, A., Politi, M., Sherman, R., and
Shtultrauring, A. (1988). STATEMATE: A Working Environment for the Development
of Complex Reactive Systems. 10th IEEE International Conference on Software Engineering,
396-406, Washington, DC: IEEE Press.
168 METHODS FOR REQUIREMENTS ENGINEERING
D. Hartley and I. Pirbhai (1987). Strategies for real-time systems specifications. New York:
Dorset House.
Hull, R. and King, R. (1987). Semantic Database Modelling: Survey, Applications, and
Research Issues. ACM Computing Surveys, 19(3).
Jacobson, I., Christerson, M., Jonsson, P., and Gunnar, O. (1992). Object-oriented Software
Engineering: A Use Case Driven Approach. Addison-Wesley.
Martin, J., and Odell, J. J. (1992). Object-oriented Analysis and Design. Englewood Clifff,
New Jersey: Prentice-Hall.
McMenamin, S., and Palmer, J. (1984). Essential Systems Analysis. Englewood Cliffs,
New Jersey: Prentice-Hall.
Orr, K. (1981). Structured Requirements Definition. Topeka, Kansas: Ken Orr and Associates.
Ross, D. (1985). 'Applications and Extensions of SADT. IEEE Computer, 18(4): 25-34.
Ross, D., and Schoman, K. E. (1977). 'Structutred analysis for requirements definition',
IEEE transactions on software engineering, 3(1): 6-15.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., and Lorensen, W. (1991). Object-
oriented Modelling and Design. Prentice-Hall.
Shlaer, S., and Mellor, S. (1988). Object-oriented Systems Analysis. Englewood Cliffs ,
New Jersey: Prentice-Hall.
Skidmore, S., Farmer, R., and Mills, G. (1992). SSADM Version 4. Machester, NCC:
Blackwell.
Ward, P., and Mellor, S. (1985). Structured development for real-time systems. Englewood
Cliffs, New Jersey: Prentice-Hall.
Wirfs-Brock, R.( Wilkerson, B., and Wiener, L. (1990). Designing Object-oriented Software.
Englewood Cliffs, New Jersey: Prentice-Hall.
♦ Further reading
Object-oriented experiences and future trends (Comm. ACM, 38(10), October 1995).
This journal discusses a number of important issues associated with adopting an
object-oriented environment for development. The journal also discusses the future
trends of the technology, and provides some real life case studies.
Bouzeghoub, M., Gardarin, G., and Valduriez, P. (1997). Object Technology: Concepts and
Methods, Thomson, 1997. This book provides a general discussion of object-oriented
concepts, and a detailed comparative study of various object-oriented techniques and
languages.
Formal Methods (IEEE Computer, 29(4), April 1996). This journal provides an illumi¬
nating discussion on the viability of formal methods in industrial practice. The
discussions are provided in a point/counterpoint format, by some well known names
in computing.
Viewpoint-oriented
7 Requirements Methods
♦ Contents
♦ Summary
Viewpoints are an explicit mechanism which takes into account the different
system and problem perspectives of different stakeholders. Implicit viewpoints
were first introduced in the SADT method and were made explicit in the
CORE method. We briefly describe the notion of viewpoint in both these
methods and introduce two more modern approaches to viewpoint-oriented
requirements engineering. These are VOSE, where a viewpoint is a template
for describing a system model in a particular representation, and VORD,
where a viewpoint represents a receiver of system services. Finally, we des¬
cribe a viewpoint-based technique for requirements validation. The example
of a library system is used to illustrate each of these approaches.
1. Driver
Requirements from the train driver on the system. As this is an auto¬
matic system, these will mostly be non-functional requirements
concerned with usability.
2. Trackside equipment
Requirements from trackside equipment which must interface with the
system to be installed.
4. Safety engineer
Safety requirements for the system from the railway safety engineer.
5. Braking characteristics
Requirements which are derived from the braking characteristics of a
train.
SADT notation.
'
Mechanism
Figure 7.2
Activity diagram Library card
[Library user] -► 11
for library
Return date issued item
system. [Issue clerk] 12 Issue library item 01 -► [Library user]
Requested item
[Library user] -► 13
CONTROLLED REQUIREMENTS EXPRESSION (CORE) 175
associated with two viewpoints. The user validation information can be asso¬
ciated with the 'user database viewpoint' and the item availability with the
'item database viewpoint'.
The next level of decomposition is shown in Figure 7.3; the input, control
and output data from the context level diagram is mapped onto the inputs,
control and outputs at the detailed level. The repetitive decomposition goes
on until there is sufficient detail for design to proceed.
SADT has an intuitive rather than an explicit notion of viewpoint. That is,
there is no stage in the method concerned with viewpoint definition and view¬
points only appear at the context level. SADT does not extend the analysis of
its viewpoints beyond considering them as data sinks and sources.
Issued item
176 V I EWP0 I NT-OR I E NTED REQUIREMENTS METHODS
the system, viewed in a top-down manner, and bounding viewpoints are enti¬
ties that interact indirectly with the intended system.
The CORE method consists of six iterative steps:
1. viewpoint identification
2. viewpoint structuring
3. tabular collection
4. data structuring
5. single viewpoint modelling
6. combined viewpoint modelling
7. constraint analysis
Figure 7.4
Initial list of
viewpoints.
The first step involves identifying possible viewpoints. Figure 7.4 shows a
possible list of initial viewpoints. From this list, defining and bounding view¬
points are identified. There are no hard and fast rules for identifying relevant
Figure 7.5
viewpoints. Rather, CORE suggests a session of 'brainstorming' comparisons
Bounding and
of users, buyers and specifiers of the system.
defining
viewpoints.
( User database ;
^ssue item^ ^^Return itenT^
( Issue clerk )
( Item Hatahase 1
(^^Catalogue^^ (^^""order iterrT^^
Figure 7.6
Viewpoint
structuring for
library system.
\
^ Error message Issue clerk
Library user Library card Validate user — -Loan default message Issue clerk
178 V I EWP0 I NT-0 R I ENTE D REQUIREMENTS METHODS
the proposed system it is difficult to say what is and what is not a valid view¬
point. This problem is further complicated by having defining and bounding
viewpoints. Bounding viewpoints are supposed be 'external' entities that
exchange information with the system, while defining viewpoints are sub¬
processes of the 'target system'. CORE addresses this problem by proving
some guidelines on identifying 'reasonable' viewpoints.
The analysis in CORE is concentrated on what are really internal perspec¬
tives - defining viewpoints. Bounding viewpoints which represent the
system's interaction with its environment are not analysed beyond being seen
as sinks and sources of data. In addition, because of the underlying structure
of the CORE viewpoint model, it is difficult to model processes using different
representations.
Figure 7.8
f X ( \
Style Work Plan Slots of a
Definition of representation Development actions and rules ViewPoint
template in
r . a
Domain Specification f Work Record VOSE.
Problem domain described by Actual partial Development
^ ViewPoint ^ ^ specification J ^ history ^
Figure 7.9
Data-flow
process from
the domain of
the issue desk.
180 VIEWPOINT-ORIENTED REQUIREMENTS METHODS
Figure 7.10
State transition
diagram showing
the states seen
by the issue
desk.
Figure 7.1 I
State transition
diagram showing
the states seen
by the library
user. This is a very simple state transition diagram and we have not shown the
preconditions and actions that would normally accompany the events.
State transition model (library user domain). Similarly, we can model the states
of the library item as seen from the domain of the library user. The library
user sees four states of the item: the on-loan, finished, on-shelf, and presented.
Figure 7.11 shows four states of the issue desk. The user borrows a library
item, reads the item, and returns the item.
For each of the two representation schemes, the development rules and
actions are described in the work plan slot of the ViewPoint template. The
work performed to arrive at the three representations shown is recorded in
the work record slot of the viewpoint template.
We have illustrated how two partitions of the library domain can be repre¬
sented using different representation schemes. The next step is to ensure that
consistency is maintained between different representations of the domains.
Figure 7.12 shows the mappings between the different configurations and how
conflicts need to be resolved. The requirements analyst must check that the
representations of the system are consistent by examining the entities and rela¬
tions in each representation and mapping one onto the other. Inconsistency
in a system model may be a result of genuine requirements conflicts which
must be resolved or may be a consequence of mistakes or omissions in the
requirements.
In the case of templates with the same style viewing different domains
(e.g. data-flow diagrams), it is a simple matter to ensure that there is consis¬
tency in the information flow between the different partitions. Conflicts
V I E W P 0 I N T - O R I E N T E D SYSTEM ENGINEERING (VOSE) 181
between similar templates are resolved by checking for the loss of continuity
between the respective models. For example, in the state transition model, the
present state seen by the issue desk maps onto the state seen by the library
user. Similarly on-loan maps onto on-loan. Off-desk maps onto on-shelf.
Although this is not essential, these may be renamed to indicate that they are
the same thing.
Where different styles are used to view the same domain, the correspon¬
dences between different representation schemes need to be identified to
facilitate consistency checking. For this reason it is important that represen¬
tative schemes are selected, whose correspondence can be established. The
possible correspondence between state transition models and data flow
models is shown in Figures 7.13 and 7.14. Therefore, inputs and outputs in a
, correspondence
i
▼ between a state
State Data-flow
182 VIEWPOINT-ORIENTED REQUIREMENTS METHODS
Figure 7.1 5
Example of Mapping different templates, same domains
correspondence
Issue desk DFD Issue desk ST
between
different
check check
representation
issue loan
schemes.
release release
Figure 7.16
Example of
Mapping different domains, same templates
correspondence
between similar Issue desk ST Library user ST
representation
presented presented
schemes.
on-loan on-loan
data-flow diagram map onto states in a state transition model and functions
map onto transitions.
Having identified the correspondence between the schemes, it is possible
to trace data items to states and functions to transitions. An example is of this
mapping is given in Figure 7.15 and 7.16. Figure 7.15 show the mapping
between the issue desk data-flow diagram (DFD) and the issue desk state tran¬
sition diagram.
Figure 7.16 shows the points of continuity between the two different
domains using similar representation schemes. The library user's on-loan
and presented states map onto similar states on and issue desk domain. The
on-loan and presented states, constitute the common states seen by both
domains.
1. Direct viewpoints
These correspond directly to clients in that they receive services from
the system and send control information and data to the system. Direct
viewpoints are either system operators/users or other sub-systems
which are interfaced to the system being analysed.
2. Indirect viewpoints
Indirect viewpoints have an 'interest' in some or all the services that are
delivered by the system but do not interact directly with it. Indirect
viewpoints may generate requirements which constrain the services
delivered to direct viewpoints.
Leite and Freeman (1991) describe an approach based on viewpoints that can
be used for early requirements validation. The objective of the approach is
184 VIEWPOINT-ORIENTED REQUIREMENTS METHODS
Figure 7.1 7
Viewpoint-based
requirements
validation.
EXERCISES 185
♦ Key Points
♦ CORE has two types of viewpoints: defining and bounding viewpoints. Defining
viewpoints are sub-processes of the system and bounding viewpoints are entities
that interact with the intended system
♦ Exercises
7.1 Using an example, explain how the notion of viewpoints can aid in understanding
a system’s requirements.
7.2 Briefly describe the different notions of viewpoints which are used in requirements
engineering.
7.3 Use the SADT approach to identify potential data sources and sinks in an airline
ticket reservation system.
7.4 Use the CORE method to identify bounding and defining viewpoints in a univer¬
sity student records system.
7.5 A video library intends to develop a interactive web-based video-on-demand system
for its customers. The service will allow its members to select and play video
recordings of their choice via the internet. Identify the potential viewpoints of the
system and their likely concerns and requirements.
7.6 Using the example given in 7.4 as a software engineering group project, explain
how you would use VOSE to organise the team and tasks.
186 VIEWPOINT-ORIENTED REQUIREMENTS METHODS
♦ References
Ross, D. (1985). Applications and extensions of SADT. IEEE Computer, 18(4): 25-34.
Finkelstein, A., Kramer, J., Nuseibeh, B., and Goedicke, M. (1992). Viewpoints: A
framework for integrating multiple perspectives in systems development. International
Journal of Software Engineering and Knowledge Engineering, 2(10): 31-58.
Nuseibeh, B., Kramer, J., and Finkelstein, A. (1994). A framework for expressing the
relationships between multiple view in requirements specification. Transactions of
Software Engineering, 20(10): 760-773.
♦ Further reading
Viewpoints for requirements definition (G. Kotonya and I. Sommerville, Software engi¬
neering journal, 7(6), 375-387, 1992). This paper provides a detailed survey of
viewpoint-based approaches.
8 Non-functional
Requirements
♦ Contents
♦ Summary
Figure 8.2
Classification of
non-functional
requirements.
4. The request for the user's PIN shall be issued within 5 seconds of the card
being entered in the card reader. This is a performance requirement.
CLASSIFICATION OF N 0 N - FU NCTI 0 NAL REQUIREMENTS 191
2. the system must encrypt all external communications using the RSA
algorithm; this is a security requirement which specifies that a specific
algorithm must be used in the product
It is often the case -that product requirements are mutually conflicting. For
pxamplp a rpqnirpmpntjfnr a certain level of performance may,bejcontradicted
by reliability7 anr) gpriiritj^_requlrements which rely on processor_capacity to
ram/ out dynamir w^tpjri_checking. A requirement on the space utilisation oT
the system may be contradicted by another requirement which specifies that
a standard compiler which does not generate compact code must be used.
The process of arriving at a trade-off in these conflicts depends on the level
of importance attached to the requirement and the consequence of the change
on the other requirements and the wider system goals. In addition to these
specific requirements, there are high-level organisational and other global
requirements against which all requirements must be analysed. Detailed
conflict resolution and management is a topic of ongoing research and is
outside the scope of this book. Interested readers are referred to the work of
Nuseibeh and Easterbrook for more information on this topic (Easterbrook
and Nuseibeh, 1996).
2. the system must be developed using the XYZ suite of CASE tools
External requirements
tion regulations or even basic natural laws such as the laws of physics.
Some~eXairtpIes-Q^-exleinai~Tequirements ~which~are placed on a system
might therefore be as follows.
1. Student record system The format of the student record data available
through the national Student Record System (SREC) is defined using the
content description notation shown in Figure 8.3.
The record data sequence is defined using the content description nota¬
tion as follows:
Figure 8.3
Data construct Notation Meaning Content
description
= Is composed of notation for
Sequence + And data record.
Selection [ i ] Either-or
Repetition m{ P iterations of enclosed component.
Minimum number of repetitions
is m and maximum is n
( ) Optional data
** Delimits comments
where:
^gradient = 9.81 ms-2 * compensated gradient / alpha and where the values
of 9.81 ms~2/ alpha are known for the different types of train.
194 NON-FUNCTIONAL REQUIREMENTS
Figure 8.4
Example of train
deceleration.
Figure 8.5
Relationships
User’s need User’s concern Non-functional
between user
requirement
needs and non¬
functional Function 1. Ease of use 1. Usability
requirements.
2. Unauthorised access 2. Security
Safety Comjjatibility
1
Personal
Collision Derailment Hardware Software Physical
accident
I
Figure 8.6
The concerns may lead directly to system requirements (shown in boxes in
Concern
Figure 8.6) or to questions which must be answered during the requirements
decomposition.
engineering process.
Loucopulos and Karakostas (1995) proposed a comparable approach to
deriving non-functional requirements. Their approach, based on an enterprise
model^Jnyolves relating non-functional requiremertfsTo the goals^fthe enter-
prise. The process begins witFTThe statement of anenterprise goal followed
by successive decomposition of the goal into sub-goals and subsequently non¬
functional requirements. This process is followed by successively examining
the requirements until a measurable statement can be defined. One advan¬
tage of the approach is that it provides a means of tracing non-functional
requirements to originally stated, vague expressions in the enterprise domain.
This approach is illustrated using a requirement drawn from the air traffic
domain (Figure 8.7). The abstract goal that the system should visualise air
traffic scenarios in real time motivates a system requirement that it should per¬
form in real time. This motivates two non-functional requirements that are
mainly concerned with performance and capacity, which in turn motivates
quantitative non-functional requirements. For example, the non-functional
requirement that 'radar data should be displayed in real time' motivates the
more detailed non-functional requirement 'aircraft position should be dis¬
played in less than 0.165 of the radar sweep period'. Further analysis of the
198 N 0N-FU N CTI 0 NAL REQUIREMENTS
Figure 8.8
Examples of
Property Metric
measurable
Performance 1. Processed transactions per second metrics for
non-functional
2. Response time to user input
requirements.
Reliability 1. Rate of occurrence of failure
2. Mean time to failure
Availability Probability of failure on demand
Size Kbytes
Usability 1. Time taken to learn 80% of the facilities
2. Number of errors made by users in a given time
period
Robustness Time to restart after system failure
Portability Number of target systems
Critical systems are systems whose 'failure' causes significant economic, phys¬
ical or human damage to organisations or people. There are three principal
types of critical system.
1. reliability
2. performance
3. security
4. usability
5. safety
There is no simple and easy way to resolve these tensions. In each case, some
compromise must be reached which satisfies the majority of system stakeholders.
8.3.1 Reliability
♦ Failure rate - how often does the system fail to deliver the service
expected by end-users?
These are obviously related and in some cases end-users of a system will
not make any distinction between them. As far as they are concerned, the
system is not giving them the service that they want. In other cases, however,
they must be treated separately. For example, in a telephone switching system
most customers would prefer the system to be unavailable than system fail¬
ures to occur where they were connected to and charged for a connection to
the wrong person.
Reliability requirements can often be expressed quantitatively. Availability
may be specified in terms of the time when the system is unavailable for
service (e.g. 3 minutes in 24 hours) and the acceptable failure rate may be
specified in terms of the rate of occurrence of failures in a given time period
(ROCOF) or the mean time between system failures (MTTF).
8.3.2 Performance
♦ Timing requirements which specify how quickly the system must collect
input from sensors before it is overwritten by the next input value, or
which specify how quickly outputs must be produced for processing by
other systems: for example, it might be specified that the system must
poll sensors at least 6 times per second.
In some cases, the RAM required for an executing software system might
also be considered as a performance requirement on the system, as it relates
to the system's run-time behaviour and as it also affects the speed of system
operation. Like reliability requirements, performance requirements should be
specified quantitatively wherever possible.
202 N 0 N - FU NCTIONAL REQUIREMENTS
8.3.3 Security
1. The access permissions for system data may only be changed by the
system's data administrator.
2. All system data must be backed up every 24 hours and the backup copies
stored in a secure location which is not in the same building as the
system.
8.3.4 Usability
Handling requirements: denotes the error rate of the end-users of the system.
This could be measured in terms of the errors made when working at normal
speed.
Likeability: denotes 'niceness' to use. The most direct to measure user satis¬
faction is to survey actual users and record the proportion who 'like to work
with the product'.
These types of usability requirement may be specified quantitatively
although, inevitably, for many types of system this will be fairly arbitrary.
Newman and Lamming (1995) discuss how such quantitative usability
requirements may be derived. In other cases, usability requirements are less
concrete and may be concerned with achieving consistency across a number
of different systems. For example, a possible usability requirement might be:
the forms used in the system's user interface shall, wherever possible, be
consistent with the forms used in System XYZ.
It is probably impossible to be more definite than this in the requirements
specification as system design decisions affect which forms will be used. It
cannot be decided in advance when compatibility is required.
The COQUAMO approach provides an automated support facility for set¬
ting and measuring usability. The system provides a set of 'templates' which
must be filled in. A completed template for usability is shown in Figure 8.9.
Figure 8.9
COQUAMO
Classification General quality — application dependent
usability
Level required High
template.
Associated qualities
8.3.5 Safety
♦ the system shall not permit operation unless the operator guard is in
place
♦ the system shall not allow the sedative dose delivered to the patient to
be greater than the maximum value which is determined by the patient's
physician
2. Safety validation
The analysis of the system requirements against these global safety
constraints to ensure that these requirements either individually or in
conjunction do not contradict the identified safety constraints. This
process continues, of course, through the design and implementation of
the system.
As part of the process of safety analysis, there are various activities such
as hazard identification and analysis which require inputs and lateral thinking
206 NON-FUNCTIONAL REQUIREMENTS
Figure 8.10
The safety-
critical systems
life-cycle.
Figure 8.1 I
The process of
integrating safety
analysis and
requirements
formulation.
Safety analysis
The hazard analysis and risk assessment stages can use any appropriate
hazard and risk analysis techniques and are not tied to particular techniques.
It is possible for example to use fault-trees for hazard analysis and a risk
analysis scheme based on the severity and probabilities of the accidents.
Let us consider the operational hazard of the guillotine crushing the oper¬
ator's hand. The fault-tree analysis for the hazard 'guillotine crushes
operator's hand' is shown in Figure 8.12. Fault tree analysis builds a graph¬
ical model of the sequential and concurrent combinations of events that can
lead to a hazardous event or system state. Fault tree analysis uses Boolean
logic to describe the combinations of events and states that constitute a
hazardous state.
REQUIREMENTS ENGINEERING FOR SAFETY-RELATED SYSTEMS 209
Figure 8.12
Hazard analysis
for the hazard
‘guillotine
crushes
operator’s
hand’.
Each leaf event may have an associated 'severity' and a plan of action to
minimise its occurrence. The proposed risk reduction strategies for each event
are propagated to the top-level hazard so that a collective strategy is avail¬
able as input to the requirements analysis process. Suggested changes form
the basis for further decisions. In the case of safety analysis they can be used
to derive more safety requirements.
There are three types of requirement which may be derived from such a
hazard analysis:
Let us now consider possible requirements for the guillotine system based
on the different types of hazard identified namely mechanical failure, operator
error and controller failure.
Mechanical failure may result from mistakes made during system mainte¬
nance or from physical failure of the mechanical components involved in the
210 NON - FU NCTI 0 NAL REQUIREMENTS
2. The guillotine blade must be fitted with a twin locking system and both
locks must be monitored by the controller software. If a failure in either
lock is detected, the software should disable operation of the system and
should alert the operator to this failure.
1. The operation of the system must require two switches which are phys¬
ically separated by at least 30 cm to be pushed simultaneously.
2. The control system must monitor each switch and, if either or both
switches are closed for more than 0.25 seconds, system operation must
be disabled.
The first of these requirements means that operators must use both hands
to operate the machine, so ensuring that they can't have one hand in the paper
pathway. The second requirement supports this as it ensures that the oper¬
ator can't tape down one of the switches and also will cause the system to be
disabled if either or both switches fail in the 'on' position.
Controller system failure can result in an accident if it results in the
machine being activated unexpectedly. System requirements which can
reduce the probability of controller system failure resulting in an accident
include the following:
2. the integrity of the system data area must be checked by the control
system twice per second; if inconsistencies in the data are detected,
system operation should be disabled.
EXERCISES 211
♦ Key Points
The principal non-functional constraints which are relevant to critical systems are
reliability, performance, security, usability and safety.
♦ Exercises
8.1 What are non-functional requirements? Explain the differences between process,
product and external requirements. Give an example of each.
8.2 Giving examples explain how process requirements can influence other functional
and non-functional system requirements.
8.3 Consider a university system whose main goal is to allow potential students to
apply for admission remotely. Use this goal to derive possible sub-goals and non¬
functional requirements for the system (see Figure 8.5).
212 N0 N - FU N CTI 0 NAL REQUIREMENTS
8.4 Explain how the following non-functional requirements may conflict; security vs.
flexibility, security vs. performance, usability vs. efficiency, maintainability vs. effi¬
ciency. Illustrate your answers with examples.
8.5 A bank intends to develop a system to allow its customers to access their account
information via the internet. The system will also allow customers to transfer
funds between their accounts. Identify non-functional requirements that may need
to considered before such a system is built. Explain the reason and importance
of each identified non-functional requirement.
8.6 Suggest security requirements that might apply to a student information system
used in a University department.
8.7 Explain why safety and security requirements are particularly difficult to validate.
8.8 Suggest how fault-trees (see Figure 8.10) might be used to help derive security
requirements for a system.
8.10 Suggest appropriate usability requirements for the EDDIS Library system (see
Chapter 10).
♦ References
Chung, L. Mylopoulos, ]., and Nixon, B., (1992). Representing and using nonfunctional
requirements - A process-oriented approach. IEEE Transactions on Software Engineering,
8(6): 483-497.
Deutsch, M. S., and Willis, R. R. (1988). Software Quality Engineering. Englewood Cliffs,
New Jersey: Prentice-Hall.
Easterbrook, S., and Nuseibeh, B. (1996). Using viewpoints for inconsistency manage¬
ment. Software Engineering Journal, 11(1): 31-43.
Kotonya, G., and Sommerville, I. (1993). A framework for integrating functional and
non-functional requirements. International Workshop on Systems Engineering for Real Time
Applications, 148-153, Cirencester, UK.
Leveson, N. G. (1986). Software safety - why, what, and how. Computing Surveys, 18(2):
125-163.
Leveson, N. G., and Harvey, P. R. (1983). Analyzing software safety. IEEE Transactions
on Software Engineering, 9(5): 569-579.
♦ Further reading
Software requirements: Objects, functions and states (A.M. Davis, 2nd Edition, Prentice-
Hall, 1993) This book has a good section on specifying non-behavioural (non¬
functional) requirements.
Software quality: theory and management (A.C. Gillies, Thomson, 1992) This book
describes the concept of quality and the way in which it can be applied to software,
with descriptions of the techniques employed in software quality assurance.
Interactive System
9 Specification
♦ Contents
♦ Summary
Interactive systems are systems that involve a significant degree of user inter¬
action. Formulating the requirements for such systems poses a number of
problems. Because of their interactive nature, consideration must be given
to formulating their ‘external requirements’. In this chapter we introduce
the properties of interactive systems and illustrate them through the specifi¬
cation of a simplified automated teller machine example. A viewpoint-based
requirements method (VORD) intended to specify interactive systems is used
to specify the ATM requirements.
User classes: interactive systems have varied classes of users with potentially
conflicting requirements and expectations. It is important that the approach
used to model the intended system is able to expose these potentially conflict¬
ing requirements.
Other systems: interactive systems may interface with other systems in their
environment. The requirements generated by the existing system(s) may
constrain the development of the intended system and must be considered
along with the intended system's requirements.
Indirect system concerns: these are not directly concerned with user interac¬
tion, but are related to the issue of system design and implementation, the
influence of the system on the organisation and the system's influence on the
environment. These issues are important and must be addressed as they often
have great influence within the organisation.
Quality of service: the closeness of the system to the end-user lends special
significance to the quality of the services delivered. Issues such as the relia¬
bility of the services delivered by the system, the system performance, format
of service and others must be taken into account when formulating the system
requirements.
The requirements method intended to specify interactive systems must sup¬
port the formulation of these 'external' system issues if it is to be effective. In
the next section we will use a simple example to illustrate these issues.
the ATM (home customers) and customers from other banks who have
access to the ATM (foreign customers).
All ATM users are issued with a cash-card and a personal identification
number (PIN) that they must use to access the ATM services. Home customers
receive all the services provided by the ATM. Foreign customers can only
receive a subset of the ATM services. Apart from providing services to its
users, the ATM is also required to update the customer account database each
time there is a cash withdrawal or funds transfer.
All the services provided by the ATM are subject to certain conditions,
which can be considered at different levels. The top level sets out conditions
necessary for accessing the services. These include a valid ATM cash-card and
correct personal identification number (PIN). The next level is concerned with
service requests and is subject to the availability of particular services. Beyond
this level, all services provided by the ATM are subject to specific conditions
set out for their provision.
In this section we describe how VORD can be used to specify the ATM. We
shall illustrate the requirements definition process by developing the example
through the steps of the method. VORD is based on three main iterative steps,
namely:
Figure 9.1 shows the iterative VORD process model. The processes are
shown as round edged boxes and products as square edged boxes. Each
product can be viewed as the checkpoint for a review process. The first step
in VORD is concerned with identifying relevant viewpoints in the problem
domain and structuring them. The starting point for viewpoint identification
are abstract statements organisational needs and abstract viewpoint classes.
The second step is concerned with documenting the viewpoints identified
in step 1. Viewpoint documentation consists of documenting:
Figure 9.1
VORD process
model.
♦ event scenarios that describe the interaction between the viewpoint and
the intended system
The third step is concerned with identifying errors and conflicts and
resolving them. The end result is a requirements specification document.
The graphical notation used to represent viewpoints is shown in Figure 9.2.
Viewpoints are represented by rectangular boxes. The viewpoint identifier is
shown in the top left hand corner of the box and the viewpoint label in the
lower half of the box. The viewpoint type or trace is shown in the top right
half of the box. Viewpoint attributes, discussed in section 9.2.3, are shown by
a vertical line dropping from the left side of the box. A viewpoint may also
vT Type
Label
n.2
— [m 1 attribute]
: \ Attribute identifier
REQUIREMENTS DEF I N I T I O N 219
All structured methods must address the basic difficulty of identifying rele¬
vant problem domain entities for the system being specified or designed. The
majority of methods provide little or no active guidance for this, and rely on
the method user's judgement and experience in identifying these entities.
However, VORD provides the analyst with some help in the critical step of
viewpoint identification.
The process of understanding the system under analysis, its environment,
requirements and constraints under which it must operate places a lot of
reliance on the 'system authorities'. These are people or documents with an
interest or specialist knowledge of the application domain. They include
system end-users, system procurers, system engineers and documentation of
existing system(s).
We have generalised these 'system authorities' into a set of viewpoint
classes, which can be used as a starting point for finding viewpoints specific
to the problem domain. Figure 9.3 shows part of the tree diagram of the
abstract viewpoint classes. Normally indirect viewpoints will be decomposed
to greater depth than shown here depending on the problem domain.
The root of the tree represents the general notion of a viewpoint.
Information can be inherited by viewpoint sub-classes, and so global require¬
ments are represented in the more abstract classes and inherited by
sub-classes. In the direct viewpoint class, the system viewpoint represents the
Figure 9.3
Abstract
viewpoint
classes.
Environment
Training
220 INTERACTIVE SYSTEM SPECIFICATION
abstract class of systems that may interact directly with the proposed system.
These include shared databases and other sub-systems. The operator class
represents the abstract class of people who will interact with the system
directly.
Under the indirect viewpoint class, the organisation viewpoint represents
the requirements and policy of the organisation which is purchasing the sys¬
tem, the regulatory viewpoint represents legal and regulatory requirements
affecting the system development, the engineering viewpoint represents the
engineering requirements for the system, and the environment viewpoint
represents the environment issues affecting the system development.
It is important to stress that this class hierarchy is not generic. Each organ¬
isation must establish its own hierarchy of viewpoint classes based on the
needs and the application domain of the systems which it develops.
The method of viewpoint identification which we propose involves a
number of stages.
2. Consider the system stakeholders, i.e. those people who will be affected by
the introduction of the system. If these stakeholders fall into classes which
are not part of the organisational class hierarchy, add these classes to it.
4. Identify system operators who use the system on a regular basis, who use
the system on an occasional basis and who request others to use the sys¬
tem for them. All of these are potential viewpoints. We can identify three
instances of direct viewpoint in this example, namely the bank customer
(regular), ATM operator (occasional), the bank manager (occasional).
5. For each indirect viewpoint class which has been identified, consider
the roles of the principal individual who might be associated with that
class. For example, under the viewpoint class 'organisation', we might
REQUIREMENTS DEFINITION 221
Figure 9.4
ATM
viewpoints.
222 INTERACTIVE SYSTEM SPECIFICATION
Figure 9.5
Viewpoint Viewpoint Requirement
requirements
Identifier Label Description Type Source
from the bank
VP
staff viewpoints.
which might apply an auto-teller system. The requirement type refers to either
a service (sv) or a non-functional requirement (nf). The ATM operator, card
issuer database and customer database viewpoints are mainly concerned with
providing control information to the proposed system. The ATM operator is
concerned with stocking the ATM with funds and starting and stopping its
operation. He or she needs to be alerted whenever the cash dispenser is low
on funds. The customer database stores the customer account information
which is used by the system to process transactions.
Because viewpoints are structured as class hierarchies, the requirements I
documented in the general classes, are inherited by the specialised classes.
Specialised classes reserve the option to define specific requirements. For
REQUIREMENTS DEFINITION 223
Figure 9.6
4 viewpoint.
2 Bank 2.1 Provide access to ATM services sv
customer based on valid cash-card, valid PIN
and access permissions set out for
the bank customer
2.2 Provide for withdrawal of cash by sv 4
bank customers
2.3 Cash withdrawal service should be nf 2
available 999/1000 requests
2.4 Cash withdrawal service should nf 2
have a response time of no more
than 1 minute
2.5 At least 50% of the currency notes nf 2
in the ATM should be 5 and 10
dollar bills.
2.2 Foreign
customer
Figure 9.7
Other viewpoint Viewpoint Requirement
requirements.
Identifier Label Description Type Source
VP
We have classified the ATM services into two general types: customer and
administrative services. Customer services include all the services provided
to the bank customers, and administrative services include all the 'adminis¬
trative' services provided to the bank staff by the system. We can associate
each of these two groups of services with special identifiers as shown in
Figure 9.8. The bold part of the identifier refers to the parent viewpoint and
the '0' indicates a general service type, and 'T, the requirement number. A
general service type must refer to at least two services.
Figure 9.8
Grouping similar
General Type Service
services.
Ref. Label Reference Description
Figure 9.9
Graphical
representation
of viewpoint
attributes.
REQUIREMENTS DEFINIT I O N 227
Figure 9.10
Priority scheme
for
requirements.
Resources required I 2 3
Risk involved I 2 3
228 INTERACTIVE SYSTEM SPECIFICATION
Requirement Weighting
Figure 9.1 I
and assessing the impact of requirement change. Consider the example of the
Priorities on
cash withdrawal service. This service is intended for both the home and
requirements
foreign customer, but the rationale for the services and the constraints may
differ. In the case of the home customer, the rationale may be based on a
marketing strategy and in the case of the foreign customer on an arrangement
reached with other banks. As far as the bank is concerned, there may be a
stronger case for maintaining the constraints associated with cash withdrawal
for the home customer than the foreign customer.
At the viewpoint level, attributes characterise direct viewpoints and
provide a means of structuring them. At the system level, attributes translate
to input parameters that are consumed by events that effect control through
the system. They can therefore be seen as translating to control information
for the system. How this is modelled will be discussed in section 9.2.6 where
we describe the ATM behaviour. Here we are only interested in seeing how
non-functional requirements affect control information. Like other require-
REQUIREMENTS DEFINITION 229
Viewpoint Requirement
2.2 Provide for withdrawal of Importance H This is the most important ATM requirement
cash by bank customers reflecting ATM functionality
Resources M Hardware and software support available
Risk L The risk involved is low as the domain is well
understood, the technology is available.
Previous implementation knowledge can be
reused to inform the requirements
merits, attributes are also affected by constraints generated through non- Figure 9.12
functional requirements. Constraints on control information can be traced Rationale for
to the non-functional requirements that generate them via the constraint priorities,
identifiers which match those of the non-functional requirements. Figure 9.14
shows the constraints on viewpoint attributes.
Viewpoint Service
1.0.1 Administrative 3.1 All security risks must explicitly be identified, analysed and minimised
services according to the ALARP principle
2.0.1 Customer 3.1 All security risks must explicitly be identified, analysed and minimised
services according to the ALARP principle
1.2.1 Suspend card 1.2.2 Service should have a response time of no more than 3 minutes
use
1.3.2 Operator paging 1.3.3 Failure rate of the paging service should not exceed 1
when funds are in 1000 attempts
low in ATM
2.2 Cash withdrawal 2.3 Cash withdrawal service should be available 999/1000 requests
2.5 At least 50% of the currency notes in the ATM should be 5 and
10 dollar bills
4.2 Cash withdrawal service should be available 9/10 requests for the
service
Figure 9.1 4
Constraints on
Viewpoint Attribute
viewpoint
Identifier Description Constraint attributes.
S.l customer_account
6.1 Cardjnformation
involves the operator logging onto the system and initiating a start-up
sequence. The start-up sequence may involve the system performing some
self-diagnostics.
In the case of the ATM, the operator starts the system by logging in with
a staff PIN. The system verifies the PIN and proceeds to perform a self-test.
If a system error is encountered during a self-test this is reported in the system
status report. The staff PIN verification process involves the system checking
the entered staff PIN against a set of valid staff PINs. An invalid staff PIN
causes an exception condition to occur and an error message is displayed. If
the PIN verification is okay, the system goes into a wait state until a start-up
command is issued. When the command is issued, the system goes into a
ready state, displaying a welcome message and available services. The ATM
operator can perform a complete shut-down of the system by entering a
232 NTERACTIVE SYSTEM SPECIFICATION
shut-down command from his service menu. This initiates a controlled shut¬
down sequence to ensure that no data or information is lost inadvertently.
It is also possible for the ATM operators to shut-down only certain services.
Figure 9.16 shows the event scenario of the start-up and shut-down services
of the ATM. The ready state forms the common point for accessing all other
ATM services; this is dealt with next.
shut-down(service)
Note /initiate service
validPINs = set of valid staffPINs for starting ATM shut-down
REQUIREMENTS DEFINITION 233
enter(PIN)
[PIN <2 validPINs] &
Note [attempts < maxAllowed]
attempts = number of attempts at PIN /display error message
maxAllowed = maximum allowed attempts
validPINs = set of valid PINs
validCards = set of valid cash-cards
option on the main service menu, the system goes into the cash mode state.
In the cash mode state, the system can be in one of two states: FundsLow or
adequateFunds. The system is in the FundsLow state if the funds in the ATM
fall below a preset minimum. The system pages the operator when the funds
in the ATM fall below this minimum. The customer is able to perform cash
withdrawals when the system is in either state. Flowever, the cash with¬
drawals may not exceed the customer balance or the funds in the ATM.
We will assume that the target account for the funds transfer service is
the ATM account. Once the system is in the service ready state, the customer
must satisfy two preconditions before the service can be accessed. Firstly the
service must be available, and secondly the customer must be a home
customer. The funds transfer service is only available to home customers.
In the transfer state, a list of the customer's existing accounts and their
balances is displayed. The customer can select the source account from this
list together with required amount. The transfer is accomplished if the amount
requested for transfer is less or equal to the balance in the source account
(Figure 9.19).
234 INTERACTIVE SYSTEM SPECIFICATION
[balance>amount] or [funds<amount]
/display error message
Note
cash = cash service
funds = funds in ATM
balance = funds available in customer account
available = set of available services
idle_time = system idle time
timeout = maximum allowed idle time
A = [funds minimum]
B = [funds < minimum]
Figure 9.19
Event scenario select(transfer)
[transfer e available]
for funds
transfer service.
[sourceBalance<amount]
/display error message
Note
transfer = transfer service
available = set of available services
sourceAccount = source account
sourceBalance = cash available in source account
idle_time = system idle time
timeout = maximum allowed idle time
REQUIREMENTS DEFINITION 235
Figure 9.20
User interface
requirements
and event
scenarios.
presentation constraints
236 NTERACTIVE SYSTEM SPECIFICATION
Figure 9.21
Checklist for
Viewpoint type
viewpoint
information.
Information Direct Indirect
Figure 9.22
Viewpoint
information
structure.
238 NTERACTIVE SYSTEM SPECIFICATION
the constraints of cost, schedule, and technical feasibility. These problems are
characterised by the presence of multiple, conflicting goals accompanied by a
large candidate solution space. The goals conflict because they are somehow
interrelated. In software development, there are several quality characteristics,
or software quality factors, that inherently conflict. For example, efficiency and
maintainability frequently conflict. The objective of maintainability is to
improve code understandability, and efficiency frequently requires reliance on
exceptional code. The same is true for expandability and reliability (increased
risk to acquire more functionality), safety and availability (fail-soft/fail-safe
requirements reduce the set of available system capabilities).
Requirements conflict resolution and management is the subject of on¬
going research. There is no simple way of automating all the aspects of conflict
resolution. We are sceptical about the usefulness of automated semantic
analysis. The checking model adopted by VORD is based on ensuring that
information can be presented in a way that manual analysis is simplified.
Individual requirements are checked against each other, and against the
global requirements. Conflicting requirements go through a negotiation
process where their weightings, rationale and relation to global quality goals
are taken into account. The negotiated requirements are added to the list of
acceptable requirements. Changes in requirements may necessitate a repeat
of the process. Figure 9.23 shows part of a table of the ATM requirements
indicating some conflicting requirements. Five relationships are indicated:
empty (-), no obvious contradiction (/), augments (a), contradicts(x) and
constraints (c). Global goals are italicised.
Figure 9.23 identifies two requirements, 4.1 and 4.2, conflicting with
the non-functional requirement 2.3. The conflicts can be resolved by studying
the weightings and rationale associated with the requirements. It is also
important to carefully study the coverage of the 'offending' requirements.
Change in one requirement tends to ripple through the system and all affected
requirements must be analysed, even if they have previously been considered.
The non-functional requirement 2.3, has a weighting of 5 and is generated
by the bank customer viewpoint. A weighting of 5 indicates a moderately
significant requirement. The requirement 4.1 is generated by the bank view¬
point and has a weighting of 6. Apart from this, the requirement affects all
other system services. Requirement 4.2 also comes from the bank viewpoint
but affects only the cash withdrawal. As requirement 4.1 has a greater
weighting than requirement 2.3, we can alter requirement 2.3 to conform to
4.1. In the case of requirement 4.2, it is clear that both regular maintenance
and a reliable service provision are vitally important. A compromise may be
to do the maintenance late at night when the likelihood of customers using
the ATM is remote. This could also be shifted to weekends, for example,
Sunday. The altered requirement could read, 'complete system maintenance
will be done once every month, on the last Sunday of the month at 2:00 a.m.
in the morning'.
240 INTERACTIVE SYSTEM SPECIFICATION
Reference Description
Figure 9.23
9.2.9 Service specification
Part of ATM
conflict VORD supports the specification of viewpoint services in a variety of nota¬
identification tions. This is particularly important for two reasons.
table.
1. One of the major problems associated with software development is the
lack of adequate communication between the requirements engineer and
the system's potential users due to the differences in their experience
and education. The ability to represent the same requirement in different
notations which are familiar to different people enhances communication
and aids understanding.
REQUIREMENTS DEFINITION 241
Figure 9.24
An informal
Customer requests cash withdrawal
specification of a
if any of the following conditions are true refuse withdrawal: simplified cash
condition I: The requested amount exceeds customer balance. withdrawal
condition2: The funds in ATM are less than requested amount service.
Figure 9.26
FundStatus::= adequate I inAdequate 1
Free types for
AccountStatus ::= overdrawn I goodStanding
cash withdrawal.
criticalLevel = 1000
accountNumber:0..105
---I
♦ the amount required must be less or equal to the funds in the customer's
account
♦ the funds in the customer account after the withdrawal are equal to the
previous funds minus the amount withdrawn.
Vc:AccountN umber*
(fundStatus = inAdequate <=> (atmFunds<criticalLevel)
(customerFunds(c)<0) <=> (customerStatus(c) = overdrawn
REQUIREMENTS DEFINITION 243
— PermitWithdrawal- — RefuseWithdrawal-
A Bank E Bank
amount ?:N amount ?:
account ? :accountNumber account ? :accountNumber
Figure 9.28
Specification of
Similarly the RefuseWithdrawal schema describes the operation for PermitWith¬
refusing a cash withdrawal. No withdrawal is permitted if the amount drawal and
requested is greater than the customer balance. The EBank notation means RefuseWith¬
that this operation leaves the bank unchanged. drawal.
Figure 9.29
VORD
REQUIREMENTS DOCUMENT
requirements
SPECIFIC REQUIREMENTS SECTION
document
template. 3. SPECIFIC REQUIREMENTS
Viewpoints
Identifier (reference and name of viewpoint)
A Description
A short description of viewpoint
B Type
This section defines the viewpoint type.
C Attributes
This section lists viewpoint attributes
D Specialisations
This section provides a list of viewpoint specialisations
E History
This section describes the evolution of the viewpoint and its requirements
F Requirements
FI Services
Identifier (unique service identifier)
Description (short description of service)
Source (source of service)
Priority (measure of importance of service,
Event scenario (reference to event scenario)
Specification (reference to various specs)
F2 Non-functional Requirements
Identifier (unique requirement identifier)
Description (short description of non-functional
requirement)
Source (source of non-functional requirement)
Priority (measure of importance of requirement)
Affected Services (list of service reference affected or
constrained by non-functional requirement)
TRANSITION TO OBJECT-ORIENTED DESIGN 245
Figure 9.30
Section of
REQUIREMENTS DOCUMENT
VORD
SPECIFIC REQUIREMENTS SECTION
requirements
3. SPECIFIC REQUIREMENTS
document.
Viewpoint
2.Bank Customer
A Description
The home customer viewpoint represents the customers who belong to the bank.
B Type
/Direct/Operator/Bank customer
C Attributes
1. Cash-card
2. Account
3. PIN
D Specialisations
None
E History
Reference Date Change Description Rationale
2.1 Viewpoint 23/4/97 component creaced N/A
F Requirements
FI Services
2.2 Cash withdrawal
Description:
The ATM should provide a cash withdrawal service to all its customers.
Source: 4 Bank
Priority: 9
Event scenario: (see page 232-234)
Specification: I. Informal (see page 241)
2. Formal (see page 242-243)
F2 Non-functional Requirements
2.3 Cash withdrawal availability
Description:
Cash withdrawal service should be available in 999/1000 requests
Source: 2 Bank customer
Priority: 5
Affected Services: 2.2 Cash withdrawal
Description:
Cash withdrawal service should have a response time of no more that 2 minutes.
Source: 2 Bank customer
Priority: 5
Affected services: 2.2 Cash withdrawal
TRANSITION TO OBJECT-ORIENTED D E S I G N 247
aggregation
u
248 INTERACTIVE SYSTEM SPECIFICATION
Figure 9.32
home_customer
Bank customer
viewpoint object bank customer
structure. foreign_customer
- [PIN]
- [affiliated_bank]
— cash_card
- [customer_name]
- [cardjd]
— [account_no]
- [expiry_date]
— account
- [account_name
- [account_no]
- [balance]
- [sort_code]
♦ Key Points
♦ The requirements definition process for such systems must address important
system properties such as user interface development, user classes, indirect system
concerns, quality of service and other systems interfaced.
♦ A natural way to specify interactive systems is to specify the services which they
provide for end-uses and other systems
♦ VORD is based on the viewpoints that focus on user issues and organisational
concerns. It defines requirements as services.
♦ VORD defines two types of viewpoint, direct and indirect. Direct viewpoints corre¬
spond directly to clients in that they receive services from the system and send
control information and data to the system. Indirect viewpoints range from engi¬
neering, through organisational to external viewpoints. Indirect viewpoints may
generate requirements which constrain the services delivered to direct viewpoints.
♦ System behaviour is defined in VORD using event scenarios. Exceptions and normal
behaviour may defined.
FURTHER READING 249
♦ Exercises
9.1 Explain the notion of viewpoints used in the VORD method. Why are indirect
viewpoints very important? Illustrate your answer with an example.
9.2 Suggest giving reasons possible viewpoints for a university students records system.
9.4 Use the notion of viewpoints in VORD to identify the possible requirements for
a web-based requirements tool to support collaboration among its users. Explain
why viewpoints help to ensure that all stakeholder perspectives are identified.
9.5 Suggest possible viewpoints that need to be taken into account when developing
word processing software. Identify some possible requirements for these view¬
points.
9.7 Use event scenarios to model a possible video provision scenario in 9.5.
9.8 Suggest possible viewpoints and service requirements for an Airline ticket reser¬
vation system
♦ References
Easterbrook, S., and Nuseibeh, B. (1996). Using viewpoints for inconsistency manage¬
ment. Software Engineering Journal, 11(1): 31-43.
Finkelstein, A., Kramer,}., Nuseibeh, B., and Goedicke, M. (1992). Viewpoints: a frame¬
work for integrating multiple perspectives in systems development. International
Journal of Software Engineering and Knowledge Engineering, 2(10): 31-58.
♦ Further reading
♦ Summary
This chapter describes a case study that we have been closely involved in. The
Electronic Document Delivery project (EDDIS), is concerned with develop¬
ing the next generation library systems for the UK higher education. EDDIS
is intended to be a ‘one-stop shop’ for most library needs. Its main function
is to manage the process of identifying, locating ordering and supplying docu¬
ments. In this chapter we will demonstrate how a viewpoint-oriented method
VORD, described in Chapters 7 and 9, was used to document, analyse and
specify the requirements for EDDIS. Using VORD to formulate the require¬
ments for EDDIS has revealed that viewpoints can be an effective mechanism
for eliciting and structuring varied stakeholder requirements and expectations.
It has also demonstrated the practical utility of a viewpoint-based require¬
ments approach on medium-sized system.
This is important not only for ease of understanding, but also for managing
requirements change. Although EDDIS is primarily an end-user system, it was
recognised that, because of financial constraints, many of the functions in
EDDIS would be mediated by an administrator. It was anticipated that the
system would be administered by the local library, but this would not always
be the case. Furthermore, some of the administrator's functions could be
devolved to other users. For example EDDIS could be configured so that
departments have control of their own budgets.
The requirements for EDDIS can be summarised thus:
♦ identifying documents
♦ locating documents
♦ ordering documents
5. EDDIS will keep track of all data required by the relevant copyright
licensing agencies. This means that EDDIS must be able to supply details
of all copies of documents received in a certain period.
8. User interface
(i) The user interface will be html. Users will access EDDIS via stan¬
dard Web browsers such as Netscape and Internet Explorer.
254 CASE STUDY
9. Accounts
(i) Users will log onto EDDIS via accounts, which will be created by
the administrator. There will be two types of accounts: individual
and group accounts. In general, individual accounts will have
access to more services than group accounts.
(ii) Individual accounts are intended for use by single users. All indi¬
vidual accounts will be password protected. Users of these
accounts will be able to change the passwords in their accounts,
group accounts are intended for groups of users, for example,
members of the institution, faculty, department. Some of these will
be password-protected, others will not. However only the admin¬
istrator will be able to change group account passwords.
10. Services
(i) Users will have access to a range of services determined by the
permissions associated with the accounts they use. The permissions
will be set by the administrator. Services available within accounts
will vary; some accounts could have access to most of the EDDIS
services, but others could be severely restricted. For example, some
accounts will be able to search all databases available to EDDIS,
also to locate and order documents; whereas others might only be
able to search a restricted set of databases and not be able to order
documents.
(ii) There will be four primary services available to users.
♦ Document search will allow users to search for and identify
documents which interest them. A document search is initiated
by a search criterion and the output will be a set of document-
ids which act as input for document locate and order services.
♦ Document locate will allow users to determine the location of
documents. A document locate is initiated by a set of document-
ids and the output is a set of location-ids.
♦ Document order will allow users to order documents. A docu¬
ment order is initiated by a set of document-ids and location-ids.
The output is initially a set of order-ids and eventually the
documents.
♦ Document read will allow users to read, and where appropriate,
print documents.
(iii) There will be various secondary services.
♦ Status enquiry will allow users to check the status of document
orders.
EDDIS REQUIREMENTS 255
11. Communication
(i) Users will communicate with EDDIS mainly via the html interface.
(ii) User input to EDDIS will be via the html interface.
(iii) EDDIS out to the user will be via the html interface, email and
print. The print output will mainly be documents supplied, which
because of copyright restrictions must be printed and deleted
immediately upon receipt. The email output will be documents,
messages from the system and other output.
1. viewpoint identification
2. viewpoint documentation
3. viewpoint analysis and requirements specification
Figure 10.1
EDDIS
Identifier Label Description
viewpoints.
The document supplier has direct interaction with the intended system, but
receives no services from EDDIS. Its role is limited to providing control infor¬
mation. The control information provided may be an event that triggers some
system operation; this may optionally be accompanied by data. It may also
be data that is required to satisfy some precondition. The supplier receives
DENTIFYING EDDIS VIEWPOINTS 259
Viewpoint Requirement
Figure 10.3
requests for documents from the users through the document order service. EDDIS user
Documents sent by the supplier are received by EDDIS and passed on to the requirements
user. The user can send the supplier messages to request the status of the
order, the supplier may in turn request for additional information. The
supplier requirements are modelled as part of the event scenario for the order
service (see section 10.2.6). The data required for the control information can
be traced to viewpoint attributes.
260 CASE STUDY
Figure 10.4
Priority \ Weighting High(H) Medium(M) Low(L)
weighting for
requirements. Factor
Importance 3 2 1
Resources required 1 2 3
Risk involved 1 2 3
The supplier receives requests for documents from the user through the doc¬
ument order service. Documents sent by the supplier are received by EDDIS
and passed onto the user. Because the supplier provides control information, it
is worth considering the constraints under which this information may be pro¬
vided. Figure 10.5 shows the viewpoint documentation for the Supplier. The
documentation includes: the viewpoint identifier, viewpoint label, attributes,
the control information provided by the viewpoint, and associated priorities.
Figure 10.5
Structure of
supplier
viewpoint.
IDENTIFYING EDDIS VIEWPOINTS 261
Figure 10.6
Indirect
viewpoints.
Viewpoint Requirement
Figure 10.7
name and an account as attributes. Attributes are important because they
Requirements
encapsulate data that is consumed by the system operations. In VORD, attrib¬
for indirect
utes are documented for direct viewpoints because they may be reflected in
viewpoints.
system objects (see Chapter 9). An attribute and its identifier are enclosed in
square brackets and they appear as shown in Figure 10.9.
As with ordinary requirements, viewpoint attributes are also generalised
from right to left. All EDDIS user viewpoints have a username and a pass¬
word to facilitate access to EDDIS. In addition, all the Academic viewpoints
have a registration and the EDDIS administrator viewpoint has an adminis¬
tration password. The Supplier viewpoint has a name, a postal, email and IP
address, phone number and the set of documents held. Many external
suppliers also have a charging scheme for the documents supplied. When
262 CASE STUDY
Viewpoint Requirement
Ordered by:
1. use
2. cost centre
3. institutional level
4 Document 4.25 Document interface standard to be Document 9
standards Z39.50 standards
4.26 Document ordering standard to be Document 9
ISO 10160-1 standards
5 Copyright 5.27 EDDIS must comply with the Copyright 9
legislation requirements of all UK and international legislation
copyright legislation. EDDIS users
must sign a copyright declaration form
for all document orders
DENTIFYING EDDIS VIEWPOINTS 263
Staff
EDDIS
1.1 Operator/EDDIS viewpoints with
1.1.2
attributes.
Academic Operator/EDDIS
1 Operator Student
— [1 1 registration]
EDDIS user
1.2 Operator/EDDIS 1.1.3 Operator/EDDIS
— [1 1 name]
EDDIS administrator External user
[2 1 password
2.1 System/Supplier
Supplier
— [2 1 postal address]
External supplier
— 13 1 email addressl
— [4 1 IP address]
-[1 1 charging scheme]
— [5 1 Phone number]
— [6 1 documents held]
Figure 10.10
In this section we describe how event scenarios were used to model the behav¬
iour of the EDDIS system. We illustrate this aspect of the system by describing
a broad spread of user and administrative services covering most viewpoints.
The event scenarios described are:
3.23 Provision of appropriate viewers for EDDIS con. User interface All
EDDIS users
3.24 Report format for system usage EDDIS con. User interface 1.2.1.4
Figure 10.1 I
♦ document order service Further
♦ user registration service constraints on
EDDIS services.
A detailed description of the event scenarios and the notation used is pro¬
vided in Chapter 9. Very briefly, an event scenario is defined as a sequence of
events together with exceptions that may arise during the interchange of infor¬
mation between a viewpoint and the system. A normal sequence of events may
266 CASE STUDY
3.19 Include supplier terms that is: date of delivery, EDDIS con. Format 2.6
copyright restrictions, charges and delivery
format
4.26 Document ordering standard to ISO 10160-1 Document Standards 2.6
standards
5.27 Copyright legislation Copyright Legal 2.6
legislation
Figure 10.12
have exceptions at various points in the event sequence. At the system level,
Control
exceptions cause a transfer of control to exception handlers. An extended state
information and
transition model is used to model event scenarios. Exceptions are shown by grey
associated
lines. A transition is triggered by an event and/or preconditions which must be
constraints.
satisfied before the transition can take place. An event may include an optional
set of parameters, and may be accompanied by a set of actions.
Figure 10.14
Identifier: 1.2 Date:
Event scenario
Description: Event scenario for search service Author:
for search
service.
user. The result from the search is placed in the search basket and displayed
as a set of document_ids.
The search criteria include the following elements:
♦ author
♦ title
♦ ISBN
♦ ISSN
♦ keyword
Figure 10.15
Identifier: 1.3 Date:
Event scenario
Description: Event scenario for locate service Author:
for locate
service.
270 CASE STUDY
Figure 10.16
Identifier: 1.1.1.6 Date:
Event scenario
Description: Event scenario for Order service Author:
for order
service.
requesting
input(document_ids,
locationjds) verifying
i^supp [= ^suppl
quit
store(documents,ss{)
displaying
)
waiting isst ^ P«1
/store doc in user account
[done=true]
forwardidocument,e-mail address)
storing
J
tss« e ps,i
/forward document
[done=true]
forwarding
is also required that the user be able to respond via EDDIS. When the user
places an order it may be the case that the document can only be delivered
in a non-digitised form, or it may be the case that additional information is
required by the supplier. In the first case, the supplier responds by sending
an email message to the user and the document to the Librarian. In the second
case the supplier responds by sending an email message to the user.
1. username 2. password
3. userlD 4. name
5. title 6. email address
7. postal address 8. billing address
9. institutional status 10. student no./staff no.
11. expiry date 12. cost centre
13. institutional affiliation level (1^) 14. account type
15. financial account no. 16. search permissions
17. order permissions 18. order limit
19. cost limit of single order 20. expenditure limit
21. default delivery format
Figure 10.17 shows the register user event scenario. The 'Remove user'
service is concerned with removing users from EDDIS. This service is accessed
from the main services menu. A new user is removed via the event
remove(userlD). The system administrator is informed via a system message if
the operation has been successful or not.
The 'Edit user' service is concerned with modifying user details once they are
on EDDIS. This service is accessed from the main services menu. User details
are accessed via the event Edituser(userlD). If the userlD is valid the system
goes into an editing mode and displays the user details. Editing the user details
272 case STUDY
Figure 10.17
Register user Identifier: 1.2.7.1 Date:
event scenario Description: Event scenario for register user service Author:
/- \
displaying
V J
results in the user database being updated and the system reverting to the
original service state. It is also possible for the system administrator to cancel
the editing process.
In this section we will not go into the details of how the EDDIS require¬
ments were checked for completeness and how the conflicts were identified
SPECIFYING EDDIS REQUIREMENTS 273
5. quit Staff
1.2.7.1 User registration 1. register(details) System
administrator
Figure 10.18
and resolved (this is described in Chapter 9). Instead we will provide a Event trace
summary of some of the problems encountered during the requirements table,
formulation and the changes that were proposed. The aim here is to give the
reader some idea of the varied nature of the problems encountered in the
process of defining software requirements. Figure 10.19 shows some EDDIS
requirements changes.
When a requirement is modified in VORD, its identifier is modified to indi¬
cate level of change. A requirement n.m, for example, becomes n.m(l) after a
single change, and n.m(2) with a second change, and so on. This reduces the
number of artificial versions. The number of changes and the extent of change
determines the point at which a new version of the requirement is created.
Figure 10.19
1. One of the major problems associated with software development is the
Summary of
lack of adequate communication between the requirements engineer and
analysis and
the system's potential users due to the differences in their experience
changes.
and education. The ability to represent the same requirement in different
notations which are familiar to different people enhances communica¬
tion and aids understanding.
Figure 10.20
(Continued). Rationale: A primary service, all other services are
dependent on it
Event scenario: l.l
Specification: <Object-oriented specification >
1.2 Document search
F2 Non-functional Requirements
IINon-functional requirement associated with viewpoint go here
//each non-functional requirement has a unique identifier,
//description, source, priority and a list of affected services
♦ Key Points
♦ Viewpoints are an effective mechanism for eliciting and structuring user require¬
ments and expectations.
♦ Conflict analysis and resolution is a difficult problem, especially for real systems
where requirements may need to be represented in several varied ways. There is
no simple way of automating all the aspects of conflict resolution.
♦ The explicit identification of viewpoints with services in VORD has made it possible
create a framework where stakeholder concerns and other aspects of requirements
can be integrated.
ACKNOWLEDGEMENTS 277
♦ Exercises
10.1 Model the EDDIS requirements shown in Figure 10.3 using one of the other view¬
point methods described in Chapter 7. Contrast the strengths of the method with
the one used in Chapter 10.
10.2 Making appropriate assumptions, construct event scenarios for the remaining
EDDIS services.
10.3 What are the participating viewpoints in provision of the services described in
10.2?
10.4 Identify two conflicting requirements from Figures 10.7 and 10.8 and suggest how
they could be resolved.
10.5 Using the EDDIS user viewpoint as a starting point, identify possible objects asso¬
ciated with the viewpoint.
10.6 Model the EDDIS system using the method described in Chapter 6 SADT.
10.7 Why is the non-functional requirement 3.1 I (Figure 10.10) ambiguous? How can
it be rewritten to remove the ambiguity?
10.8 Suggest one way to incorporate a scheme for charging EDDIS users. Illustrate the
charging scheme using an event scenario.
♦ Acknowledgements
The EDDIS project is part of the UK Electronic Libraries Programme funded by the
Joint Information Systems Committee of the Higher Education Funding Councils. The
members of the project consortium are the University of East Anglia (lead site),
Lancaster University, the University of Stirling and the Bath Information and Data
Service. Further information can be found in 'Project EDDIS: an approach to inte¬
grating document discovery, location, request and supply.', David Larbey, Interlending
& Document Supply Vol 25, No 3, 1997 pp 96-102; and 'Electronic Document Delivery
Including Overviews of Network Standards GEDI, ISO ILL and Z39.50.'
Index
4
WHY this book was written
The value of introducing requirements engineering to trainee software engineers
is to equip them for the real world of software and systems development.
ISBN 0-471-97208-8
Accompanying Website:
http://www.comp.lancs.ac.uk/computing/resources/re
Visit our Website:
http://www.wiley.com/college/wws
HOCH, Hannah, Man and Machine, 1921. Watercolour, traces of pencil on paper, 113* x 9!T (29.0 x 24.2 cm).
THE MUSEUM OF MODERN ART, NEW YORK. The Joan and Lester Avnet Collection.
Photograph © 1998 The Museum of Modern Art, New York.