de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Диаграмма композитной структуры UML: моделирование внутренней архитектуры и взаимодействия

Диаграмма композитной структуры UML — это мощная структурная диаграмма, используемая для изучениявнутренней архитектуры структурированного классификатора, такого как класс, компонент или система. Она фокусируется на том, как сущность состоит из взаимосвязанныхчастей и как она взаимодействует с внешним миром через своипорты.

UML Composite Structure Diagram for a Payment Processing Component

Эта диаграмма необходима для определения черного ящика и белого ящика компонента системы, обеспечения четких границ и возможности повторного использования компонентов.

Основная структура и контекст

Диаграмма рисуется в контекстеклассификатора (рамки границы), который определяет общую систему или компонент, анализируемый в данном случае.

А. Роль классификатора (граница)

  • Обозначение: Большой прямоугольный ящик.
  • Назначение: Представляет общий класс, компонент или систему, внутренняя структура которой определяется. Все остальные элементы диаграммы находятся внутри этой границы.

Основные элементы внутреннего вида

Внутренняя структура определяется тремя ключевыми элементами: частями, портами и соединителями.

Б. Части

Часть представляет роль, которую играет экземпляр классификатора (например, класса или компонента) в общей композитной структуре. По сути, часть — это внутренний строительный блок.

  • Обозначение: Прямоугольный ящик внутри границы, помеченный своим именем и типом.
  • Синтаксис: имяЧасти: ТипЧасти (например,dataCache: CachingModule).
  • Ключевое различие: Часть — это не сам объект, а роль которую этот объект играет в контексте содержащего классификатора. Часть может сама быть составной структурой, что позволяет глубокую вложенность.

C. Порты

Порт — это отдельная точка взаимодействия между составной структурой (границей) и её окружением, либо между её внутренними частями. Порты формализуют интерфейсы, которые компонент использует или предоставляет.

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

D. Соединители

Соединитель моделирует коммуникационную связь или поток информации/сигналов между двумя элементами (двумя портами, двумя частями или портом и частью).

  • Обозначение: Линия, соединяющая два связанных элемента.
  • Назначение: Представляет реализацию коммуникационной связи, показывая, как данные или сообщения передаются внутри.

Моделирование интерфейсов: предоставляемые и требуемые

Интерфейсы определяют контрактные обязательства портов и имеют решающее значение для архитектурной ясности.

A. Предоставляемый интерфейс (обозначение «леденец»)

  • Обозначение: Круг (или «леденец»), соединённый с портом.
  • Назначение: Показывает услуги или операции, которые классификатор (или часть) предоставляет своей среде или внутренним компонентам.

B. Требуемый интерфейс (обозначение «розетка»)

  • Обозначение: Полукруг (или «розетка»), соединённый с портом.
  • Цель: Показывает службы или операции, которые классификатор (или часть) нуждается в окружающей среде или других внутренних компонентах для правильной работы.

Соединитель сборки: Линия соединителя часто соединяет Требуемый интерфейс (розетка) одной части с Предоставляемый интерфейс (леденец) другой части, иллюстрируя, как внутренние компоненты соединяются для выполнения функции системы.

Моделирование взаимодействия: роли и взаимодействия

Диаграммы составной структуры также могут моделировать динамическиевзаимодействия—конкретные наборы ролей и соединений, которые работают вместе для выполнения задачи.

А. Использование взаимодействия

  • Нотация:Пунктирный эллипс, содержащий имена взаимодействующих ролей.
  • Цель: Представляет экземпляр шаблона взаимодействия (например, конкретную реализацию шаблона наблюдателя), используемого внутри более крупного компонента.

Пошаговый пример моделирования: умный контроллер домашней автоматизации

Давайте смоделируем внутреннюю структуру компонента HomeAutomationSystem компонента.

  1. Граница классификатора: Определите внешний прямоугольник как HomeAutomationSystem.
  2. Внешние порты: Добавьте порт с меткой apiPort к границе. Присоедините Предоставляемый интерфейс (Лолипоп) для ICommandReceiver (то, что может отправить внешний мир) и Необходимый интерфейс (Гнездо) для IExternalWeatherService (то, что нужно системе).
  3. Внутренние части:
    • расписание: TaskScheduler (Обрабатывает события по времени).
    • deviceManager: DeviceCoordinator (Общается с аппаратными средствами).
  4. Внутренние соединения:
    • Подключите выходную часть apiPort к deviceManager части с помощью соединителя.
    • Подключите выходную часть scheduler к входному порту deviceManager части, показывая, что расписание сообщает устройству-менеджеру, когда действовать.
  5. Вложенная структура (по желанию): Покажите, что deviceManager сам содержит части, такие как zigbeeAdapter и wifiAdapter.

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

Обзор

Этот диаграмма композитной структуры UML выходит за рамки черного ящика класса или компонента, чтобы раскрыть его архитектуру белого ящика. Используя части для определения ролей, порты для определения точек взаимодействия, и соединения для определения внутренней коммуникации, что позволяет архитекторам и разработчикам точно понимать и проектировать сложные, повторно используемые и четко инкапсулированные компоненты.

Вы можете найти дополнительную информацию о UML и визуализации ИИ в нашем центре ресурсов UML.

Эта статья также доступна на Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Việt Nam, 简体中文 and 繁體中文