Значение части и порта? - PullRequest
       36

Значение части и порта?

0 голосов
/ 03 декабря 2018

У меня есть .lib-файл, содержащий внутренние классы C ++, и несколько классов C ++ являются интерфейсами к функциям, которые предоставляет библиотека программного обеспечения.

Как мне это проиллюстрировать с помощью UML?

Использование EnterpriseАрхитектор, я попытался ввести тип «Компонент» (вставленный в диаграмму компонентов в виде простой ссылки), а затем перетащил внутренние классы этой библиотеки из дерева модели в прямоугольник этого компонента в виде составной части типа элемента и классы интерфейса этой библиотеки.Спорт.Теперь странно то, что произошло, что дерево модели содержит экземпляры объектов этого класса, называемые Part1 и Port1 типа UML 'class', что является бессмыслицей, поскольку библиотека программного обеспечения не создается, она просто предоставляет свои классы через файл .lib., как бассейн.Я думаю, что тип элемента UML «компонент» не является правильным, не так ли?То же самое происходит, если я использую «Package», здесь части и порты становятся такими же, как экземпляры объектов, хотя классы в библиотеке - нет.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

После моего комментария к O / P я бы сделал что-то вроде ниже.Обратите внимание, что, вероятно, я не буду изображать все это на одной диаграмме, например, содержимое класса пакета, которое я мог бы представить на отдельной диаграмме, чтобы это не было слишком загромождено.Но логика та же самая.

enter image description here

Обновление : После комментария ниже я добавил эту диаграмму, которая иллюстрирует альтернативуспособ представить это.Я думаю, что в некоторых случаях я видел делегирование, представленное как зависимость, а не как ссылочная ассоциация.Но эй хоВнутренне компоненты представлены как взаимодействующие между собой через требуемые / предоставляемые интерфейсы (хотя это не показано, поскольку в приведенной ниже модели показан только один внутренний компонент).

enter image description here

0 голосов
/ 04 декабря 2018

Это не странно.Вы случайно отбросили класс как Part (в терминах EA).

enter image description here

На самом деле это свойство.Просто откройте его свойства:

enter image description here

См. UML 2.5 на стр.147:

9.9.17 Свойство [Класс]

9.9.17.1 Описание

Объект являетсяStructuralFeature.Свойство, связанное с атрибутом ownAttribute для классификатора (кроме ассоциации), представляет атрибут и может также представлять конец ассоциации....

Я бы, вероятно, просто отбросил их как ссылку, чтобы они отображались как класс внутри расширенного компонента, YMMV

Класс, отброшенный как порт, будет отображать то, что говорит имя.Так что здесь нет путаницы.В любом случае, я бы также постоянно указывал ссылку, чтобы показать только содержимое.Кроме того, я бы, вероятно, стереотипировал сам компонент с <<lib>> или подобным.Это потому, что вы фактически используете библиотеку во время компиляции для извлечения необходимых частей, и она не работает как компонент сама по себе.Библиотека, однако, имеет интерфейс, а именно, для извлечения скомпилированных модулей классов, которые она имеет внутри.

А-а, и, как сказал @muszeo: используйте ctrl-drag, чтобы показать вышеуказанное диалоговое окно.

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