Уровни и виды требований по Вигерсу на примере пиццы

Модель требований, которую предложил Карл Вигерс, помогает структурировать информацию о том, что нужно разработать и почему это важно для бизнеса и пользователей. Эта модель делит требования на несколько уровней и показывает, как они связаны между собой, а также дополняется понятиями бизнес-правил, внешних интерфейсов, ограничений и атрибутов качества.
По сути, Вигерс говорит: если мы хотим грамотно собрать и описать требования, нужно смотреть на ситуацию с трёх основных «ракурсов»: бизнес, пользователи и система.

Бизнес-требования
На самом верхнем уровне находятся бизнес-требования. Они отвечают на вопросы:
- Зачем нужно это решение?
- Какую проблему бизнеса мы хотим решить?
- Какой результат компания ожидает получить?
Здесь формируется документ о концепции и границах, где описываются цели проекта, границы будущего решения и ключевые показатели успеха. При этом в бизнес-требования могут быть «вшиты» бизнес-правила — внутренние или внешние регламенты, законы, стандарты, которые влияют на то, как нужно разрабатывать и использовать систему. Бизнес-правила оказывают влияние на все виды требований.
Пользовательские требования
На следующем уровне находятся пользовательские требования — что именно пользователи ожидают от системы в повседневной работе. Можно сказать, это «мост» между бизнес-уровнем и более конкретными системными деталями.
Здесь описывается, как пользователь будет взаимодействовать с системой, какие задачи он будет решать. Эти требования обычно оформляются в виде:
- User Stories (короткие истории о том, кто пользователь и чего он хочет добиться).
По Вигерсу эти требования объединяют в единый Документ пользовательских требований, чтобы зафиксировать всё, что действительно важно для конечных пользователей.
Функциональные требования
Функциональные требования определяют, что должна уметь делать система с точки зрения функциональности. Они описывают:
- Сценарии использования (Use Cases): какую конкретную задачу решает пользователь и как система ему в этом помогает.
- Приложения и модули: какие основные компоненты будут в системе (например, модуль «Заказы», «Расчёт стоимости», «Управление пользователями»).
- Логику: как обрабатываются данные и какие результаты возвращаются.
Нефункциональные требования
Под нефункциональными требованиями понимаются различные характеристики и ограничения, которые влияют на качество и способы реализации системы. Сюда входят:
Внешние интерфейсы
Описывают, как система взаимодействует с внешними сервисами, модулями или устройствами. Например, каким протоколом обмениваться данными с платёжным шлюзом или как интегрироваться с системой логистики.
Атрибуты качества
- Производительность (через сколько секунд должна открываться страница с меню или обрабатываться заказ).
- Безопасность (какие механизмы авторизации, шифрования данных и защиты от атак используются).
- Удобство использования (принципы UX/UI, чтобы пользователям было легко и понятно).
- и другие атрибуты
Ограничения
- Регуляторные (соответствие законам, нормативам, например, обработка персональных данных).
- Технологические (использование конкретной базы данных, ограничение по версии языка программирования).
- Организационные (сроки, бюджет, требования заказчика по поддержке определённых платформ).
Нефункциональные требования задают «рамки», внутри которых придётся работать, и помогают команде понять, насколько «хорошей» и «качественной» должна быть система.
Системные требования
Эта часть отвечает на вопрос, в каком окружении и на каком «железе» система должна запускаться и корректно работать. Примеры таких требований:
- Требования к аппаратному обеспечению: минимальная конфигурация сервера или пользовательского устройства (оперативная память, мощность процессора, объём диска).
- Соответствие операционной системе: система должна запускаться под Windows, Linux, iOS, Android или иметь кроссплатформенную поддержку.
- Совместимость с версией браузера: приложение корректно работает в последних версиях Chrome, Safari, Firefox.
- Видеоадаптер: если это продукт с 3D-графикой или высоким уровнем визуализации, указываются требования к видеокарте.
Такие пункты важны, чтобы заранее понимать, какие ресурсы понадобятся и как среда выполнения влияет на успех проекта.
Итог
По Вигерсу все требования делятся на три уровня:
Бизнес-требования
Отвечают на вопрос «зачем мы это делаем?» и определяют цели и границы будущего решения.
Пользовательские требования
Показывают, «что нужно пользователям» для выполнения своих задач.
Системные требования
Объединяют несколько аспектов, в том числе функциональные, нефункциональные и требования к окружению. Они отвечают на вопрос «как именно реализовать» всё, что нужно бизнесу и пользователям.
Такая структура помогает двигаться от самых глобальных целей (бизнес-требований) к конкретному описанию решения на уровне системы и её компонентов. Если правильно учесть взаимосвязи между этими тремя уровнями, то удастся создать понятное и целостное описание проекта, где каждая деталь решения обоснована с точки зрения целей бизнеса и реальных нужд пользователей.
Нет ничего лучше примеров
Чтобы наглядно показать взаимосвязь трёх уровней требований и всех дополнительных факторов, рассмотрим сквозной пример с сервисом для заказа пиццы:
Бизнес-требование
- Увеличить онлайн-продажи пиццерии на 30% за счёт запуска удобного веб-приложения.
Пользовательские требования
- Пользователь может выбрать пиццу (с учётом ингредиентов и размеров) и оформить заказ.
- Пользователь может оплатить заказ онлайн.
- Пользователь может просмотреть статус доставки.
Функциональные требования, которые детализируют каждое пользовательское требование:
Для «Пользователь может выбрать пиццу (с учётом ингредиентов и размеров) и оформить заказ»:
- Система предоставляет каталог пицц.
- Система позволяет добавлять или убирать ингредиенты.
- Система позволяет выбирать количество пицц.
- Система позволяет выбирать размер пиццы.
- Система рассчитывает итоговую стоимость заказа с учётом выбранных ингредиентов, скидок и промокодов.
- Система формирует заказ и передаёт информацию на сервер для дальнейшей обработки.
Для «Пользователь может оплатить заказ онлайн»:
- Система интегрируется с платёжным шлюзом, обеспечивая приём онлайн-платежей.
- Система проверяет статус оплаты в реальном времени и уведомляет о результатах.
- Система формирует чек (электронный или PDF) и отправляет его пользователю.
Для «Пользователь может просмотреть статус доставки»:
- Система интегрируется с сервисом отслеживания курьеров и получает информацию о текущем положении заказа.
- Система отображает текущее состояние (принят, в работе, на доставке, доставлен) в личном кабинете пользователя.
- Система рассылает уведомления пользователю (push или e-mail) при изменении статуса заказа.
Бизнес-правила могут накладывать дополнительные условия. Например, скидка по промокоду не превышает 50% от стоимости заказа, а доставка для VIP-клиентов всегда бесплатна. Такие правила влияют на формулировку бизнес-требований (увеличить средний чек за счёт скидок), уточняют пользовательские требования (учёт разных типов клиентов и скидок) и отражаются в функциональных требованиях (необходимость логики по валидации промокодов и определения статуса клиента).
Нефункциональные требования задают качество и ограничения. Например:
- Система должна обрабатывать до 100 заказов одновременно без существенной потери производительности.
- Ответ сервера на формирование или обновление заказа не должен превышать 2 секунд.
- Приложение должно соответствовать политике работы с персональными данными.
Эти требования напрямую влияют на то, как реализовать функциональные возможности (выбор технологий, архитектурный подход, методы шифрования).
Системные требования описывают окружение и оборудование:
- Приложение должно поддерживать работу в актуальных версиях браузеров (Chrome, Firefox, Safari).
- Необходимо учитывать минимальные требования к видеокарте, если появится функциональность визуализации процесса готовки пиццы в реальном времени.
В итоге веб-приложение для заказа пиццы будет соответствовать целям пиццерии, реальным потребностям пользователей и техническим условиям, создавая удобный сервис и принося бизнесу желаемую прибыль.

Вера Коновалова
Старший системный аналитик с более 8 лет опыта. За плечами более 15 проектов. Примеры: агрегатор покупки ОСАГО, судебная система, Т-Инвестиции, система для управления рисками в Райффайзен Банке, проекты для Сбера, личный кабинет Лаборатории Касперского. Основатель AnalystCore.
ПодписатьсяЧитайте авторские заметки в нашем сообществе
Telegram для начинающих
Перейти в → AnalystCore | Начало пути в IT | Системный аналитикПриходите за теорией простыми словами и мотивацией!