Какие же признаки требований в основном определяют их качество? Вот аббревиатура SMART, возникающая из английских описаний требований, что они являются специфицируемыми, измеряемыми, достижимыми, существенными и сопровождаемыми, аббревиатура SMART имеет перевод как и независимого английского слова «разумный». Таким образом подчеркивается, что хорошие требования являются разумными. Для того чтобы требования были сформулированы правильно, они должны обладать некоторыми обязательными характеристиками. Во-первых, требование должно быть необходимым. Во-вторых, оно должно быть контролируемым. И, наконец, достижимым, как в техническом, так в стоимостном и временном выражении. Какое требование является правильным? В первую очередь, каждое отдельное требование должно выражать одну конкретную мысль. По возможности, требование должно быть кратким и простым. В обязательном порядке оно должно утверждать только положительные утверждения, не допускается формулировка требования в отрицающей манере. Оно должно быть грамматически правильным, без опечаток и пропусков; пониматься однозначно и не содержать двусмысленностей; использовать одинаковую терминологию на всех уровнях системы, то есть быть унифицированным; и, наконец, удовлетворять плану реализуемого проекта. Какие еще дополнительные правила существуют при написании хороших требований? Требование в обязательном порядке должно быть адресным, то есть мы должны понимать, кто отвечает за его реализацию. Затем, оно должно четко отображать, что должно быть сделано, или насколько хорошо это что-то должно быть сделано, или при каких ограничениях что-либо должно быть сделано. Формат написания требований очень простой. Кто должен что-то конкретное сделать. Примеры требований к продукции: система должна функционировать при уровнях мощности таких-то. Итак, кто — система, что должна сделать — должна функционировать. Программное обеспечение получает данные из... Таким образом можно построить все формальные требования к системе. На данном слайде приведены некоторые вопросы, которые необходимо задавать разработчику для контроля правильности составленных требований. Свободно ли требование от двусмысленных терминов? Свободно ли от неопределенностей произношения, свойственных разным фонетическим построениям фраз? Свободно ли оно от непроверяемых или не проверенных понятий? И так далее. Разумность каждого требования определяется следующими моментами — это ответы на конкретные вопросы. Почему данное требование востребовано? Какие допущения для его реализации были приняты? Какие конструкторские действия вызвало соответствующее требование? И дополнительные данные, которые нужны для сохранения. Приведем один очень простой пример. Грузовик, перевозящий грузы по магистральным дорогам, должен иметь высоту не более 14 футов. Разумность этого требования определяется тем, что 99 % всех развязок над шоссе между магистральными дорогами имеют зазор в 14 футов и более. Соответственно, если грузовик будет иметь большую высоту, то он не будет просто помещаться в максимальное количество существующих мостовых развязок.