Non-functional requirements specify criteria that can be used to judge the final product or service that your project delivers. They are restrictions or constraints to be placed on the deliverable and how to build it. Their purpose is to restrict the number of solutions that will meet a set of requirements. Using the vehicle example, the functional requirement is for a vehicle to take a load from a warehouse to a shop. Without any constraints, the solutions being offered might result in anything from a small to a large truck. Non-functional requirements can be split into two types: performance and development.
To restrict the types of solutions, you might include these performance constraints:
- The purchased trucks should be American-made trucks due to government incentives.
- The load area must be covered.
- The load area must have a height of at least 10 feet.
Similarly, for the computer system example, you might specify values for the generic types of performance constraints:
- The response time for information is displayed on the screen for the user.
- The number of hours a system should be available.
- The number of records a system should be able to hold.
- The capacity for growth of the system should be built in.
- The length of time a record should be held for auditing purposes.
For the customer records example, the constraints might be:
- The system should be available from 9 a.m. to 5 p.m.Monday to Friday.
- The system should be able to hold 100,000 customer records initially.
- The system should be able to add 10,000 records a year for 10 years.
- A record should be fully available on the system for at least seven years.
One important point with these examples is that they restrict the number of solution options that are offered to you by the developer. In addition to the performance constraints, you may include some development constraints.
There are three general types of non-functional development constraints:
- Time: When a deliverable should be delivered
- Resource: How much money is available to develop the deliverable
- Quality: Any standards that are used to develop the deliverable, development methods, etc.
- 2106 reads