Techniques for Disambiguation


One way to cope with ambiguity is to not use natural language and to apply more "formal" requirements specification techniques, which we'll discuss in Chapter 24. For obvious reasons, the user and the stakeholders outside the development group typically prefer natural language, and even computer people manage to carry on most of their day-to-day communication in natural language. Even though both groups have some facility for communication in a natural language, they do come from very different cultures; they have a different focus, orientation, and set of assumptions.

Although it may be impossible to eliminate ambiguity entirely, we can attack it in a variety of different ways. Gause and Weinberg [1989] provide some techniques we can use when faced with this all-too-common situation.

  • Memorization heuristic. Ask several individuals, both from the development group and from the user/stakeholder group, to try recalling, from memory the customer's real requirement. Parts that are not clear and cannot be easily remembered are likely to be the most ambiguous. Focus on them and try to restate them with more clarity so they can be remembered.

  • Keyword technique. As illustrated with Mary's lamb, it often helps to identify the key operational words in a statement and to list all their definitions, using an authoritative source that the various members of the project environment will accept. Then mix and match the definitions to determine different interpretations, as we did with Mary and her lamb. As a quick test of this technique, you may also note that interpretation 1(a) and 1(a) above, "Mary held in possession a little sheep less than one year old or without permanent teeth," is probably closest to the meaning in the nursery rhyme .

  • Emphasis technique. Read the requirement aloud and emphasize individual words until as many different interpretations as possible have been discovered . If only one of the interpretations is correct, restate the requirement appropriately; if multiple interpretations are correct, additional requirements may need to be generated accordingly . We'll illustrate this point with another investigation of Mary and her lamb below.

  • Other techniques. If appropriate, try using pictures, graphics, or formal methods to flush out the ambiguity and eliminate it.

Returning to our nursery rhyme example, we can use the emphasis technique to see if we understand what the user really means by including "Mary had a little lamb" in the requirements set. Saying the sentence aloud and emphasizing individual words might help us elicit any one of the following.

  • Mary had a little lamb; if this is the case, perhaps the user is telling us that it was Mary's lamb, not Richard's or anyone else's.

  • Mary had a little lamb; perhaps she no longer has it. Perhaps it's the tense of the statement that's significant.

  • Mary had a little lamb; thus, the key point may be that Mary had only one lamb, not an entire flock .

  • Mary had a little lamb; indeed, it was one of the littlest lambs you ever saw.

  • Mary had a little lamb ; the emphasis here reminds us that Mary didn't have a pig, a cow, or even a grown-up sheep. Nevertheless, we might still be misled into thinking she had a baby antelope.


Managing Software Requirements[c] A Use Case Approach
Managing Software Requirements[c] A Use Case Approach
ISBN: 032112247X
Year: 2003
Pages: 257 © 2008-2017.
If you may any questions please contact us: