You are on page 1of 26

ANSI/IEEE Std 830-1984

IEEE Guide to Software


Requirements Specifications

SH08714

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
THIS PAGE WAS
BLANK IN THE ORIGINAL

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
ANSI/IEEE
Std 830-1984

A n American National Standard


IEEE Guide t o Software
Requirements Specifications

Sponsor
Software Engineering Technical Committee
of the
IEEE Computer Society

Approved September 30,1983


IEEE: Standards Board

Approved July 20, 1984


American National Standards Institute

@ Copyright 1984 by

The Institute of Electiiical and Electronics Engineers, Inc


345 East 47th Street, New York, NY 10017, USA
N o part of this publictrtion may be reproduced in any form,
in an electronic retrieval system or otherwise,
without the prior written permission of the publisher.

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE Standards documents are developed within the Technical Com-
mittees of the IEEE Societiies and the Standards Coordinating Commit-
tees of the IEEE Standards Board. Members of the committees serve
voluntarily and without compensation. They are not necessarily mem-
bers of the Institute. The standards developed within IEEE represent
a consensus of the broad expertise on the subject within the Institute
as well as those activities outside of IEEE which have expressed an in-
terest in participating in the development of the standard.
Use of an IEEE Standard is wholly voluntary. The existence of an
IEEE Standard does not imply that there are no other ways to pro-
duce, test, measure, purchase, market, or provide other goods and ser-
vices related to the scope of the IEEE Standard. Furthermore, the view-
point expressed at the time a standard is approved and issued is subject
to change brought about through developments in the state of the art
and comments received from users of the standard. Every IEEE Stan-
dard is subjected to review at least once every five years for revision
or reaffirmation. When a document is more than five years old, and has
not been reaffirmed, it is reasonable t o conclude that its contents,
although still of some value, do not wholly reflect the present state of
the art. Users are cautioned to check to determine that they have the
latest edition of any IEEE Standard.
Comments for revision of IEEE Standards are welcome from any
interested party, regardless of membership affiliation with IEEE. Sug-
gestions for changes in documents should be in the form of a proposed
change of text, together with appropriate supporting comments.
Interpretations: Occasionally questions may arise regarding the mean-
ing of portions of standards ,as they relate to specific applications. When
the need for interpretations is brought to the attention of IEEE, the
Institute will initiate artion t o prepare appropriate responses. Since
IEEE Standards represent a consensus of ail concerned interests, it is
important to ensure that any interpretation has also received the con-
currence of a balance of interests. For this reason IEEE and the mem-
bers of its technical committees are not able to provide an instant re-
sponse to interpretation requests except in those cases where the matter
has previously received formal consideration.
Comments on standards and requests for interpretations should be ad-
dressed to:
Secretary, IEEE Standards Board
345 East 47th Street
New York, NY 10017
USA

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
Foreword

(This Foreword is not a part of IEEE Std 830-19(94,


IEEE Guide to Software Requirements Specifications.)
This guide describes alternate approaches to good practice in the specification of software require-
ments. The requirements may be explicitly stated by the user or they may be allocated to computer
software (that is, programs) by the system requirements analysis process. This guide does not sug-
gest that a hierarchy of software requirements specifications exists, of which each, in turn, defines a
smaller subset of requirements.
As a guide, this document should help:
(1)Software customers to accurately describe what they wish t o obtain.
(2) Software suppliers to understand exactly what the customer wants.
(3) Individuals to accomplish the following goals:
(a) Develop standard software requirements specifications (SRS) outline for their own organiza-
tions.
(b) Define the form and content of their specific software requirements specifications.
(c) Develop additional local supporting items such as an SRS quality checklist, or an SRS writer’s
handbook.
To the customers, suppliers and other individuals, a good SRS provides several specific benefits. It
will accomplish the following goals:
(1)Establish the basis for agreement between the customers and the suppliers on what the soft-
ware product is to do. The complete description of the functions t o be performed by the software
specified in the SRS will assist the potential user, to determine if the software specified meets their
needs or how the software must be modified to meet their needs.
(2) Reduce the development effort. The preparation of the SRS forces the various concerned
groups in the customer’s organization to consider rigorously all of the requirements before design
begins and reduces later redesign, recoding, and retesting. Careful review of the requirements in the
SRS can reveal omissions, misunderstandings, and inconsistencies early in the development cycle
when these problems are easier to correct.
(3) Provide a basis for estimating costs and schedules. The description of the product to be
developed as given in the SRS is a realistic basis for estimating project costs and can be used to
obtain approval for bids or price estimates. ‘The SRS also provides a clear description of the required
software and makes it easier to estimate and plan the necessary resources. The requirements which,
together with a development plan, can be used to measure progress.
(4)Provide a baseline for validation and verification. Organizations can develop their validation
and verification plans much more productively from a good SRS. As a part of the development con-
tract, the SRS provides a baseline against -which compliance can be measured. (However, that the
converse is not true; a standard legal contract cannot be used as an SRS. Such documents rarely
contain the detail required and are often incomplete.)
(5) Facilitate transfer. The SRS makes it easier to transfer the software product to new users or
new machines. Customers thus find it easier t o transfer the software to other parts of their organiza-
tion, and suppliers find it easier to transfer it to new customers.
(6) Serves as a basis for enhancement. Because the SRS discusses the product but not the project
that developed it, the SRS serves as a basis for later enhancement of the finished product. The SRS
may need to be altered, but it does provide a solid foundation for continued production evolution.
This guide is based on a model in which the result of the software requirements specification
process is an unambiguous and complete specification document. In principle, the SRS can be
mechanically translated into the specified software program directly. As such, the resulting SRS
document itself is the specified software, and the supplier’s only duty (after completing the SRS)
would be the mechanical compilation of the SRS into machine code for the target computer. The
present state of the art does not support such a compiler with an optimizer of such efficiency to
make it practical but this limitation need not, and should not, restrict the intermediate objective of
an unambiguous SRS.

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
This guide is consistent with IEEE Std 729-1983,IEEE Standard Glossary of Software Engineer-
ing Terminology; ANSI/IEEE Std 730-1981,IEEE Standard for Software Quality Assurance Plans;
and IEEE Std 829-1983,IEEE Standard for Software Test Documentation. This guide may be used
in conjunction with those standards or separately.
This guide was prepared by the Software Requirements Working Group of the Software Engineer-
ing Standards Subcommittee of the Technical Committee on Software Engineering of the IEEE
Computer Society.
At the time the guide was approved, the Software Requirements Working Group had the follow-
ing membership:
A. h5. Davis, Chairperson
M. Bariff R. A. C. Lane G. R. Niedhart
H. Berlack R. Lechner J. Russell
F. Buckley E. Levinson A. Salwin
E. Byrne P. Lindemann N. B. Schneidewind
F. Calm S.Mroczek D. Schultz
K. Foster A. J. Neumann R. W. Szczech
S . Frankel W. Newson A. Weigel
T. L. Hannan D. Paster P. Willis
P. W. Kendra B. Pope H. Willman
T. M. Kurinara P. B. Powell A. W. Yonda
At the time that it approved this guide, the Software Engineering Standards Subcommittee had
the following membership:
F. J. Buckley, Chairperson
R. J. Abbott IL. R. Heselton, I11 D. J. Pfeiffer
A. F. Ackerman S. Horvitz R. M. Poston
L. Beltracchi .’1 Howley P. B. Powell
D. W. Bragg It. N. Hurwitz J. W. Radatz
D. W.Burt S. Hwang J. C. Rault
E. R. Byrne .J. H. Ingram S. T. Redwine
H. Carney cJ. P. Kalasky L. K. Reed
J. W. Center IX. Kessler W. E. Riddle
A. M. Cicu ‘l’. M. Kurinara C. W. Rutter, I11
G. G. Cooke ID. V. LaRosa P. E. Schilling
A. J. Cote, Jr 13. A. C. Lane N. F. Schniedewind
P. W.Daggett (7.R. Lewis A. D. Schuman
G. Darling 17. C. Lim L. W. Seagren
B. Dasarathy (3. S . Lindsay R. L. Skelton
A. M. Davis IM. Lipow W. Smith
P. A. Denny W.M. Lively H. M. Sneed
J. A. Dobbins IM. Lubofsky K. C. Tai
M. L. Eads 13. Lindquist B. J. Taute
J. D. Earls ,4. K. Manhindru R. H. Thayer
L. G. Egan, J r 1’. C. Marriott G. D. Tice, J r
D. W. Fife C. F. Martiny T. L. Tillmans
J. Flournoy IN. McCollough W. S . Turner, I11
J. J. Forman 13. Menkus E. A. Ulbrich, J r
F. K. Gardner 13. Meyer D. Usechak
D. Gelperin 13. F. Miller, Jr U. Voges
E. L. Gibbs (3. S . Morris R. Wachter
G. Gladden (3.T. Morun J. P. Walter
S.A. GlossSoler W.G. Murch D. Webdale
J. W. Grigsby *J. Nebb A. H. Weigel
R. M. Gross (3. R. Niedhart N. P. Wilburn
D. A. Gustafson IM. A. Neighbors W. M. Wong
R. T. Gustin *J. 0. Neilson T. Workman
T. L. Hannan ID. J. Ostrom A. W. Yonda
H. Hecht P. F. Zoll

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
Special representatives to the software engineering standards subcommittee were:
J. Milandin: ANSI 21
W. G. Perry: Data Processing Manufa'cturers Association
R. Pritchett: EDP Auditors Association
T. L. Regulinski: IEEE Reliability Society
N. C. Fan: Nuclear Power Engineering Committee, IEEE Power Engineering Society
Suggestions for improvement of this guide are welcome. They should be provided to:
The Secretary
IEEE Standards Board
345 East 47th St
New York, New York 10017
At the time the IEEE Standards Board approved this standard on September 20,1983 it had the
following members:
James H. Beall, Chairman Edward Chelotti, Vice Chairman
Sava I. Sherr, Secretary
J. J. Archambault Donald H. Heirman John P. Riganati
John T. Boettger Irvin N. Howell Frank L. Rose
J. V. Bonucchi Joseph L. Koepfinger* Robert W. Seelbach
Rene Castenschiold Irving Kolodny Jay A. Stewart
Edward J. Cohen George Konomos Clifford 0. Swanson
Len S . Corey John E. May Robert E. Weiler
Donald C. Fleckenstein Donald T. Michael* W.B. Wilkens
Jay Forster Charles J. Wylie

*Member emeritus

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
THIS PAGE WAS
BLANK IN THE ORIGINAL

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
Contents

SECTION PAGE

1. ScopeandOrganization ..................................................... 9
1.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Organization .......................................................... 9
2 . References ............................................................... 9
3 . Definitions ............................................................... 10
4 . Background Information for Writing a Good SRS .................................. 10
4.1 TheSRS ............................................................. 10
4.2 Environment of the SRS ................................................. 10
4.3 Characteristics of a Good SRS ............................................ 11
4.3.1 Unambiguous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3.1.1 Natural Language Pitfalls .................................... 11
4.3.1.2 Formal Requiremlents Specifications Languages . . :. . . . . . . . . . . . . . . . 11
4.3.2 Complete ....................................................... 11
4.3.3 Verifiable ....................................................... 12
4.3.4 Consistent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3.5 Modifiable ...................................................... 12
4.3.6 Traceable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3.7 Useable During The Operation and Maintenance Phase .................... 13
4.4 Joint Preparation of the SRS ............................................. 13
4.5 SRSEvolution ........................................................ 13
4.6 Tools for Developing an SRS ............................................. 14
4.6.1 Formal Specification Methcodologies .................................. 14
4.6.2 Production Tools ................................................. 14
4.6.3 Representation Tools .............................................. 14
5 . SoftwareRequirements ...................................................... 14
5.1 Methods Used to Express Software Requirements ............................. 14
5.1.1 Input/Output Specifications ........................................ 14
5.1.1.1 Approaches .............................................. 15
5.1.1.2 Difficulties ............................................... 15
5.1.2 Representative Examples ........................................... 15
5.1.3 Models ......................................................... 15
5.1.3.1 Mathematical Models ....................................... 15
5.1.3.2 Functional Models ......................................... 15
5.1.3.3 TimingModels ............................................ 15
5.1.3.4 OtherModels ............................................. 16
5.1.3.5 Cautions ................................................. 16
5.2 Annotation of the Software Requirements ................................... 16
5.2.1 Stability ........................................................ 17
5.2.2 Degree of Necessity ............................................... 17
5.2.3 Annotation Caution ............................................... 17
5.3 Common Pitfalls Encountered in Expressing Requirements ...................... 17
5.3.1 Embedding Design in the SRS ....................................... 17
5.3.2 Embedding Project Requirements in the SRS ........................... 17
6 . An SRS Prototype Outline ................................................... 18
6.1 Introduction (Section 1of the SRS) ........................................ 18
6.1.1 Purpose (1.1of the SRS) ........................................... 18
6.1.2 Scope (1.2 of the SRS) ............................................ 18
6.1.3 Definitions, Acronyms. and Abbreviations (1.3 of the SRS) . . . . . . . . . . . . . . . . 18

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
SECTION PAGE

6.1.4 References (1.4 of the SIES) ......................................... 18


6.1.5 Overview (1.5 of the SRS) .......................................... 18
6.2 The General Description (Section 2 of the SRS) ............................... 18
6.2.1 Product Perspective (2.1 of the SRS) .................................. 19
6.2.2 Product Functions (2.2 o f the SRS) ................................... 19
6.2.3 User Characteristics (2.3 of the SRS) .................................. 19
6.2.4 General Constraints (2.4 of the SRS) .................................. 19
6.2.5 Assumptions and Dependencies (2.5 of the SRS) ......................... 20
6.3 The Specific Requirements (Section 3 of the SRS) ............................. 20
6.3.1 Information Required as Part of the Specific Requirements . . . . . . . . . . . . . . . . 20
6.3.1.1 Functional Requirements .................................... 20
6.3.1.2 Performance Requirements .................................. 21
6.3.1.3 Design Constraints ......................................... 21
6.3.1.4 Attributes ............................................... 21
6.3.1.5 External Interface Requirements .............................. 22
6.3.1.6 Other Requirements ........................................ 22
6.3.2 Organizing the Specific Requirements .................................. 23
6.4 Supporting Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

FIGURES
Fig 1 A Functional Model Specifying Any Sequence of Alternating 0’s and 1’s ............. 16

TABLES

Table 1 Prototype SRS Outline .................................................. 18


Table 2 Prototype Outline 1for SRS Section 3 ..................................... 23
Table 3 Prototype Outline 2 for SRS Section 3 ..................................... 23
Table 4 Prototype Outline 3 for SRS Se’ction3 ..................................... 24
Table 5 Prototype Outline 4 for SRS Se’ction3 ..................................... 24

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE Guide to Software
Requirements Specifications

1. Scope and Organization 2. References


[l]ANSI/IEEE Std 100-1977, IEEE Standard
1.1 Scope. This is a guide for writing software Dictionary of Electrical and Electronics Terms.
requirements specifications. I t describer; the
necessary content and qualities of a good Soft- [2] ANSI/IEEE Std 730-1981, IEEE Standard
ware Requirements Specification (SRS) and for Software Quality Assurance Plans.
presents a prototype SRS outline. [3] ANSI/IEEE Std 729-1983, IEEE Standard
This guide does not specify industry,-wide Glossary of Software Engineering Terminology.
SRS standards nor state mandatory SRS re-
quirements. This guide is written undeir the [4] BRUSAW, C. T., ALRED, G. and OLIU, W.,
premise that the current state of the art does Handbook of Technical Writing, New York, St.
Martin's Press, 1976.
not warrant or support such a formal standards
document. [5] DASARATNY, B., Timing Constraints of
This guide is applicable t o in-house and com- Real-Time Systems: Constructs for Expressing
mercial software products. Special care, how- Them, IEEE Real-Time Systems Symposium,
ever, should be used in its application beca.use: Dec 1982.
(1) This guide is aimed at specifying require- [6] DAVIS, A., The Design of a Family of Ap-
ments of software to be developed. Application plications-Oriented Requirements Languages,
of this material t o alreadydeveloped software ZEEE Computer, 1 5 , 5 May 1982, pp 21-28.
is counter-productive.
[ 7 ] FREEDMAN, D. and WEINBERG, G.,
(2) This guide does not cover the specification Handbook of Walkthroughs, Inspections and
of requirements for software being develloped Technical Reviews, 3rd Ed, Little and Brown
using the techniques of rapid prototyping. Publishers, New York.

1.2 Organization. The remainder of this guide [8] KAIN, R., Automata Theory: Machines
is organized as follows: and Languages, McGraw Hill, New York, 1972.
(1) Section 2 provides the references used [9] KOHAVI, Z., Switching and Finite Auto-
throughout the guide. mata Theory, McGraw Hill, New York, 1970.
(2) Section 3 provides definitions of specific
terms used throughout the guide. [ 101 KRAMER, J., Editor, Application Ori-
(3) Section 4 provides background informa- ented Specifications Glossary of Terms, Euro-
tion for writing a good SRS. pean Workshop o n Industrial Computer Systems
(4)Section 5 provides specific guidance for (E WICS), Imperial College, London, England,
expressing software requirements. May 6,1981.'
( 5 ) Section 6 discusses each of the essential 'Copies of this document are available from EWICS,
parts of an SRS and provides alternate proto- c / o G. R. Koch, BIOMATIKGmbh, Carl-MezStr 81-83,
type outlines. D-7800 Freiburg, Federal Republic of Germany.

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
Std 830-1984 IEEE GUIDE TO SOFTWARE

[ l l ]MILLS, G., and WALTER, J., Technical supplier. The person, or persons, who produce
Writing, New York, Holt, Rinehart and Win- a product for a customer. In the context of this
ston, 4th Ed, 1978. document, the customer and the supplier may
[ 121 PETERSON, J., Petri Nets, ACM Comput-
be members of the same organization.
ing Surveys, 9 , 4 , Dec 1977, pp 223-252. user. The person, or persons, who operate or
[13] RAMAMOORHY, C. and SO, H. H., S o f t - interact directly with the system. The user(s)
ware Requirements and Specifications: Status and the customer(s) are often not the same
and Perspectives, Tutorial: Software Method- person( s) .
ology, RAMAMOORTHY, C. and YEH, R. T.,
Editors. IEEE Catalog no E H 0 142-0,1978,
pp 43-164. 4. Background Information for
[14] TAGGART, W. M. Jr, and THARP, M.O., Writing a Good SRS
A Survey of Information Requirements Analysis This section provides background information
Techniques, ACM Computing Surveys, 9 , 4, necessary for writing an SRS. This includes:
Dec 1977, pp 273-290. (1)Examination of the nature of the SRS
(2) Environmental considerations surround-
[ 151 TEICHROEW, D., A Survey o f Languages
ing the SRS
for Stating Requirements for Computer-Based
(3) Characteristics required for a good SRS
Information Systems, 1972 Fall Joint Cornputer
(4) Recommendations for joint preparation
Conference, 1972, pp 1203-1224.
of an SRS
( 5 ) Evolutionary aspects of the SRS
(6) The use of automated tools to develop an
3. Definitions SRS
Except for the definitions listed below, the 4.1 The SRS. The SRS is a specification for a
definitions of all terms used in this guidle con- particular software product, program, or set of
form t o the definitions provided in IEEE Std programs that does certain things. See ANSI/
729-1983 [ 312, for example, the terms require- IEEE Std 730-1981 [ 2 ] , 3.4.2.1.
ment, requirements specification. If EL term The description places two basic requirements
used in this guide does not appear in that on the SRS:
Standard, then ANSI/IEEE Std 100-1977 [ 11, (1)I t must say certain things. For example,
applies. software developed from an SRS that fails t o
The terms listed in this section have been specify that error messages will be provided,
adopted from Section 2, [ 101. will probably fail t o satisfy the customer.
contract. A legally binding document agreed (2) It must say those things in certain ways.
upon by the customer and supplier. This in- For example, software developed from an SRS
cludes the technical, organizational, cost and that fails t o specify the format and content of
schedule requirements of a product. error messages and instead is developed from a
vague and nonquantifiable requirement such as
customer. The person, or persons, who pay for All error messages will be helpful, will probably
the product and usually (but not necessarily) be unsatisfactory. What is helpful for one per-
decides the requirements. In the context of this son can be a severe aggravation t o another
document the customer and the supplier may person.
be members of the same organization. For recommended contents of an SRS see
language. A means of communication, with Section 6.
syntax and semantics, consisting of a set of 4.2 Environment of the SRS. It is important t o
representations, conventions and associated consider the part that the SRS plays in the
rules used t o convey information. total software project. The provisions in ANSI/
partitioning. Decomposition; the separation of IEEE Std 730-1981 [ 2 ] , define the minimum
the whole into its parts. required documents for a software project. See
[2], 3.4.2.
2Numbers in brackets correspond t o those of the ANSI/IEEE Std 730-1981 [ 21 also identifies
references in Section 2. the other useful documents. See [ 21 ,3.4.3.

10

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
REQUIREMENTS SPECIFICATIONS Std 830-1984

Since the SRS has a definite role to play in this (2) The specification The control total is
documentation scheme, SRS writers shoulld be taken from the last record, might be read as:
careful not t o go beyond the bounds of that (a) The control total is taken from the
role. This means the following requirements record at the end of the file
should be met: ( b ) T h e control total is taken from the
(1)The SRS must correctly define all of the latest record
software requirements, but no more. (c) The control total is taken from the
(2) The SRS should not describe any design, previous record
verification, or project management details, (3) The specification All customers have the
except for required design constraints. same control field, might be read as:
Such a properly written SRS limits the range (a) All customers have the same value in
of valid solutions but does not specify any their control field
particular design and thus provides the supplier (b) All customer control fields have the
with maximum flexibility. same format
(c) One control field is issued for all
4.3 Characteristics of A Good SRS. The previ- customers
ous sections describe the types of informat'ion (4)The specification All files are controlled
that should be contained in an SRS. The follow- b y a file control block, might be read as:
ing concepts deal with particular characteristics. (a) One control block controls the entire
A good SRS is: set of files
(1)Unambiguous (b) Each file has its own block
(2) Complete (c) Each file is controlled by a control
(3) Verifiable block, but one control block might control
(4)Consistent more than one file
( 5 ) Modifiable 4.3.1.2 Formal Requirements Specifications
(6) Traceable Languages. One way t o avoid the ambiguity in-
(7) Usable during the Operation and Mainte- herent in natural language is t o write the SRS in
nance Phase a formal requirements specification language?
(1)One major advantage in the use of such
4.3.1 Unambiguous. An SRS is unambiguous
languages is the reduction of ambiguity. This
if - and only if - every requirement stated
occurs, in part, because the formal language
therein has only one interpretation.
processors automatically detect many lexical,
(1)As a minimum, this requires that each
syntactic, and semantic errors.
characteristic of the final product be described
(2) One major disadvantage in the use of such
using a single unique term.
languages is the length of time required t o learn
(2) In cases where a term used in a particular
them.
context could have multiple meanings., the
term must be included in a glossary where its 4.3.2 Complete. An SRS is complete if it
meaning is made more specific. possesses the following qualities:
(1)Inclusion of all significant requirements,
4.3.1.1 Natural Language Pitfalls. Require- whether relating to functionality, performance,
ments are often written in a natural language design constraints, attributes or external inter-
(for example, English). SRS writers who 'use a faces.
natural language must be especially careful t o (2) Definition of the responses of the soft-
review their requirements for ambiguity. The ware t o all realizable classes of input data in all
following examples are taken from Section 2, realizable classes of situations. Note that it is
[71. important to specify the responses t o valid and
(1)The specification The data set will con- invalid input values.
tain an end of file character, might be read as: (3) Conformity t o any SRS standard that
(a) There will be one and only one erid of applies t o it. If a particular section of the
file character standard is not applicable, the SRS should
(b) Some character will be designated as an
end of file character
(c) There will be a t least one end of file 3F0r detailed discussion on this topic, suggested read-
character ingsare [ 6 ] , [ 1 3 ] , [ 1 4 ] , a n d [ 1 5 ] .

11

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
Std 830-1984 IEEE GUIDE TO SOFTWARE

include the section number and an explanation (4)If a requirement is not expressible in veri-
of why it is not applicable. fiable terms at the time the SRS is prepared,
(4)Full labeling and referencing of all figures, then a point in the development cycle (review,
tables, and diagrams in the SRS and definition test plan issue, etc) should be identified at
of all terms and units of measure. which the requirement must be put into a
4.3.2.1 Use of TBDs. Any SRS tha.t uses verifiable form.
the phrase t o be determined (TBD) is not a 4.3.4 Consistent. An SRS is consistent if and
complete SRS. only if no set of individual requirements
(1)The TBD is, however, occasionally neces- described in it conflict. There are three types
sary and should be accompanied by: of likely conflicts in an SRS:
(a) A description of the conditions causing (1)Two or more requirements might describe
the TBD (for example, why an answer is not the same real world object but use different
known) so that the situation can be resolved. terms for that object. For example, a program's
(b) A description of what must be done to request for a user input might be called a
eliminate the TBD. prompt in one requirement and a cue in
(2) Any project documents that are based on another.
an SRS that contains TBDs, should: ( 2 ) The specified characteristics of real world
(a) Identify the version or state the specific objects might conflict. For example:
release number of the SRS associated with that (a) The format of an output report might
particular document. be described in one requirement as tabular but
(b) Exclude any commitments dependent in another as textual.
upon the sections of the SRS that are still (b) One requirement might state that all
identified as TBDs. lights shall be green while another states that
4.3.3 Verifiable. An SRS is verifiable if and all lights shall be blue.
only if every requirement stated therein is veri- (3) There might be a logical or temporal con-
fiable. A requirement is verifiable if and only if flict between two specified actions. For ex-
there exists some finite cost-effective process ample:
with which a person or machine can check that (a) One requirement might specify that the
the software product meets the requirement. program will add two inputs and another specify
(1)Examples of nonverifiable requirements that the program will multiply them.
include statements such as: (b) One requirement might state that A
(a) The product should work well, or The must always follow B, while another requires
product should have a good human interface. that A and B occur simultaneously.
These requirements cannot be verified bt,.cause 4.3.5 Modifiable. An SRS is modifiable if its
it is impossible to define the terms good or structure and style are such that any necessary
well. changes to the requirements can be made easily,
(b) The program shall never enter an infinite completely , and consistently. Modifiability
loop. This requirement is non-verifiable bc>cause generally requires an SRS to:
the testing of this quality is theoretica1:ly im- (1)Have a coherent and easy-to-use organiza-
possible. tion, with a table of contents, an index,, and
(c) The output o f the program shall usually explicit cross-referencing.
be given within 10 s. This requirement is non- ( 2 ) N o t be redundant; that is, the same re-
verifiable because the term usually cannot be quirement should not appear in more than one
measured. place in the SRS.
(2) An example of a verifiable statement is (a) Redundancy itself is not an error, but it
The output o f the program shall be given with- can easily lead t o errors. Redundancy can occa-
in 20 s of event X, 60% o f the time; ana' shall sionally help to make an SRS more readable,
be given within 30 s of event X, 100% o f the but a problem can arise when the redundant
time. This statement can be verified because it document is updated. Assume, for instance,
uses concrete terms and measurable quant,ities. that a certain requirement is stated in two
(3) If a method cannot be devised to deter- places. At some later time, it is determined that
mine whether the software meets a part,icular the requirement should be altered, but the
requirement, then that requirement should be change is made in only one of the two loca-
removed or revised. tions. The SRS then becomes inconsistent.

12

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
REQUIREMENTS SPECIFICATIONS Std 830-1984

(b) Whenever redundancy is necessary, the (b) The SRS should contain a record of all
SRS should include explicit cross-references to special provisions that apply t o individual com-
make it modifiable. ponents such as:
4.3.6 Traceable. An SRS is traceable if the (i) Their criticality (for example, where
origin of each of its requirements is clear and if failure could impact safety or cause large finan-
it facilitates the referencing of each :require- cial or social losses).
ment in future development or enhancement (ii) Their relation t o only temporary
documentation. Two types of traceability are needs (for example, t o support a display that
recommended: may be retired soon).
(1)Backward traceability (that is, t o previous (iii) Their origin (for example, function X
stages of development) depends upoln each is t o be copied from an existing software
requirement explicitly referencing its source in product in its entirety).
previous documents. (2) Knowledge of this type is taken for
(2) Forward traceability (that is, to all docu- granted in the developing organization but is
ments spawned by the SRS) depends upon frequently missing in the maintenance organi-
each requirement in the SRS having a unique zation. If the reason for or origin of a function
name or reference number. is not understood, it is frequently impossible t o
When a requirement in the SRS represents an perform adequate software maintenance on it.
apportionment or a derivative of another re-
quirement, both forward and backward trace- 4.4 Joint Preparation of the SRS. The software
ability should be provided. Examples include: development process begins with supplier and
4.3.6.1 The allocation of response time t o a customer agreement on what the completed
data base function from the overall user re- software must do. This agreement, in the form
sponse time requirement. of an SRS, should be jointly prepared. This is
4.3.6.2 The identification of a report for- important because usually neither the customer
mat with certain functional and user interface nor the supplier is qualified t o write a good
requirements. SRS by himself.
4.3.6.3 A software product that supports (1)Customers usually do not understand the
legislative or administrative needs (for example, software design and development process well
tax computations, reporting of an overhead enough t o write a usable SRS.
ratio). In this case, the exact legislative or ad- (2) Suppliers usually do not understand the
ministrative document that is being supported customer’s problem and field of endeavor well
should be identified. enough t o specify requirements for a satisfac-
The forward traceability of the SRS is espe- tory system.
cially important when the software product The customer and the supplier need t o work
enters the operation and maintenance phase. together t o produce a well written and com-
As code and design documents are modlified, it pletely understood SRS.4
is essential t o be able t o ascertain the complete 4.5 SRS Evolution. The SRS may need t o evolve
set of requirements that may be affected by as the development of the software product
those modifications. progresses.
4.3.7 Usable During the Operation and Main- (1)It may be impossible t o specify some
tenance Phase. The SRS must address thle needs details at the time the project is initiated. For
of the operation and maintenance phLase, in- example, it may be impossible t o define during
cluding the eventual replacement of the soft- the Requirements Phase, all of the screen for-
ware. mats for an interactive program in a manner
(1)Maintenance is frequently carried out by that guarantees that they will not be altered
personnel not associated with the original later.
development. Local changes (corrections) can (2) Additional changes may ensue as deficien-
be implemented by means of a well-commented
code. For changes of wider scope, however, the
design and requirements documentation is es- 4This guide does not specifically discuss style, lan-
sential. This implies two actions guage usage, or techniques of good writing. It is quite
important, however, that an SRS be well written; for
(a) The SRS should be modifiable as indi- guidance, please refer to general technical writing guides
cated in 4.3.5. such as [ l ] and [ l l ] .

13

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
Std 830-1984 IEEE GUIDE TO SOFTWARE

cies, shortcomings, and inaccuracies are dis- headings and subheadings, the compilation of
covered in the SRS, as the product evolves. tables of contents and indexes, etc, all of which
Two major considerations in this process are: help in the production of a more readable SRS.
4.5.1 The requirements should be specified as 4.6.3 Representation Tools. Some words in
completely and thoroughly as possible, even if the SRS, especially nouns and verbs, refer
evolutionary revisions can be forseen as inevit- specifically to entities and actions in the sys-
able. For example, the desired screen formats tem. There are several advantages t o identify-
should be specified as well as possible in the ing them as such.
SRS as a basis for later design. (1)It is possible t o verify that an entity or
4.5.2 A formal change process should be action always has the same name everywhere in
initiated to identify, control, track, and report the SRS. Thus calculate trajectory would not
projected changes, as soon as they are initially co-exist with determine flight path,
identified. Approved changes in requirements ( 2 ) It is possible t o identify every place in the
should be incorporated in the SRS in such a specification where a particular entity or action
way as to: is described.
(1)Provide an accurate and complete audit In addition, it may be desirable t o formalize
trail of changes. the English structure in some way t o allow
(2) Permit the review of current and super- automated processing of the content of the
seded portions of the SRS. SRS. With such constraints it becomes possible
to:
4.6 Tools for Developing an SRS. The most 4.6.3.1 Display the requirements in some
obvious way to create an SRS is t o write it in a
tabular or graphical way.
natural language (for example, English). But be-
4.6.3.2 Automatically check the SRS re-
cause natural languages are rich, although im- quirements in hierarchical layers of detail,
precise, a number of more formal methods where each layer is complete in itself but may
have been devised t o assist SRS writers.
also be expanded upon in a lower hierarchical
4.6.1 Formal Specification Methodologies. layer or be a constituent of an upper hierar-
The degree t o which such formal methodologies
chical layer.
may be useful in preparing an SRS depends
4.6.3.3 Automatically check that the SRS
upon a number of factors: possesses some or all of the characteristics
(1)The size and complexity of the program described in 4.3.
(2) Whether a customer contract requires it
(3) Whether the SRS is a vehicle for contracts
or merely an internal document
5 . Software Requirements
(4)Whether the SRS document will become
the top level of the design document Each software requirement in an SRS is a
( 5 ) What computer facilities are available to statement of some essential capability of the
support such a methodology software t o be developed. The following sub-
No attempt is made here t o describe or en- sections describe:
dorse any particular tool? (1)Methods used t o express software require-
4.6.2 Production Tools. A computer-based ments
word processor is a most useful production aid. (2) Annotation of the software requirements
Usually, an SRS will have several authors, will (3) Common pitfalls encountered in the pro-
undergo several revisions, and will have several cess
reorganizations. A word processor that manages
5.1 Methods Used To Express Software Re-
the text as a computer file facilitates this pro-
quirements. Requirements can be expressed in
cess.
a number of ways:
Almost all computer systems have a word (1)Through input/output specifications
processor and often a document preparation (2) By use of a set of representative examples
package is associated with it. This automates (3) By the specification of models
paragraphing and referencing, the printing of 5.1.1 Input/Output Specifications. I t is often
effective t o specify the required behavior of a
5For detailed discussion on this topic, see, for ex- software product as a sequence of inputs and
ample, [ 6 ] , [ 1 3 ] , [ 1 4 ] , a n d [15]. outputs.

14

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
REQUIREMENTS SPECIFICATIONS Std 830-1984

5.1.1.1 Approaches. There are at least three required inputs and outputs but they do not
different approaches based on the nature of the specify the system’s behavior completely.
software being specified: 5.1.3 Models. Another approach is t o express
(1)Some software products (such a:; report- the requirements in the form of a model? This
ing systems) are best specified by focusing on can be an accurate and efficient way t o express
required outputs. In general, output -focused complex requirements.
systems operate primarily on data files. User in- At least three generalized types of models are
put usually serves t o provide control informa- in common usage:
tion and trigger data file processing. (1)Mathematical
(2) Others are best specified by focusing on (2) Functional
input/output behavior. Input/output,-focused (3) Timing
systems operate primarily on the current input. Care should be taken t o distinguish between
They are required t o generate the niatching the model for the application; that is, a linear
output (as with data conversion routines or a programming model (with a set of linear in-
package of mathematical functions). equalities and an objective function) and the
(3) Some systems (such as process control model for the software which is required to
systems) are required t o remember their be- implement the application model. See 5.1.3.5.
havior so that they can respond t o a m input 5.1.3.1 Mathematical Models. A mathemat-
based on that input and past inputs; that is, ical model is a model that uses mathematical
behave like a finite state machine. In this case relations t o describe the software’s behavior.
the focus is on both input/output pairs and Mathematical models are especially useful for
sequences of such pairs. particular application areas, including naviga-
5.1.1.2 Difficulties. Most software products tion, linear programming, econometrics, signal
can receive an infinite number of sequences as processing and weather analysis.
input. Thus, t o completely specify the behavior A mathematical model might specify the
of the product through input/output sequences response discussed in 5.1.2 like this:
would require that the SRS contain an infinitely (01)*
where * means that the parenthesized character
long set of sequences of inputs and required
outputs. With this approach, therefore, it may string is repeated one or more times.
be impossible to completely specify every con- 5.1.3.2 Functional Models. A functional
model is a model that provides a mapping from
ceivable behavior that is required of the soft-
inputs t o outputs. Functional models, for ex-
ware.
ample, finite state machines or Petri nets can
5.1.2 Representative Examples. One alterna- help identify and define various features of the
tive is t o indicate what behavior is required by software or can demonstrate the intended oper-
using representative examples of that behavior. ation of the system.
Suppose, for example, that the system is re- A functional model might specify the re-
quired t o respond with a “1” every time it sponse, i?reviously described by the rnathemat-
receives a “ 0 ” . Clearly, a list of all possible ical model, in the form of a finite state machine
sequences of inputs and outputs would be as shown in Fig 1. In this figure, the incoming
impossible. However, by using representative arrow points t o the starting state. The double
sequences one might be able t o fully understand lined box represents the accepting state. The
the system’s behavior. This system’s behavior notation X/Y on the lines indicates that when
might be described by using this representative X is accepted as an input, Y is produced as an
set of four dialogues: output .
0101 5.1.3.3 Timing Models. A timing model is a
010101010101 model that has been augmented with timing
01 constraints. Timing models are quite useful for
010101 specifying the form and details of the software’s
These dialogues provide a good idea of the behavior, particularly for real-time systems or
for human factors of any system.
6Each of the four sample dialogues given :here (one
per line) represents a sequence of one-character user ‘For details on using modeling techniques, see [ 51,
inputs and one-character system outputs. P I , [ g l , and [121.

15

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
Std 830-1984 IEEE GUIDE TO SOFTWARE

I -”

Fig 1
A Functional Model Specifying Any Sequence of Alternating Os and I s

A timing model might add these constraints Whenever an SRS uses a model:
t o the model shown in Fig 1. (a) It means that the model provided an
(1)The stimulus 0 will occur within 30 13 of especially efficient and accurate way t o specify
the arrival in state S1 the requirements
(2) The response 1 will occur within 2 si of (b) I t does not mean that the implementa-
the arrival in state S2 tion of the software product must be based on
5.1.3.4 Other Models. In addition t o the that model.
aforementioned, specific applications hiave A model that works effectively for explaining
particularly helpful models. For example, a requirements in a written document may not
compiler specification might employ attribute be optimal for the actual software implementa-
grammars, or a payroll system might use tables. tion.
I t is t o be noted that the use of a formal re-
quirements language for an SRS usually implies 5.2 Annotation of the Software Requirements.
a need for the use of a particular model. Typically, all of the requirements that relate t o
5.1.3.5 Cautions. Whatever type of model a software product are not equally important.
is used: Some requirements may be essential, especially
(1)It must be rigorously defined, either in for lifecritical applications, while others may
the SRS or in a document referenced in the be just nice to have.
SRS. This definition should specify (1)Each requirement in the SRS should be
(a) The required ranges of the model’s annotated t o make these differences in relative
param eters importance clear and explicit.
(b) The values of constraints it uses (2) Annotating the requirements in this man-
(c) The required accuracy of results ner, helps:
(d) The load capacity (a) Customers t o give more careful consid-
(e) The required execution time eration to each requirement, which often clari-
(f) Default or failure response fies any hidden assumptions they may have.
(2) Care must be taken t o keep a model clefi- (b) Developers to make correct design
nition within the domain of requirements. decisions and devote appropriate levels of

16

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
REQUIREMENTS SPECIFICATIONS Std 830-1984

effort t o the different parts of the software 5.3.1 Embedding Design in the SRS. Embed-
product. ding design specifications in the SRS unduly
5.2.1 Stability. One method of annotating re- constrains the software designs and artificially
quirements uses the dimension of stability. A places potentially dangerous requirements in
requirement may be considered stable when it the SRS.
is thought that the needs which it addresses (1)The SRS must specify what functions are
will not change during the expected life of the t o be performed on what data t o produce what
software, or it may be considered volatile and results at what location for whom. The SRS
subject t o change. should focus on the services to be performed.
5.2.2 Degree of Necessity. Another way t o The SRS should not normally specify design
annotate is t o distinguish classes of require- items such as
ments as mandatory, desirable, and optional. (a) Partitioning the software into modules
(1) Mandatory implies that the software will (b) Allocating functions t o the modules
not be acceptable unless these requirements are (c) Describing the flow of information or
provided in an agreed manner. control between modules
(2) Desirable implies that these are require- (d) Choosing data structures
ments that would enhance the software product, (2) It is not always practical to consider the
but would not make it unacceptable if ithey are design as being completely isolated from the
absent. SRS. Security or safety considerations may
( 3 ) Optional implies a class of functions that impose requirements that reflect directly into
may or may not be worthwhile, which gives the design constraints; for example, the need t o
supplier the opportunity t o propose soinething (a) Keep certain functions in separate
which exceeds the SRS. modules
5.2.3 Annotation Caution. Prior to annotating (b) Permit only limited communication
the requirements, a thorough understanding of between some areas of the program
the contractual implications of such annota- (c) Compute check sums for critical quan-
tions, should be obtained. tities
In general, it must be considered that the se-
5.3 Common Pitfalls Encountered in Expressing
lection of an appropriate high-level design for
Requirements. An essential point about the
the software may require vast amounts of re-
SRS is that it should specify the results that
sources (perhaps as much as 10%t o 20% of the
must be achieved by the software, not the
total product development cost). There are two
means of obtaining those results.
alternatives :
(1) The basic issues that the requirements
writer must address are these: (1)Ignore the warning in this guide and
(a) Functionality - what the software is specify the design in the SRS. This will mean
supposed to do that either a potentially inadequate design is
stated as a requirement (because insufficient
(b) Performance - the speed, availability,
response time, recovery time of various soft- time was spent in arriving at it), or an exorbitant
ware functions, etc amount of time is spent during the requirements
phase (because an entire design analysis is per-
(c) Design Constraints Imposed o n an Im-
formed before SRS completion).
plementation -any required standards in effect,
(2) Use the advice in 5.1.3 of this guide. State
implementation language, policies for d<atabase
the requirements using a model design used
integrity, resource limits, operating environ-
solely to assist in the description of the require-
ment(s), etc
ments and not intended t o serve as the actual
(d) Attributes - considerations of portabil-
design.
ity, correctness, maintainability, security, etc
(e) External Interfaces - interactiolns with 5.3.2 Embedding Project Requirements in
people, hardware, other software and other the SRS. The SRS should address the software
hardware product, not the process of producing the soft-
(2) The requirements writer should avoid ware product.
placing either design or project requirements in (1)Project requirements represent an under-
the SRS. The requirements writer should clearly standing between a customer and a supplier
distinguish between identifying required design about the contractual matters pertaining to the
constraints and projecting a design. production of software (and thus should not be

17

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
Std 830-1984 IEEE GUIDE TO SOFTWARE

included in the SRS). These normally include 6.1.1 Purpose (1.1 of the SRS). This subsec-
such items as: tion should accomplish the following:
(a) Cost (1)Delineate the purpose of the particular
(b) Delivery schedules SRS
(c) Reporting procedures (2) Specify the intended audience for the
(d) Software development methods SRS
(e) Quality assurance 6.1.2 Scope (1.2 of the SRS). This subsection
(f) Validation and verification criteria should:
(g) Acceptance procedures (1) Identify the software product(s) to be
(2) Project requirements are specified in other produced by name; for example, Host DBMS,
documents, typically in a computer program Report Generator, etc
development plan or a statement of work. The (2) Explain what the software product(s) will,
requirements for only the software product and, if necessary, will not do
itself are given in the SRS. (3) Describe the application of the software
being specified. As a portion of this, it should:
(a) Describe all relevant benefits, objectives,
and goals as precisely as possible. For example,
6. An SRS Prototype Outline t o say that one goal is to provide effective
reporting capabilities is not as good as saying
This section discusses each of the essential parameter-driven, user-definable reports with a
parts of the SRS. These parts are arranged in 2 h turnaround and on-line entry of user
Table 1 in an outline that can serve as a prloto-
parameters.
type for any SRS. (b) Be consistent with similar statements in
Software suppliers and customers should higher-level specifications (for example, the
tailor the content requirements of this guide System Requirement Specification), if they
based on the particular package being speci- exist.
fied, and individual companies might base their 6.1.3 Definitions, Acronyms, and Abbrevia-
own SRS standards upon it. Remember that tions (1.3 of the SRS). This subsection should
while an SRS does not have to follow this 'out- provide the definitions of all terms, acronyms,
line or use the names for its parts, any good and abbreviations required to properly interpret
SRS must include all of the information dis- the SRS. This information may be provided by
cussed here. reference to one or more appendixes in the
6.1 Introduction (Section 1 of the SRS). The SRS or by reference to other documents.
following subsections of the SRS should pro- 6.1.4 References (1.4 of the SRS). This sub-
vide an overview of the entire SRS. section should:
(1)Provide a complete list of all documents
referenced elsewhere in the SRS, or in a separate,
specified document.
Table 1 (2) Identify each document by title, report
Prototype SRS Outline number - if applicable - date, and publishing
Table of Contents organization.
1. Introduction (3) Specify the sources from which the refer-
1.1 Purpose ences can be obtained.
1.2 Scope
1.3 Definitions, Acronyms, and Abbreviations This information may be provided by refer-
1.4 References ence to an appendix or t o another document.
1.5 Overview 6.1.5 Overview (1.5 of the SRS). This subsec-
2. General Description
2.1 Product Perspective tion should:
2 . 2 Product Functions (1)Describe what the rest of the SRS con-
2.3 User Characteristics tains
2 . 4 General Constraints
2.5 Assumptions and Dependencies (2) Explain how the SRS is organized
3. Specific Requirements
(See 6 . 3 . 2 of this guide for alternate organiza- 6.2 The General Description (Section 2 of the
tions of this section of the SRS.) SRS). This section of the SRS should describe
Appendixes the general factors that affect 'the product and
Index
its requirements.

18

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
REQUIREMENTS SPECIFICATIONS Std 830-1984

This section usually consists of five subsec- tion (if one exists) that allocates particular
tions, as follows: functions t o the software product. Note that,
(1)Product Perspective for the sake of clarity:
(2)Product Functions (1)The functions should be organized in a
(3)User Characteristics way that makes the list of functions under-
(4)General Constraints standable t o the customer or to anyone else
(5)Assumptions and Dependencies reading the document for the first time.
It should be made clear that this section does (2)Block diagrams showing the different
not state specific requirements; it only makes functions and their relationships can be help-
those requirements easier t o understand. ful. Remember, however, that such a diagram is
6.2.1 Product Perspective (2.1 of the! SRS). not a requirement on the design of a product
This subsection of the SRS puts the product itself; it is simply an effective explanatory tool.
into perspective with other related products or This subsection should not be used t o state
projects. specific requirements. This subsection should
(1)If the product is independent and totally provide the reasons why certain specific require-
self-contained, it should be stated here. ments are later specified as part of the Specific
(2) If the SRS defines a product that is a Requirements Section(s) of the SRS.
component of a larger system or project - as 6.2.3 User Characteristics (2.3 of the SRS).
frequently occurs - then this subsection This subsection of the SRS should describe
should: those general characteristics of the eventual
(a) Describe the functions of each compo- users of the product that will affect the specific
nent of the larger system or project, and identify requirements.
interfaces Many people interact with a system during
(b) Identify the principal external inter- the operation and maintenance phase of the
faces of this software product. software life cycle. Some of these people are
NOTE: This is not a detailed description of these inter- users, operators, and maintenance and systems
faces; the detailed description is provided elsewhere in personnel. Certain characteristics of these
the SRS. people, such as educational level, experience,
and technical expertise impose important con-
(c) Describe the computer hardware and straints on the system’s operating environment.
peripheral equipment to be used. If most users of the system are occasional
NOTE: This is an overview description only. users, a resulting specific requirement might be
A block diagram showing the major compo- that the system contains reminders of how t o
nents of the larger system or project, intercon- perform essential functions rather than assuming
nections, and external interfaces can be very that the user will remember these details from
helpful. the last session or from reading the user’s guide.
This subsection should not be used t o impose This subsection should not be used t o state
a specific design solution or specific design con- specific requirements or to impose specific
straints on the solution. This subsection should design constraints on the solution. This subsec-
provide the reasons why certain design con- tion should provide the reasons why certain
straints are later specified as part of the Specific specific requirements or design constraints are
Requirements Section of the SRS. later specified as part of the Specific Require-
6.2.2 Product Functions (2.2 of the SRS). ments Section(s) of the SRS.
This subsection of the SRS should prolvide a 6.2.4 General Constraints (2.4 of the SRS).
summary of the functions that the software This subsection of the SRS should provide a
will perform. For example, an SRS for an general description of any other items that will
accounting program might use this part t o ad- limit the developer’s options for designing the
dress customer account maintenance, customer system. These can include:
statement and invoice preparation without (1)Regulatory policies
mentioning the vast amount of detail thah each (2)Hardware limitations; for example,
of those functions requires. signal timing requirements
Sometimes the function summary that is (3)Interfaces t o other applications
necessary for this part can be taken directly (4)Parallel operation
from the section of the higher-level specifica- (5)Audit functions

19

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
Std 830-1984 IEEE GUIDE TO SOFTWARE

(6) Control functions 6.3.1 Information Required as Part of the


(7) Higherader language requirements Specific Requirements
(8) Signal handshake protocols; for example, 6.3.1.1 Functional Requirements. This sub-
XON -XOFF, ACK - NACK. section of the SRS should specify how the
(9) Criticality of the application inputs t o the software product should be trans-
(10) Safety and security considerations formed into outputs. I t describes the funda-
This subsection should not be used t o impose mental actions that must take place in the
specific requirements or specific design con- software.
straints on the solution. This subsection should For each class of function or sometimes for
provide the reasons why certain specific require- each individual function, it is necessary t o
ments or design constraints are later specified specify requirements on inputs, processing, and
as part of the Specific Requirements Section of outputs. These are usually organized with these
the SRS. four subparagraphs:
6.2.5 Assumptions and Dependencies (2.!5 of (1)Introduction. This subparagraph should
the SRS). This subsection of the SRS should provide a description of the purpose of the
list each of the factors that affect the require- function and the approaches and techniques
ments stated in the SRS. These factors are not employed. It should contain any introductory
design constraints on the software but are, or background material which might clarify the
rather, any changes t o them that can affect the intent of the function.
requirements in the SRS. For example, an. as- (2) Inputs. This subparagraph should contain:
sumption might be that a specific operating (a) A detailed description of all data input
system will be available on the hardware desig- t o this function t o include:
nated for the software product. If, in fact, the (i) The sources of the inputs
operating system is not available, the SRS (ii) Quantities
would then have to change accordingly. (iii) Units of measure
(iv) Timing
6.3 The Specific Requirements (Section 51 of (v) The ranges of the valid inputs t o in-
the SRS). This section of the SRS should con- clude accuracies and tolerances.
tain all the details the software developer needs (b) The details of operator control require-
t o create a design. This is typically the larlgest ments should include names and descriptions
and most important part of the SRS. of operator actions, and console or operator
(1)The details within it should be defineld as positions. For example, this might include
individual specific requirements, following the required operator activities such as form align-
guidelines described in Section 3 of this guide ment - when printing checks.
(verifiable, unambiguous, etc) (c) References to interface specifications or
(2) Background should be provided by cross- interface control documents where appropriate.
referencing each specific requirement t o any (3) Processing. This subparagraph should de-
related discussion in the Introduction, General fine all of the operations t o be performed on
Description, and Appendixes portions of the the input data and intermediate parameters t o
SRS, whenever possible. obtain the output. It includes specification of:
(3) One way t o classify the specific require- (a) Validity checks on the input data
ments is as follows: (b) The exact sequence of operations to in-
(a) Functional Requirements clude timing of events
(b) Performance Requirements (c) Responses to abnormal situations, for
(c) Design Constraints example:
(d) Attributes (i) Overflow
(e) External Interface Requirements (ii) Communication failure
The important points t o be recognized are (iii) Error handling
that: (d) Parameters affected by the operations
(1)Specific requirements should be organized (e) Requirements for degraded operation
in a logical and readable fashion. (f) Any methods (for example, equations,
(2) Each requirement should be stated such mathematical algorithms, and logical opera-
that its achievement can be objectively verified tions) which must be used to transform the sys-
by a prescribed method. tem inputs into corresponding outputs. For

20

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
REQUIREMENTS SPECIFICATIONS Std 830-1984

example, this might specify: rather than, operator shall n o t have to wait for
(i) The formula for computing the with- the transaction t o complete.
holding tax in a payroll package
NOTE: Numerical limits applied to one specific func-
(ii) A least squares curve fitting technique tion are normally specified as part of the processing
for a plotting package subparagraph description of that function.
(iii) A meteorological model t o be used
for a weather forecasting package 6.3.1.3 Design Constraints. Design con-
(g) Validity checks on the output data straints can be imposed by other standards,
(4) Outputs. This subparagraph should con- hardware limitations, etc.
tain : 6.3.1.3.1 Standards Compliance. This
(a) A detailed description of all data out- subsection should specify the requirements
put from this function t o include: derived from existing standards or regulations.
(i) Destinations of the outputs They might include:
(ii) Quantities (1)Report format
(iii) Units of measure (2) Data naming
(iv) Timing (3) Accounting procedures
(v) The range of the valid outputs is to (4) Audit Tracing. For example, this could
include accuracies and tolerances specify the requirement for software to trace
(vi) Disposition of illegal values processing activity. Such traces are needed for
(vii) Error messages some applications to meet minimum govern-
(b) References to interface specifications or ment or financial standards. An audit trace
interface control documents where appropriate requirement might, for example, state that all
In addition, for those systems whose require- changes t o a payroll data base must be recorded
ments focus on input/output behavior, the SRS in a trace file with before and after values.
should specify all of the significant input/out- 6.3.1.3.2 Hardware Limitations. This
put pairs and sequences of pairs. Sequences will subsection could include requirements for the
be needed when a system is required t o remem- software t o operate inside various hardware
ber its behavior so that it can respond to an in- constraints. For example, these could include:
put based on that input and past behavior; that (1)Hardware configuration characteristics
is, behave like a finite state machine. (number of ports, instruction sets, etc)
6.3.1.2 Performance Requirement:;. This (2) Limits on primary and secondary memory
subsection should specify both the static and 6.3.1.4 Attributes. There are a number of
the dynamic numerical requirements placed on attributes that can place specific requirements
the software or on human interaction with the on the software. Some of these are indicated
software, as a whole. below. These should not be interpreted to be a
(1)Static numerical requirements may in- complete list.
clude: 6.3.1.4.1 Availability. This could specify
(a) The number of terminals to be supported the factors required to guarantee a defined
(b) The number of simultaneous users to be availability level for the entire system such as
supported checkpoint, recovery and restart.
(c) Number of files and records to be 6.3.1.4.2 Security. This could specify the
handled factors that would protect the software from
(d) Sizes of tables and files accidental or malicious access, use, modifica-
Static numerical requirements are sometimes tion, destruction, or disclosure. Specific require-
identified under a separate section entitled ments in this area could include the need to:
capacity . (1)Utilize certain cryptographical techniques
(2) Dynamic numerical requirements may in- (2) Keep specific log or history data sets
clude, for example, the numbers of transactions (3) Assign certain functions to different
and tasks and the amount of data to 'be pro- modules
cessed within certain time periods for both (4)Restrict communications between some
normal and peak workload conditions. areas of a program
All of these requirements should be dated in (5) Compute checksums for critical quantities
measurable terms, for example, 95% of the 6.3.1.4.3 Maintainability. This could
transactions shall be processed in less than 1 s, specify the requirements to ensure that the

21

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
Std 830-1984 IEEE GUIDE TO SOFTWARE

software could be maintained. For example, as systems (for example, the linkage between an
a part of this, accounts receivable system and a general ledger
(1)Specific coupling metrics for the software system).
modules could be required For each required software product, the fol-
(2) Specific data/program partitioning re- lowing should be provided:
quirements could be specified for microdevices (1)Name
6.3.1.4.4 Transferability/Conversion.This (2) Mnemonic
could specify the user procedures, user irker- (3) Specification number
face compatibility constraints (if any) etc, re- (4)Version number
quired to transport the software from one ( 5 ) Source
environment to another. For each interface, this part should:
6.3.1.4.5 Caution. It is important that (1)Discuss the purpose of the interfacing
required attributes be specified so that their software as related to this software product.
achievement can be objectively verified by a (2) Define the interface in terms of message
prescribed method. content and format. It is not necessary to detail
6.3.1.5 External Interface Requirements any welldocumented interface, but a reference
6.3.1.5.1 User Interfaces. This should t o the document defining the interface is
specify: required.
(1)The characteristics that the software must 6.3.1.5.4 Communications Interfaces.
support for each human interface to the soft- This should specify the various interfaces to
ware product. For example, if the user of the communications such as local network proto-
system operates through a display terminal, the cols, etc.
following should be specified: 6.3.1.6 Other Requirements. Certain re-
(a) Required screen formats quirements may, due to the nature of the soft-
(b) Page layout and content of any reports ware, the user organization, etc, be placed in
or menus separate categories as indicated below.
(c) Relative timing of inputs and outputs 6.3.1.6.1 Data Base. This could specify
(d) Availability of some form of program- the requirements for any data base that is to be
mable function keys developed as part of the product. This might
(2) All the aspects of optimizing the inter€ace include:
with the person who must use the system. This (1)The types of information identified in
may simply comprise a list of do’s and don’ts 6.3.1.1
on how the system will appear to the user. One (2) Frequency of use
example might be a requirement for the option (3) Accessing capabilities
of long or short error messages. Like all othlers, (4) Data element and file descriptors
these requirements should be verifiable and for ( 5 ) Relationship of data elements, records
example, a clerk typist grade 4 can do function and files
X in 2 min after 1 h of training rather than a (6) Static and dynamic organization
typist can d o function X . (This might also be (7) Retention requirements for data
specified in the Attributes section under a NOTE: If an existing data base package is to be used,
section titled Ease of Use.) this package should be named under Interfaces t o S o f t -
6.3.1.5.2 Hardware 1nterfaces.Thi.s should ware and details of using it specified there.
specify the logical characteristics of each inter-
face between the software product and the 6.3.1.6.2 Operations. This could specify
hardware components of the system. It also the normal and special operations required by
covers such matters as what devices are to be the user such as:
supported, how they are to be supported, and (1)The various modes of operations in the
protocols. For example, terminal support user organization; for example, user-initiated
might specify full screen support as opposed to operations
line by line. (2) Periods of interactive operations and
6.3.1.5.3 Software Interfaces. This should periods of unattended operations
specify the use of other required software (3) Data processing support functions
products (for example, a data management (4)Backup and recovery operations
system, an operating system, or a mathematical NOTE: This is sometimes specified as part of the User
package), and interfaces with other application Interfaces section.

22

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
REQUIREMENTS SPECIFICATIONS Std 830-1984

6.3.1.6.3 Site Adaptation Requirements. Table 2


This could: Prototype Outline 1 for SRS Section 3
(1)Define the requirements for any data or
3. Specific Requirements
initialization sequences that are specific t o a 3.1 Functional Requirements
given site, mission, or operational mode, for 3.1.1 Functional Requirement 1
example, grid values, safety limits, etc. 3.1.1.1 Introduction
3.1.1.2 Inputs
(2) Specify the site or mission-related features 3.1.1.3 Processing
that should be modified t o adapt the sclftware 3.1.1.4 Outputs
to a particular installation. 3.1.2 Functional Requirement 2
....
3.1.n Functional Requirement n
6.3.2 Organizing The Specific Requirements. 3.2 External Interface Requirements
This subsection is often the largest and most 3.2.1 User Interfaces
complex of all the parts of the SRS. 3.2.2 Hardware Interfaces
3.2.3 Software Interfaces
(1)It may be necessary to organize this sec- 3.2.4 Communications Interfaces
tion into subdivisions according to the primary 3.3 Performance Requirements
classes of functions to be performed by the 3.4 Design Constraints
3.4.1 Standards Compliance
software. For example, consider a large inter- 3.4.2 Hardware Limitations
active accounting system. This may be broken ....
down at the top level into operational software 3.5 Attributes
3.5.1 Security
(which supports near-real-time transactions), 3.5.2 Maintainability
support software (logging functions, disk back- ....
up, loading tapes, etc), and diagnostic software 3.6 Other Requirements
3.6.1 Data Base
(primarily hardware and communications sup- 3.6.2 Operations
port), and at the next level into accounts re- 3.6.3 Site Adaptation
ceivable, accounts payable, etc. ....
(2) It should be remembered, however, that
the purpose of this subdivided organization is
t o improve the readability of the SRS, not to Table 3
define the high level design of the software Prototype Outline 2 for SRS Section 3
being specified. 3. Specific Requirements
The best organization for Section 3 , Specific 3.1 Functional Requirements
3.1.1 Functional Requirement 1
Requirements, in an SRS, depends on the 3.1.1.1 Specification
application area and the nature of the so€tware 3.1.1.1.1 Introduction
product being specified. Tables 2 through 4 3.1.1.1.2 Inputs
3.1.1.1.3 Processing
show four possible organizations. 3.1.1.1.4 Outputs
(1)In Prototype Outline 1 (Table 2), a11 the 3.1.1.2 External Interfaces
Functional Requirements are specified, then 3.1.1.2.1 User Interfaces
3.1.1.2.2 Hardware
the four types of interface requirements are Interfaces
specified, and then the rest of the requirements 3.1.1.2.3 Software
are specified. Interfaces
3.1.1.2.4 Communication
(2) Prototype Outline 2 (Table 3) shows the Interfaces
four classes of interface requirements alpplied 3.1.2 Functional Requirement 2
to each individual Functional Requirement. 3.l.n Functional Requirement n
This is followed by the specification of the 3.2 Performance Requirements
rest of the requirements. 3.3 Design Constraints
3.4 Attributes
(3) In Prototype Outline 3 (Table 4), all of 3.4.1 Security
the issues addressed by the Functional Require- 3.4.2 Maintainability
ments are specified, then the other requirements ....
that apply to them are specified. This patitern is 3.5 Other Requirements
3.5.1 Data Base
then repeated for each of the External Inter- 3.5.2 Operations
face Requirement Classifications. 3.5.3 Site Adaption
....

23

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.
IEEE
Std 830-1984

Table 4 Table 5
Prototype Outline 3 for SRS Section 3 Prototype Outline 4 for SRS Section 3
-
3. Specific Requirements 3. Specific Requirements
3.1 Functional Requirements 3.1 Functional Requirement 1
3.1.1 Functional Requirement 1 3.1.1 Introduction
3.1.1.1 Introduction 3.1.2 Inputs
3.1.1.2 Inputs 3.1.3 Processing
3.1.1.3 Processing 3.1.4 Outputs
3.1.1.4 Outputs 3.1.5 External Interfaces
3.1.1.5 Performance Requirements 3.1.5.1 User Interfaces
3.1.1.6 Design Constraints 3.1.5.2 Hardware Interfaces
3.1.1.4.1 Standards 3.1.5.3 Software Interfaces
Compliance 3.1.5.4 Communication Interfaces
3.1.1.4.2 Hardware 3.1.6 Performance Requirements
Limitations 3.1.7 Design Constraints
.... 3.1.8 Attributes
3.1.1.7 Attributes 3.1.8.1 Security
3.1.1.7.1 Security 3.1.8.2 Maintainability
3.1.1.7.2 Maintainabi1it.y ....
.... 3.1.9 Other Requirements
3.1.1.8 Other Requirements 3.1.9.1 Data Base
3.1.1.8.1 Data Base 3.1.9.2 Operations
3.1.1.8.2 Operations 3.1.9.3 Site Adaption
3.1.1.8.3 Site Adaption ....
... . 3.2 Functional Requirement 2
3.1.2 Functional Requirement 2 . ...
.... 3.n Functional Requirement n
3.l.n Functional Requirement n
3.2 External Interface Requirements
3.2.1 User Interfaces
3.2.1.1 Performance Requirements important and should follow the generally
3.2.1.2 Design Constraints accepted rules for good documentation prac-
3.2.1.2.1 Standards tices.8
Compliance
3.2.1.2.2 Hardware (2) The Appendixes are not always consid-
Limitations ered part of the actual requirements specifica-
....
3.2.1.3 Attributes tion and are not always necessary. They might
3.2.1.3.1 Security include:
3.2.1.3.2 Maintainability (a) Sample 1 / 0 formats, descriptions of
. .. .
3.2.1.4 Other Requirements cost analysis studies, or results of user surveys.
3.2.1.4.1 Data Base (b) Supporting or background information
3.2.1.4.2 Operations that can help the readers of the SRS.
3.2.1.4.3 Site Adaption
.... (c) A description of the problems to be
3.2.2 Hardware Interfaces solved by the software.
3.2.3 Software Interfaces (d) The history, background, experience
3.2.4 Communications Interfaces ~
and operational characteristics of the organiza-
tion to be supported.
(4)In Prototype Outline 4 (Table 5), the (e) A cross-reference list, arranged by mile-
interface requirements and the rest of the re- stone, of those incomplete software require-
quirements are specified as they pertain to e,ach ments that are t o be completed by specified
Functional Requirement. milestones. (See 4.3.2 and 4.3.3 (4).)
The organization of the Specific Require- (f) Special packaging instructions for the
ments Section of the SRS should be chosen code and the media to meet security, export,
with the goal of properly specifying the re- initial loading, or other requirements.
quirements in the most readable manner. (3)When Appendixes are included, the SRS
should explicitly state whether or not the
6.4 Supporting Information. The support,ing Appendixes are to be considered part of the
information; that is, the Table of Contents, the requirements.
Appendixes, and the Index, make the SRS
easier to use.
(1)The Table of Contents and Index are quite *See, for example: [ 4 J and [ 11 ]

24

Authorized licensed use limited to: Hanyang University. Downloaded on March 18,2024 at 03:44:33 UTC from IEEE Xplore. Restrictions apply.

You might also like