Содержимое
Потерянное звено в UML. Две вещи в UML всегда вызывали у меня вопросы: 1. Разрыв между диаграммой вариантов использования и более детальным дизайном. Use Case Diagram показывает названия вариантов использования, а где же их сценарии? Диаграмма последовательности помогает не всегда — она сфокусирована на передаче сообщений, и не показывает внутреннюю работу. А также не всегда сценарий юскейса линейный. 2. Необычные значки на диаграмме последовательности. Вот эти кружочки: boundary, control, entity — что это такое? Они больше нигде в UML не используются. Оказывается, ответ на это один — Robustness Diagram! (диаграмма устойчивости) Вот она, на картинке. Она раскрывает сценарий отдельного юскейса. Куда пользователь обращается (с каким экраном и элементом интерфейса он взаимодействует), как система это обрабатывает (осуществляет проверки, выполняет команду или целую транзакцию), какие данные при этом использует или создает. При этом соблюдаются следующие правила: * Actor может взаимодействовать только с boundary (интерфейсом) * Boundary взаимодействует только с актором и контроллером, но не с данными напрямую * Контроллеры связывают boundary с данными, и могут общаться друг с другом (тут можно показать микросервисы) * Entity взаимодействует только с контроллером Знакомая раскладка? Похоже на паттерн MVC. Но из без него можно использовать, просто для проверки, что у нас есть интерфейс под каждую задачу, есть бизнес-логика и у нас есть все данные, которые нужны для выполнения юскейса. Поэтому это и диаграмма устойчивости — позволяет проверить, что всё на месте и ничего не забыли. На сайте Аджайл-моделирования диаграмму хвалят, и добавляют, что на неё стоит вынести также вещи, понятные бизнес-заказчикам: * Отчеты (это тоже Boundary) * По контроллеру на каждое бизнес-правило * Каждая бизнес-сущность зафиксирована как entity * Контроллер, который управляет всем юскейсом в целом Диаграмма не вошла в стандарт UML, но набросать дизайн реализации юскейса в этой нотации довольно удобно. (Картинки отсюда)