В чем разница между функциональными и нефункциональными требованиями? [закрыто]

283

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

Приведите примеры для каждого случая.

Omid7
источник
@TravisJ Опять же, давайте оставим тег на вопросах, пока мы не закончили с первой фазой записи тегов.
TylerH

Ответы:

525

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

Позвольте мне уточнить.

Примером функционального требования будет:

  • Система должна отправлять электронное письмо, когда выполняется определенное условие (например, заказ сделан, клиент подписан и т. Д.).

Связанное нефункциональное требование к системе может быть:

  • Письма должны быть отправлены с задержкой не более 12 часов после такой активности.

Функциональное требование описывает поведение системы, поскольку оно относится к функциональности системы. Нефункциональное требование разрабатывает характеристику производительности системы.

Обычно нефункциональные требования относятся к таким областям, как:

  • доступность
  • Емкость, ток и прогноз
  • податливость
  • Документация
  • Аварийное восстановление
  • КПД
  • эффективность
  • растяжимость
  • Отказоустойчивость
  • Interoperability
  • Ремонтопригодность
  • Конфиденциальность
  • портативность
  • Качественный
  • надежность
  • упругость
  • Время отклика
  • прочность
  • Масштабируемость
  • Безопасность
  • стабильность
  • Supportability
  • способность быть свидетелем в суде

Более полный список доступен на странице Википедии для нефункциональных требований .

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

LBushkin
источник
Я, конечно, откажусь от вас, учитывая вашу репутацию и профессиональную историю работы (на которую я смотрел, прежде чем написать это): не может ли ваш пример нефункционального требования считаться поведением? Или ваша точка зрения больше связана с тем, что нефункциональные требования описывают ограничения, связанные с поведением?
Томас
1
Чтобы немного уточнить мой вопрос (и он может не отвечать): есть ли способ лучше выяснить границу того, что составляет поведение?
Томас
плюс 1 за хороший пример системы электронной почты. :)
Ахтишам
33

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

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

pulasthi
источник
27

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

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

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

  3. Функциональные требования - это то, что система должна выполнять . Может быть

    • вычисления
    • Технические подробности
    • Манипуляция данными
    • Обработка данных
    • Другие специфические функции
  4. Типичное функциональное требование будет содержать уникальное имя и номер, краткое резюме и обоснование. Эта информация используется для того, чтобы помочь читателю понять, почему требование необходимо, и отследить требование путем разработки системы.

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

Л.Бушкин уже объяснил больше о нефункциональных требованиях. Я добавлю больше.

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

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

  3. Нефункциональные требования - можно разделить на две основные категории:

    • Такие качества исполнения , как безопасность и удобство использования, наблюдаются во время выполнения.
    • Эволюционные качества , такие как тестируемость, ремонтопригодность, расширяемость и масштабируемость, которые воплощены в статической структуре программной системы.
  4. Нефункциональные требования накладывают ограничения на разрабатываемый продукт, процесс разработки и определяют внешние ограничения, которым должен соответствовать продукт.
  5. IEEE-Std 830 - 1993 перечислены 13 нефункциональные требования , которые будут включены в программное обеспечение , требования к документам.
  1. Требования к производительности
  2. Требования к интерфейсу
  3. Эксплуатационные требования
  4. Требования к ресурсам
  5. Требования к проверке
  6. Требования к приему
  7. Требования к документации
  8. Требования безопасности
  9. Требования к переносимости
  10. Требования к качеству
  11. Требования к надежности
  12. Требования к ремонтопригодности
  13. Требования безопасности

Является ли требование выраженным как функциональное или нефункциональное требование, может зависеть от:

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

Ex. Система может потребовать, чтобы пользователь отображал количество записей в базе данных. Это функциональное требование. То, насколько актуальным должно быть [обновление] этого числа, является нефункциональным требованием. Если число необходимо обновить в режиме реального времени, системные архитекторы должны убедиться, что система способна обновлять [отображаемый] счетчик записей в течение приемлемо короткого интервала изменения количества записей.

Ссылки:

  1. Функциональное требование
  2. Нефункциональное требование
  3. Количественная оценка и прослеживаемость требований
Сомнат Мулук
источник
1
хорошо объяснил. Спасибо!
Арслан
1
Хороший ответ с хорошими ссылками. Я хочу только добавить более обновленный стандарт, поскольку IEEE 830-1993 был заменен. Самые последние стандарты ISO / IEC / IEEE 29148: 2018 "Система и разработка программного обеспечения - Процессы жизненного цикла - Требования инжиниринг" ( iso.org/standard/72089.html )
выход из системы
8

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

нефункциональное требование - это требование, которое определяет критерии, которые можно использовать для оценки работы системы в конкретных условиях, а не в конкретных ситуациях.

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

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

Марути Шринивас
источник
Отличный ответ.
Ифтикар
3

ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ, которые должна выполнять система

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

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

Раджнор Д.С.
источник