Нефункциональные требования

Нефункциональные требования не связаны непосредственно с функциями, выполняемыми системой. Они связаны с такими интеграционными свойствами системы, как надежность, производительность (время отклика), размер системы и др. (см. рис. 8.1).

Другими словами, нефункциональные требования связаны с критериями, определяющими

1) качество выполнения отдельных функций и программного изделия в целом;

2) условия функционирования системы;

3) ограничения на систему, например на пропускную способность устройств ввода-вывода, на форматы представления данных и т.д.

Как и для функциональных требований, различают нефункциональные требования к системе в целом и требования к отдельным ее компонентам и видам обеспечения. Более того, каждое функциональное требование может иметь несколько своих нефункциональных.

Нефункциональные требования, относящиеся к системе в целом, как правило, более значимы и критичны, чем отдельные функциональные требования. Ошибка, допущенная в функциональном требовании, может снизить качество системы, в то время как ошибка в нефункциональных требованиях может сделать систему неработоспособной.

Требования к изделию (системе) описывают эксплуатационные свойства программного изделия. Сюда относятся требования к производительности системы, объему необходимой памяти, надежности, переносимости системы на разные компьютерные платформы, удобству эксплуатации и т.д.

Организационные требования отображают взаимоотношения между заказчиком и разработчиком. Эти требования относятся не к самому программному изделию, а к технологическому процессу его создания, стандартам разработки, к языку программирования, к методам проектирования и т.д. Например, может быть задан перечень стандартов качества, накладываемых на процесс разработки, или может быть указано, что проектирование должно выполняться только определенными инструментальными средствами (CASE-средствами), и приведено описание процесса проектирования, которому необходимо следовать.

Организационные требования включают также выходные требования, которые определяют сроки изготовления программного изделия, перечень необходимой документации и т.д.

Внешние требования учитывают факторы, внешние по отношению к разрабатываемой системе и процессу ее разработки. Они включают требования, определяющие взаимодействие данной системы с другими системами, юридические требования, следование которым гарантирует, что система будет разрабатываться и функционировать в рамках существующего законодательства, а также этические требования. Последние должны гарантировать, что система будет приемлемой для пользователей или заказчика.

Нефункциональные требования основываются на бюджетных ограничениях, учитывают организационные возможности компании-разработчика и возможность взаимодействия разрабатываемой системы с другими информационными системами, а также такие внешние факторы, как правила техники безопасности, законодательство о защите интеллектуальной собственности и т.п.

Основная проблема нефункциональных требований состоит в том, что их выполнение трудно проверить. Часто они пишутся для того, чтобы отобразить общие цели заказчика системы, такие, как простота эксплуатации, возможность восстановления после сбоев или быстрый ответ на запросы пользователя. Реализация подобных требований может оказаться сложной для системных разработчиков, поскольку они нечетко сформулированы и открывают простор для различных толкований.

В идеале нефункциональные требования должны выражаться через количественные показатели, которые можно объективно измерить. В табл. 8.1 приведены показатели, с помощью которых можно специфицировать нефункциональные системные свойства.

Таблица 6.1