UNIT 2 : REQUIMENT ENGGINERRING
1:understanding the requirement :
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
2:requirement modelling :
Requirements Modeling is a process of documenting, analyzing, and managing
Requirements. Requirements change throughout the project, so it is important to
have a way to track them and make sure everyone understands them. There are
many tools and courses available to help you with Requirements Modeling. In this
article, we will discuss what Requirements Modeling is, the different processes and
tools involved in Requirements Modeling, as well as some courses that can help
you learn more about Requirements Modeling.
What is Requirements Modeling?
The technique of modeling requirements and solutions as they change through
collaborative work and cooperation is known as Requirements Modeling. You may
ensure that your team satisfies the stakeholders’ exact requirements by employing
this approach of cross-functional, self-organizing teams.
Requirements Modeling is the process of documenting, analyzing, and managing
Requirements. Requirements can be anything that a customer or user wants from a
software system. They can include functional requirements (what the system
should do), non-functional requirements (such as performance, security, etc.), as
well as constraints (things that might limit what the system can do).
The Requirements Modeling process involves three main activities:
1. Analysis: Once the Requirements have been collected, ththey need to be analyzed to
see if they are complete, consistent, and clear. Any inconsistencies or ambiguities
should be resolved at this stage.
2. Documentation: The Requirements should be documented in a clear and concise
way. This will ensure that everyone understands the Requirements and can refer back
to them if needed.
3. Management: Once the Requirements have been collected and documented, they
need to be managed throughout the project. This includes keeping track of changes to
Requirements, making sure everyone is aware of these changes, and ensuring that the
requirements are still being met.
Benefits of Requirements Modeling
Requirements modeling will improve the clarity of your requirements. This may
have a profound influence on the success of your software projects. The following
are some of the most significant advantages of adopting modern requirements
modeling and management systems:
1. Creating simulations is a breeze
2. Automatic document generation
3. Automatics Test Conduction
4. Easy integration with development and testing tools
5. Easy requirements change management
3:requirement specification (srs):
In order to form a good SRS, here you will see some points that can be used
and should be considered to form a structure of good Software Requirements
Specification (SRS). These are below mentioned in the table of contents and
are well explained below.
Software Requirement Specification (SRS) Format as the name suggests,
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.
Depending upon information gathered after interaction, SRS is developed
which describes requirements of software that may include changes and
modifications that is needed to be done to increase quality of product and to
satisfy customer’s demand.
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.
General description
In this, general functions of product which includes objective of user, a user
characteristic, features, benefits, about why its importance is mentioned. It also
describes features of user community.
Functional Requirements
In this, possible outcome of software system which includes effects due to operation
of program is fully explained. All functional requirements which may include
calculations, data processing, etc. are placed in a ranked order. Functional
requirements specify the expected behavior of the system-which outputs should be
produced from the given inputs. They describe the relationship between the input
and output of the system. For each functional requirement, detailed description all
the data inputs and their source, the units of measure, and the range of valid inputs
must be specified.
Interface Requirements
In this, software interfaces which mean how software program communicates with
each other or users either in form of any language, code, or message are fully
described and explained. Examples can be shared memory, data streams, etc.
Performance Requirements
In this, how a software system performs desired functions under specific condition is
explained. It also explains required time, required memory, maximum error rate, etc.
The performance requirements part of an SRS specifies the performance constraints
on the software system. All the requirements relating to the performance
characteristics of the system must be clearly specified. There are two types of
performance requirements: static and dynamic. Static requirements are those that do
not impose constraint on the execution characteristics of the system. Dynamic
requirements specify constraints on the execution behaviour of the system.
Design Constraints
In this, constraints which simply means limitation or restriction are specified and
explained for design team. Examples may include use of a particular algorithm,
hardware and software limitations, etc. There are a number of factors in the client’s
environment that may restrict the choices of a designer leading to design constraints
such factors include standards that must be followed resource limits, operating
environment, reliability and security requirements and policies that may have an
impact on the design of the system. An SRS should identify and specify all such
constraints.
Non-Functional Attributes
In this, non-functional attributes are explained that are required by software system
for better performance. An example may include Security, Portability, Reliability,
Reusability, Application compatibility, Data integrity, Scalability capacity, etc.
Preliminary Schedule and Budget
In this, initial version and budget of project plan are explained which include overall
time duration required and overall cost required for development of project.
Appendices
In this, additional information like references from where information is gathered,
definitions of some specific terms, acronyms, abbreviations, etc. are given and
explained.
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.
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.
4:requirement analysis and requirement elicitation:
Requirements Elicitation
It is related to the various ways used to gain knowledge about the
project domain and requirements. The various sources of domain
knowledge include customers, business manuals, the existing software
of same type, standards and other stakeholders of the project. The
techniques used for requirements elicitation include interviews,
brainstorming, task analysis, Delphi technique, prototyping, etc. Some
of these are discussed here. Elicitation does not produce formal models
of the requirements understood. Instead, it widens the domain
knowledge of the analyst and thus helps in providing input to the next
stage
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
development project. The goal of this step is to understand the problem that the
software system is intended to solve, and the needs and expectations of the
stakeholders who will use the system.
There are several techniques that 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.
Requirements Analysis
This step involves analyzing the information gathered in the requirements elicitation
step to identify the high-level goals and objectives of the software system. It also
involves identifying any constraints or limitations that may affect the development
of the software system
[Link] engineering :
Requirements engineering is the process of identifying, eliciting, analyzing,
specifying, validating, and managing the needs and expectations of stakeholders for
a software system.
Steps in Requirements Engineering Process
The requirements engineering process is an iterative process that involves several
steps, including:
Requirements Elicitation
This is the process of gathering information about the needs and expectations of
stakeholders for the software system. This step involves interviews, surveys, focus
groups, and other techniques to gather information from stakeholders.
Requirements Analysis
This step involves analyzing the information gathered in the requirements elicitation
step to identify the high-level goals and objectives of the software system. It also
involves identifying any constraints or limitations that may affect the development
of the software system.
Requirements Specification
This step involves documenting the requirements identified in the analysis step in a
clear, consistent, and unambiguous manner. This step also involves prioritizing and
grouping the requirements into manageable chunks.
Requirements Validation
This step involves checking that the requirements are complete, consistent, and
accurate. It also involves checking that the requirements are testable and that they
meet the needs and expectations of stakeholders.
Requirements Management
This step involves managing the requirements throughout the software development
life cycle, including tracking and controlling changes, and ensuring that the
requirements are still valid and relevant.
Requirement Engineering
The Requirements Engineering process is a critical step in the software development
life cycle as it helps to ensure that the software system being developed meets the
needs and expectations of stakeholders, and that it is developed on time, within
budget, and to the required quality.
Requirement Engineering is the process of defining, documenting and maintaining
the requirements. It is a process of gathering and defining service provided by the
system. it is the disciplined application of proven principle , methods ,tools and
notations to describe a proposed system’s intended behaviour and its associated
constraints
Tools Involved in Requirement Engineering
observation report
Questionnaire ( survey , poll )
Use cases
User stories
Requirement workshop
Mind mapping
Role playing
Prototyping