UML - возможно ли добавить ActivityPartitions в StructuredActivityNodes? - PullRequest
0 голосов
/ 04 февраля 2019

В спецификации UML на стр. 476 есть следующая диаграмма:

enter image description here

Если я не ошибаюсь, это не должно быть возможнымдобавьте ActivityPartion s (которые являются специализацией ActivityGroup s - точно так же, как StructuredActivityNode s) к StructuredActivityNode, верно?Согласно диаграмме единственное отношение между StructuredActivityNode s и ActivityGroup является отношением обобщения / специализации.Должны быть и композиционные отношения, если Partition s в StructuredActivityNode s будут возможны.

Я ошибаюсь?Я спрашиваю, потому что это возможно в некоторых инструментах (например, VisualParadigm), но невозможно в других инструментах.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Красная Борода правильно, заявив, что StructuredActivityNodes может содержать ActivityNodes и что ActivityPartitions являются не ActivityNodes.Вот диаграмма, которая показывает последнюю точку: UML Metamodel ActivityGroups

Из этого следует, что StructuredActivityNodes не может содержать ActivityPartitions.

Однако ничегов спецификации не позволяет нам ссылаться на узлы ActivityNode в StructuredActivityNode из другого раздела, отличного от самого StructuredActivityNode.

Это может привести к невозможности графического отображения раздела.Спецификация определяет текстовую нотацию для этого: просто поместите имя раздела в круглые скобки над именем узла.К сожалению, эта нотация не поддерживается многими инструментами.

Чтобы сделать возможным ее графическое отображение, на StructuredActivityNode нужно ссылаться более чем на один раздел.Это разрешено согласно схеме выше.Конечно, тогда возникает вопрос, какой будет семантика.

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

Поэтому это совершенно правильная диаграмма, которая достигает цели:

StructuredActivityNode in two partitions

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

0 голосов
/ 04 февраля 2019

Как указано на диаграмме, StructuredActivityNode может иметь только ActivityNode, ActivityEdge, Variable, InputPin и OutputPin.Если вы посмотрите на рис. 15.65, стр. 406 спецификации UML 2.5.1, вы увидите, что ActivityPartition не наследует ни одно из этих понятий (ActivityPartition наследует от ActivityGroup, которая наследует от NamedElement).

Поэтому StructuredActivityNode долженне может быть владельцем ActivityPartition (s).

...