Daniel M. Berry
Cheriton School of Computer Science
University of Waterloo
Waterloo, ON, Canada
Abstract:
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.