Download Requirements Engineering-Software Engineering-Lecture Slides and more Slides Software Engineering in PDF only on Docsity!
REQUIREMENTS
ENGINEERING
Requirements engineering 1
Topics covered
Requirements engineering
2
Functional and non-functional requirements
The software requirements document
Requirements specification
Requirements engineering processes
Requirements elicitation and analysis
Requirements validation
Requirements management
Requirements engineering
Requirements engineering
3
The process of establishing the services that the
customer requires from a system and the constraints
under which it operates and is developed.
The requirements themselves are the descriptions of
the system services and constraints that are
generated during the requirements engineering
process.
Requirements Definition
IEEE - A condition or capability needed by user to solve a problem or
achieve an objective
A condition or capability that must be met or possessed by a system or
system component to satisfy a contract, standard, specification, or other
formally imposed coument.
Jones:94 - The statement of needs by a user that triggers the development
of a program or system
Davis:93 - A user need or necessary feature, function, or attribute of a
system that can be sensed from a position external to that system
Software Engineering - Spring 2009
4
What is a requirement?
Requirements engineering
5
It may range from a high-level abstract statement
of a service or of a system constraint to a detailed
mathematical functional specification.
This is inevitable as requirements may serve a dual
function
May be the basis for a bid for a contract - therefore
must be open to interpretation;
May be the basis for the contract itself - therefore must
be defined in detail;
Both these statements may be called requirements.
Requirements abstraction (Davis)
Requirements engineering
6
“If a company wishes to let a contract for a large software development
project, it must define its needs in a sufficiently abstract way that a
solution is not pre-defined. The requirements must be written so that
several contractors can bid for the contract, offering, perhaps, different
ways of meeting the client organization’s needs. Once a contract has
been awarded, the contractor must write a system definition for the
client in more detail so that the client understands and can validate what
the software will do. Both of these documents may be called the
requirements document for the system.”
docsity.com
Types of requirements
Requirements engineering
7
User requirements
Statements in natural language plus diagrams of the
services the system provides and its operational
constraints. Written for customers.
System requirements
A structured document setting out detailed descriptions
of the system’s functions, services and operational
constraints. Defines what should be implemented so may
be part of a contract between client and contractor.
User and system requirements
Requirements engineering
8
Readers of different types of
requirements specification
Requirements engineering
9
Functional and non-functional
requirements
Requirements engineering
10
Functional requirements
Statements of services the system should provide, how the system should
react to particular inputs and how the system should behave in particular
situations.
May state what the system should not do.
Non-functional requirements
C onstraints on the services or functions offered by the system such as
timing constraints, constraints on the development process, standards, etc.
Often apply to the system as a whole rather than
individual features or services.
Domain requirements
Constraints on the system from the domain of operation
Functional requirements for the MHC-
PMS
Requirements engineering
11
A user shall be able to search the appointments lists
for all clinics.
The system shall generate each day, for each clinic,
a list of patients who are expected to attend
appointments that day.
Each staff member using the system shall be
uniquely identified by his or her 8-digit employee
number.
Requirements imprecision
Requirements engineering
12
Problems arise when requirements are not precisely
stated.
Ambiguous requirements may be interpreted in
different ways by developers and users.
Consider the term ‘search’ in requirement 1
User intention – search for a patient name across all
appointments in all clinics;
Developer interpretation – search for a patient name in
an individual clinic. User chooses clinic then search.
docsity.com
Examples of functional requirements
Requirements engineering
13
The user shall be able to search either all of the
initial set of databases or select a subset from it.
The system shall provide appropriate viewers for
the user to read documents in the document store.
Every order shall be allocated a unique identifier
(ORDER_ID) which the user shall be able to copy to
the account’s permanent storage area.
Requirements completeness and
consistency
Requirements engineering
14
In principle, requirements should be both complete and
consistent.
Complete
They should include descriptions of all facilities
required.
Consistent
There should be no conflicts or contradictions in the
descriptions of the system facilities.
In practice, it is very difficult to produce a complete and
consistent requirements document.
Non-functional requirements
Requirements engineering
15
These define system properties and constraints e.g.
reliability, response time and storage requirements.
Constraints are I/O device capability, system
representations, etc.
Process requirements may also be specified
mandating a particular IDE, programming language
or development method.
Non-functional requirements may be more critical
than functional requirements. If these are not met,
the system may be useless.
Types of nonfunctional requirement
Requirements engineering
16
Non-functional requirements
implementation
Requirements engineering
17
Non-functional requirements may affect the overall
architecture of a system rather than the individual
components.
For example, to ensure that performance requirements are
met, you may have to organize the system to minimize
communications between components.
A single non-functional requirement, such as a security
requirement, may generate a number of related
functional requirements that define system services that
are required.
It may also generate requirements that restrict existing
requirements.
Non-functional classifications
Requirements engineering
18
Product requirements
Requirements which specify that the delivered product must behave in a
particular way e.g. execution speed, reliability, etc.
Organisational requirements
Requirements which are a consequence of organisational policies and
procedures e.g. process standards used, implementation requirements,
etc.
External requirements
Requirements which arise from factors which are external to the system
and its development process e.g. interoperability requirements,
legislative requirements, etc.
docsity.com
Examples of nonfunctional
requirements in the MHC-PMS
Requirements engineering
19
Product requirement
The MHC-PMS shall be available to all clinics during normal working
hours (Mon–Fri, 0830–17.30). Downtime within normal working hours
shall not exceed five seconds in any one day.
Organizational requirement
Users of the MHC-PMS system shall authenticate themselves using their
health authority identity card.
External requirement
The system shall implement patient privacy provisions as set out in
HStan-03-2006-priv.
Goals and requirements
Requirements engineering
20
Non-functional requirements may be very difficult to state
precisely and imprecise requirements may be difficult to verify.
Goal
A general intention of the user such as ease of use.
Verifiable non-functional requirement
A statement using some measure that can be objectively tested.
Goals are helpful to developers as they convey the intentions
of the system users.
Usability requirements
Requirements engineering
21
The system should be easy to use by medical staff
and should be organized in such a way that user
errors are minimized. (Goal)
Medical staff shall be able to use all the system
functions after four hours of training. After this
training, the average number of errors made by
experienced users shall not exceed two per hour of
system use. (Testable non-functional requirement)
Metrics for specifying nonfunctional
requirements
Requirements engineering
22
Property Measure Speed Processed transactions/second User/event response time Screen refresh time Size Mbytes Number of ROM chips Ease of use Training time Number of help frames Reliability Mean time to failure Probability of unavailability Rate of failure occurrence Availability Robustness Time to restart after failure Percentage of events causing failure Probability of data corruption on failure Portability Percentage of target dependent statements Number of target systems
Domain requirements
Requirements engineering
23
The system’s operational domain imposes
requirements on the system.
For example, a train control system has to take into
account the braking characteristics in different weather
conditions.
Domain requirements can be new functional
requirements, constraints on existing requirements or
define specific computations.
If domain requirements are not satisfied, the system
may be unworkable.
Train protection system
Requirements engineering
24
This is a domain requirement for a train protection
system:
The deceleration of the train shall be computed as:
Dtrain = Dcontrol + Dgradient
where Dgradient is 9.81ms2 * compensated gradient/alpha
and where the values of 9.81ms2 /alpha are known for
different types of train.
It is difficult for a non-specialist to understand the
implications of this and how it interacts with other
requirements.
docsity.com
Domain requirements problems
Requirements engineering
25
Understandability
Requirements are expressed in the language of the
application domain;
This is often not understood by software engineers
developing the system.
Implicitness
Domain specialists understand the area so well that
they do not think of making the domain requirements
explicit.
Key points
Requirements engineering
26
Requirements for a software system set out what the
system should do and define constraints on its operation
and implementation.
Functional requirements are statements of the services
that the system must provide or are descriptions of how
some computations must be carried out.
Non-functional requirements often constrain the system
being developed and the development process being
used.
They often relate to the emergent properties of the
system and therefore apply to the system as a whole.
REQUIREMENTS
ENGINEERING
Lecture 2
Requirements engineering 27
The software requirements document
Requirements engineering
28
The software requirements document is the official
statement of what is required of the system
developers.
Should include both a definition of user
requirements and a specification of the system
requirements.
As far as possible, it should set of WHAT the system
should do rather than HOW it should do it.
Agile methods and requirements
Requirements engineering
29
Many agile methods argue that producing a
requirements document is a waste of time as
requirements change so quickly.
The document is therefore always out of date.
Methods such as XP use incremental requirements
engineering and express requirements as ‘user stories’
(discussed in Chapter 3).
This is practical for business systems but problematic for
systems that require a lot of pre-delivery analysis (e.g.
critical systems) or systems developed by several teams.
Users of a requirements document
Requirements engineering
30
docsity.com
Requirements document variability
Requirements engineering
31
Information in requirements document depends on
type of system and the approach to development
used.
Systems developed incrementally will, typically,
have less detail in the requirements document.
Requirements documents standards have been
designed e.g. IEEE standard. These are mostly
applicable to the requirements for large systems
engineering projects.
The structure of a requirements
document
Requirements engineering
32
Chapter Description 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. Introduction This should describe the need for the system. It should briefly describe the system’s functions and explain how it will work with other systems. It should also describe how the system fits into the overall business or strategic objectives of the organization commissioning the software. Glossary This should define the technical terms used in the document. You should not make assumptions about the experience or expertise of the reader. User requirements definition
Here, you describe the services provided for the user. The nonfunctional system requirements should also be described in this section. This description may use natural language, diagrams, or other notations that are understandable to customers. Product and process standards that must be followed should be specified. 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 that are reused should be highlighted.
The structure of a requirements
document
Requirements engineering
33
Chapter Description System requirements specification
This should describe the functional and nonfunctional requirements in more detail. If necessary, further detail may also be added to the nonfunctional requirements. Interfaces to other systems may be defined. System models This might include graphical system models showing the relationships between the system components and the system and its environment. Examples of possible models are object models, data-flow models, or semantic data models.
System evolution This should describe the fundamental assumptions on which the system is based, and any anticipated changes due to hardware evolution, changing user needs, and so on. This section is useful for system designers as it may help them avoid design decisions that would constrain likely future changes to the system.
Appendices These should provide detailed, specific information that is related to the application being developed; for example, hardware and database descriptions. Hardware requirements define the minimal and optimal configurations for the system. Database requirements define the logical organization of the data used by the system and the relationships between data. Index Several indexes to the document may be included. As well as a normal alphabetic index, there may be an index of diagrams, an index of functions, and so on.
Requirements specification
Requirements engineering
34
The process of writing down the user and system
requirements in a requirements document.
User requirements have to be understandable by end-
users and customers who do not have a technical
background.
System requirements are more detailed requirements
and may include more technical information.
The requirements may be part of a contract for the
system development
It is therefore important that these are as complete as
possible.
Ways of writing a system requirements
specification
Requirements engineering
35
Notation Description Natural language The requirements are written using numbered sentences in natural language. Each sentence should express one requirement.
Structured natural language
The requirements are written in natural language on a standard form or template. Each field provides information about an aspect of the requirement. Design description languages
This approach uses a language like a programming language, but with more abstract features to specify the requirements by defining an operational model of the system. This approach is now rarely used although it can be useful for interface specifications. Graphical notations Graphical models, supplemented by text annotations, are used to define the functional requirements for the system; UML use case and sequence diagrams are commonly used. Mathematical specifications
These notations are based on mathematical concepts such as finite-state machines or sets. Although these unambiguous specifications can reduce the ambiguity in a requirements document, most customers don’t understand a formal specification. They cannot check that it represents what they want and are reluctant to accept it as a system contract
Natural language specification
Requirements engineering
36
Requirements are written as natural language
sentences supplemented by diagrams and tables.
Used for writing requirements because it is
expressive, intuitive and universal. This means that
the requirements can be understood by users and
customers.
docsity.com
Guidelines for writing requirements
Invent a standard format and use it for all
requirements.
Use language in a consistent way. Use shall for
mandatory requirements, should for desirable
requirements.
Use text highlighting to identify key parts of the
requirement.
Avoid the use of computer jargon.
Include an explanation (rationale) of why a
requirement is necessary.
37
Requirements engineering
Problems with natural language
Lack of clarity
Precision is difficult without making the document
difficult to read.
Requirements confusion
Functional and non-functional requirements tend to be
mixed-up.
Requirements amalgamation
Several different requirements may be expressed
together.
38
Requirements engineering
Example requirements for the insulin
pump software system
Requirements engineering
39
3.2 The system shall measure the blood sugar and deliver insulin,
if required, every 10 minutes. (Changes in blood sugar are
relatively slow so more frequent measurement is unnecessary; less
frequent measurement could lead to unnecessarily high sugar
levels.)
3.6 The system shall run a self-test routine every minute with the
conditions to be tested and the associated actions defined in
Table 1. (A self-test routine can discover hardware and software
problems and alert the user to the fact the normal operation may
be impossible.)
Structured specifications
Requirements engineering
40
An approach to writing requirements where the
freedom of the requirements writer is limited and
requirements are written in a standard way.
This works well for some types of requirements e.g.
requirements for embedded control system but is
sometimes too rigid for writing business system
requirements.
Limits the terminology that can be used and use
templates to specify system requirements
Form-based specifications
Definition of the function or entity.
Description of inputs and where they come from.
Description of outputs and where they go to.
Information about the information needed for the
computation and other entities used.
Description of the action to be taken.
Pre and post conditions (if appropriate).
The side effects (if any) of the function.
41
Requirements engineering
A structured specification of a
requirement for an insulin pump
Requirements engineering
42
docsity.com
A structured specification of a
requirement for an insulin pump
Requirements engineering
43
Tabular specification
Used to supplement natural language.
Particularly useful when you have to define a
number of possible alternative courses of action.
For example, the insulin pump systems bases its
computations on the rate of change of blood sugar
level and the tabular specification explains how to
calculate the insulin requirement for different
scenarios.
44
Requirements engineering
Tabular specification of computation
for an insulin pump
Requirements engineering
45
Condition Action
Sugar level falling (r2 < r1) CompDose = 0
Sugar level stable (r2 = r1) CompDose = 0
Sugar level increasing and rate of increase decreasing ((r2 – r1) < (r1 – r0))
CompDose = 0
Sugar level increasing and rate of increase stable or increasing ((r2 – r1) ≥ (r1 – r0))
CompDose = round ((r2 – r1)/4) If rounded result = 0 then CompDose = MinimumDose
Key points
Requirements engineering
46
The software requirements document is an agreed
statement of the system requirements. It should be
organized so that both system customers and software
developers can use it.
The requirements engineering process is an iterative
process including requirements elicitation, specification
and validation.
Requirements elicitation and analysis is an iterative
process that can be represented as a spiral of activities –
requirements discovery, requirements classification and
organization, requirements negotiation and requirements
documentation.
REQUIREMENTS
ENGINEERING
Lecture 3
Requirements engineering 47
Objectives
To describe the principal requirements engineering
activities and their relationships
To introduce techniques for requirements elicitation
and analysis
To describe requirements validation and the role of
requirements reviews
To discuss the role of requirements management in
support of other requirements engineering
processes
docsity.com
Topics covered
Feasibility studies
Requirements elicitation and analysis
Requirements validation
Requirements management
Requirements engineering processes
The processes used for RE vary widely depending
on the application domain, the people involved and
the organisation developing the requirements.
However, there are a number of generic activities
common to all processes
Feasibility study
Requirements elicitation and analysis;
Requirements specification
Requirements validation;
The requirements engineering process Requirements engineering
Feasibility studies
A feasibility study decides whether or not the
proposed system is worthwhile.
A short focused study that checks
If the system contributes to organisational objectives;
If the system can be engineered using current
technology and within budget;
If the system can be integrated with other systems that
are used.
Feasibility study implementation
Based on information assessment (what is required),
information collection and report writing.
Questions for people in the organisation
What if the system wasn’t implemented?
What are current process problems?
How will the proposed system help?
What will be the integration problems?
Is new technology needed? What skills?
What facilities must be supported by the proposed system?
docsity.com
Elicitation and analysis
Sometimes called requirements elicitation or requirements
discovery.
Involves technical staff working with customers to find out
about the application domain, the services that the system
should provide and the system’s operational constraints.
May involve end-users, managers, engineers involved in
maintenance, domain experts, trade unions, etc. These are
called stakeholders.
Problems of requirements analysis
Stakeholders don’t know what they really want.
Stakeholders express requirements in their own terms.
Different stakeholders may have conflicting requirements.
Organisational and political factors may influence the system
requirements.
The requirements change during the analysis process. New
stakeholders may emerge and the business environment
change.
The requirements spiral Process activities
Requirements discovery
Interacting with stakeholders to discover their requirements. Domain
requirements are also discovered at this stage.
Requirements classification and organisation
Groups related requirements and organises them into coherent clusters.
Prioritisation and negotiation
Prioritising requirements and resolving requirements conflicts.
Requirements documentation
Requirements are documented and input into the next round of the
spiral.
Requirements discovery
The process of gathering information about the
proposed and existing systems and distilling the
user and system requirements from this information.
Sources of information include documentation,
system stakeholders and the specifications of similar
systems.
ATM stakeholders
Bank customers
Representatives of other banks
Bank managers
Counter staff
Database administrators
Security managers
Marketing department
Hardware and software maintenance engineers
Banking regulators
docsity.com
Stakeholders in the MHC-PMS
Requirements engineering
61
Patients whose information is recorded in the system.
Doctors who are responsible for assessing and treating
patients.
Nurses who coordinate the consultations with doctors
and administer some treatments.
Medical receptionists who manage patients’
appointments.
IT staff who are responsible for installing and
maintaining the system.
Stakeholders in the MHC-PMS
Requirements engineering
62
A medical ethics manager who must ensure that the
system meets current ethical guidelines for patient
care.
Health care managers who obtain management
information from the system.
Medical records staff who are responsible for
ensuring that system information can be maintained
and preserved, and that record keeping procedures
have been properly implemented.
Viewpoints
Viewpoints are a way of structuring the
requirements to represent the perspectives of
different stakeholders. Stakeholders may be
classified under different viewpoints.
This multi-perspective analysis is important as there
is no single correct way to analyse system
requirements.
Types of viewpoint
Interactor viewpoints
People or other systems that interact directly with the system. In an ATM,
the customer’s and the account database are interactor VPs.
Indirect viewpoints
Stakeholders who do not use the system themselves but who influence the
requirements. In an ATM, management and security staff are indirect
viewpoints.
Domain viewpoints
Domain characteristics and constraints that influence the requirements. In
an ATM, an example would be standards for inter-bank communications.
Viewpoint identification
Identify viewpoints using
Providers and receivers of system services;
Systems that interact directly with the system being
specified;
Regulations and standards;
Sources of business and non-functional requirements.
Engineers who have to develop and maintain the
system;
Marketing and other business viewpoints.
LIBSYS viewpoint hierarchy
docsity.com
Interviewing
In formal or informal interviewing, the RE team puts
questions to stakeholders about the system that they
use and the system to be developed.
There are two types of interview
Closed interviews where a pre-defined set of questions
are answered.
Open interviews where there is no pre-defined agenda
and a range of issues are explored with stakeholders.
Interviews in practice
Normally a mix of closed and open-ended interviewing.
Interviews are good for getting an overall understanding of
what stakeholders do and how they might interact with the
system.
Interviews are not good for understanding domain
requirements
Requirements engineers cannot understand specific domain terminology;
Some domain knowledge is so familiar that people find it hard to
articulate or think that it isn’t worth articulating.
Effective interviewers
Interviewers should be open-minded, willing to listen
to stakeholders and should not have pre-conceived
ideas about the requirements.
They should prompt the interviewee with a question
or a proposal and should not simply expect them to
respond to a question such as ‘what do you want’.
Scenarios
Scenarios are real-life examples of how a system
can be used.
They should include
A description of the starting situation;
A description of the normal flow of events;
A description of what can go wrong;
Information about other concurrent activities;
A description of the state when the scenario finishes.
LIBSYS scenario (1) LIBSYS scenario (2)
docsity.com
Scenario for collecting medical history
in MHC-PMS
Requirements engineering
73
Scenario for collecting medical history
in MHC-PMS
Requirements engineering
74
Use cases
Use-cases are a scenario based technique in the
UML which identify the actors in an interaction and
which describe the interaction itself.
A set of use cases should describe all possible
interactions with the system.
Sequence diagrams may be used to add detail to
use-cases by showing the sequence of event
processing in the system.
Article printing use-case
LIBSYS use cases Use cases for the MHC-PMS
Requirements engineering
78
docsity.com
Print article sequence Social and organisational factors
Software systems are used in a social and
organisational context. This can influence or even
dominate the system requirements.
Social and organisational factors are not a single
viewpoint but are influences on all viewpoints.
Good analysts must be sensitive to these factors but
currently no systematic way to tackle their analysis.
Ethnography
A social scientists spends a considerable time
observing and analysing how people actually work.
People do not have to explain or articulate their
work.
Social and organisational factors of importance may
be observed.
Ethnographic studies have shown that work is usually
richer and more complex than suggested by simple
system models.
Scope of ethnography
Requirements that are derived from the way that
people actually work rather than the way I which
process definitions suggest that they ought to work.
Requirements that are derived from cooperation
and awareness of other people’s activities.
Requirements validation
Concerned with demonstrating that the requirements
define the system that the customer really wants.
Requirements error costs are high so validation is
very important
Fixing a requirements error after delivery may cost up
to 100 times the cost of fixing an implementation error.
Requirements checking
Validity. Does the system provide the functions which best
support the customer’s needs?
Consistency. Are there any requirements conflicts?
Completeness. Are all functions required by the customer
included?
Realism. Can the requirements be implemented given available
budget and technology
Verifiability. Can the requirements be checked?
docsity.com
Requirements validation techniques
Requirements reviews
Systematic manual analysis of the requirements.
Prototyping
Using an executable model of the system to check
requirements. Covered in Chapter 17.
Test-case generation
Developing tests for requirements to check testability.
Requirements reviews
Regular reviews should be held while the
requirements definition is being formulated.
Both client and contractor staff should be involved in
reviews.
Reviews may be formal (with completed documents)
or informal. Good communications between
developers, customers and users can resolve
problems at an early stage.
Review checks
Verifiability. Is the requirement realistically
testable?
Comprehensibility. Is the requirement properly
understood?
Traceability. Is the origin of the requirement clearly
stated?
Adaptability. Can the requirement be changed
without a large impact on other requirements?
Requirements management
Requirements management is the process of understanding and
controlling changes to system requirements.
Requirements are inevitably incomplete and inconsistent
New requirements emerge during the process as business needs change
and a better understanding of the system is developed;
Different viewpoints have different requirements and these are often
contradictory.
New hardware may be introduced, interoperability requirements, new
legislation and regulations may be introduced etc.
Requirements evolution Enduring and volatile requirements
Enduring requirements. Stable requirements derived
from the core activity of the customer organisation.
E.g. a hospital will always have doctors, nurses, etc.
May be derived from domain models
Volatile requirements. Requirements which change
during development or when the system is in use. In
a hospital, requirements derived from health-care
policy
docsity.com
Requirements classification Requirements management planning
During the requirements engineering process, you have to plan:
Requirements identification
How requirements are individually identified;
A change management process
The process followed when analysing a requirements change;
Traceability policies
The amount of information about requirements relationships that is
maintained;
CASE tool support
The tool support required to help manage requirements change;
Traceability
Traceability is concerned with the relationships between
requirements, their sources and the system design
Source traceability
Links from requirements to stakeholders who proposed these
requirements;
Requirements traceability
Links between dependent requirements;
Design traceability
Links from the requirements to the design;
A traceability matrix
CASE tool support
Requirements storage
Requirements should be managed in a secure, managed data store.
Change management
The process of change management is a workflow process whose stages
can be defined and information flow between these stages partially
automated.
Traceability management
Automated retrieval of the links between requirements.
Requirements change management
Should apply to all proposed changes to the
requirements.
Principal stages
Problem analysis. Discuss requirements problem and
propose change;
Change analysis and costing. Assess effects of change
on other requirements;
Change implementation. Modify requirements document
and other documents to reflect change.
docsity.com
Change management Key points
The requirements engineering process includes a
feasibility study, requirements elicitation and
analysis, requirements specification and
requirements management.
Requirements elicitation and analysis is iterative
involving domain understanding, requirements
collection, classification, structuring, prioritisation
and validation.
Systems have multiple stakeholders with different
requirements.
Key points
Social and organisation factors influence system
requirements.
Requirements validation is concerned with checks for
validity, consistency, completeness, realism and
verifiability.
Business changes inevitably lead to changing
requirements.
Requirements management includes planning and
change management.
docsity.com