Professional Documents
Culture Documents
SMART Requirements
Mike Mannion, Barry Keepence
Sottware Engineering Research Group.
Napier University
Department of Mechanical, Manufaeting
and Sottware Engineering.
10 Colinton Road, Edinburgh
EH10 5DT, United Kingdom
the SRS usually includes some form of modelling 2. Specifying SMART Requirements
technique (e.g. ~ f l o w diagrams).
Individual requirements can be compared to pm'sonalised
In addition each standard offers in its guidelines for the objectives. They are goals which are desired to be
development of the URS and SRS that the requirements achieved. In many time management courses and
should have a number of atln'butes including: leadership courses, the acronym SMART [12] is used to
• maintainability; assist people in setting down good objectives. A SMART
objective is:
• verifiability;
S pecific
• completeness;
Measurable
• correctness, A trainable
• consistency; R ealisable
• clarity; T i m e bounded.
point that if a requirement fails one o f the criteria o f • only use the word "details", "information", "data"
SMART it is sometimes because o f a failure o f another in a requirement when you can describe or refer to
criteria. As an example, a requirement may not be precisely what they will be;
measurable because it is not specific.
• if the requirement is described by a prototype
program ensure that specific program is
2.1 Spec/f/c documented;
• when a term is defmed in a glossary, substitute the
All requirements techniques have a criteria in this area. A
def'mition in the text and then review the
requirement must say exactly what is required. Specificity
requirement;
actually comprises several areas as follows:
• no "To Be Defineds".
• clear i.e. that there is no ambiguity;
• consistent i.e. that the same terminology has been Some requirements may seem at fast sight to be specific.
used throughout the specification to describe the However they oRen require a specific definition of a term
same system element or concept; in order to be specific. Consider:
• simple i.e. avoid double requirements e.g. X and Y;
"The system shall support 50 simultaneous
• of an appropriate level of detail. users."
A requirement can be tested for this by its reading by a This requirement is specific in itself but the definition o f
reviewer. There are a number o f words and phrases which what the users would be doing is required. ORen a certain
are first rate indicators of an unspecific requirement. interpretation is assumed which can be very dangerous.
Consider the following requirement:
2.2 Measurable
"The Mission Planning System shall support
several planning environments for generating the
In the context o f Requirements Engineering, by
mission plan." measurable we mean is it possible, once the system has
been constructed, to verify that this requirement has been
In this example, it is not clear what is meant by "several".
met. In some software engineering methodologies, the
In addition the terms "planning environment" and
Requirements Engineer is instructed to determine the tests
"mission plan" may not have been defined.
which must be performed in order to satisfy the
requirement. This is a good discipline. The level of detail
In general terms the following guidelines are
required to describe and set up the corresponding test is
recommended:
itself a strong indicator of whether the requirement should
• avoid phrases such as: "obviously", clearly", be broken down into sub-requirements.
"certainly";
Assuming that a requirement is specific, non - measurable
• avoid ambiguities such as "some", several",
requirements fall into two categories:
"many";
• avoid list terminators such as: "etc", "and so on", a) those which cannot be instrumented (or
"...such as"; instrumentation interferes);
• ensure pronouns are clearly referenced eg "When
b) those which are specific but for which there is no
module A calls B its message history file is
yardstick available.
updated";
• when numbers are specified identify the units; Examples of the first category can occur when detailed
timing or performance information is required. It may be
• ensure all possible elements in a.list are described;
impossible to measure such values without introducing
• use pictures to clarify understanding; extensive intrusive software. A common example of this
is ensuring that there are no memory leaks in a real-time
• ensure all system or project terms are defined in a
program. The software to test for the leaks changes the
glossary;
characteristics of the program and therefore the operation
• consider placing individual requirements in a of it.
separate paragraph and individually numberered;
The second category (b) is slightly more subtle. Consider
• ensure verbs such as "transmitted", "sent",
the following requirement:
"downloaded", "processed" are qualified by precise
explanations; "The system shall produce a plan optimised for
time."
ACM SIGSOFT Softwaze Engineering Notes vol 20 no 2 April 1995 Page 45
The only way to measure a plan to see if it is optimal is to It is often the case that the attainable and realisable criteria
compare it to an absolute optimum; which may not be are often considered in parallel. This does not however
available. Even if the requirement was 90% o f optimum make them synonymous.
the same would apply. This is o f course dependent on the
test cases used in the acceptance testing. To be
2.4 Realisable
measurable the requirement must specify a fixed
performance against a predefmed set o f test cases for
in the context of software requirements, by realisable we
which the absolute optimum is known. It is also worth
mean is it possible to achieve this requirement given what
noting that requirements which are in category b need to
ks known about the constraints under which the system
be made more specific in order to be measuarable.
and the project must be developed.
In general terms the following guidelines are
Determining whether a requirement is realisable or not is
recommended.
the most difficult part of creating a SMART requirement.
• What other requirements need to be verified before The difficulty is twofold in nature:
this requirement? • can we satisfy this requirement given the other
• Can this requirement be verified as part of the system and physical constraints that we have?
verification for another requirement ? If so, which
• can we satisfy this requirement given the project
one? resource consWaints which we must work to?
• How much data or what test cases are required?
For example, if there is a requirement to have 99%
• How much processing power is required?
reliability but the project budget does not permit the
• Can the test be conducted on one site7 inclusion o f the extensive defensive programming needed
to satisfy that requirement then that requirement is not
• Can this requirement be tested in isolation7
realistic.
Users of SMART S M A R T
II
,/ J¢ J¢ ,/
Procurer
Most importantly it is independent of any analysis or . IEEE Standard 830: Software Requirements
design methodology which has been used. It is also Specifications
independent of the requirements extraction method used.
9. European Space Agency Software Engineering
In a forthcoming paper we will presenting SMARTRe in Standards
which we extend the SMART acronym to cover Reusable PSS-05-0 Issue 1, January 1987
requirements.
10. The STARTS Guide
2nd edition, Vol I, 1987, ISBN 0 85012 G193