0% found this document useful (0 votes)
3 views

Requirement Engineering

Requirement engineering (RE) is the process of defining, documenting, and maintaining requirements in the engineering design process. It involves a four-step process: feasibility study, requirement elicitation and analysis, software requirement specification, and software requirement validation. The document also categorizes software requirements into functional and non-functional requirements, emphasizing the importance of clear and well-defined specifications.

Uploaded by

Benedict Pang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Requirement Engineering

Requirement engineering (RE) is the process of defining, documenting, and maintaining requirements in the engineering design process. It involves a four-step process: feasibility study, requirement elicitation and analysis, software requirement specification, and software requirement validation. The document also categorizes software requirements into functional and non-functional requirements, emphasizing the importance of clear and well-defined specifications.

Uploaded by

Benedict Pang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

8/16/2020 Software Engineering | Requirement Engineering - javatpoint

學生可享 Adobe Creative Cloud 低


至 4 折優惠
立即選購

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.

https://www.javatpoint.com/software-engineering-requirement-engineering 1/6
8/16/2020 Software Engineering | Requirement Engineering - javatpoint

Types of Feasibility:

1. Technical Feasibility - Technical feasibility evaluates the current technologies, which are needed to
accomplish customer requirements within the time and budget.

2. Operational Feasibility - Operational feasibility assesses the range in which the required software
performs a series of levels to solve business problems and customer requirements.

3. Economic Feasibility - Economic feasibility decides whether the necessary software can generate
financial profits for an organization.

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.

Analysis of requirements starts with requirement elicitation. The requirements are analyzed to identify
inconsistencies, defects, omission, etc. We describe requirements in terms of relationships and also resolve
conflicts if any.

Problems of Elicitation and Analysis

Getting all, and only, the right people involved.

Stakeholders often don't know what they want

Stakeholders express requirements in their terms.

Stakeholders may have conflicting requirements.

Requirement change during the analysis process.

Organizational and political factors may influence system requirements.

https://www.javatpoint.com/software-engineering-requirement-engineering 2/6
8/16/2020 Software Engineering | Requirement Engineering - javatpoint

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. It is the job of the analyst to write the requirement in technical language so that they
can be understood and beneficial by the development team.

The models used at this stage include ER diagrams, data flow diagrams (DFDs), function decomposition
diagrams (FDDs), data dictionaries, etc.

Data Flow Diagrams: Data Flow Diagrams (DFDs) are used widely for modeling the requirements.
DFD shows the flow of data through a system. The system may be a company, an organization, a set
of procedures, a computer hardware system, a software system, or any combination of the
preceding. The DFD is also known as a data flow graph or bubble chart.

Data Dictionaries: Data Dictionaries are simply repositories to store information about all data
items defined in DFDs. At the requirements stage, the data dictionary should at least define customer
data items, to ensure that the customer and developers use the same definition and terminologies.

Entity-Relationship Diagrams: Another tool for requirement specification is the entity-relationship


diagram, often called an "E-R diagram." It is a detailed logical representation of the data for the
organization and uses three main constructs i.e. data entities, relationships, and their associated
attributes.

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. Requirements can be
the check against the following conditions -

If they can practically implement

If they are correct and as per the functionality and specially of software

If there are any ambiguities

If they are full

If they can describe

Requirements Validation Techniques

Requirements reviews/inspections: 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.

Automated consistency analysis: checking for the consistency of structured requirements


descriptions.

Software Requirement Management:

Requirement management is the process of managing changing requirements during the requirements
engineering process and system development.

New requirements emerge during the process as business needs a change, and a better understanding of
the system is developed.

The priority of requirements from different viewpoints changes during development process.

The business and technical environment of the system changes during the development.

Prerequisite of Software requirements


Collection of software requirements is the basis of the entire software development project. Hence they
should be clear, correct, and well-defined.

A complete Software Requirement Specifications should be:

Clear

Correct

Consistent ⇧

https://www.javatpoint.com/software-engineering-requirement-engineering 3/6
8/16/2020 Software Engineering | Requirement Engineering - javatpoint

Coherent

Comprehensible

Modifiable

Verifiable

Prioritized

Unambiguous

Traceable

Credible source

Software Requirements: Largely software requirements must be categorized into two categories:

1. Functional Requirements: Functional requirements define a function that a system or system


element must be qualified to perform and must be documented in different forms. The functional
requirements are describing the behavior of the system as it correlates to the system's functionality.

2. Non-functional Requirements: This can be the necessities that specify the criteria that can be
used to decide the operation instead of specific behaviors of the system.
Non-functional requirements are divided into two main categories:

Execution qualities like security and usability, which are observable at run time.

Evolution qualities like testability, maintainability, extensibility, and scalability that embodied
in the static structure of the software system.

← prev next →

Help Others, Please Share

Speak to us today
Trusted advisors to the public and private sector since 1965.

TBH LEARN MORE

Learn Latest Tutorials

IoT GraphQL Xampp Kivy A. Anywhere

Ext.js UiPath Arduino Digital E. Adwords

MySQL Python Smartsheet Affiliate M. ⇧

https://www.javatpoint.com/software-engineering-requirement-engineering 4/6
8/16/2020 Software Engineering | Requirement Engineering - javatpoint

Preparation

Aptitude Reasoning Verbal A. Interview Company

Trending Technologies

Artificial AWS Selenium Cloud Hadoop


Intelligence Tutorial tutorial tutorial tutorial
Tutorial
AWS Selenium Cloud Hadoop
AI

ReactJS Data Science Angular 7 Blockchain Git Tutorial


Tutorial Tutorial Tutorial Tutorial
Git
ReactJS D. Science Angular 7 Blockchain

Machine DevOps
Learning Tutorial
Tutorial
DevOps
ML

B.Tech / MCA

DBMS Data DAA Operating Computer


tutorial Structures tutorial System tutorial Network
tutorial tutorial
DBMS DAA OS
DS C. Network

Compiler Computer Discrete Ethical Computer


Design tutorial Organization Mathematics Hacking Graphics
and Tutorial Tutorial Tutorial
Compiler D. Architecture
D. Math. E. Hacking C. Graphics
COA

Software html tutorial Cyber Automata C Language


Engineering Security Tutorial tutorial
Tutorial Web Tech. tutorial
Automata C
Software E. Cyber Sec.

C++ tutorial Java tutorial .Net Python List of


Framework tutorial Programs
C++ Java tutorial
Python Programs
.Net

Control Data Mining


Systems Tutorial
tutorial
Data Mining
Control S.

https://www.javatpoint.com/software-engineering-requirement-engineering 5/6
8/16/2020 Software Engineering | Requirement Engineering - javatpoint

https://www.javatpoint.com/software-engineering-requirement-engineering 6/6

You might also like