Жизненный цикл программного обеспечения IEEE |
---|
|
Спецификация требований к программному обеспечению ( SRS ) — это описание программной системы , которая должна быть разработана . Она смоделирована по образцу спецификации бизнес-требований (CONOPS) . Спецификация требований к программному обеспечению излагает функциональные и нефункциональные требования и может включать набор вариантов использования , описывающих пользовательские взаимодействия, которые программное обеспечение должно предоставлять пользователю для идеального взаимодействия.
Спецификации требований к программному обеспечению устанавливают основу для соглашения между заказчиками и подрядчиками или поставщиками о том, как должен функционировать программный продукт (в рыночном проекте эти роли могут играть отделы маркетинга и разработки). Спецификация требований к программному обеспечению представляет собой строгую оценку требований перед более конкретными этапами проектирования системы, и ее цель состоит в том, чтобы сократить последующую переделку. Она также должна обеспечивать реалистичную основу для оценки стоимости продукта, рисков и графиков. [1] При правильном использовании спецификации требований к программному обеспечению могут помочь предотвратить провал программного проекта. [2]
В документе спецификации требований к программному обеспечению перечислены достаточные и необходимые требования для разработки проекта. [3] Для выведения требований разработчику необходимо иметь четкое и полное понимание разрабатываемых продуктов. Это достигается посредством подробного и постоянного общения с командой проекта и заказчиком на протяжении всего процесса разработки программного обеспечения.
SRS может быть одним из описаний элементов данных, поставляемых по контракту [4], или иметь другие формы организационно предписанного содержания.
Обычно SRS пишется техническим писателем , системным архитектором или программистом . [5]
Спецификации требований к программному обеспечению использовались в процессах разработки программного обеспечения еще в 1975 году. [6]
Цель и содержание спецификаций требований к программному обеспечению были формализованы в 1983 году IEEE . Стандарт был опубликован в 1984 году как IEEE-830-1984 и одобрен ANSI . [7] Он был пересмотрен в 1993 и 1998 годах, прежде чем был заменен международным стандартом. [8] [9] Этот стандарт был направлен на предоставление критериев для хорошей SRS и рекомендаций по ее содержанию. Он признал преимущества прототипирования для проектирования требований. Он предложил пример структуры и несколько вариантов.
Стандарт ISO /IEC/IEEE 29148 «Системная и программная инженерия — Процессы жизненного цикла — Инженерия требований» заменил IEEE 830 в 2011 году. [9] Текущая редакция датируется 2018 годом. Этот стандарт шире, поскольку он охватывает также критерии качества требований, процессы управления требованиями и спецификацию бизнес-требований (BRS), а также спецификацию требований заинтересованных сторон (StRS). [10] Он предлагает немного измененную примерную структуру.
Пример организации SRS выглядит следующим образом: [11]
Рекомендуется также рассмотреть подходы к проверке, запланированные для квалификации программного обеспечения в соответствии с требованиями, например, с помощью специального раздела со структурой, которая отражает раздел о конкретных требованиях. [10]
Требования должны быть строго о том, что необходимо, независимо от конструкции системы, а не о том, как программное обеспечение должно это делать. [10] Индивидуальные требования должны быть, следовательно, необходимыми, уместными и недвусмысленными. Кроме того, набор требований должен быть полным, последовательным, выполнимым и понятным.
Следуя идее запахов кода , было предложено понятие запаха требований для описания проблем в спецификации требований, где требование не обязательно неверно, но может быть проблематичным. [12] Примерами запахов требований являются субъективный язык , двусмысленные наречия и прилагательные , превосходные степени и отрицательные утверждения . [12] Также следует избегать сравнительных фраз, непроверяемых терминов или терминов, подразумевающих все в целом. [10]
[1]