Спецификация требований программного обеспечения

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Спецификация требований программного обеспечения (англ. software requirements specification, SRS) — структурированный набор требований/запросов (функциональность, производительность, конструктивные ограничения и атрибуты) к программному обеспечению и его внешним интерфейсам. (Определение на основе IEEE Std 1012:2004) Предназначен для того, чтобы установить базу для соглашения между заказчиком и разработчиком (или подрядчиками) о том, как должен функционировать программный продукт.

Может включать ряд пользовательских сценариев (англ. use cases), которые описывают варианты взаимодействия между пользователями и программным обеспечением.

Пользовательские сценарии являются средством представления функциональных требований. В дополнение к пользовательским сценариям, спецификация также содержит нефункциональные требования, которые налагают ограничения на дизайн или реализацию (такие как требования производительности, стандарты качества, или проектные ограничения)[источник не указан 429 дней].

В стандарте ISO/IEC/IEEE 29148:2011, который пришел на смену устаревшему IEEE 830, содержится рекомендации к структуре и методам описания программных требований — «Recommended Practice for Software Requirements Specifications».

Пример организации структуры SRS на основе стандарта ISO/IEC/IEEE 29148:2011[1]

[править | править код]
  • Введение
    • Цели
    • Соглашения о терминах
    • Предполагаемая аудитория и последовательность восприятия
    • Масштаб проекта
    • Ссылки на источники
  • Общее описание
    • Видение продукта
    • Функциональность продукта
    • Классы и характеристики пользователей
    • Среда функционирования продукта (операционная среда)
    • Рамки, ограничения, правила и стандарты
    • Документация для пользователей
    • Допущения и зависимости
  • Функциональность системы
    • Функциональный блок X (таких блоков может быть несколько)
      • Описание и приоритет
      • Причинно-следственные связи, алгоритмы (движение процессов, workflows)
      • Функциональные требования
  • Требования к внешним интерфейсам
    • Интерфейсы пользователя (UX)
    • Программные интерфейсы
    • Интерфейсы оборудования
    • Интерфейсы связи и коммуникации
  • Нефункциональные требования
    • Требования к производительности
    • Требования к сохранности (данных)
    • Требования к качеству программного обеспечения
    • Требования к безопасности системы
    • Требования на интеллектуальную собственность
  • Прочее
    • Приложение А: Глоссарий
    • Приложение Б: Модели процессов и предметной области и другие диаграммы
    • Приложение В: Список ключевых задач


  1. Введение
    1. Цели
    2. Обзор
    3. Определения, сокращения, термины
    4. Ссылки
    5. Обзор
  2. Общее описание
  3. Требования
    1. Функциональность
      1. <Функциональное требование первое>
      2. ...
    2. Удобство использования
      1. <Требование по удобству использования первое>
      2. ...
    3. Надежность
      1. <Требование к надежности первое>
      2. ...
    4. Производительность
      1. <Требование к производительности первое>
      2. ...
    5. Поддерживаемость
      1. <Требование к поддерживаемости первое>
      2. ...
    6. Проектные ограничения
      1. <Проектное ограничение первое>
      2. ...
    7. Требования по документированности и поддержке пользователей
    8. Заимствованные компоненты
    9. Интерфейсы
      1. Пользовательские интерфейсы
      2. Аппаратные интерфейсы
      3. Программные интерфейсы
      4. Коммуникационные интерфейсы
    10. Лицензионные соглашения
    11. Необходимые замечания по законодательству, авторским правам и прочие
    12. Применяемые стандарты
  4. Сопроводительная информация

Примечания

[править | править код]
  1. IEEE Std 830—1998 IEEE Recommended Practice for Software Requirements Specifications. Дата обращения: 9 мая 2010. Архивировано из оригинала 15 мая 2010 года.