Chapter 2.1 and 2.2
Chapter 2.1 and 2.2
2
What is a Requirement?
3
Requirements ..
Why are they important ?
4
Requirements ..
Why are they important ?
Requirements therefore form the basis for:
oProject Planning; o
Risk Management; o
Trade Off;
o Change Control;
o Acceptance Testing.
5
Requirements ..
Why are they important ?
6
Defining Requirements Engineering
7
Defining Requirements Engineering
8
Requirements Completeness, .. & ..
Consistency
o Theoretically, requirements should be both complete &
consistent.
o Complete; They should include descriptions of all facilities
required.
o Consistent; There should be no conflicts or contradictions in
the descriptions of the system facilities.
o Actually, because of system and environmental complexity,
it is impossible to produce a complete and consistent
requirements document.
9
Other Criteria of Good Requirements
10
Requirements ..
Why are they important ?
The most common reasons for project failure are not technical.
11
Jeremy Dick, Elizabeth Hull, & Ken Jackson (2017). Requirements Engineering 4th Edition. Springer.
Requirements ..
Why are they important ?
The most common reasons for project failure are not technical.
12
Jeremy Dick, Elizabeth Hull, & Ken Jackson (2017). Requirements Engineering 4th Edition. Springer.
Requirements ..
Why are they important ?
The most common reasons for project failure are not technical.
13
Jeremy Dick, Elizabeth Hull, & Ken Jackson (2017). Requirements Engineering 4th Edition. Springer.
Requirements Classifications, .. & ..
the Requirements Engineering Process
RequirementsAbstraction
Views of Requirements Classifications (Types)
The Importance of Requirements Engineering
Stated Requirements versus Real Requirements
Requirements Engineering Process (Generic)
ASpiral View of the Requirements Engineering Process
Requirements-Related Activities (Detailed)
Top Reasons for Difficulties in Software Projects
16
Recap ..
17
Requirements Engineering .. Why?
“ .. It’s not just a simple matter of writing down what the customer
says (s)he wants.”
o A fundamental problem in business is that requirements are
inherently dynamic; they will change over time as our
understanding of the problem we are trying to solve changes.
o The importance of good requirements and the underlying dynamic
nature of the process mean that we must be (1) as accurate as
possible, and yet be (2) flexible (i.e., we have a process for
developing requirements & accommodating changed requirements
as we clarify the real requirements of customers).
18
Requirements Engineering .. Why?
20
Requirements Engineering Process
Generic Activities
The processes used for Requirements Engineering (RE) vary
widely depending on the application domain, the people involved
and the organisation developing the requirements. But, there are
a number of generic activities common to all processes:
• Requirements elicitation;
• Requirements analysis;
• Requirements validation;
• Requirements management.
In practice, RE is an iterative activity in which these processes are
interleaved. 21
Requirements Engineering Process
A Spiral View
22
Requirements Engineering Processes
More detailed Requirements-Related Activities
Start by Identifying the Stakeholders (i.e., anyone who has an interest in
the system, or in the system’s possession of particular
capabilities/qualities). Then Requirements Elicitation is about gaining
an understanding of the customers’ & users’ needs and discovering their
expectations. Followed by stating the REQs in simple sentences and
providing them as a set (Identifying Requirements), ensuring that they
describe the customer’s real needs and are in a form that can be
understood/used by developers of the system (Clarifying & Restating
the Requirements), ensuring that they are well defined (in a way that
means the same thing to all the stakeholders) and that they conform to
25
Top Reasons for Difficulties in Software
Projects as stated by a group of Project
Managers based on their experience
• The REQs for the project are not explicit.
• Requirements changes are made/accepted without addressing the
associated cost, schedule, and quality impacts.
• A requirements process is not used.
• No mechanism to reach agreement on the definition of the REQs and
to manage the requirements through the project life cycle.
• The “real” customer needs are not defined.
• Known, familiar, proven methods, techniques, & tools are not utilized.
• The customer is not involved as a partner throughout the project life
cycle. 26
Types of Requirements:
User and System Requirements, .. & ..
the System Stakeholders
System Stakeholders, .. & .. How to Identify Them
User Requirements
System Requirements
Readers of Different Types of Requirements Specification
Roles of stakeholders.
29
(Source: John Boardman Associates (JBA).
for a Mental Health Care Patient Management System (MHC-PMS);
A system used to maintain records of people receiving care for mental health problems.
System Stakeholders
How to identify them ..? An Example
• 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.
• 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.
30
Recap ..
Requirements Abstraction
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.
32
for a Mental Health Care Patient Management System (MHC-PMS);
A system used to maintain records of people receiving care for mental health problems.
33
Readers of the Different Types of
Requirements Specification
34
Types of Requirements:
Functional Requirements
Functional Requirements
Functional Requirements Imprecision
36
Functional REQs
a.k.a. Behavioural REQs or Operational REQs
Functional REQs
an Example
38
for a Mental Health Care Patient Management System (MHC-PMS);
A system used to maintain records of people receiving care for mental health problems.
Functional REQs
Requirements Imprecision
40
Types of Requirements:
Non-Functional Requirements
Non-Functional Requirements
Non-Functional Requirements Classifications
Constraints
Implementing Non-Functional Requirements
Verifiable Non-Functional Requirements
Metrics / Fit-Criteria for Specifying Non-Functional REQs
Non-Functional versus Functional REQs
43
Non-Functional REQs Classifications
Types of Non-Functional Requirements
44
Non-Functional REQs Classifications
Types of Non-Functional Requirements
According to Robertson & Robertson (2012), they can be grouped into 8
classes:
1) Look-and-Feel REQs. The spirit of the product’s appearance.
2) Usability & Humanity REQs. The product’s ease of use, and any
special usability considerations.
3) Performance requirements. How fast, how safe, how accurate, how
reliable, and how available the functionality must be.
4) Operational & Environmental REQs. The environment on which the
product will have to work (e.g., under water), & what considerations
must be made for this environment.
5) Maintainability & Support REQs. Expected changes, and the time
allowed to make them.
6) Cultural REQs. Special requirements that come about because of
the people involved in the product’s development and operation.
7) Legal REQs. The laws and standards that apply to the product.
8) Security REQs. The security and confidentiality of the product.
44
Non-Functional REQs Implementation
Verifiable Non-Functional Requirements
45
for a Mental Health Care Patient Management System (MHC-PMS);
A system used to maintain records of people receiving care for mental health problems.
50
Requirements Specification
Definition of a Requirement Expression
A Requirement Expression includes a requirement statement
with a set of associated attributes.
51
Requirements Specification
Ways of Writing
Notation Description
53
Requirements Specification
Ways of Writing [ Natural Language Spec. ]
Problems with Natural Language:
1. Lack of Clarity; Precision is difficult without making the document
difficult to read.
2. Requirements Amalgamation; Several different requirements may
be expressed together.
3. Requirements Confusion; and Non-Functional
Functional requirements
tend to be mixed-up.
1. Invent afor
Guidelines standard
Writingformat and use it for all requirements.
Requirements:
2. Use language in a consistent way. Use shall for mandatory
requirements, should for desirable requirements.
3. Use text highlighting to identify key parts of the requirement.
4. Avoid the use of computer jargon.
5. Include an explanation (rationale) of why a requirement is
necessary.
54
Requirements Specification
Ways of Writing [ Natural Language Spec. ]
55
Requirements Specification
Ways of Writing [ Natural Language Spec. ]
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.)
56
Requirements Specification
Ways of Writing [ Structured Specifications ]
57
Requirements Specification
Ways of Writing [ Structured Specifications ]
73
Requirements Specification
Ways of Writing [ Tabular Specification ]
Condition Action
Sugar level falling ( r2 < r1 ) CompDose = 0
Sugar level stable ( r2 = r1 ) CompDose = 0
Sugar level increasing & rate of increase decreasing CompDose = 0
( ( r2 – r1 ) < ( r1 – r0 ) )
Sugar level increasing & rate of increase stable or increasing CompDose =
( ( r2 – r1 ) ≥ ( r1 – r0 ) ) round ( ( r2 – r1 ) / 4 )
63
Requirements Specification
Ways of Writing [ Graphical Models ]
64
The Software Requirements Document
78
The Software Requirements Document
Typical Structure of a Requirements Document:
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 Here, you describe the services provided for the user. The nonfunctional system
Requirements requirements should also be described in this section. This description may use
Definition natural language, diagrams, or other notations that are understandable
to customers. Product and process standards that must be followed should
be specified.
System This chapter should present a high-level overview of the anticipated system
Architecture architecture, showing the distribution of functions across system
modules. Architectural components that are reused should be highlighted. 79
The Software Requirements Document
Typical Structure of a Requirements Document:
Chapter Description
System This should describe the functional and nonfunctional requirements in more detail.
Requirements If necessary, further detail may also be added to the nonfunctional requirements.
Specification Interfaces to other systems may be defined.
System This might include graphical system models showing the relationships between the
Models system components and the system and its environment. Examples of possible
models are object models, data-flow models, or semantic data models.
System This should describe the fundamental assumptions on which the system is based,
Evolution 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.
80
The Software Requirements Document
Examples of a Requirements Document:
70
Le c t u r e i s b a s e d o n i t s c o u n t e r p a r t s i n t h e f o l l o w i n g
courses (and the following resources) :