Professional Documents
Culture Documents
1
Objectives
To introduce the concepts of user and system
requirements
To describe functional and non-functional
requirements
To explain how software requirements may be
organised in a requirements document
To describe requirements engineering, related
activities and processes
2
Requirements engineering
3
Requirement Engineering Goals
• Identify stakeholders and their needs.
6
Types of Requirements
7
Functional and non-functional requirements
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.
Non-functional requirements
constraints on the services or functions offered by the system
such as timing constraints, constraints on the development
process, standards, etc. in short; quality of the software
product
Domain requirements
Requirements that come from the application domain of the
system and that reflect characteristics of that domain.
8
Functional requirements
9
Requirements imprecision
10
Requirements completeness and consistency
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
11
Non-functional requirements
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 CASE system,
programming language or development method.
Non-functional requirements may be more critical
than functional requirements. If these are not
met, the system is useless.
12
Non-functional classifications
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.
13
Non-functional requirement types
Non-functional
requir ements
14
Requirements measures
Property Measure
Speed Processed transactions/second
User/Event response time
Screen refresh time
Size M Bytes
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
15
Domain requirements
Domain requirements are the requirements
which are characteristic of a particular category
or domain of projects.
Derived from the application domain and describe
system characteristics and features that reflect
the domain.
If domain requirements are not satisfied, the
system may be unworkable.
16
Domain requirements problems
Understandability
Requirements are expressed in the language of the
application domain;
This is often not understood by software engineers
developing the system.
Domain specialists understand the area so well that
they do not think of making the domain requirements
explicit.
17
User requirements
Should describe functional and non-functional
requirements in such a way that they are
understandable by system users who don’t have
detailed technical knowledge.
User requirements are defined using natural
language, tables and diagrams as these can be
understood by all users.
18
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.
19
System Requirements
More detailed specifications of system functions,
services and constraints than user requirements.
They are intended to be a basis for designing the
system.
They may be incorporated into the system
contract.
System requirements may be defined or
illustrated using system models
20
Requirement Engineering Activities/ Phases
• Elicitation
• Analysis
• Specification
• Management
Requirements elicitation
Requirements elicitation is the process of
discovering the requirements for a system
by communicating with customers, system
users and others who have a stake in the
system development.
Requirements to Elicit
• Boundaries
• Identify the high level boundaries of the system.
• Stakeholders and Use Cases depend on boundaries.
• Stakeholders
• Customer or Clients.
• Developers.
• Users (current and future).
• Goals
• Eliciting High level goals early in development.
• Tasks
• When it is difficult to articulate user requirements
Elicitation Techniques
•Interviews
•Open-ended
•Structured
•Surveys/ Questionnaires
•Meetings
•Group elicitation
•Brainstorming
•Delphi
Modeling and Analyzing Requirements
• Requirement modeling is the process of creating abstract descriptions
that are amenable to interpretation and validation.
• Enterprise organization.
• Information (data).
• Functional behavior.
• Business domain.
• Non-functional properties
Modeling Requirements
• Enterprise Modeling
• Business rules
• Data
• Data Modeling
• Dynamic or functional behavior of stakeholders and system, both existing (as is) and required (to be).
• Domain Modeling
• Difficult to analyze.
Requirement Specification
Business Solution Design and
Problem Implementation
Client Contractor
2
9
Requirements are Clear, Simple, and
Unambiguous
Complete: No missing information
Atomic: Express one and only one requirement
Traceable: Source, evolution, impact, effective use
Correct: needed
Unambiguous: exactly one meaning
Consistent: consistent with respect to the terminology
Verifiable: testable
Up to date: reflect the actual status
Tips for Writing : Requirements
• Write short sentences.
• Avoid redundancy. May ease the reading but not maintenance. May lead
to inconsistencies.
IEEE requirements standard
32
Requirements document structure
Preface
Introduction
Glossary
User requirements definition
System architecture
System requirements specification
System models
System evolution
Appendices
Index
33
Templates for Specifications
b. Unambiguous;
Different templates for requirements
specifications c. Complete;
g. Modifiable;
a. Correct;
h. Traceable.
The IEEE 830-1998 Template
1. Introduction
1. User Interfaces
1. Purpose
2. Hardware Interfaces
2. Document Conventions
3. Software Interfaces
3. Intended Audience and Reading
Suggestions 4. Communications Interfaces
•Ensures that the software being developed (or changed) will satisfy its stakeholders
•Checks the software requirements specification against stakeholders goals and requirements
• Question of truth and what is knowable (“Everybody lies.” [Dr. House #101]).
• Requirement Traceability
“The ability to describe and follow the lifecycle of a
requirement in both forwards and backwards
directions.”
Managing Requirements
• The fundamental goal is to keep project within costs, within
budget, and to meet customers needs.
• Evaluation of Risk