Difference between revisions of "Exact Requirements"

From EUDP
Jump to: navigation, search
Line 1: Line 1:
 
 
<big>In engineering, a requirement is a singular documented need of what a particular product or service should be or perform. </big>
 
<big>In engineering, a requirement is a singular documented need of what a particular product or service should be or perform. </big>
  
== Requirement analysis ==
+
== Requirement Analysis ==
  
 
=== What ===
 
=== What ===
 
Before ending up with a list of requirements, a requirement analysis must be performed.
 
Before ending up with a list of requirements, a requirement analysis must be performed.
 
=== How ===
 
  
 
Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product,  
 
Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product,  
 
taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users.
 
taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users.
 +
 +
=== How ===
 +
 +
Requirements Analysis is gathering, understanding, reviewing, and articulating the needs of the stakeholders.
 +
 +
The process can be split into following steps :
 +
 +
*  Analysis  (checking for consistency and completeness)
 +
*  Specification (documenting the requirements)
 +
*  Validation (making sure the specified requirements are correct)
  
  
Line 27: Line 34:
 
*  Customer Requirements  
 
*  Customer Requirements  
 
*  Functional Requirements
 
*  Functional Requirements
*  Non-functional Requirements
+
*  Non-functional Requirements / Performance Requirements
*  Structural Requirements
+
*  Architectural Requirements
+
Performance Requirements
+
*  Design Requirements
+
  
 
=== How ===
 
=== How ===
  
Depending on the system you are designing, it might need one or more of the requirements, listed above
 
  
  

Revision as of 13:33, 30 August 2010

In engineering, a requirement is a singular documented need of what a particular product or service should be or perform.

Requirement Analysis

What

Before ending up with a list of requirements, a requirement analysis must be performed.

Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users.

How

Requirements Analysis is gathering, understanding, reviewing, and articulating the needs of the stakeholders.

The process can be split into following steps :

  • Analysis (checking for consistency and completeness)
  • Specification (documenting the requirements)
  • Validation (making sure the specified requirements are correct)


Exact Requirements

What

Exact Requirements must be

  • Documented
  • Actionable
  • Measurable
  • Testable
  • Defined to a level of detail sufficient for system design.

Requirements can be split into following

  • Customer Requirements
  • Functional Requirements
  • Non-functional Requirements / Performance Requirements

How

The dish

Exact Requirements

Ingredients

Process

In order to specify the exact requirements you need to locate, analyse and describe the needs of the customer in an iterative process.

To locate the needs, you have to listen carefully to the customer's storytelling. A good tool is to draw a Rich Picture to get an understanding of the functionality. Then you analyse the information to get a structured picture of the problem. This analysis may include Preliminary Use Cases, System Definition and even Prototyping. Then you make a description and present it to the customer in order to secure that you have understood his needs correctly. You may have to go through this process several times before you are able to locate all the exact requirements. It is important that the requirements are:

1. unambiguous

2. complete

3. consistent

4. correct

5. testable

6. changeable

7. traceable

in order to make the verification and product accept easy and without conflicts.

Why

We have to realise that it is a complicated and iterative process to identify the customer's needs. Especially the software can be highly abstract reasoning which might be difficult to understand for the customer. A process has input data, activity and output data. The pattern to locate the exact requirements is therefore:

  • Input data: The customer's description of his vision, his needs and the concept for the project.
  • Activity:

Run through these activities repeatedly: Capture Requirements -> Analyse Requirements -> Specify Requirements -> Verify Requirements

Activity.gif

  • Output data: The result from the process will be a description of the exact requirements.

Example

Input data is the Rich Picture and the customer's description of his house heating and solar energy system.

Activity:


To capture the requirements from the input data. The system contains four main components:

1 The central heating with the boiler, motor-controlled mixer, pump, supply temperature sensor and radiators.

2 The hot water tank with the boiler, pump, the boiler-driven heating coil, the mains-driven heating coil and the relay to switch between the two coils.

3 The solar energy system

4 And additionally; the control system that the developer has to make according to the customer's description!

To analyse the requirements, the developer has to work through the customer's information and make a system description in his own words. This ensures that he has understood all of the customer's needs and he gets an idea of how to solve the problem and how to verify his solution.

To specify the requirements, the developer uses his solution and verification model.


Used In

The Exact Requirements are widely used in the systems development, but foremost they are used in the Product Acceptance, where the customer examines the delivery and eventually accept that the delivered conforms to the requirements.

From here you may want to jump on to General Architecture Design.