Какие браузеры вы используете чаще всего
 
Нефункциональные требования

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

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

Вместе с тем нефункциональные требования могут относиться не только к самой про­граммной системе: одни могут относиться к технологическом)' процессу создания ПО, другие — содержать перечень стандартов качества, накладываемых на процесс разработки. Кроме того, в спецификации нефункциональных требований может быть указано, что проектирование системы должно выполняться только определенными CASE-средствами, и приведено описание процесса проектирования, которому необходимо следовать.

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

Все нефункциональные требования можно разбить на три большие группы.

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

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

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

Нефункциональные требования часто вступают в конфликт с другими требованиями, предъявляемыми системе. Например, в соответствии с одним из системных требований размер системы не должен превышать 4 Мбайт, поскольку она должна полностью помес­титься в постоянное запоминающее устройство ограниченной емкости. Другое требова­ние обязывает использовать для написания системы язык программирования Ada, кото­рый часто применяется для создания критических систем реального времени. Но, допус­тим, откомпилированная системная программа, написанная на языке Ada, занимает более 4 Мбайт. Итак, одновременное выполнение этих требований невозможно. В этой ситуа­ции следует отказаться от одного из требований. Можно или применить другой язык про­граммирования, или увеличить объем памяти, выделяемый для системы.