Throughput Requirements
A
throughput requirement is a
performance
requirement that specifies a minimum amount of the
performance
quality subfactor
throughput.
The typical objectives of a throughput requirement are
to:
- Ensure that the application or component successfully
supports the necessary frequency of:
- Use case paths.
- Transactions.
- Interactions with externals.
Throughput requirements are typically specified in terms of
the following measurements:
The following are typical examples of throughput
requirements:
- “The application shall be able to successfully
process a minimum of 150,000 customer orders per day
including credit card authorizations under average
loads.”
- “For a minimum period of 7 days, the application
shall be able to successfully process a minimum of 500,000
customer orders per day including credit card authorizations
during periods of peak loading.”
- “The application shall be able to successfully
handle 20,000 customer registrations per day.”
- “The missile avionics system shall update the
position of the ailerons 20 times a second.”
- “At least 98% of the time, the application shall be
able to successfully display the results of a keyword search
in no more than 4 seconds.”
- “At least 98% of the time, the application shall be
able to successfully scroll one page up or down in a 150 page
document in no more than 1 second.”
- “At least 98% of the time, the application shall
take no more than 0.2 seconds to change focus from a
completed entry field to the next entry field in the same
input screen.”
- “At least 98% of the time, the application shall
take no more than 1.3 seconds to change focus from a
completed entry field to the next entry field in the next
input screen.”
- “At least 98% of the time, the application shall
take no more than 15 seconds to display any of the required
management reports.”
The following guidelines have been found to be useful when
producing throughput requirements:
- The scope of a throughput requirement can be:
- Specify the maximum expected initial load (plus a
reasonable fudge factor).
- Throughput times increase rapidly as load increases.
Therefore, be careful about specifying maximum-permitted
throughput requirements for all operations under all
conditions (e.g., of load). Be realistic about specifying
absolute limits that may be impossible or extremely expensive
to achieve under extremely rare circumstances of maximum peak
loads. Don't force the developers to sacrifice usability to
provide an unusable “solution” that meets the
letter (but not the spirit) of the requirement.
- Because different paths through use cases will involve
different sets of interactions and processing, throughput may
need to be specified in terms of use case paths rather than
entire use cases.
- Because of the large number of system operations, use
cases (and use case paths), it is impractical to specify
separate throughput requirements for each. Only specify the
truly significant throughput requirements, and specify them
for large groups of functionality whenever practical.
- Ensure that the scope of the requirements is properly
specified in cases where part of the throughput times is not
under the control of the development organization. For
example, the throughput time for an operation involving the
Internet depends on Internet communication times. Whereas
architects may group transactions in order to minimize the
number of Internet messages, Internet communication time
should not be specified. You can specify requirements for the
application, but you cannot specify requirements for
externals such as the Internet, external applications, and
external users.
- Use statistical methods (e.g., Markov exponential
distributions) to determine appropriate and feasible
maximum-permitted average and maximum throughput times.
- Throughput requirements should not be confused with:
- Capacity requirements, which deal with the storage of
information.
- Scalability requirements, which deal with future
capacity and throughput requirements.
- Throughput requirements depend on the type of application
as in (hard real-time, soft real-time, and not
real-time).
- Some throughput requirements are based on human
psychological limits:
- The average typist can type continuously if movements
between fields are less than 0.2 seconds.
- The average typist takes approximately 1.35 seconds to
mentally switch gears when moving from one set of typing to
another (which usually occurs when data entry clerks move
from one screen to the next).
- The average person will wait for no more than 20
seconds before looking for something else to do (and less
if we are talking about an Internet shopper).