Вимоги користувача (варіанти використання, історії користувачів)

Розділ: Інженерія систем і програмного забезпечення

📌 Про що ця тема


Тут перевіряють, як розробник фіксує те, чого хоче замовник чи кінцевий користувач від майбутньої системи. Ключові поняття — вимоги користувача, варіанти використання (use cases) та історії користувачів (user stories). Це фундамент: якщо вимоги зібрані погано, програму зроблять «не ту».


📖 Головне


• Вимоги — це опис того, що система має робити (функціональні) і яким обмеженням відповідати (нефункціональні: швидкодія, безпека, зручність). На цьому етапі ще не кажуть, ЯК це реалізувати технічно, а лише ЩО потрібно.

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

• Актор (дійова особа) — будь-хто чи будь-що, що взаємодіє із системою ззовні: користувач, адміністратор, інша програма.

• Варіант використання (use case) — опис послідовності дій, які актор виконує із системою для досягнення конкретної мети. Наприклад, «Оформити замовлення».

• Use case має: назву, актора, основний сценарій (кроки) та альтернативні сценарії (що робити при помилці чи відхиленні).

• Діаграма варіантів використання (UML Use Case Diagram) зображує акторів (чоловічки) та варіанти використання (овали), сполучені лініями; система — прямокутник-межа.

• Історія користувача (user story) — короткий опис потреби за шаблоном: «Як РОЛЬ, я хочу ДІЮ, щоб ВИГОДА/МЕТА». Застосовується у гнучких (Agile) методологіях.

• Критерії приймання (acceptance criteria) — умови, за якими перевіряють, що історія виконана.

• Відмінність: use case детально розписує сценарій крок за кроком; user story — коротка, акцент на цінності для користувача, деталі уточнюють під час роботи.


🔢 Як це працює на прикладі


Завдання: онлайн-бібліотека, дія «пошук книги».


User story: «Як читач, я хочу шукати книгу за назвою, щоб швидко знайти потрібне видання».

Критерій приймання: якщо введено частину назви — показуються всі збіги; якщо збігів немає — повідомлення «Нічого не знайдено».


Той самий випадок як use case:

• Назва: Пошук книги.

• Актор: Читач.

• Основний сценарій: 1) читач відкриває пошук; 2) вводить назву; 3) система шукає в базі; 4) показує список.

• Альтернативний: якщо книг немає — система повідомляє про відсутність результатів.


На діаграмі: чоловічок «Читач» сполучений лінією з овалом «Пошук книги» всередині прямокутника «Система бібліотеки».


⚠️ Типові помилки


• Плутають функціональні й нефункціональні вимоги: «показувати список книг» — функціональна, «відповідати за 2 секунди» — нефункціональна.

• Вважають актором лише людину; актором може бути інша система чи сервіс.

• У user story пишуть технічне рішення замість потреби («хочу базу MySQL») — має бути роль + мета + вигода.

• Плутають use case і user story: use case — детальні кроки, user story — коротка фраза.

• Забувають про альтернативні сценарії (помилки, порожні результати).


🎯 Що завчити напамʼять


• Шаблон історії: «Як РОЛЬ, я хочу ДІЮ, щоб ВИГОДА».

• Склад use case: назва, актор, основний і альтернативний сценарії.

• На UML-діаграмі: актор — чоловічок, варіант використання — овал, межа системи — прямокутник.

• Функціональні = що робить; нефункціональні = якість/обмеження.


🧠 Перевір себе


1. Чим use case відрізняється від user story?

2. До яких вимог належить «пароль має містити ≥8 символів»?

3. Що означає актор у діаграмі варіантів використання?

4. Запиши історію користувача для входу в систему.


Відповіді: 1 — use case детально описує сценарій кроками, user story — коротка фраза про потребу й вигоду; 2 — нефункціональна (вимога безпеки); 3 — зовнішня сутність (людина чи система), що взаємодіє із системою; 4 — «Як користувач, я хочу увійти за логіном і паролем, щоб отримати доступ до свого акаунта».

Перевірити себе на практиці

Прочитати — половина справи. Далі потрібні завдання цієї ж теми з розбором кожної відповіді: саме на них видно, чи справді тема закрита.