Skip to main content

Нефункциональные требования (NFR)

IDНазваниеКатегорияОписание требованияПриоритет (MoSCoW)Обоснование
NFR-01Время отклика при поискеПроизводительностьВремя загрузки страницы с результатами поиска (UC-002) при применении фильтров не должно превышать 2 секундMust HaveДля нашего продукта быстрый поиск — критическое конкурентное преимущество.
NFR-02Скорость подтверждения брониПроизводительностьОперация бронирования должна выполняться не более чем за 1,5 секунды. В случае недоступности внешней системы таймаут должен наступать через 3 секунды.Must HaveПользователь ожидает мгновенного подтверждения, как при покупке билетов в кино. Долгая обработка может привести к повторным попыткам и задвоению броней.
NFR-03Доступность сервисаНадёжностьУровень доступности (uptime) веб-приложения должен составлять не менее 99,5% в месяц (допустимо не более 3,5 часов простоя).Must HaveПользователь ожидает доступности приложения в любое для него удобное время.
NFR-04Согласованность данных при бронированииНадёжностьСистема должна гарантировать отсутствие двойного бронирования одного столика на одно время. Вероятность конфликта должна быть менее 0,01%.Must HaveДвойное бронирование — фатальная ошибка для репутации. Требует реализации транзакционности.
NFR-05Защита персональных данныхБезопасностьВсе персональные данные пользователей (email, телефон, история броней) должны храниться в зашифрованном виде. Передача данных между клиентом и сервером — только по HTTPS.Must HaveТребование 152-ФЗ о персональных данных. Утечка данных приведёт к штрафам и потере доверия.
NFR-06МасштабируемостьМасштабируемостьСистема должна выдерживать пиковую нагрузку 50 RPS (запросов в секунду) на операции поиска и просмотра без деградации производительности.Should HaveОценка: на старте 10 000 пользователей, 20% активны в пике, 10 запросов за сессию → ~55 RPS.
NFR-07Интуитивность интерфейсаУдобство использованияПользователь должен выполнять бронирование (от выбора ресторана до подтверждения) не более чем за 3 минуты для нового пользователя.Could HaveМожно провести юзабилити-тестирование и улучшить интерфейс в следующих версиях.
NFR-08Доступность информации о ресторанахЮридические и нормативные требованияПользователи приложения должны видеть фирменное наименование ресторана, место нахождения, режим работы, государственный регистрационный номер.

Поскольку мы являемся агрегатором (посредником), обязаны обеспечить наличие информации в карточке ресторана.

Закон о «Защите прав потребителей», статья 9 «Информация об изготовителе (исполнителе, продавце, владельце агрегатора)» требует от агрегатора (посредника) обеспечить наличие информации о ресторане в карточках ресторана.
Should HaveЗакон о «Защите прав потребителей»; для агрегатора обязательна корректная карточка ресторана.
NFR-09Идентификация ресторанов-партнёровЮридические и нормативные требованияПеред активацией профиля ресторана система должна проводить проверку юридического лица или ИП (по ИНН, ОГРН). При обнаружении недействительных или недостоверных данных регистрация должна отклоняться.Must HaveЗащита от мошенничества и повышение доверия пользователей. Предотвращаем репутационные риски.
NFR-10Ограничение размера загружаемых файловЕмкостьСистема должна ограничивать размер загружаемых изображений (фото ресторанов, схемы залов) до 10 МБ для одного файла. Поддерживаемые форматы: JPEG, PNG.Must HaveБез ограничений рестораны могут загружать файлы огромного размера, что приведёт к замедлению загрузки страниц у пользователей.
NFR-11Горизонтальное масштабированиеМасштабируемостьАрхитектура системы должна поддерживать горизонтальное масштабирование через добавление новых серверов. Должны выполняться следующие условия:
• Возможность увеличить количество серверов с 2 до 10 (и более) по мере роста нагрузки.
• Балансировка: использовать балансировщик нагрузки для равномерного распределения запросов к серверам.
• Отказоустойчивость: при выходе одного из серверов из строя оставшиеся должны продолжать обслуживать запросы без потери данных.
Should HaveГоризонтальное масштабирование — стандартный подход для веб-сервисов с растущей нагрузкой. Оно позволяет наращивать мощность и обеспечивает отказоустойчивость.

Почему не покрыты остальные категории?

КатегорияОбъяснение
СовместимостьДля MVP мы ориентируемся на современные версии браузеров. Поддержка устаревших браузеров не требуется. Это сознательное ограничение, чтобы не усложнять разработку. Риск: небольшой процент пользователей со старыми браузерами не сможет воспользоваться сервисом, но для MVP это приемлемо. В будущих версиях можно добавить адаптацию под более широкий спектр.
ПоддерживаемостьДля MVP мы считаем, что команда разработки обеспечит необходимый уровень поддерживаемости без явного требования.
Юридические и нормативные требованияОсновное требование — 152-ФЗ о персональных данных — уже покрыто в NFR-05.