Найти в Дзене
Аналитическая среда

Требования программного обеспечения - что это?

Каждый начинающий аналитиков при первом знакомстве с профессией в первую очень сталкивается с понятием "требования", что это вообще такое "требования ПО" и почему все говорят разное. Давайте разберемся в данном вопросе. И так - "Что такое требования ПО?" Существует несколько определений данного термина, в зависимости от стороны процесса, с которой мы на них смотрим (с точки зрения анализа, управления проекта или управления бизнес-процессом): Есть международные и локальные стандарты: 1) В документе ISO/IEC/IEEE 24765:2017 "Системная и программная инженерия - Словарь"(Institute of Electrical and Electronics Engineers, институт инженеров электротехники и электроники) требования определяются в трех основных аспектах: 1. Условия или возможности, необходимые пользователю для решения проблем или достижения целей 2. Характеристики системы или компонентов, которыми должна обладать система, чтобы: 3. Документированное представление условий или возможностей, описанных в пунктах 1 и 2. При этом в

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

Давайте разберемся в данном вопросе. И так - "Что такое требования ПО?"

Существует несколько определений данного термина, в зависимости от стороны процесса, с которой мы на них смотрим (с точки зрения анализа, управления проекта или управления бизнес-процессом):

Где дано определение термина "Требование ПО"
Где дано определение термина "Требование ПО"

Есть международные и локальные стандарты:

1) В документе ISO/IEC/IEEE 24765:2017 "Системная и программная инженерия - Словарь"(Institute of Electrical and Electronics Engineers, институт инженеров электротехники и электроники) требования определяются в трех основных аспектах:

1. Условия или возможности, необходимые пользователю для решения проблем или достижения целей

2. Характеристики системы или компонентов, которыми должна обладать система, чтобы:

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

3. Документированное представление условий или возможностей, описанных в пунктах 1 и 2.

При этом в документе ISO/IEC/IEEE 29148:2018 "Программная и системная инженерия. Процессы жизненного цикла. Разработка требований" дается более точечное определение не просто "требование", а "требования программного обеспечения" - это специализированный вид требований, который:

  • Фокусируется исключительно на программной составляющей системы
  • Описывает конкретные характеристики и поведение программного продукта
  • Является частью более широкой системы требований

2) Согласно ГОСТ Р 51904-2002 «Программное обеспечение встроенных систем. Общие требования к разработке и документированию»: - требования к ПО - это совокупность условий, возможностей и ограничений, которые определяют:

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

Есть своды знаний:

  1. Согласно BABOK (Business Analysis Body of Knowledge, свод знаний в области бизнес-анализа):

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

  1. В PMBOK (Project Management Body of Knowledge, свод знаний по управлению проектами) так описывают:

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

  1. В BPM CBOK (Business Process Management Common Body of Knowledge, свод знаний по управлению бизнес-процессами, не совсем по теме, но близко по духу)

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

Есть определения, данные крупными специалистами в данной области:

  1. В книге Карла Вигерса "Разработка требований к программному обеспечению":

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

Больше другой полезной информации в ТГ канале: https://t.me/all_for_analyse

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

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

В качестве фундаментального определения воспользуемся IEEE и сформулируем вопросы:

  1. Является ли "артефакт" характеристикой программного обеспечения, необходимой для решения пользовательских задач?
  2. Описывает ли "артефакт" конкретные характеристики и поведение программного продукта?
  3. Описывает ли "артефакт" поведение системы и её компонентов при эксплуатации?

Артефакт является требованием при условии положительного ответа на любой из вопросов.

Надеемся что теперь у читателей есть четкое пониманием того, что является "Требованием к разработке ПО".

Дополнительные материалы по теме статьи: