Software Requirements
ods are intended to be useful in a variety of appli-
(v) Critical design constraints
cation areas and are referred to here as “system
(vi) Acceptance criteria and acceptance tests
modeling methods.” For example, SADT [Ross85]
IV. Techniques and Tools for Performing Software
has been applied to understanding how functions are
Requirements Definition
performed manually in an organization and to build-
ing models showing the functions of a combined
The objective of this section is to introduce some of the
hardware/software system. However, there is also a
techniques and computer support tools most likely to
role for other types of models in requirements defi-
be used during requirements definition, but it is not
nition, such as physical models (the layout of an
intended to be a comprehensive description.
assembly line to be automated) and simulation
models (the actions proposed to take place on an
1. Techniques for eliciting requirements from
automated assembly line).
people
Specification languages that are not graphically
Techniques used in a variety of fields for gathering
oriented have been proposed as an alternative to the
information from people with different opinions
graphically-oriented modeling languages widely
(such as questionnaires and interviews) are relevant
used during requirements definition. None, how-
to defining software requirements. Davis [Davis83]
ever, has received significant usage for producing
and Powers [Powers84] cover most of the relevant
customer/user-oriented requirements and few have
methods.
been used by other than their developers to produce
In order to facilitate the elicitation of requirements, a
developer-oriented requirements. One exception is
variety of techniques have been developed that in-
the NRL/SCR requirements method [Heninger80],
volve the participation of analysts, end-users, and
which is not graphically oriented and which has
customers in intensive working sessions over a
been applied to major projects.
period of several days. The objective is to speed up
Unfortunately, the developers of system modeling
the negotiations between users with divergent
methods have used inconsistent terminology to de-
opinions, to provide analysts with an in-depth under-
scribe their modeling approaches. It is usually diffi-
standing of software needs, and to complete a draft
cult to understand what information can be
of the most important requirements. The analysts
represented easily using the modeling method and to
may develop models or prototypes during these ses-
what class of problems the approach is most ap-
sions for review with the users. The best known of
plicable. White [White87] has done a thorough com-
these techniques is Joint Application Development
parison of what can be represented using the most
Technique (JAD), developed by IBM.
common model-building techniques. Pressman
Frequent review of the work of analysts by cus-
[Pressman87] surveys the following modeling meth-
tomers and users facilitates agreement on require-
ods and tools, which are among those described be-
ments. An incremental process for reviewing
low: Structured Analysis, Real-Time Structured
models and accelerating the convergence of the re-
Analysis, Data Structured Systems Development,
quirements elicitation process has been formalized
SADT, SREM/DCDS, and PSL/PSA. Davis
in the Reader-Author Cycle of the SADT method-
[Davis88] surveys techniques for specifying the ex-
ology [Marca88]. The SADT approach is applicable
ternal behavior of systems and compares alternative
to any model-building technique.
approaches, including two formal specification lan-
guages.
Walk-throughs [Freedman82] can be used to help
determine the consistency and completeness of
A majority of modeling methods support describing
evolving requirements and to ensure that there is a
a system in terms of several of the following charac-
common understanding among analysts, users, and
teristics:
customers of the implications of requirements.
• Interfaces to external entities. Since any
Yourdon [Yourdon89b] describes how to conduct
model can describe only a well-defined
walk-throughs using models built during require-
subject area, the model-building notation
ments definition. Technical reviews [Collofello88b]
must allow a precise description of what is
can be utilized to assess the status of the require-
to be included in the system of interest and
ments definition process.
how that system interfaces to external en-
tities. In the case of a software system, the
2. Modeling techniques
external entities typically are hardware,
Nearly all requirements definition techniques devel-
other software, and people. The ability to
op some type of model to structure the information
describe precisely the model interfaces is
gathered during requirements elicitation and to de-
particularly important in requirements de-
scribe the functionality and behavior of software to
finition, since there may be divergent
meet the requirements. Most of the modeling meth-
opinions among customers and users
12 SEI-CM-19-1.2