[go: up one dir, main page]

0% found this document useful (0 votes)
295 views5 pages

Chapter 4 LL - Requirement Engineering

This chapter discusses requirement engineering which refers to defining, documenting, and maintaining customer requirements. The requirement engineering process involves 4 steps: 1) feasibility study to evaluate technical, operational, and economic feasibility, 2) requirement elicitation and analysis to identify requirements, 3) software requirement specification to document requirements using models like data flow diagrams, and 4) validation to check requirements and 5) management of changing requirements. Requirements must be clear, correct, consistent, and distinguish between functional requirements describing system behavior and non-functional requirements specifying criteria like security.

Uploaded by

maki ababi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
295 views5 pages

Chapter 4 LL - Requirement Engineering

This chapter discusses requirement engineering which refers to defining, documenting, and maintaining customer requirements. The requirement engineering process involves 4 steps: 1) feasibility study to evaluate technical, operational, and economic feasibility, 2) requirement elicitation and analysis to identify requirements, 3) software requirement specification to document requirements using models like data flow diagrams, and 4) validation to check requirements and 5) management of changing requirements. Requirements must be clear, correct, consistent, and distinguish between functional requirements describing system behavior and non-functional requirements specifying criteria like security.

Uploaded by

maki ababi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Chapter 4

Requirement Engineering
4.1 Definition:

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.

4.2 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
(a) 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.

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.

(b) 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

o Getting all, and only, the right people involved.

o Stakeholders often don't know what they want

o Stakeholders express requirements in their terms.

o Stakeholders may have conflicting requirements.

o Requirement change during the analysis process.

o Organizational and political factors may influence system requirements.


(c) 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.

o 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.

o 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.
o 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.

(d) 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 -

o If they can practically implement

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

o If there are any ambiguities

o If they are full

o If they can describe

Requirements Validation Techniques

o Requirements reviews/inspections: systematic manual analysis of the requirements.

o Prototyping: Using an executable model of the system to check requirements.

o Test-case generation: Developing tests for requirements to check testability.

o Automated consistency analysis: checking for the consistency of structured


requirements descriptions.

(e) 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:

o Clear o Verifiable

o Correct o Prioritized

o Consistent o Unambiguous

o Coherent o Traceable

o Comprehensible o Credible source

o Modifiable

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:

o 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

You might also like