Specifications – Writing Unambiguous Specifications in Natural Language

documentationspecifications

It seems to me that you cannot possibly write a software specification in English that is completely free of ambiguities, simply due to the informal nature of natural language – and therefore that a truly unambiguous specification must include code written in a formally specified language.

Is this a known result or am I missing something?

Best Answer

Isn't this what lawyers always did to avoid ambiguities?

The result is they write in the most unnatural ways, trying to read their papers is more difficult than ever, and despite this there are always inconsistencies and ambiguities.

You are right, you cannot write a software specification that is completely free of ambiguities, but you won't manage to do that implementing a formal specified language either.

This is also why we document our code, because sometimes it's difficult to read for our minds.

No point in documenting code with another code.

Related Topic