Как показать асинхронные операции на диаграмме активности UML

Я собираюсь нарисовать/задокументировать код установления соединения клиент-сервер, чтобы лучше его понять. Есть несколько операций, которые выполняются асинхронно в отдельных потоках (соединительные потоки, потоки получения данных и т. д.).

Должен ли я показать их на отдельных диаграммах? Я бы предпочел иметь его на одной диаграмме, чтобы понять общий вид, но не знаю, как представить его на диаграмме деятельности.


person Marcin Gil    schedule 06.01.2009    source источник


Ответы (2)


Я не уверен, что есть правильный способ сделать это, я разработал свой собственный метод, тестируя различные стратегии, пока не придумал что-то, что сработало для моего собственного мышления.

Вот как я это делаю:

  • Темы == дорожки для плавания
  • Операции с потоками == узлы действия/активности
  • Критические секции == узлы объекта
  • Создание потока == Форк-узлы

Пример изображения ниже.

http://www.freeimagehosting.net/uploads/55eaa90498.jpg

person sharkin    schedule 25.01.2009
comment
И именно так я это и сделал :) - person Marcin Gil; 30.01.2009
comment
Отличный чувак, я искал что-то подобное. - person scope_creep; 30.06.2010
comment
Я думаю, что любой, кто сидит с диаграммой деятельности в течение нескольких часов, возится с ней, в конечном итоге приходит к чему-то подобному. Однако, со своей стороны, я все еще ищу какой-то специальный формат диаграммы для параллелизма. Выполнение этого с помощью диаграмм деятельности работает достаточно хорошо на небольших компонентах, но более крупные системы выглядят как спагетти, нулевая читабельность даже для автора. - person sharkin; 17.02.2011
comment
@sharkin: вы можете посмотреть шлюзы, определенные bpmn.org . Я ищу то же самое, шлюзы BPMN выглядят как возможное решение для изображения этого. Вы можете прочитать больше на: tynerblain.com/blog /2006/07/18/ и специально для параллельных/асинхронных процессов: tynerblain.com/blog/2007/11/19/асинхронные процессы - person Cohen; 20.07.2012
comment
Не могли бы вы обновить пример изображения? Он показывает битое изображение. - person Rosdi Kasim; 26.03.2014
comment
@sharkin, у тебя еще есть копия этого изображения? Ссылка не работает. - person user994165; 19.10.2016
comment
@sharkin, как вы представляете данные, которые приходят, такие как сообщения, как mqtt или ble? Мне нужно представить модель, которая что-то делает, когда приходит сообщение ble. Но он может получить это, только если пользователь нажмет кнопку запуска - person Sam; 20.07.2021

Вместо использования полных стрелок вы можете использовать половинные стрелки, чтобы показать вызов асинхронного сообщения. Как показано

альтернативный текст

person Raminder    schedule 06.01.2009
comment
Это диаграмма последовательности, а не диаграмма деятельности. Я хотел бы иметь общие действия вместо конкретных вызовов функций, чтобы увидеть, что происходит. - person Marcin Gil; 06.01.2009