Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Статьи

Request response diagram: что такое и зачем это нужно

20 августа 2021·Обновлено 4 августа 2026·5 мин чтения
Логотип YuSMP Group
Автор материалаРедакция компании YuSMP GroupБлог YuSMP Group
Профиль редакции
Request response diagram: что такое и зачем это нужно

Мы продолжаем серию публикаций об артефактах, которые клиенты получают на самом первом этапе разработки — бизнес-анализа и дискавери фазы. Мы уже объяснили, что такое MindMap, Пользовательские истории, BPMN-диаграмма, Customer Journey Map и как мы используем эти инструменты в разработке.

Сегодня говорим о Request response diagram — этот артефакт необязательный, мы его используем, если в проекте предусмотрены интеграции (например, с Google-переводчиком, сервисом доставки и логистики, онлайн-оплатой и т. д.).

TL;DR — кратко о главном
  • Request response diagram (диаграмма последовательности) показывает, какие объекты обмениваются сообщениями и в каком порядке — это не алгоритм процесса, а поток запросов и ответов между ними.
  • Мы делаем её на дискавери-фазе, если в проекте есть интеграции: с оплатой, доставкой, переводчиком или внешним API.
  • Диаграмму рисуют в PlantUML, draw.io или Lucidchart, а клиенту она нужна для точной оценки сроков и стоимости интеграции.

Что такое и как выглядит Request response diagram

Request response diagram или диаграмма последовательности — разновидность диаграмм взаимодействия. Обычно она содержит объекты, которые взаимодействуют в рамках сценария, сообщения, которыми они обмениваются, и возвращаемые результаты, связанные с сообщениями.

Диаграммы последовательностей используются для более детального описания логики сценариев использования.

Request response diagram отражает:

  • обмен сообщениями между объектами (в том числе в рамках обмена сообщениями со сторонними Системами);
  • ограничения, накладываемые на взаимодействие объектов;
  • события, инициирующие взаимодействия объектов.

В отличие от BPMN-диаграммы, которая показывает алгоритм работы системы, Request response diagram обращают внимание разработчиков на сообщениях, которыми объекты обмениваются друг с другом.

Сейчас все станет понятно

Разберем на простом примере, как работает Request response diagram, чтобы наглядно представить, как работает этот артефакт.

Это диаграмма отображает обслуживание в ресторане:

Фред (клиент) заказывает еду Бобу (официанту), Боб передает заказ Хэнку (повару). Пока повар готовит еду, официант наливает вино клиенту. Хэнк отдает заказ Бобу, Боб сервирует блюда. Фред ест и потом рассчитывается за ужин через кассира Ренне.

Если развернуть этот пример в таблицу «шаг за шагом», станет видно, как читается диаграмма последовательности — сверху вниз, по времени:

ШагКто → комуСообщение (запрос)Ответ
1Фред → Бобзаказ едызаказ принят
2Боб → Хэнкпередаёт заказ на кухнюзаказ принят в работу
3Боб → Фредналивает вино (пока готовится блюдо)—
4Хэнк → Бобготовое блюдоблюдо передано
5Боб → Фредсервирует блюда—
6Фред → Реннеоплата ужиначек / подтверждение оплаты

Обратите внимание на шаг 3: официант наливает вино, не дожидаясь, пока повар закончит блюдо. Это асинхронное сообщение — оно не блокирует остальной сценарий. Именно такие детали (что можно делать параллельно, а что — только по очереди) и помогает увидеть диаграмма.

Пример sequence-диаграммы: клиент отправляет запрос официанту, официант — на кухню, кухня возвращает ответ

Это простая схема, в веб и мобильной разработке на таких диаграммах отображаются более сложные процессы и интеграции. Но такой инструмент дает понимание логики процесса, так как мы видим как должны работать объекты на протяжении всего временного цикла.

Request response diagram — довольно сложная нотация, которая имеет свой язык. Чтобы правильно прочитать ее, необходимо знать значение каждого символа. Останавливаться на расшифровке мы сейчас не будем, так как клиентам студии обычно не приходится разбираться с диаграммой, этот артефакт скорее оптимизирует работу в команде разработчиков.

Чтобы диаграмму было проще читать, вот значение основных элементов нотации:

ЭлементКак выглядитЧто обозначает
Объект (участник)прямоугольник вверхуСторона взаимодействия: приложение, backend, внешний сервис, база данных
Линия жизнивертикальная пунктирная линияВремя существования объекта в сценарии; читается сверху вниз
Синхронное сообщениесплошная стрелка с закрашенным наконечникомЗапрос, который ждёт ответа (например, вызов API)
Ответ (return)пунктирная стрелка обратноРезультат на запрос: данные или статус
Асинхронное сообщениестрелка с открытым наконечникомСообщение, которое не блокирует сценарий и не ждёт ответа
Фрагмент alt / loopрамка с условием в углуВетвление (alt) или повтор действий (loop)
Активацияузкий прямоугольник на линии жизниПериод, когда объект обрабатывает запрос

Чтобы прочитать готовую диаграмму, не обязательно знать всю нотацию наизусть — достаточно трёх шагов:

  1. Найдите линии жизни. Вертикальные пунктирные линии — это участники сценария (клиент, backend, внешний сервис). Слева направо они обычно идут в порядке первого появления в сценарии.
  2. Идите сверху вниз по стрелкам. Каждая сплошная стрелка — запрос, пунктирная в обратную сторону — ответ на него. Порядок стрелок сверху вниз соответствует порядку событий во времени.
  3. Проверьте рамки alt/loop. Если сообщения обведены рамкой с условием в углу — это ветвление (alt) или повтор (loop); без рамки сценарий линейный.

Как это выглядит в веб- и мобильной разработке

В реальных проектах объектами диаграммы обычно выступают клиент (мобильное или веб-приложение), собственный backend-API и внешние сервисы. Тогда «запрос» — это HTTP-вызов (чаще всего GET или POST), а «ответ» — HTTP-ответ с кодом статуса: 200 (успех), 404 (не найдено), 500 (ошибка сервера).

Именно поэтому диаграмму называют request–response: она наглядно показывает пары «запрос → ответ» между приложением и API, порядок вызовов, а также где обращения идут по очереди, а где — параллельно. Для интеграций с оплатой, доставкой или авторизацией это критично: ошибка в порядке запросов или неучтённый ответ об ошибке всплывёт уже в проде.

Услуги мобильной разработки
Узнайте цену

Как и для чего мы используем Request response diagram в разработке

Request response diagram чаще всего применяются на этапе дискавери фазы, когда у сервиса есть интеграция.

Есть интеграция — есть необходимость прописать логику с этой интеграцией.
Эта логика заключается не только в том, чтобы показать запросы и ответы самой системы, но и в экономии средств клиента, в случае если интеграция платная.

Бизнес или системные аналитики в компании с проджект-менеджером разрабатывают бизнес-модель, которая позволит сделать продуктивную и экономичную интеграцию.

На примере интеграции с google-переводчиком (на схеме ниже) видно, что эта диаграмма показывает, как сохранить все переведенные ранее тексты в систему, чтобы пользоваться ими в будущем. Тем самым не придется каждый раз обращаться к платному переводчику и тратить деньги клиента.

После дискавери фазы, имея на руках проработанную интеграцию, разработчик понимает, каким образом она должна работать. В этом случае он может дать оценку по времени и соответственно стоимости разработки.

Приступая к работе, разработчик тратит гораздо меньше времени, чтобы реализовать интеграцию. Клиент получает результат интеграции с системой
в более короткий срок.

Поэтому мы всегда рекомендуем делать диаграмму на этапе дискавери (но только тогда, когда это действительно нужно проекту). Однако решение всегда остается за заказчиком.

Какими инструментами рисуют Request response diagram

Чаще всего аналитики используют один из четырёх инструментов:

  • PlantUML — диаграмма описывается текстом (кодом), а рисуется автоматически; удобно хранить в git рядом с требованиями и обновлять через pull request.
  • draw.io (diagrams.net) — бесплатный визуальный редактор с готовыми шаблонами sequence-диаграмм, работает прямо в браузере.
  • Lucidchart — платный облачный редактор с совместной работой в реальном времени; удобен, если над диаграммой правит сразу несколько аналитиков.
  • Enterprise Architect — тяжёлый десктопный инструмент для крупных enterprise-проектов, где диаграмма последовательности — часть полной UML-модели системы.

Мы в YuSMP Group чаще всего используем draw.io и PlantUML — этого достаточно для большинства интеграционных сценариев, а результат легко приложить к техническому заданию.

Частые вопросы о Request response diagram

Что такое запрос и ответ на диаграмме?
Запрос (request) — сообщение-вызов от одного объекта к другому, например обращение приложения к backend-API. Ответ (response) — возвращаемый результат. В веб- и мобильной разработке запрос обычно соответствует HTTP-вызову (GET, POST), а ответ — HTTP-ответу со статусом (200, 404, 500).

Чем Request response diagram отличается от BPMN?
BPMN показывает алгоритм и шаги бизнес-процесса, а диаграмма последовательности — сообщения, которыми объекты обмениваются во времени, и их порядок. BPMN отвечает «что происходит», request response diagram — «кто кому и в каком порядке шлёт запросы и ответы».

Обязательно ли делать этот артефакт?
Нет. Мы делаем диаграмму, когда в проекте есть интеграции — с оплатой, доставкой, переводчиком, внешним API. Если интеграций нет, она обычно не нужна.

На каком этапе создаётся диаграмма?
Чаще всего на дискавери-фазе, до старта разработки. Её готовят бизнес- или системные аналитики вместе с проджект-менеджером, чтобы заранее описать логику интеграций.

Чем она полезна заказчику?
Проработанная диаграмма даёт точную оценку сроков и стоимости, ускоряет реализацию и помогает экономить — например, кэшировать ответы платного сервиса, чтобы не обращаться к нему повторно.

В каких инструментах рисуют Request response diagram?
Чаще всего это PlantUML (диаграмма описывается текстом и рисуется автоматически, удобно хранить в git), draw.io — бесплатный визуальный редактор в браузере, Lucidchart — облачный редактор для совместной работы, и Enterprise Architect — десктопный инструмент для больших UML-моделей. Мы в YuSMP Group чаще всего используем draw.io и PlantUML.

Обсудим ваш проект?

Соберём команду под вашу задачу и оценим проект за 2 дня — бесплатно.

Обсудить проект