Шаблон FR
Шаблон функциональных требований для системного аналитика.
Шаблон FR
FR описывает, что система должна делать: поведение, сценарии, правила, проверки, ошибки и ожидаемый результат.
Паспорт документа
| Поле | Значение |
|---|---|
| Система / продукт | <название> |
| Функциональность | <название> |
| Инициатор | <заказчик / PO> |
| Автор | <ФИО> |
| Статус | Черновик / На согласовании / Согласовано / Устарело |
| Версия | v1.0 |
| Связанные задачи | <Jira / Confluence / ссылка> |
Цель доработки
Кратко опишите, зачем нужна доработка и какую проблему она решает.
Область действия
| Объект | Влияние |
|---|---|
| UI | <экраны / формы / действия> |
| Backend | <сервисы / методы> |
| БД | <таблицы / поля / миграции> |
| Интеграции | <внешние системы / API / топики> |
| Роли и права | <роли / permissions> |
| Отчетность / аналитика | <метрики / события / отчеты> |
Термины и сокращения
| Термин | Описание |
|---|---|
<термин> | <описание> |
Предусловия
| ID | Предусловие |
|---|---|
| PRE-001 | Пользователь авторизован. |
| PRE-002 | У пользователя есть право <permission>. |
| PRE-003 | Объект находится в статусе <status>. |
Функциональные требования
| ID | Требование | Приоритет | Комментарий |
|---|---|---|---|
| FR-001 | Система должна отображать <элемент> при выполнении условий <условия>. | Must | |
| FR-002 | При действии <действие> система должна выполнить <результат>. | Must | |
| FR-003 | Система должна валидировать <данные> перед отправкой. | Must | |
| FR-004 | Система должна вызвать <API / сервис / топик>. | Must | |
| FR-005 | Система должна отобразить пользователю результат операции. | Should |
Бизнес-правила
| ID | Правило | Условие | Результат |
|---|---|---|---|
| BR-001 | <название правила> | Если <условие> | То <действие> |
Валидации
| ID | Поле / объект | Правило проверки | Ошибка |
|---|---|---|---|
| VAL-001 | <field> | Обязательно для заполнения | <код / текст> |
| VAL-002 | <field> | Формат <формат> | <код / текст> |
Основной сценарий
- Пользователь открывает
<экран>. - Система отображает
<данные / действия>. - Пользователь выполняет
<действие>. - Система проверяет права, данные и бизнес-правила.
- Система выполняет операцию.
- Система отображает результат.
Альтернативные сценарии
AS-001. Недостаточно прав
- Пользователь инициирует действие.
- Система определяет отсутствие права
<permission>. - Система скрывает действие или возвращает
403 Forbidden.
AS-002. Внешняя система недоступна
- Сервис вызывает
<external system>. - Внешняя система не отвечает или возвращает ошибку.
- Система возвращает контролируемую ошибку и логирует ее с
correlationId.
Ошибки
| Код | Условие | Поведение системы | Текст пользователю |
|---|---|---|---|
| 400 | Некорректные данные | Не выполнять операцию | <текст> |
| 403 | Нет прав | Запретить действие | <текст> |
| 404 | Объект не найден | Не выполнять операцию | <текст> |
| 409 | Конфликт состояния | Не выполнять операцию | <текст> |
| 500 | Внутренняя ошибка | Логировать ошибку | <текст> |
Состояния объекта
| Текущий статус | Действие | Новый статус | Условие |
|---|---|---|---|
<from> | <action> | <to> | <condition> |
UI-требования
| Элемент | Тип | Обязательность | Логика отображения |
|---|---|---|---|
<название> | <input / button / table> | Да / Нет | <условие> |
Интеграции
| Система | Метод / топик | Направление | Назначение |
|---|---|---|---|
<система> | <endpoint / method / topic> | Входящее / исходящее | <зачем> |
Логирование
| Событие | Уровень | Что логировать |
|---|---|---|
| Начало операции | INFO | operation, userId, correlationId |
| Ошибка валидации | WARN | field, reason, correlationId |
| Ошибка интеграции | ERROR | targetSystem, errorCode, correlationId |
Открытые вопросы
| ID | Вопрос | Кому адресован | Статус |
|---|---|---|---|
| Q-001 | <вопрос> | <роль / ФИО> | Открыт |
Критерии приемки документа
| ID | Критерий |
|---|---|
| AC-DOC-001 | Документ согласован с владельцем продукта / архитектором / разработкой, если применимо. |
| AC-DOC-002 | Все спорные места вынесены в открытые вопросы или зафиксированы как ограничения. |
| AC-DOC-003 | В документе нет неоднозначных формулировок вроде “быстро”, “удобно”, “корректно” без измеримого критерия. |