Концепция: Требования
Требование - это "условие или возможность, которым должна соответствовать система".
Взаимосвязи
Основное описание

Требование - это "условие или возможность, которым должна соответствовать система".

Существуют много разновидностей требований. Одна из классификаций требований называется моделью FURPS+ [GRA92], где FURPS - первые буквы названий категорий требований на английском языке.

Знак плюса "+" в аббревиатуре FURPS+ охватывает дополнительные категории требований:

(См. также [IEEE Std 610.12.1990].)

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

  • Описание системного подхода к формулировке набора требований с помощью FURPS+ приведено в статье по Rational Edge "Capturing Architectural Requirements" Питера Ильса (Peter Eeles) (http://www.ibm.com/developerworks/rational/library/4706.html).  В этой статье приведен список вопросов, относящихся к разнообразным нефункциональным требованиям, а также вопросы по применимости этих требований.
  • В институте Software Engineering Institute был разработан каталог "общих сценариев" - формальных требований к качеству программного обеспечения, применимых ко многим видам систем.  Дополнительные сведения приведены в публикации http://www.sei.cmu.edu/publications/documents/01.reports/01tr014.html и книге Software Architecture in Practice, второе издание, написанной Леном Бэссом (Len Bass), Полом Клементсом (Paul Clements) и Риком Кезменом (Rick Kazman) (Addison-Wesley, 2003).

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

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

Набор функций

Функциональные требования относятся к следующим областям:

  • набор функций
  • возможности
  • защита

Удобство работы

Требования к удобству работы охватывают следующие вопросы:

  • человеческий фактор
  • эстетика
  • последовательность пользовательского интерфейса
  • электронная и контекстная справочные системы
  • мастеры и агенты
  • пользовательская документация
  • учебные материалы

Надежность

Требования к надежности охватывают следующие вопросы:

  • частота и серьезность сбоев
  • возможность восстановления
  • предсказуемость
  • точность
  • средняя продолжительность бесперебойной работы (MTBF)

Производительность

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

  • скорость выполнения
  • эффективность
  • коэффициент готовности
  • точность
  • пропускная способность
  • время отклика
  • время восстановления
  • используемые ресурсы

Удобство поддержки

Требования к удобству поддержки охватывают следующие вопросы:

  • простота тестирования
  • простота расширения
  • простота адаптируемости
  • простота обслуживания
  • совместимость
  • простота настройки
  • простота обслуживания
  • простота установки
  • простота локализации

Требования к структуре проекта

Требования к структуре проекта охватывают вопросы, относящиеся к структуре системы, и их часто называют ограничениями на структуру модели.

Требования к реализации

Требования к реализации относятся к особенностям программирования и конструирования системы. Например:

  • соответствие стандартам
  • языки реализации
  • правила в отношении целостности баз данных
  • ограничения на ресурсы
  • рабочие среды

Требования к интерфейсу

Требования к интерфейсу охватывают следующие вопросы:

  • внешние объекты, с которыми должна взаимодействовать система
  • ограничения на форматы, время ожидания и другие обстоятельства взаимодействия

Физические требования

Физические требования охватывают физические характеристики системы:

  • материалы
  • форма
  • габариты
  • вес

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