Reputation: 539
I read somewhere that a good specification should be unambiguous, complete and consistent. What is the meaning of those terms? How can we say that a specification is complete? How can we say that a specification is unambiguous? How can we say that a specification is consistent?
Thanks in advance
Upvotes: 1
Views: 97
Reputation: 25054
It may be easier to define these indirectly by defining their opposites.
A spec is incomplete if it leaves things out that it ought to have included or appeals to concepts which are not taken explicitly as primitive notions and are also not defined elsewhere.
It is ambiguous if there is more than one way to interpret its meaning. For example, if the spec says "Under these circumstances the responsible blort may not contain a farble," some intelligent readers will understand "The responsible blort must not contain a farble" and others will understand "The responsible blort is not guaranteed to contain a farble -- it may or it may not." (This is why some standards development organizations have a blanket rule forbidding the phrase "may not".) In many formal contexts, there are formal definitions of ambiguity.
It is inconsistent if it contains or entails a logical contradiction. If another passage in the spec said that every blort must always contain a farble, it would be inconsistent with either reading of the ambiguous statement given above.
Upvotes: 1