Функциональные, нефункциональные требования и характеристики продукта
Функциональные требования регламентируют функционирование или поведение системы (behavioral requirements). Функциональные требования отвечают на вопрос "что должна делать система" в тех или иных ситуациях. Функциональные требования определяют основной "фронт работ" Разработчика, и устанавливают цели, задачи и сервисы, предоставляемые системой Заказчику.
Функциональные требования записываются, как правило, при посредстве предписывающих правил: "система должна позволять кладовщику формировать приходные и расходные накладные". Другим способом являются так называемые варианты использования (uses cases) - популярный и весьма продуктивный способ представления требований.
Это - основной, определяющий вид требований, который будет рассматриваться на протяжении всего лекционного курса.
Нефункциональные требования, соответственно, регламентируют внутренние и внешние условия или атрибуты функционирования системы. К. Вигерс выделяет следующие основные группы нефункциональных требований:
· Внешние интерфейсы (External Interfaces),
· Атрибуты качества (Quality Attributes),
· Ограничения (Constraints).
Среди внешних интерфейсов в большинстве современных АИС наиболее важным является интерфейс пользователя (User Interface, UI). Кроме того, выделяются интерфейсы с внешними устройствами (аппаратные интерфейсы), программные интерфейсы и интерфейсы передачи информации (коммуникационные интерфейсы).
Основные атрибуты качества:
· Применимость,
· Надежность,
· Производительность,
· Эксплуатационная пригодность,
достаточно хорошо раскрыты в модели FURPS (см. ниже).
Ограничения - формулировки условий, модифицирующих требования или наборы требований, сужая выбор возможных решений по их реализации. выбор платформы реализации и/или развертывания (протоколы, серверы приложений, баз данных, ...), которые, в свою очередь, могут относиться, например, к внешним интерфейсам (конец цитаты).
Характеристики продукта. К.Вигерс формулирует характеристику, "фичу" (feature), как набор логически связанных функциональных требований, которые обеспечивают возможности пользователя и удовлетворяют бизнес-цели.
Существует и более общий взгляд на данное понятие: "features могут быть как относящимся к функциональным, так и к нефункциональным требованиям и могут изменяться от версии к версии продукта".
С.Орлик в отмечает, что "с точки зрения инженерии требований, features являются самостоятельным артефактом, который может быть соотнесен как с функциональными требованиями, так и с нефункциональными".
Роль характеристик проявляется в первую очередь в области маркетинга: не всякий потенциальный потребитель продукта станет читать его функциональные описания, а набор ключевых характеристик, характеризующих конкурентные преимущества, можно сделать лаконичным и уместить на одной странице рекламной листовки, либо напечатать на компакт-диске.
Классификация RUP
В спецификациях Rational Unified Process при классификации требований используется модель FURPS+ со ссылкой на стандарт IEEE Std 610.12.1990.
Акроним FURPS обозначает следующие категории требований:
· Functionality (Функциональность)
· Usability (Применимость)
· Reliability (Надежность)
· Performance (Производительность)
· Supportability (эксплуатационная пригодность).
Символ "+" расширяет FURPS-модель, добавляя к ней:
· ограничения проекта,
· требования выполнения,
· требования к интерфейсу,
· физические требования,
часть из которых уже была рассмотрена выше.
Кроме того, в спецификациях RUP выделяются такие категории требований, как
· требования, указывающие на необходимость согласованности с некоторыми юридическими и нормативными актами;
· требования к лицензированию,
· требования к документированию.