Software Requirements Engineering

Introduction to requirement engineering

  • The process of collecting the software requirement from the client then understand, evaluate and document it is called as requirement engineering.
  • Requirement engineering constructs a bridge for design and construction.
Requirement engineering consists of seven different tasks as follow:

1. Inception
  • Inception is a task where the requirement engineering asks a set of questions to establish a software process.
  • In this task, it understands the problem and evaluates with the proper solution.
  • It collaborates with the relationship between the customer and the developer.
  • The developer and customer decide the overall scope and the nature of the question.
2. Elicitation
Elicitation means to find the requirements from anybody.
The requirements are difficult because the following problems occur in elicitation.

Problem of scope: The customer give the unnecessary technical detail rather than clarity of the overall system objective.

Problem of understanding: Poor understanding between the customer and the developer regarding various aspect of the project like capability, limitation of the computing environment.

Problem of volatility: In this problem, the requirements change from time to time and it is difficult while developing the project.

3. Elaboration
  • In this task, the information taken from user during inception and elaboration and are expanded and refined in elaboration.
  • Its main task is developing pure model of software using functions, feature and constraints of a software.
4. Negotiation
  • In negotiation task, a software engineer decides the how will the  project be achieved with limited business resources.
  • To create rough guesses of development and access the impact of the requirement on the project cost and delivery time.
5. Specification
  • In this task, the requirement engineer constructs a final work product.
  • The work product is in the form of software requirement specification.
  • In this task, formalize the requirement of the proposed software such as informative, functional and behavioral.
  • The requirement are formalize in both graphical and textual formats.
6. Validation
  • The work product is built as an output of the requirement engineering and that is accessed for the quality through a validation step.
  • The formal technical reviews from the software engineer, customer and other stakeholders helps for the primary requirements validation mechanism.
7. Requirement management
  • It is a set of activities that help the project team to identify, control and track the requirements and changes can be made to the requirements at any time of the ongoing project.
  • These tasks start with the identification and assign a unique identifier to each of the requirement.
  • After finalizing the requirement traceability table is developed.
  • The examples of traceability table are the features, sources, dependencies, subsystems and interface of the requirement.

Eliciting Requirements

Eliciting requirement helps the user for collecting the requirement

Eliciting requirement steps are as follows:

1. Collaborative requirements gathering
  • Gathering the requirements by conducting the meetings between developer and customer.
  • Fix the rules for preparation and participation.
  • The main motive is to identify the problem, give the solutions  for the elements, negotiate the different approaches  and specify the primary set of solution requirements in an environment which is valuable for achieving goal.
2. Quality Function Deployment (QFD)
  • In this technique, translate the customer need into the technical requirement for the software.
  • QFD system designs a software according to the demands of the customer.
QFD consist of three types of requirement:

Normal requirements
  • The objective and goal are stated for the system through the meetings with the customer.
  • For the customer satisfaction these requirements should be there.
Expected requirement
  • These requirements are implicit.
  • These are the basic requirement that not be clearly told by the customer, but also the customer expect that requirement.
Exciting  requirements
  • These features are beyond the expectation of the customer.
  • The developer adds some additional features or unexpected feature into the software to make the customer more satisfied.
    For example, the mobile phone with standard features, but the developer adds few additional functionalities like voice searching, multi-touch screen etc. then the customer more exited about that feature.
3. Usage scenarios
  • Till the software team does not understand how the features and function are used by the end users it is difficult to move technical activities.
  • To achieve above problem the software team produces a set of structure that identify the usage for the software.
  • This structure is called as 'Use Cases'.
4. Elicitation work product
  • The work product created as a result of requirement elicitation that is depending on the size of the system or product to be  built.
  • The work product consists of a statement need, feasibility, statement scope for the system.
  • It also consists of a list of users participate in the requirement elicitation.