2
What arerequirements?
Types of requirements
Functional, non-functional & domain requirements
Business, user & System requirements
Requirement Engineering: Introduction
What is requirement engineering?
Why Requirement Engineering?
Requirement requirements: How- Requirement
Engineering Activities
Requirement requirements: When
Stakeholders in Requirement Engineering: Who
Contents
3.
3
Software requirementsare the descriptions of the system
services (essential & desired) and constraints (on System
operation and software development process).
Requirements are statements of what the system must do,
how it must behave in particular situations, the properties it
must exhibit, the qualities it must possess, and the
constraints that the system and its development must satisfy.
According to Institute of Electrical and Electronics Engineers
(IEEE) standard 729, a requirement is defined as follows:
a condition or capability needed by a user to solve a
problem or achieve an objective
What are requirements?
4.
4
Requirements might describe:
•Auser-level facility (e.g. the word processor must include a
spell checking and correction command)
•A very general system property (e.g. the system must ensure
that personal information is never made available without
authorization)
•How to carry out some computation (e.g. the overall mark is
computed by adding the students exams, project & individual
assignment marks based on the following formula. Total =
[mid exam + final exam + project + individual assignment])
• constraint on the development of the system (e.g.
• The system must be developed using java,
• The system will only use the data contained in the
existing corporate database.) Etc..
5.
5
As muchas possible, requirements should describe what the
system should do, but not how it should do it.
However, sometimes it is necessary for the requirement
documents to include information about the design of the
system. Because:
Readers are often practical engineers – they can relate it to
implementation descriptions.
The system may be one of several systems in an environment
- to be compatible with its environment specifying
implementation issues are important.
The specifiers 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. E.g. accounting equation.
What are requirements?...
6.
The mostcommon reasons for project failures are not technical.
Below the main reasons why projects fail is identified. The data
is drawn from surveys conducted by the Standish Group in 1995
and 1996.
• Incomplete requirements 13.1%
• Lack of user involvement 12.4%
• Lack of resources 10.6%
• Unrealistic expectations 9.9%
• Lack of executive support 9.3%
• Changing requirements/specifications 8.7%
• Lack of planning 8.1%
• Didn’t need it any longer 7.5%
Hence giving emphasis to requirements is crucial in any system dev’t.
6
7.
7
Software requirementsare often classified as functional
requirements, non-functional requirements or domain
requirements.
Functional requirements: Functional requirements capture
the intended behavior of the system. This behavior may be
expressed as services, tasks or functions the system is
required to perform. i.e. “What the system should do?”.
IEEE defines functional requirements as 'a function that a
system or component must be able to perform.'
Statements of services the system should provide, how the
system should react to particular inputs and how the
system should behave in particular situations.
Types of requirements
8.
In orderto find out functional requirements of a system try to
answer the questions below
What inputs the system should accept?
What outputs the system should produce?
What data the system should store that other systems might use?
What computations the system should perform?
E.g. The system shall display the longitude and latitude of the
student through GPS.
Non-functional requirements (NFRs): define the overall qualities or
attributes of the resulting system like: portability, (security),
maintainability, reliability, scalability, performance, reusability,
flexibility,…
They are basically the quality constraints that the system must
satisfy according to the project contract.
8
9.
9
Non-functional requirementscan be
Product requirements: Requirements which specify that the
delivered product must behave in a particular way e.g.
execution speed, reliability, etc.
Example: The system shall not fail more than two times per week.
Process requirements: are constraints placed upon the development
process of the system
Example: The system must be developed using Java.
External requirements: Requirements which arise from factors
which are external to the system and its development process .
Example: The system shall not disclose any personal information
about customers apart from their name and reference number to
the operators of the system.
Non-Functional Requirements…
11
Functional VsNon-Functional Requirements
There is no a clear distinction between functional and non-
functional requirements.
Whether or not a requirement is expressed as a functional
or a non-functional requirement may depend on:
the level of detail to be included in the requirements
document.
the degree of trust which exists between a system
customer and a system developer.
Types of requirements…
12.
12
Example: Thesystem shall ensure that data is protected from
unauthorised access.
Conventionally, this would be considered as a non-functional
requirement because it does not specify specific system
functionality which must be provided. However, it could
have been specified in slightly more detail as follows:
The system shall include a user authorisation procedure
where users must identify themselves using username and
password. Only users who are authorised in this way may
access the system data.
In this form, the requirement looks rather more like a
functional requirement as it specifies a function (user login)
which must be incorporated in the system.
Types of requirements…
13.
13
Domain Requirements
Domain requirements are expectations related to a particular type of
software, purpose or industry vertical like military, medical and
financial industry sectors
Requirements that come from the application domain of the system
and that reflect characteristics of that domain.
They are the requirements which are characteristic of a particular
category or domain of projects.
Domain requirements are not from specific needs of system users
and can be functional or non-functional.
They usually include specialized terminologies reference to domain
concept - they are difficult to understand
They may be new functional requirements (may be defining specific
computations) or can be constraints on existing requirements.
If domain requirements are not satisfied, the system may be
unworkable.
Types of requirements…
14.
For example,
The software must be developed in accordance with IEC 60601
regarding the basic safety and performance for medical electrical
equipment.
Domain requirements problems
Understandability
Req’ts are expressed in the language of the application
domain; often not understood by software engineers.
Implicitness
Domain specialists understand the area so well that they
do not think of making the domain requirements explicit.
14
15.
15
Kinds ofrequirements based on the intended purpose
and target audience:
Business Requirements:
Describes why the project is being started and what is its
scope and objective.
These are used to state the high-level business objective of
the organization or customer requesting the system or
product.
They are used to document main system features and
functionalities without going into their nitty-gritty (basic
important) details.
E.g. Implement a web and mobile-based employee tracking
system that tracks field employees and increases efficiency by
means of monitoring employee activity, absenteeism, and
productivity.
16.
16
User Requirements:
User requirements add further detail to the business
requirements.
What services the system is expected to provide to system
users and the constraints under which it must operate.
They are called user requirements because they are
written from a user’s perspective and the focus of user
requirement describe tasks the user must be able to
accomplish in order to fulfill the above stated business
requirements.
E.g. The system should be easy to use by site engineers
and should be organized in such a way that user errors
are minimized.
17.
17
System Requirements:
Detaileddescription of what the system should do
including the software system's functions, services, and
operational constraints.
The system requirements document (sometimes called a
functional specification) should define exactly what is to
be implemented.
are expanded versions of the user requirements that
are used by software engineers as the starting point
for the system design.
They add detail and explain how the user requirements
should be provided by the system.
Written as a contract between client and contractor
19
Requirement Engineering: Introduction
Requirement Engineering is the process of defining,
documenting and maintaining the requirements.
It is the process of understanding and defining what services
are required and identifying the constraints on these services.
Requirement engineering provides
the appropriate mechanism to understand what the customer desires,
analyzing the need, and assessing feasibility,
negotiating a reasonable solution,
specifying the solution clearly,
validating the specifications and
managing the requirements as they are transformed into a working
system.
20.
Requirements engineeringis complex because of
the three roles involved in producing even a single
requirement:
the requestor (referred to as the "user" in the IEEE
definition),
the author (who will document the requirements).
the developer (who will design and implement the
system), and
20
21.
Contd…
Typically, therequestor understands the problem to be
solved by the system but not how to develop a system.
The author needs to create a statement that
communicates unambiguously to the developer what the
requestor desires. Hence, requirements address a
fundamental communications problem.
The developer understands the tools and techniques
required to construct and maintain a system but not the
problem to be solved by that system.
21
22.
22
There aremany issues that can have a negative impact on software
development projects and products if practitioners don’t do a good
job of defining their software requirements.
These issues include:
Incomplete requirements
software product does not meet all of the customer and user’s
needs.
Lack of user involvement
Requirements churn
changes in the requirements after they are initially agreed to
and baselined.
Wasted resources
Requirements errors account for 70 to 85 percent of the
rework costs on a software project
Why Requirement Engineering?
23.
The costto fix a software defect varies according to how far along
you are in the cycle, according to authors Roger S. Pressman and
Robert B. Grady.
23
Why Requirement Engineering?
Variations in costs to fix a software defect
24.
24
Gold plating
developer adds functionality to the software that was not in the
requirements.
Inaccurate estimates
Without a clear picture of that scope, estimates of the project
schedule, cost, and quality will be less accurate.
Why Requirement Engineering?...
The hardest single part of building a software system is deciding
precisely what to build. No other part of the conceptual work is as
difficult as establishing the detailed technical requirements, including
all the interfaces to people, to machines, and to other software systems
No part systems of the work so cripples the resulting system if done
wrong. No other part is more difficult to rectify later. (Brooks, 1987)
No Silver Bullet: Essence and Accidents of Software Engineering.
25.
25
Stakeholders areindividuals who affect or are affected
by the software product and therefore have some level of
influence over the requirements for that software product.
In order to develop a good requirement document, it is
imperative to involve all kinds of user in the requirement
engineering process.
You need to identify the stakeholders in a system and
discover their requirements.
If you don’t do, you may find that they insist on changes
during the system development or after it has been
delivered for use.
Stakeholders: The Who of RE
26.
26
There arethree main categories of stakeholders:
the acquirers of the software product
the suppliers of the software product and
other stakeholders: legal or contract management, sales
and marketing, upper management,…
The acquirer type stakeholders can be
customers who request, purchase, and/or pay for the
software product
users, also called end-users, who actually use the product
directly
The suppliers of the software product include individuals and
teams that are part of the organization that develops, distribute,
delivery methods (for example, outsourcing).
Stakeholders…
27.
27
Software requirementsengineering is made up of two major
processes: requirements development and requirements
management.
Requirements development encompasses all of the activities
involved in eliciting, analyzing, specifying, and validating the
requirements.
It occur during the early concept and requirements phases of the life
cycle.
Requirements management is the process of understanding and
controlling changes to system requirements and maintaining links
between dependent requirements.
The activities used for requirement engineering vary widely
depending on the application domain, the people involved and the
organisation developing the requirements.
How Requirement Engineering ? Activities
28.
28
However, thereare a number of generic activities common to all
processes: Feasibility studies, Requirements elicitation and analysis,
Requirement specification, Requirements validation, Requirements change
management
Requirement Engineering Activities…
29.
29
A feasibilitystudy decides whether or not the proposed system is
worthwhile.
A short focused study that checks if the system;
contributes to organisational objectives?
can be engineered using current technology and within budget?
can be integrated with other systems that are used?
Unless the answers for the above questions are affirmative it has
no real value to the business.
Feasibility study
30.
30
Involves findingout the services that the system should provide
and the system’s operational constraints.
Is the most difficult, most critical, most error-prone, and most
communication-intensive aspect of software development.
Why Requirements elicitation and analysis is a difficult process?
Stakeholders often don’t really know what they want from the computer
system.
Stakeholders naturally express requirements in their own terms.
Different stakeholders have different requirements.
Political factors may influence the requirements of the system.
The requirements change during the analysis process.
New stakeholders may emerge and the business environment change.
Requirements elicitation & Analysis...
31.
The objectivesof requirement analysis & negotiation is to
establish an agreed set of requirements which are complete and
consistent.
During analysis process
Missing requirements
Requirements conflict
Ambiguous requirements are discovered
Overlapping requirements
Unrealistic requirements
For conflicting & ambiguous requirements stakeholders should
negotiate and agree on modifications and simplifications of the
requirements
Requirements Analysis & Negotiation
31
Introspection
Is themental thoughts of the requirements engineering about
the wants and needs of the stakeholders about the systems.
It amounts to imagining what kind of system I would want if
I were doing this job, using this equipment, etc.
There are almost no costs of this technique.
The analyst should be expert in the business processes of the
users
33
34.
Sources ofinformation:
Company reports, organization charts, policy manuals, job
descriptions, reports, documentation of existing systems, etc.
Helps to prepare for other types of fact finding.
Written documents often do not match up to reality.
Background Reading
34
35.
Probably themost common technique of requirements
elicitation.
Interviewers must be open-minded and should not approach the
interview with pre-conceived notions about what is required.
Stakeholders must be given a starting point for discussion (a
question, a requirements proposal, an existing system)
Structured (closed) interviews
Stakeholders answer a predefined set of questions.
Non-structured (open) interviews
No predefined agenda
In practice: mixed interview types are normal
Interview
35
36.
The surveysare used to conduct the RE over a large population of
interest. This technique covers the whole geographical region to get
the large set of requirements.
Can quickly collect info from large numbers of peoples
Success depends on the return rate
No room for users to convey their real needs
Surveys and Questionnaires
36
37.
Collaborative techniques: Grouptechniques
Brainstorming
It refers to the process of systematic and liberal generation of a
large volume of ideas from a number of participants in a need to
solve a problem.
So much severe criticism is not allowed in this type of technique
because due to this the biasness can be generated.
37
38.
Prototyping
A prototypeis an initial version of a system which may be
used for experimentation.
Prototypes are valuable for requirements elicitation
because users can experiment with the system and point
out its strengths and weaknesses of the implemented
requirements.
38
39.
Contextual approaches: ParticipantObservation
People often find it hard to describe what they do because it is so
natural to them.
Actual work processes often differ from formal, prescribed processes.
Sometimes the best way to understand it is to observe them at
work.
highly authentic requirements engineering tool
Mostly the results of observations are wrong as the customer
problems cannot be understand as they are being watched during
observations and adjust themselves.
39
40.
40
In thisactivity complete description of the behavior of the
system is developed.
The requirements specification document states in precise and
explicit language those functions and capabilities a software
system must provide, as well as stating any required constraints
by which the system must abide.
Recommended approaches for the specification of software
requirements are described by IEEE 830-1998.
Software Requirement Specification
41.
There isno formulaic way to write excellent requirements.
It is largely a matter of experience and learning from the
requirements problems you have encountered in the past.
Here are a few guidelines to keep in mind as you document
software requirements.
Keep sentences and paragraphs short. Use the active voice.
Use proper grammar, spelling, and punctuation.
To see if a requirement statement is sufficiently well defined,
read it from the developer’s perspective.
Watch out for multiple requirements that have been
aggregated into a single statement.
Guidelines for Writing Quality Requirements
42.
Write requirementsat a consistent level of detail throughout
the document.
Requirement authors often struggle to find the right level of
granularity. Avoid long narrative paragraphs that contain
multiple requirements.
Avoid stating requirements redundantly in the SRS.
Define standard templates for describing requirements
Use language simply consistently and concisely.
Use diagrams appropriately
Supplement natural language with other description of
requirements
Specify requirements quantitatively
Guidelines for Writing Quality Requirements…
43.
43
Correct –A requirement has to be correct.
The information used to create it has to be correct and has to
reflect reality.
Necessary – A requirement has to be necessary.
If it wasn’t included, what’s the worst that could happen? If you
and the users are willing to accept those consequences, then it
probably isn’t really necessary.
Focus(not amalgamated) – A requirement has to focus on one
thing.
Don’t write one requirement that specifies multiple needs –
instead, break it up into several requirements.
Don’t– “The meter shall display a minimum of -999 and a
maximum of 999 volts.”
Do – “The meter shall display a minimum value of -999 volts.”
and “The meter shall display a maximum value of 999 volts.”
Characteristics of requirements
44.
44
Feasible –A requirement must be feasible/practical.
If you cannot implement it with the budget, schedule, resources, and
other limitations that are available to your project, then either it must
be dropped or the project has already failed.
Verifiable – A requirement has to be testable/testable.
Once a solution for a requirement has been implemented, you need some way
to know if the design and implementation are correct. If you can’t test the
requirement, then the product is indeterminate – you can’t prove that what
you built is right, and you may never get acceptance from the customer
Requirement: The treadmill shall run continuously for 5,000 hours
at 5 mph without failing.
Questions to ask: How are we going to test this? Is it possible? Is it
necessary?
Better: The treadmill shall have a Mean Time Between Failure
(MTBF) of less than X with . . .
More on characteristics of requirements…
45.
45
Precise -requirement should be evident and unambiguous
The system shall accept valid employee ID numbers from 1 to
9999.
Are all numbers between 1 and 9999 valid? Is 2 OK as well
as 0002?
The system shall accept only valid ID numbers as defined
elsewhere. No other valid number will be accepted unless it is
an integer between 1 and 9999 inclusive, represented without
leading zeros.
Clear: A requirement has to be clear and unambiguous
Requirement: The treadmill shall support a maximum load of three.
Questions to ask: Three what? This is ambiguous and unclear.
Better: The treadmill shall support a maximum power load of three watts.
More on characteristics of requirements…
48
Concerned withdemonstrating that the requirements define the
system that the customer really wants and they are error free.
To validate requirements we may use the following requirement
validation techniques:
Requirements reviews
Systematic manual analysis of the requirements.
Prototyping
Using an executable model of the system to check requirements.
Test-case generation
Developing tests for requirements to check testability.
Requirements validation
49.
49
Requirements managementis the process of managing
changing requirements during the requirements engineering
process and system development.
It includes:
Requesting changes to the baselined requirements
performing impact analysis for the requested changes
approving or disapproving those changes, and
implementing the approved changes
ensuring that all work products and project plans are kept
consistent and tracking the status of the requirements as one
progresses through the software development process.
Requirements management
Editor's Notes
#2 Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings
#3 constraints -limit the boundary of the proposed solution
#4 System requirements describe what the system shall do whereas the user requirements (user needs) describe what the user does with the system
#5 Why do we need to include information about the design of the system to the requirement document?
Attendance system– SIMS compatibility asset= liability + equity
#9 Functional and non-functional requirements
Functional requirements
Non-functional requirements
#10 Functional and non-functional requirements
Functional requirements
Non-functional requirements
#15 BR are not organizational objectives but aid the organization to achieve its objectives.
#20 List the three roles involved in producing requirements.
#22 A way to reduce Requirement Churn is having shorter release cycles. Churn rate= Lost Customers ÷ Total Customers at the Start of Time Period) x 100
#31 Missing requirements, or requirements shortfall, is a perceived defect that is the result of lacking functional, behavior or non-functional requirements. two components overlap if they have any artifacts in common, regardless of those artifact versions.
#37 A Moderator is someone who tries to help other people come to an agreement.
#39 Validation is the process of checking whether the specification captures the customer's needs. ... Verification is the process of checking that the software meets the specification.