Problems with natural language


Various problems can arise when requirements are written in natural language sentences, in a text document:

Lack of clarity It is sometimes difficult to use language in a precise and unambiguous way without making the document wordy and difficult to read.

Requirements confusion Functional requirements, non-functional requirements, system goals and design information may not be clearly distinguished.

Requirements amalgamation Several different requirements may be expressed together as a single requirement.

Natural language is often used to write system requirements specifications as well as user requirements. However, because system requirements are more detailed than user requirements, natural language specifications can be confusing and hard to understand:

1.Natural language understanding relies on the specification readers and writers using the same words for the same concept. This leads to misunderstandings because of the ambiguity of natural language. Jackson (Jackson, 1995) gives an excellent example of this when he discusses signs displayed by an escalator. These said ‘Shoes must be worn’ and ‘Dogs must be carried’. I leave it to you to work out the conflicting interpretations of these phrases.

2.A natural language requirements specification is overflexible. You can say the same thing in completely different ways. It is up to the reader to find out when requirements are the same and when they are distinct.

3.There is no easy way to modularise natural language requirements. It may be difficult to find all related requirements. To discover the consequence of a change, you may have to look at every requirement rather than at just a group of related requirements.

Because of these problems, requirements specifications written in natural language are prone to misunderstandings. These are often not discovered until later phases of the software process and may then be very expensive to resolve.


(c) Ian Sommerville 2008