База знань

Специфікація вимог

Специфікація вимог – закінчений опис поведінки програми, яку потрібно розробити.

У цій статті ми розглянемо складові даного документу, рекомендовані стандартом IEEE 830 (структура SRS – Software Requirements Specification):

Вступ:

  • Цілі
  • Угоди про терміни
  • Переважна аудиторія та послідовність сприйняття
  • Масштаб проекту
  • Посилання на джерела

Загальний опис:

  • Бачення продукту
  • Функціональність продукту
  • Класи та характеристики користувачів
  • Середовище функціонування продукту (операційна середа)
  • Рамки, обмеження, правила і стандарти
  • Документація для користувачів
  • Припущення та залежності

Функціональність системи:

  • Функціональний блок X (таких блоків може бути декілька)
  • Опис та пріоритет
  • Причинно-наслідкові зв’язки, алгоритми (рух процесів, workflows)
  • Функціональні вимоги

Вимоги до зовнішніх інтерфейсів:

  • Інтерфейси користувача (UX)
  • Програмні інтерфейси
  • Інтерфейси обладнання
  • Інтерфейси зв’язку та комунікацій

Нефункціональні вимоги:

  • Вимоги до продуктивності
  • Вимоги до збереження (даних)
  • Критерії якості програмного забезпечення
  • Вимоги до безпеки системи

Інші вимоги:

  • Додаток А: Глосарій
  • Додаток Б: Моделі процесів і предметної області та інші діаграми
  • Додаток В: Список ключових завдань

Незважаючи на таку велику кількість пунктів, які входять до нашої специфікації, все ж «ядро» вимог до додатка знаходиться у функціональних вимогах. Найчастіше, їх представляють у вигляді сценаріїв користувача (Use cases).

«Кожен сценарій використання зосереджується на описі того, як досягти мети або завдання. Для більшості програмних проектів це означає, що потрібно безліч сценаріїв використання, щоб визначити необхідний набір властивостей нової системи. Ступінь формальності програмного проекту та його стадії впливатиме на необхідний рівень деталізації, для кожного сценарію використання».

Також, є кілька вимог до складання самої специфікації:

  • Опис всіх функцій має бути максимально коротким і чітким.
  • Не допускати двозначних описів: кожна сутність повинна бути гранично зрозуміла будь-якій людині.
  • У той же самий час: простота.
  • Деталізація повинна бути в рамках максимального розуміння і уникнення надлишкового тексту.