Вложение пакетов и классов в компоненты в Sparx Enterprise Architect (EA) - PullRequest
1 голос
/ 03 марта 2020

В модели программного обеспечения, которую я создал с помощью EA 13, мои узлы верхнего уровня содержат пакеты. Каждый пакет содержит компоненты, которые также могут содержать подкомпоненты. Существует несколько уровней суб-субкомпонентов. Наконец, детальный дизайн каждого компонента представлен диаграммами классов под каждым подподчиненным [...] - компонентом. Мои классы содержатся в программном компоненте, который они описывают.

Я бы хотел разделить свои классы на несколько пакетов, имитируя структуру пакета Java соответствующей реализации. Моя проблема в том, что компонент EA не может содержать пакет. Если я создам пакет на диаграмме классов, он появится на том же уровне, что и компонент самого высокого уровня в браузере проектов.

Мое ожидание: Root Node / Package / Component / Sub-component / Java package / Class

Что я получаю: Root Node / Package / Java package / Component / Sub-component / Class

Единственный найденный мной обходной путь - это создание компонента для эмуляции пакета Java, но я чувствую, что крутлю EA.

Есть ли способ достичь этого? Или я что-то упустил?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 03 марта 2020

Компонент UML не может содержать пакет UML, что не имеет смысла.

Может быть, вы путаете компонент UML и артефакт UML?

Артефакт UML не может содержать пакет UML, но развертывание пакета UML для Java - это каталог, поэтому ваше дерево Java пакета / вложенного пакета / файлов может поддерживаться артефактом с вложенным артефактом, если это то, что вы хотите смоделировать.

(§19.3.1 на стр. 656 и §19.5.1 на стр. 660 в норме )

2 голосов
/ 03 марта 2020

Вы ничего не упускаете. Только пакеты могут содержать пакеты. Я не проверял спецификации UML с тех пор, как привык к этому. Единственный способ имитировать структуру пакета - создавать стереотипные классы (используя собственный профиль). EA предлагает PackagingComponent, но это стереотипный пакет, который нельзя размещать внутри элементов.

Вы можете отправить запрос на добавление функции. Но, вероятно, более эффективно делать то, что вам действительно нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...