Расслоение производных объектов в папирусе с помощью OCL

Отсутствие обмена информацией об этом, будучи новичком в UML/OCL/Papyrus, дает мне ощущение, что я могу ошибиться:

Работая над диаграммой классов, я хотел бы создать слой а) всех объектов, которые являются членами композиции, и б) всех интерфейсов, которые наследуются от другого интерфейса. То есть, я бы сказал, наслоение по прямой и косвенной ассоциации.

В папирусе я мог бы сделать это, просто добавив элементы в слой. Более удобным было бы использование слоев Reg Exp, которые выбирают все элементы, возвращающие TRUE в логическом выражении OCL. Например, легко поместить один элемент на его собственный слой через self.element.oclAsType(uml::NamedElement).name='myclass'

Но я также хотел бы поместить все (нисходящие) связанные элементы "myclass" на этот слой. Какие-либо предложения?

1 ответ

Решение

Ответ от: https://www.eclipse.org/forums/index.php/mv/msg/1087968/1769850/

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

Я считаю, что как только диаграммы становятся нетривиальными, полезно нарисовать одну диаграмму, показывающую архитектуру наследования, другую - архитектуру сдерживания и, возможно, дальнейшие диаграммы для построения / разрушения, архитектуры связи. Вынужденное совместное использование со слоями, кажется, создает нежелательное ограничение. Помните, что UML Diagram - это представление базовой модели. У вас может быть много диаграмм для разных видов.

Другие вопросы по тегам