Vous êtes sur la page 1sur 5

Requirements Eng (1997) 2:165-169

9 1997 Springer Verlag London Limited Requirements


Engineering

Viewpoints

.,~,'~ ~, ~ ~: ' ~ = " ~ .... -4 :; ~ , - ' ~ ~' - ";, ~ ;~; = :~s .... :~'~_~ ~., iI ~.~j_~;.~-~

Towards the Engineering of Requirements


T. Gilb
ResultPlanningLtd Kolbotn Norway

1. What is Engineering? Here are some remarks concerning this definition (I'11
discuss the terms 'designs' and 'requirements' later in
In the 1980s, Professor Billy Koen of the Department of this article):
Mechanical Engineering, Austin, University of Texas,
9 'Principles' are rules of thumb that guide the choices
defined the engineering method as 'the use of heuristics
and actions of engineers. Principles are not rigid laws.
to cause the best change in a poorly understood They reflect the experience learnt from previous
situation within the available resources'. He also engineering projects. I see professional codes of
stressed the importance of controlling risk by using the conduct playing a part as well.
heuristics of making only small changes already known
9 'In a systematic way' must include brainstorming and
to have worked in the past, of planning paths of retreat testing random insights.
in case of failure, and of feeding back results to improve
9 'Deliver' implies a process that continues beyond
future performance [1, p. 301].
design stages to project delivery stages. Success is
Here is my rephrased version of Koen's definition of
determined by successfully meeting all the specified
engineering:
requirements.
Engineering is the use of principles in a systematic 9 'Conditions of uncertainty'9 exist because we must
deal with combinations of designs being applied into
way,
ever-changing environments. The results are 'com-
to find designs,
plex to predict' and the resulting risk has to be
which deliver the requirements,
handled.
within resource constraints,
under conditions of uncertainty. I believe that such a definition of engineering is
relevant to Software engineering. However, does cur-
rent practice measure up? Are we 'engineering'? I
consider that the software engineering industry is only
just beginning to adopt the engineering practices of the
more traditional engineering disciplines.
Correspondence and offprint requests to: Tom Gilb, Result Planning
Ltd., Iver Holtersvei 2, N-1410 Kolbotn, Norway. Let me discuss the current state of requirements
Email: Gilb@acm.org.Web site: http://www.Result-Planning.com specification and give some pointers on how, I believe,
166 T. Gilb

true engineering of requirements ought to be carried requirements or alter the understanding o f what is
out. Today, too many requirements specifications con- wanted.
tain what I shall call 'false' requirements. b. Alternative better designs are not searched for.
c. The overall design cannot be optimized to satisfy a
larger set of requirements. (the true requirement and
2. What are 'False' Requirements? other concurrent requirements).
True requirements are best stated m terms of the
'False' requirements occur when the requirement speci-
desired end-state effects, not the means for getting
fication contains statements which are not really what is
those effects. True requirements are best stated at the
needed or desired. This happens when:
highest level of generality consistent with the end state
(i) the requirements are not stated in a quantified and required. This generality will permit a broader and
measurable way. more satisfactory set of design solutions to be
considered.
It is commonplace to find requirements statements,
such as 'reduced costs', 'improved management con-
trol', 'high usability' and 'increased customer satisfac-
tion', with no clear definition of what is intended; no 3. What are 'Requirements?'
homing in on the key issues to reduce ambiguity and no
quantification of the current and required levels at I map 'requirements' under the following categories:
future dates.
I once analysed about 40 design specifications for a 9 Functions: 'what' the system must be able to do.
mobile telephone. Almost all of the specifications 9 Qualities: 'how well' the function will perform.
simply included the wording 'increased ease of service' 9 Costs: what we will budget as 'costs' (any input
as one of their justifications. There was no definition, in resource: money, people or time) for creating and
writing, of the levels and types of serviceability that maintaining the functions and their qualities.
were to be aimed for. 9 Constraints: any restrictiorL on the freedom of the
Once pointed out, the mobile telephone engineers requirements or the design.
agreed with me and we spent a day defining the
serviceability requirements. 'Increased ease of service' I also differentiate between the two essentially differ-
actually expanded to approximately 18 different types ent types of requirement statement:
of serviceability, each with its own quantified require- 9 Not quantifiable, but testable for presence.
ments levels.
9 Quantifiable (on a scale of measure).
(ii) design ideas are used in place of the true
Functions are not quantifiable, they tend to be either
requirements.
present or absent. All qualities and costs are quantifi-
I have noticed that there is a strong tendency to specify able. Constraints can be of either type.
design ideas under the heading of 'Requirements'. For
example, 'an object-orientated database is required',
'an improved handbook is needed' or 'a WINDOWS 95 3.1. Functions
interface is to be provided'. Usually, there are no clear
agreed quantified requirements to even lend any Time and again, current practice focuses on specifying
support to the choice of the design. For example, the functionality. Personally, I find 'functions' of less use
requirements giving rise to the request for 'an improved when designing than the other categories. This is
handbook' are probably to do with reducing training because it is usually fairly self-evident what function-
times and improving the quality of answers given to ality is required. It is actually the other categories that
customers. But you need to explore this and quantify determine the choice of design.
the requirements. One further issue concerning functions: they should
Design ideas given as requirements must be treated only be specified in detail on an 'as needs' ba~i~. There
with caution because they lead to the following is little point specifying the current functionality in
negative effects: great detail if it is not a proposed candidate for
imminent redesign. In a fast-moving business environ-
a. The true requirement is not stated and not known. ment, change is occurring fairly rapidly and it is
Further, the actual process of determining the true essential that any study of functionality should be
requirements is highly likely to bring to light new accurate. So, unless you are planning specific system
Towards the Eng#'~edngof Requirements 167

chpnges, leave the ;functional description at a reaso=- Maintainability:


ably high leweiL Scale: Average time to repair a failure; from
Note, I ,eq~aate 'function' with process'. So, this also 'failure actually experienced' until 'completely and
applies to the mapping of business processes! correctly fixed', including all negative side effects.
Meter: Observation by analyst of at least 50
representative failures.
Qualities and Costs Plan [Release Version 1] 10 hours.
At flais point, I shall inlroduce some of the terminology
of a language I have ,deveJoped for specifying quanti-
fied requirements. I call ~t Planguage, which is'short for
Planning Language. (Planguage also can be used for 3.2. Constraints
evaluating design ideas and planning evolutionary
worksteps. It is available free on the Web [2].) I want to Constraints divide a requirements or design territory
demonstrate some of the precision wi~h which require- into two areas: allowed and not allowed. Analysts and
ments ought to be captured. designers are free to specify requirements and design
As stated earlier, all quality and cost requirements only in the 'allowed' area. True constraints do occur and
are 'quanti~abqe'. That is, at least one scale of measure they need to be handled appropriately (they need to be
can be found t o help define the requh'ement. I use the questioned and their consequences considered). How-
parameter 'Scale' for this. ever, too often constraints on design are s i a ~ y 'false
All quality and cost requir.emenCrs "aTe also 'measur- requirements'; someone gave an example o~ the type o f
able'. That is, at least one practical, eeonomic process design they were thinking of and the designer incor-
can b e defined for determining where we are on the rectly failed to translate it into gemeric, higher-level
specified scale of measure. I use the parameter 'Meter" requirements.
for this. The following constraint cafL~gories are useful, but
It is essential that finite limits are set for require- not exhaustive:
ments, otherwise pote.z~ally infinite resources, which
9no one has, could be required to attain the unlimited 9 quality level
quality levels.
o cost level
There are several categories of requirement levels~
9 functionality
9 survival level: the level required for system survival, 9 design
and for any p~yment to be made or for any value to 9 political
be acknowledged. I use the parameter 'Must' for
9 cultural
this.
9 legal
9 success level: the level required for eeasonable
satisfaction, and full payment or val,a~e. I use the
parameter 'Plan' for this.

These requirement levels can be specified for any set of 3.3. What Bse is Important about Requirements?
conditions, such as time, space (component, market)
and event. I call these conditions 'qualifiers' and Requirements are a mul.fidimensional set of end-state
enclose them in square brackets. needs, all vying for the same project resources. The fil of
For example: design to requirements is not likely to be perfect, thus
there is a negotiable 'grey area' between them. Trade-
Availability: "depends o11 Rch~abillt3 and Maintain-
offs must be made and, maybe, the requirements have
ability'
to be amended.
Reliability: It is essential to ensure you keep control of what you
Scale: Mean Time Between Failure per user in on- understand as the critical requirements. These can
line hours per user. change over time. Only critical requirements are worth
Meter: Calculate average time between reported specifying and controlling. Critical requirements, by
user failure situations. definition, are those which if not met threaten the
Plan [Release Version 1] 24 hours. survival of the entire system.
168 T. Glib

4. How are 'Requirements' and 'Design' 6. What Can we do to Improve


Related? Requirements Engineering Practices?
The notion of requirements implies a defined view- 9 We musl define requirements clearly and
point, which could come from several sources, e.g. unambiguously
ser~ior management, a customer, a user, a marketir~g 9 We must teactz a discipline of specii=icat~on at tI~e
plan. Requirements are a defined viewpoint's inputs to systems level.
a design process. 9 We must dearly connect design to requirements.
'Design' is any set of ideas intended to satisfy a set of
9 We must carry out rigorous quality control of
requirements. Designs are the outputs of the design
requirements and design.
process. Consider the following processes:
9 We must not allow highly defective (ambiguous,
unclear, inconsistent) specification to be used as
1. Architectural Requirements GOES TO [Architect
inputs to other work processes.
Process] BECOMES Architecture.
9 We must not specify too much detail too early. We
2. Architecture and Engineering Requirements GOES must systematically get the benefit of early cycles of
TO [Engineering Process] B E C O M E S Engineering evolutionary deliveries, to help us re-specify require-
Design. meats more realistica~l):
3. Engineering Design GOES TO [Production Engi-
neering PROCESS] BECOMES Manufacturing
GILB PUNCH-LINE
Desigrt.
We cannot expect to improve software engineering
The design output of one level or stage of work (level of design, testing and quality control until we have
design) becomes the 'requirements" input to the next considerably improved our ability to articulate quality
stage. All requirements are someone's 'design ideas'. requirements and other requirements in unambigu-
Design ideas can be viewed as a set of requirements for ously clear testable format, and untU we even under-
the nex! work process. The design process is one of stand the distinction between ends and means.
moving, in one or more stages, towards a concrete real
system.
(Note that, 'design ideas' are only "false require- 7. What are the Fundamental Principles of
ments' when they are not real constraints or when they Requirements?
are specified instead of the underlying function, quality
and cost requirements. At certain levels or stages of
1. All requirements are testable for presence in the real
work, design ideas do become the true requirements world of their implementation.
(constraints).)
2. Some requirements are binary in nature, some are
scalar variables.
3. All requirements reflect someone's subjective values
and priorities.
4. For any given set of requirements, there are other
5. How are 'Requirements' and 'Engineering' sets of reqt~irements which would probably satisfy
Related? the specifier's real needs, values and priorities better
or equally well.
Specifying requirements using a method such as Plan- 5. All requirements are in natural conflict with all
guage is essential if we are to truly engineer require- others for common resources.
ments. Only with such specification do we explicitly 6. Requirements are not static, but are forever chang-
communicate the quality levels, the cost levels, the ing as the world affecting us changes our needs,
constraints and the timescales required. This enables us values and priorities.
to have a basis for comparison of the fit of the design 7. Requirements engineering is the systematic process
ideas against the requirements. In addition, it helps the of determining the complete relevant set of values
search for new design ideas as it focuses on the critical held by stakeholders, and processing them until a
qualities that need to be delivered. It can also cope with satisfactory level of 'delivery of the reqt~ired end
evolutionary concepts, but that's another story! states' has been made to them. This implies that it
7owards the Engineenng of Requirements 169

9 must include design, testing, quality control, projact References


management, specification languages and all other
relevant disciplines to enable it to succeed. 1. Gilb T. Principles of software engineering management.
Addison-Wesley/Longman, 1988
2. A DoD web site containing my new book manuscript
(RDM) (http://www.stsc.hill.af.mil/SWTesting/gilb.html)
3. Gilb T. Requirements-driven management: a planning-
language. Crosstalk (DoD US) June 1997 (electronic
Acknowledgement downloadable copies at STSC site, http://www.stsc.hill.
af.mil/Crosstalk/1997/jun/jun97ind.html)
This article was edited by Lindsey Brodie 4. Gilb T. Evolutionary object management. Object Expert
(lindsey@brodie.source.co.uk). UK 1997; January/February: p.24--29 & 72.

Vous aimerez peut-être aussi