Daniel M. Berry
Cheriton School of Computer Science
University of Waterloo
Waterloo, ON, Canada
The similarity between software requirements specifications and legal contracts is noted. Particulary when these are written, as they usually are, in natural language, ambiguity is a major cause of their not specifying what they should. Simple misuse of the language in which the document is written is a significant source of these ambiguities. This talk details the problems arising from common difficulties with ``all'', ``each'', and ``every'' to denote sets; positioning of ``only'', ``also'', and ``even''; precedences of ``and'' and ``or''; ``a'', ``all'', ``any'', ``each'', ``one'', ``some'', and ``the'' used as quantifiers; ``or'' and ``and/or''; ``that'' vs. ``which''; parallelism; pronouns referring to an idea; multiple adjectives; etc. Examples from requirements documents and legal documents are examined. A companion paper is suggested as a guide both for writing better requirements or contracts and for inspecting them for potential ambiguities.