Этот вопрос очень похож на этот , но ответ не соответствует моим потребностям. Он ориентирован на конкретный инструмент UML (папирус), в то время как мой вопрос более общий о UML.
Я хотел бы представить вложенное действие в диаграмме деятельности , но я не знаю, как это обычно делается. Идея состоит в том, что существует действие той же области действия, что и другие действия, но более сложное в его выполнении. Я хотел бы показать больше деталей о его выполнении, но при этом показать это действие на том же уровне, что и другие.
На приведенном ниже примере, который представляет собой диаграмму действий, показывающую какое-то действие « обратно домой », вложенные действия находятся в Pet the cat
действии. Обратите внимание, что на этой диаграмме есть еще одна потенциальная ошибка, см. Ошибки в конце вопроса.
Я использовал структурированный узел, но я не уверен, что это правильный путь, поэтому вопрос. В диаграмме состояний эквивалентом будет составное состояние, но я просто не могу найти ничего о составном действии. Что касается структурированного узла, после прочтения нескольких документов о нем я все еще не понимаю, как он должен использоваться, поэтому я могу быть совершенно не прав с этой диаграммой.
Я также знаю, что есть возможность ссылаться на другое подзадачу с символом трезубца, как на рисунке ниже, но это не соответствует моим потребностям, поскольку мне нужна вся информация на той же диаграмме (чтобы я мог напечатать это без потери информации)
Итак, каков стандартный способ представления такого вложенного действия? Под стандартом я подразумеваю действительный UML, который обычно можно увидеть и, если возможно, выполним в большинстве инструментов дизайна UML.
Несвязанные опечатки: в моих диаграммах есть еще одна ошибка: стрелки, которые приходят к тому же действию ( Scratch behind the ears
), должны перейти на узел слияния, прежде чем войти в действие. Смотрите комментарии ниже, включая эту цитату из JOT .
Ответы:
Оба являются «стандартными». Первое изображение согласно спецификации UML
2-й рисунок
Основное различие между обоими случаями заключается в повторном использовании. В то время как во-первых, у вас есть некоторая сложность в одном (вашем
Pet the cat
) месте, во-вторых, когда вы (повторно) используете определенное действие в нескольких местах. Тем не менее, я склонен использовать вариант вызова, даже если это только для одного использования. Здесь я добавляю составную диаграмму (которая в EA открывается при нажатии dbl), чтобы показать детали соответствующего действия. Основной поток просто показывает обзор, и если нужны подробности, они просто щелкают мышью.Теперь создание составной диаграммы в EA (опять же) изменилось. Вам нужно создать AD на уровне пакета, а затем перетащить его в элемент вызова. Теперь, когда вы щелкнете по этой кнопке, откроется встроенная диаграмма.
источник