Advanced Software 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: 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.
Elicitation Elicitation means to find the requirements from anybody. The requirements are difficult because the following problems occur in elicitation. The customer give the unnecessary technical detail rather than clarity of the overall system objective. Poor understanding between the customer and the developer regarding various aspect of the project like capability, limitation of the computing environment. In this problem, the requirements change from time to time and it is difficult while developing the project.
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. To create rough guesses of development and access the impact of the requirement on the project cost and delivery time. 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. 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.
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: Collaborative requirements gathering Gathering the requirements by conducting the meetings between developer and customer. Fix the rules for preparation and participation. 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.
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.
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'. 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.