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


283

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

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



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

Ответы:


525

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

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

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

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

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

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

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

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

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

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

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


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

1
Чтобы немного уточнить мой вопрос (и он может не отвечать): есть ли способ лучше выяснить границу того, что составляет поведение?
Томас

плюс 1 за хороший пример системы электронной почты. :)
Ахтишам

33

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

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


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

2

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.