In cases where a term used in a particular context could have multiple meanings, the term should be included
in a glossary where its meaning is made more specific.
An SRS is an important part of the requirements process of the software life cycle and is used in design,
implementation, project monitoring, verification and validation, and in training as described in IEEE Std
1074-1997. The SRS should be unambiguous both to those who create it and to those who use it. However,
these groups often do not have the same background and therefore do not tend to describe software requirements
the same way. Representations that improve the requirements specification for the developer may be
counterproductive in that they diminish understanding to the user and vice versa.
Subclauses 4.3.2.1 through 4.3.2.3 recommend how to avoid ambiguity.
4.3.2.1 Natural language pitfalls
Requirements are often written in natural language (e.g., English). Natural language is inherently ambiguous.
A natural language SRS should be reviewed by an independent party to identify ambiguous use of
language so that it can be corrected.
4.3.2.2 Requirements specification languages
One way to avoid the ambiguity inherent in natural language is to write the SRS in a particular requirements
specification language. Its language processors automatically detect many lexical, syntactic, and semantic
errors.
One disadvantage in the use of such languages is the length of time required to learn them. Also, many nontechnical
users find them unintelligible. Moreover, these languages tend to be better at expressing certain
types of requirements and addressing certain types of systems. Thus, they may influence the requirements in
subtle ways.