Software Requirements (Вимоги до ПЗ) — це структурований опис функцій, характеристик та обмежень, які повинна мати програмна система, щоб відповідати очікуванням замовника, користувачів та інших зацікавлених сторін.
Іншими словами — це відповіді на запитання:
- Що має робити програма?
- Як вона повинна працювати?
- Для кого вона створюється і в яких умовах буде працювати?
Основні цілі вимог
- Зрозуміти потреби користувача
- Визначити, які проблеми треба вирішити
- Які задачі автоматизувати або спростити
- Служити основою для розробки
- Вимоги — це вихідна точка для розробників, дизайнерів, тестувальників і менеджерів
- Зменшити ризики непорозумінь
- Узгоджений документ із вимогами запобігає суперечкам і повторній розробці
- Забезпечити можливість тестування
- Вимоги повинні бути перевірюваними: по ним створюються тест-кейси
Класифікація вимог
- Функціональні вимоги (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)?
Типовий зміст:
- Вступ
- Опис системи
- Функціональні вимоги
- Нефункціональні вимоги
- Інтерфейси користувача
- Обмеження
- Глосарій термінів
Якими мають бути хороші вимоги?
Вимоги повинні бути:
- Чіткими — без двозначностей
- Повними — охоплювати всі сценарії
- Такими, що можна перевірити — можна протестувати
- Послідовними — не суперечити одна одній
- Зрозумілими — написаними зрозумілою мовою
Приклад вимоги:
User Story (Agile формат):
Як користувач, я хочу мати змогу змінити свій пароль, щоб забезпечити безпеку свого акаунта.
Acceptance Criteria:
- Користувач може змінити пароль зі сторінки профілю
- Стара комбінація логін-пароль має бути підтверджена
- Новий пароль має містити щонайменше 8 символів
- Після зміни пароля автоматично виконується вихід з усіх пристроїв
Висновок
Вимоги до ПЗ — це основа всієї розробки. Від того, наскільки правильно та повно вони сформульовані, залежить:
- чи отримає замовник те, що очікує;
- чи зможе команда реалізувати продукт у строки;
- чи буде система зручною, ефективною та безпечною.
Чіткі вимоги = менше багів, менше переробок, більше задоволених користувачів.