TGViewer
Системный сдвиг Системный сдвиг @systemswing · 10.2K subscribers
Post #364 3.69K
Потерянное звено в UML.

Две вещи в UML всегда вызывали у меня вопросы:

1. Разрыв между диаграммой вариантов использования и более детальным дизайном. Use Case Diagram показывает названия вариантов использования, а где же их сценарии? Диаграмма последовательности помогает не всегда — она сфокусирована на передаче сообщений, и не показывает внутреннюю работу. А также не всегда сценарий юскейса линейный.

2. Необычные значки на диаграмме последовательности. Вот эти кружочки: boundary, control, entity — что это такое? Они больше нигде в UML не используются.

Оказывается, ответ на это один — Robustness Diagram! (диаграмма устойчивости) Вот она, на картинке. Она раскрывает сценарий отдельного юскейса. Куда пользователь обращается (с каким экраном и элементом интерфейса он взаимодействует), как система это обрабатывает (осуществляет проверки, выполняет команду или целую транзакцию), какие данные при этом использует или создает.

При этом соблюдаются следующие правила:
* Actor может взаимодействовать только с boundary (интерфейсом)
* Boundary взаимодействует только с актором и контроллером, но не с данными напрямую
* Контроллеры связывают boundary с данными, и могут общаться друг с другом (тут можно показать микросервисы)
* Entity взаимодействует только с контроллером

Знакомая раскладка? Похоже на паттерн MVC. Но из без него можно использовать, просто для проверки, что у нас есть интерфейс под каждую задачу, есть бизнес-логика и у нас есть все данные, которые нужны для выполнения юскейса. Поэтому это и диаграмма устойчивости — позволяет проверить, что всё на месте и ничего не забыли.

На сайте Аджайл-моделирования диаграмму хвалят, и добавляют, что на неё стоит вынести также вещи, понятные бизнес-заказчикам:
* Отчеты (это тоже Boundary)
* По контроллеру на каждое бизнес-правило
* Каждая бизнес-сущность зафиксирована как entity
* Контроллер, который управляет всем юскейсом в целом

Диаграмма не вошла в стандарт UML, но набросать дизайн реализации юскейса в этой нотации довольно удобно.

(Картинки отсюда)
  • 👍 26
  • 🤔 6
  • ✍ 2
  • ❤ 2
More from @systemswing
  1. Sep 21, 2026Знаю, что в Яндексе работает много аналитиков данных, или BI-аналитиков — тех, кто перемал…
  2. Sep 18, 2026Дальше культурно-историческая теория деятельности (в изложении Энгестрема) говорит о проти…
  3. Sep 17, 2026Что-то перерывы между постами стали совсем длинными. Надеюсь в ближайшее время вернуться в…
  4. Aug 29, 2026Сел тут выписывать категории стейкхолдеров. В проекте положено делать анализ стейкхолдеров…
  5. Aug 18, 2026Глядя на разрастание объема требований в очередном проекте, вспомнил шутку про поправочный…
  6. Aug 15, 2026Я часто вижу среди рекомендаций по системному анализу книгу Донеллы Медоуз "Азбука системн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →