The Drawbacks of Using Modelling Languages
How requirements should be written differs from natural speech patterns. Writing clear, unambiguous requirements in natural spoken language has never been easy. In the context of requirements definition, the inherent imprecisions and ambiguities of natural language can frustrate even the best of writers.
Since at least the 1970s – long before the term ‘requirements engineering’ came into general use – engineers have sought ways to overcome the weaknesses of natural language as a medium for requirement specification. “Natural language’s extensive vocabulary and commonly understood syntax facilitate communication and make it an inviting choice to express requirements,” says William Wilson, a former principal system engineering consultant with the Software Assurance Technology Center (SATC). “The informality of the language also makes it relatively easy to specify high-level general requirements when precise details are not yet known.
“However, because of differences among formal, colloquial, and popular definitions of words and phrases and the effort required to produce detailed information, these same attributes also contribute to documentation problems. The use of natural language to prescribe complex, dynamic systems have at least three common and severe problems: ambiguity, inaccuracy, and inconsistency.”
Many of the same properties that make natural language an attractive medium for expressing engineering requirements are also weaknesses of that medium; they make it easy to introduce ambiguities which can lead to design errors.
For decades, the most popular methods used to overcome those weaknesses were modeling languages and best practice rule sets or checklists. Unfortunately, both of those methods have drawbacks of their own. One raises barriers against less technical stakeholders. The other burdens engineers with a time-consuming task, much of which is menial.
In this guide, we will go into further detail on the drawbacks of using Modelling Languages and Rule Set Checklists in Requirements Specification.