As especificações de requisitos escritas em linguagem natural são propensas a mal-entendidos. Muitas das necessidades relatadas podem nunca ser implementadas e diversas delas podem ser relatadas dando margem à ambiguidade, o que pode fazer com que sejam implementadas de maneira incorreta ou deficiente.

Para minimizar esse problema, os requisitos funcionais podem ser escritos usando notações mais especializadas como