UNIT-2 REQUIREMENT ENGINEERING
Requirement Engineering
Requirements engineering (RE) refers to the process of defining, documenting, and
maintaining requirements in the engineering design process. 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. Thus, requirement engineering is the disciplined
application of proven principles, methods, tools, and notation to describe a proposed
system's intended behavior and its associated constraints.
Requirement Engineering Process
It is a four-step process, which includes -
1. Feasibility Study
2. Requirement Elicitation and Analysis
3. Software Requirement Specification
4. Software Requirement Validation
5. Software Requirement Management
1. Feasibility Study:
The objective behind the feasibility study is to create the reasons for developing the
software that is acceptable to users, flexible to change and conformable to established
standards.
2. Requirement Elicitation and Analysis:
This is also known as the gathering of requirements. Here, requirements are identified
with the help of customers and existing systems processes, if available.
1
Page
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
3. Software Requirement Specification:
Software requirement specification is a kind of document which is created by a software
analyst after the requirements collected from the various sources - the requirement
received by the customer written in ordinary language.
4. Software Requirement Validation:
After requirement specifications developed, the requirements discussed in this document
are validated. The user might demand illegal, impossible solution or experts may
misinterpret the needs.
software requirement specification document (SRS) (also called a requirements
document)
A software requirement specifications (SRS) document lists the requirements,
expectations, design, and standards for a future project. an SRS provides a detailed
description of how a software product should work and how your development team
should make it work.
is a complete specification and description of requirements of the software that need to
be fulfilled for the successful development of the software system. These requirements
can be functional as well as non-functional depending upon the type of requirement. The
interaction between different customers and contractors is done because it is necessary
to fully understand the needs of customers
Introduction
Purpose of this Document – At first, main aim of why this document is necessary
and what’s purpose of document is explained and described.
Scope of this document – In this, overall working and main objective of document
and what value it will provide to customer is described and explained. It also
includes a description of development cost and time required.
Overview – In this, description of product is explained. It’s simply summary or
overall review of product.
The important parts of the Software Requirements Specification (SRS) document are:
1. Functional requirements of the system
2. Non-functional requirements of the system, and
3. Goals of implementation
2
Page
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
Functional requirements define a system or its component i.e. how the system must
work whereas non-functional requirements define the quality attribute of a system i.e. how
the system should perform
What are Functional Requirements?
These are the requirements that the end user specifically demands as basic facilities
that the system should offer. All these functionalities need to be necessarily
incorporated into the system as a part of the contract.
These are represented or stated in the form of input to be given to the system, the
operation performed and the output expected. They are the requirements stated by the
user which one can see directly in the final product, unlike the non-functional
requirements.
Examples:
What are the features that we need to design for this system?
What are the edge cases we need to consider, if any, in our design?
What are Non-Functional Requirements?
These are the quality constraints that the system must satisfy according to the project
contract. The priority or extent to which these factors are implemented varies from one
project to another. They are also called non-behavioral requirements. They deal with
issues like:
Portability
Security
Maintainability
Reliability
Scalability
3
Performance
Page
Reusability
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
Flexibility
Examples:
Each request should be processed with the minimum latency?
System should be highly valuable.
Differences between Functional Requirements and Non-Functional Requirements:
Below are the differences between Functional Requirements and Non-Functional
Requirements:
Aspect Functional Requirements Non-Functional Requirements
Describes what the system Describes how the system should
should do, i.e., specific perform, i.e., system attributes or
Definition functionality or tasks. quality.
Focuses on the performance,
Focuses on the behavior and
usability, and other quality
features of the system.
Purpose attributes.
Defines constraints or conditions
Defines the actions and
under which the system must
operations of the system.
Scope operate.
User authentication, data
Scalability, security, response
input/output, transaction
time, reliability, maintainability.
Examples processing.
More difficult to measure, often
Easy to measure in terms of
assessed using benchmarks or
outputs or results.
Measurement SLAs.
Affects the architecture and
Drives the core design and
Impact on overall performance of the
functionality of the system.
Development system.
Focus on User Directly related to user and Focuses on user experience and
Needs business requirements. system performance.
4 Page
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
Aspect Functional Requirements Non-Functional Requirements
Typically documented in use Documented through
cases, functional specifications, performance criteria, technical
Documentation etc. specifications, etc.
Can be tested through Evaluated through performance
functional testing (e.g., unit or testing, security testing, and
Evaluation integration tests). usability testing.
Determines what the system Depends on how well the system
Dependency must do to meet user needs. performs the required tasks.
Uses of SRS document
Development team require it for developing product according to the need.
Test plans are generated by testing group based on the describe external behaviour.
Maintenance and support staff need it to understand what the software product is
supposed to do.
5
Page
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
Project manager base their plans and estimates of schedule, effort and resources on
it.
customer rely on it to know that product they can expect.
As a contract between developer and customer.
in documentation purpose.
What is Requirements Specification?
Requirement specification, also known as documentation, is a process of jotting down all
the system and user requirements in the form of a document. These requirements must
be clear, complete, comprehensive, and consistent.
During the capturing activity, we gather all the requirements from various sources.
During the analysis and negotiation activities, we analyze and understand those
requirements. Now, we must prepare a formal document explaining those requirements.
That is what the requirement specification is. To be precise, it is the process of
documenting all the user and system needs and constraints in a clear and accurate
manner
Requirements Engineering?
A systematic and strict approach to the definition, creation, and verification of
requirements for a software system is known as requirements engineering. To guarantee
the effective creation of a software product, the requirements engineering process entails
several tasks that help in understanding, recording, and managing the demands of
stakeholders.
1. Feasibility Study
Page
2. Requirements elicitation
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
3. Requirements specification
4. Requirements for verification and validation
5. Requirements management
1. Feasibility Study
The feasibility study mainly concentrates on below five mentioned areas below. Among
these Economic Feasibility Study is the most important part of the feasibility analysis
and the Legal Feasibility Study is less considered feasibility analysis.
1. Technical Feasibility: In Technical Feasibility current resources both hardware
software along required technology are analyzed/assessed to develop the project.
This technical feasibility study reports whether there are correct required resources
and technologies that will be used for project development. Along with this, the
feasibility study also analyzes the technical skills and capabilities of the technical
team, whether existing technology can be used or not, whether maintenance and
up-gradation are easy or not for the chosen technology, etc.
Operational Feasibility: In Operational Feasibility degree of providing service to
requirements is analyzed along with how easy the product will be to operate and
maintain after deployment.
3. Economic Feasibility: In the Economic Feasibility study cost and benefit of the
project are analyzed. This means under this feasibility study a detailed analysis is
carried out will be cost of the project for development which includes all required
costs for final development hardware and software resources required, design and
development costs operational costs, and so on. After that, it is analyzed whether
the project will be beneficial in terms of finance for the organization or not.
4. Legal Feasibility: In legal feasibility, the project is ensured to comply with all
relevant laws, regulations, and standards. Additionally, legal feasibility considers
issues related to intellectual property, such as patents and copyrights, to safeguard
the project’s innovation and originality.
2. Requirements Elicitation and Analysis
Requirements elicitation is the process of gathering information about the needs and
expectations of stakeholders for a software system. This is the first step in the
requirements engineering process and it is critical to the success of the software
7
Page
development project. The goal of this step is to understand the problem that the
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
software system is intended to solve and the needs and expectations of the
stakeholders who will use the system.
Several techniques can be used to elicit requirements, including:
Interviews: These are one-on-one conversations with stakeholders to gather
information about their needs and expectations.
Surveys: These are questionnaires that are distributed to stakeholders to gather
information about their needs and expectations.
Focus Groups: These are small groups of stakeholders who are brought together to
discuss their needs and expectations for the software system.
Observation: This technique involves observing the stakeholders in their work
environment to gather information about their needs and expectations.
Prototyping: This technique involves creating a working model of the software
system, which can be used to gather feedback from stakeholders and to validate
requirements.
3 Requirements Specification
Several types of requirements are commonly specified in this step, including
1. Functional Requirements: These describe what the software system should do.
They specify the functionality that the system must provide, such as input
validation, data storage, and user interface.
2. Non-Functional Requirements: These describe how well the software system
should do it. They specify the quality attributes of the system, such as performance,
reliability, usability, and security.
3. Constraints: These describe any limitations or restrictions that must be considered
when developing the software system.
8
Page
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
4. Requirements Verification and Validation
Verification: It refers to the set of tasks that ensures that the software correctly
implements a specific function.
Validation: It refers to a different set of tasks that ensures that the software that has
been built is traceable to customer requirements. If requirements are not validated,
errors in the requirement definitions would propagate to the successive stages resulting
in a lot of modification and rework. The main steps for this process include:
1. The requirements should be consistent with all the other requirements i.e. no two
requirements should conflict with each other.
2. The requirements should be complete in every sense.
3. The requirements should be practically achievable.
Or
Requirements verification and validation (V&V) is the process of checking that the
requirements for a software system are complete, consistent, and accurate and that
they meet the needs and expectations of the stakeholders. The goal of V&V is to
ensure that the software system being developed meets the requirements and that it
is developed on time, within budget, and to the required quality.
Helps ensure that the software being developed meets the needs and expectations of
the stakeholders
Advantages of Requirements Engineering Process
9
Can help identify potential issues or problems early in the development process,
Page
allowing for adjustments to be made before significant
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
Helps ensure that the software is developed in a cost-effective and efficient manner
Can improve communication and collaboration between the development team and
stakeholders
Helps to ensure that the software system meets the needs of all stakeholders.
Provides an unambiguous description of the requirements, which helps to reduce
misunderstandings and errors.
Helps to identify potential conflicts and contradictions in the requirements, which
can be resolved before the software development process begins.
Helps to ensure that the software system is delivered on time, within budget, and to
the required quality standards.
Provides a solid foundation for the development process, which helps to reduce the
risk of failure.
Disadvantages of Requirements Engineering Process
Can be time-consuming and costly, particularly if the requirements-gathering
process is not well-managed
Can be difficult to ensure that all stakeholders’ needs and expectations are taken
into account
It Can be challenging to ensure that the requirements are clear, consistent, and
complete
Changes in requirements can lead to delays and increased costs in the development
process.
As a best practice, Requirements engineering should be flexible, adaptable, and
should be aligned with the overall project goals.
It can be time-consuming and expensive, especially if the requirements are complex.
It can be difficult to elicit requirements from stakeholders who have different needs
and priorities.
Requirements may change over time, which can result in delays and additional
costs.
There may be conflicts between stakeholders, which can be difficult to resolve.
It may be challenging to ensure that all stakeholders understand and agree on the
requirements.
*********************************************************************
10
Page
VIDYA PAWAR, Vedanta Degree College , Raichur
UNIT-2 REQUIREMENT ENGINEERING
11
Page
VIDYA PAWAR, Vedanta Degree College , Raichur