Requirements Engineering

Bread Crumbs: Home - SW_Dev_Proc - Req Engr

Requirements engineering assesses the feasibility of a project and if deemed feasible, gleans precise and accurate requirements which, when fulfilled, culminate in the correct system for the customer.

It is important to build the correct system correctly and that cannot happen without defining accurate, precise, and valid requirements. Requirements must be accurate in that they must capture the actual meaning of customer inputs and not attempt to interpret or embellish those inputs. Requirements must be precise in that if a customer says they want a certain detail, say temperature displayed in degrees Fahrenheit, it is important to deliver that detail. Don't assume that degrees in Celsius should be just as good. That is not precisely what the customer wanted. Requirements must be valid. If the customer wants a microwave oven controller system that is cost-effective but adequate, do not provide a controller system that is leading edge with functionality beyond what was desired and then expect to charge the customer for budget overruns. All of the requirements that led to the "gold-plating" were invalid. Building an incorrect system correctly is still total failure.

The end result of the requirements engineering activities is a populated System Requirements Specification (or SRS) and a completed System Specification.

Requirements Engineering Activities PNG
Depending on the number of options and the complexity of the analysis necessary, assessing feasibility can range from just answering a few questions to make the assessment to using a mathematically rigorous decision analysis process like AHP (Analytic Hierarchy Process). Eliciting the requirements requires getting questions answered. An interview questionnaire is an effective way to accomplish this task. Once the raw information from the customer is available, accurate and precise requirements must then be distilled out of that raw information. This will require using a system model to abstract the behavior of the desired system so that customer consensus can be obtained. All of this work will culminate in the creation of a vision document. Requirements are first stated in prose. They are then elaborated using requirement specification templates. The Systems Requirement Specification (SRS) document contains all of the official system requirements. On some projects, this might only be a section of a larger project document. On yet other projects, this might be a requirements database that can generate an extract of all requirements as a report at any time. For this software development process, the system specification artifact is a document that captures development artifacts generated during requirements engineering phase that will be instrumental to the later development phases.

No part of this work should be produced or used without the permission of the authors: Michael Turner and Dr. Sharon A White.