Различия в диаграммах компонентов uml между сборкой и интерфейсами с зависимостями
Может кто-нибудь объяснить, в чем разница между элементами, отмеченными на диаграмме? Я думаю, что это зависит только от того, сколько интерфейсов мы хотим подключить. Я прав?
1 ответ
Вы не правы, и диаграмма синтаксически неверна.
Позвольте мне сначала объяснить понятия и их значение:
Зависимость между компонентами существует на уровне определения (верхняя часть диаграммы). Они могут быть нарисованы между требуемым и предоставленным интерфейсом, между компонентом и интерфейсом или даже между двумя компонентами (без интерфейсов), в зависимости от того, что мы хотим показать.
Сборка это совершенно разные отношения и она не имеет смысла на уровне определения (между компонентами). Это потому, что это особый вид связи - отношения, установленные во время выполнения между двумя экземплярами классификатора (здесь - компонент, нижняя диаграмма).
Итак, в заключение можно сказать, что зависимость между двумя компонентами на уровне классификатора выражает потенциальную связь или сборку между соответствующими экземплярами во время выполнения.
В вашем примере есть несколько синтаксических ошибок (если бы вы могли скомпилировать его, он дал бы вам этот отчет:)):
- Сборки "Код товара" и "Данные клиента" не могут соединять два компонента (только их экземпляры)
- Зависимость между Порядком и Учетной записью в неверном направлении (должна перейти от обязательного к предоставленному интерфейсу с тем же именем)
Примечание: я должен сказать, что эта диаграмма выглядит крайне подозрительно даже семантически. Вы, вероятно, должны пересмотреть это.