Javatpoint Logo
Javatpoint Logo

Requirement Engineering

The process to collect the software requirements from customers, analyze and document them is referred to as requirement engineering.

The primary purpose of requirement engineering is to develop and maintain the delicate and descriptive 'System Requirements Specification' document.

Requirement Engineering Process:

It is a four-step process, which includes -

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.

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 Gathering:

After the feasibility study, the report of the feasibility study is positive towards the project then, next phase starts with collect requirements from the customers. In this phase, the analyst and engineer interact with a client and end-users to know their demands on what the project should provide and what features they want the software to include.

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.

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

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
  • 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 behaviour 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 behaviours 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.

Next TopicWaterfall model

Please Share

facebook twitter google plus pinterest

Learn Latest Tutorials


B.Tech / MCA