Software Requirements

Software Requirements (Вимоги до ПЗ) — це структурований опис функцій, характеристик та обмежень, які повинна мати програмна система, щоб відповідати очікуванням замовника, користувачів та інших зацікавлених сторін.

Іншими словами — це відповіді на запитання:

  • Що має робити програма?
  • Як вона повинна працювати?
  • Для кого вона створюється і в яких умовах буде працювати?

Основні цілі вимог

  1. Зрозуміти потреби користувача
    • Визначити, які проблеми треба вирішити
    • Які задачі автоматизувати або спростити
  2. Служити основою для розробки
    • Вимоги — це вихідна точка для розробників, дизайнерів, тестувальників і менеджерів
  3. Зменшити ризики непорозумінь
    • Узгоджений документ із вимогами запобігає суперечкам і повторній розробці
  4. Забезпечити можливість тестування
    • Вимоги повинні бути перевірюваними: по ним створюються тест-кейси

Класифікація вимог

  1. Функціональні вимоги (Functional Requirements)

Це вимоги, які описують конкретну поведінку або функціональність системи.

Вони відповідають на питання: “Що повинна робити система?”

Приклади:

  • Користувач повинен мати змогу зареєструватися, використовуючи email і пароль.
  • Система має надсилати лист підтвердження після реєстрації.
  • Адміністратор може видалити обліковий запис користувача.

2. Нефункціональні вимоги (Non-Functional Requirements)

Ці вимоги описують якість системи, як вона виконує свої функції.

Вони відповідають на питання: “ЯК повинна працювати система?”

Приклади:

  • Система повинна обробляти не менше 500 запитів на секунду.
  • Інтерфейс має бути доступним для людей із вадами зору (відповідність WCAG).
  • Додаток має працювати офлайн.

Сюди входять:

  • Продуктивність
  • Безпека
  • Масштабованість
  • Надійність
  • Зручність інтерфейсу (usability)
  • Сумісність із платформами (Windows, iOS, Android тощо)

3. Бізнес-вимоги (Business Requirements)

Це високорівневі цілі проєкту або продукту з погляду бізнесу.

Приклади:

  • Надати клієнтам можливість купувати квитки онлайн.
  • Оптимізувати витрати на обробку заявок на 20% протягом півроку.
  • Зменшити кількість дзвінків до служби підтримки.

4. Системні вимоги (System Requirements)

Це вимоги до технічного середовища, в якому працюватиме система.

Приклади:

  • Підтримка ОС: Windows 11, Ubuntu 22.04.
  • Робота на сервері з мінімум 8 GB RAM та 4 CPU.
  • Підключення до бази даних PostgreSQL.

Як формуються вимоги?

1. Збір вимог (Requirements Elicitation)

Це процес збору інформації про те, що потрібно системі. Залучаються:

  • Замовники
  • Кінцеві користувачі
  • Бізнес-аналітики
  • Архітектори / розробники

Методи:

  • Інтерв’ю
  • Опитування
  • Аналіз існуючої системи
  • Спостереження
  • Воркшопи
  • Аналіз конкурентів

2. Аналіз і документування

Вимоги формулюються в структурованому вигляді:

  • У вигляді документа SRS (Software Requirements Specification)
  • У вигляді User Stories (у Agile-проєктах)
  • У вигляді Use Case діаграм або UML-діаграм

3. Перевірка та валідація

Потрібно переконатися, що:

  • Вимоги точно описують те, що потрібно
  • Вони не суперечать одна одній
  • Вони реалістичні (можна реалізувати з доступними ресурсами)
  • Вони такі, що можуть бути перевірені (можна протестувати результат)

Хто бере участь у роботі з вимогами?

РольЩо робить
Бізнес-аналітикЗбирає та формулює вимоги
Product OwnerВизначає пріоритети функцій (у Scrum)
РозробникОцінює складність реалізації
Тестувальник (QA)Готує тест-кейси на основі вимог
АрхітекторВизначає, як технічно реалізувати вимоги

Як виглядає документ з вимогами (SRS)?

Типовий зміст:

  1. Вступ
  2. Опис системи
  3. Функціональні вимоги
  4. Нефункціональні вимоги
  5. Інтерфейси користувача
  6. Обмеження
  7. Глосарій термінів

Якими мають бути хороші вимоги?

Вимоги повинні бути:

  • Чіткими — без двозначностей
  • Повними — охоплювати всі сценарії
  • Такими, що можна перевірити — можна протестувати
  • Послідовними — не суперечити одна одній
  • Зрозумілими — написаними зрозумілою мовою

Приклад вимоги:

User Story (Agile формат):

Як користувач, я хочу мати змогу змінити свій пароль, щоб забезпечити безпеку свого акаунта.

Acceptance Criteria:

  • Користувач може змінити пароль зі сторінки профілю
  • Стара комбінація логін-пароль має бути підтверджена
  • Новий пароль має містити щонайменше 8 символів
  • Після зміни пароля автоматично виконується вихід з усіх пристроїв

Висновок

Вимоги до ПЗ — це основа всієї розробки. Від того, наскільки правильно та повно вони сформульовані, залежить:

  • чи отримає замовник те, що очікує;
  • чи зможе команда реалізувати продукт у строки;
  • чи буде система зручною, ефективною та безпечною.

Чіткі вимоги = менше багів, менше переробок, більше задоволених користувачів.

Leave a Reply

Your email address will not be published. Required fields are marked *