UMLДиаграммы компонентов используются для моделирования физических аспектов объектно-ориентированной системы. Они используются для визуализации, спецификации и документирования систем, основанных на компонентах, а также для создания исполняемых систем с помощью прямого и обратного проектирования. Диаграмма компонентов по сути представляет собой специализированную диаграмму классов, которая фокусируется на компонентах системы и используется для моделирования статического представления реализации системы.

Обзор диаграмм компонентов
Диаграмма компонентов разбивает фактически разрабатываемую систему на различные высокие функциональные возможности. Каждый компонент отвечает за четко определенную цель в системе и взаимодействует только с другими основными элементами по мере необходимости.

В приведённом выше примере показаны внутренние компоненты более крупного компонента:
- Данные (идентификаторы счетов и чеков) поступают в компонент через порты справа и преобразуются в формат, пригодный для использования внутренними компонентами. Интерфейс справа называетсяпредоставляемого интерфейса, представляющий службы, которые компоненту необходимы для выполнения своих обязанностей.
- Затем данные передаются через различные соединения к и через другие компоненты и выводятся через порты слева. Интерфейсы слева называютсятребуемые интерфейсы, представляющие службы, которые предоставляет компонент.
- Важно отметить, что внутренние компоненты находятся внутри более крупного «ящика» — это может быть сама система целиком (в этом случае на верхнем правом углу не появляется символ компонента) или подсистема/компонент системы (в этом случае «ящик» представляет сам компонент).
Основные понятия диаграмм компонентов
Компонент представляет собой модульную часть системы, инкапсулирующую свои содержимое и поведение, которое может быть заменено в своей среде. В UML 2 компонент изображается в виде прямоугольника с необязательным разделом, расположенным вертикально. Высокоуровневое абстрактное представление компонента в UML 2 может быть смоделировано следующим образом:
- Прямоугольник с именем компонента
- Прямоугольник с иконкой компонента
- Прямоугольник с текстом стереотипа и/или иконкой

Интерфейсы
В приведённом ниже примере показаны два типа интерфейсов компонентов:
Символпредоставляемого интерфейсасимвол с полным кругом на конце указывает на интерфейс, который предоставляет компонент — символ «леденца» является сокращённой нотацией для отношения реализации классификатора интерфейса.
Символтребуемого интерфейсасимвол с полукругом (также известным как розетка) на конце указывает на интерфейс, который требует компонент (в обоих случаях имя интерфейса размещается рядом с самим символом).

Пример диаграммы компонентов — использование интерфейсов (система заказов)

Подсистемы
Классификатор подсистемы — это специализированная версия классификатора компонента. Следовательно, элемент нотации подсистемы наследует все те же правила, что и элемент нотации компонента. Единственное отличие заключается в том, что элемент символа подсистемы использует ключевое слово «подсистема» вместо «компонент».

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

Связи
Графически диаграмма компонентов представляет собой набор вершин и дуг, обычно содержащих компоненты, интерфейсы и связи, такие как зависимость, агрегация, ограничение, обобщение, ассоциация и реализация. Она также может включать примечания и ограничения.
| Связь | Символ |
|---|---|
Ассоциация:
|
|
Композиция:
|
|
Агрегация:
|
|
Ограничение:
|
|
Зависимость:
|
|
Обобщение:
|
Моделирование исходного кода
- Определите набор интересующих файлов исходного кода с помощью прямого или обратного инжиниринга и моделируйте их как компоненты, построенные как файлы.
- Для крупных систем используйте пакеты для отображения групп файлов исходного кода.
- Рассмотрите возможность включения тегированного значения для представления информации, такой как номер версии, автор и дата последнего изменения файла исходного кода. Используйте инструменты для управления значениями этих тегированных значений.
- Используйте зависимости для моделирования зависимостей компиляции между этими файлами. Аналогично, используйте инструменты для помощи в генерации и управлении этими зависимостями.
Пример компонента – исходный код на Java

Пример диаграммы компонентов – код на C++ с версионированием

Моделирование исполняемых релизов
- Определите набор компонентов, которые вы хотите смоделировать. Обычно это касается некоторых или всех компонентов на узле, или распределение этих компонентов по всем узлам в системе.
- Рассмотрите стереотип для каждого компонента в этом наборе. Для большинства систем вы обнаружите небольшое количество различных типов компонентов (например, исполняемые файлы, библиотеки, таблицы, файлы и документы). Вы можете использовать механизм расширяемости UML для предоставления визуальных подсказок (намеков) для этих стереотипов.
- Для каждого компонента в этом наборе рассмотрите его отношения с соседними компонентами. Чаще всего это касается интерфейсов, экспортируемых некоторыми компонентами (реализуемых), а затем импортируемых другими (используемых). Если вы хотите выявить стыки в системе, явно моделируйте эти интерфейсы. Если вы хотите более высокий уровень абстракции, устраните эти отношения, показывая только зависимости между компонентами.

Физическое моделирование базы данных
- Определите классы в модели, которые представляют логические схемы базы данных.
- Выберите стратегию сопоставления этих классов с таблицами. Вы также должны учитывать физическое распределение базы данных. Ваша стратегия сопоставления будет зависеть от того, где вы хотите, чтобы данные сохранялись в развернутой системе.
- Для визуализации, определения, построения и документирования сопоставления создайте диаграмму компонентов, содержащую компоненты, построенные как таблицы.
- Где возможно, используйте инструменты для помощи в преобразовании логического дизайна в физический.
Попробуйте нарисовать диаграмму компонентов UML прямо сейчас
Теперь вы узнали, что такое диаграмма компонентов и как ее рисовать. Пришло время создать свою собственную. Получите Сообщество Visual Paradigm, бесплатный инструмент UML, и используйте бесплатный Диаграмма компонентовинструмент для создания своей собственной. Он прост в использовании и интуитивно понятен.
Связанные ссылки
- Что такое унифицированный язык моделирования?
- Профессиональные инструменты UML
- Visual Paradigm. (б.г.). Как нарисовать диаграмму компонентов? Visual Paradigm. https://www.visual-paradigm.com/support/documents/vpuserguide/94/2581/7292_drawingcompo.html 42.
- Visual Paradigm. (2018, 11 мая). Что такое диаграмма компонентов? Visual Paradigm. https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/ 43.
- Visual Paradigm. (б.г.). Как нарисовать диаграмму компонентов в UML? Visual Paradigm. https://www.visual-paradigm.com/tutorials/how-to-draw-component-diagram-in-uml/ 44.
- Visual Paradigm. (б.г.). Диаграмма компонентов – Диаграмма UML 2 – Инструмент моделирования UML. Visual Paradigm. https://www.visual-paradigm.com/VPGallery/diagrams/Component.html 45.
- Visual Paradigm. (б.г.). Диаграмма компонентов в Visual Paradigm. Visual Paradigm. https://www.visual-paradigm.com/support/documents/vpuserguide/94/2581_componentdia.html 46.
- Community Circle Visual Paradigm. (2018, 11 мая). 7. Диаграмма компонентов. Visual Paradigm. https://circle.visual-paradigm.com/docs/uml-and-sysml/component-diagram/ 47.
- Visual Paradigm Online. (б.г.). Бесплатный инструмент для диаграмм компонентов. Visual Paradigm. https://online.visual-paradigm.com/diagrams/solutions/free-component-diagram-tool/ 48.
- Visual Paradigm Online. (б.г.). Учебник по диаграмме компонентов. Visual Paradigm. https://online.visual-paradigm.com/tutorials/component-diagram-tutorial/ 49.
- Visual Paradigm. (2022, 2 сентября). Учебник по диаграмме классов UML. Visual Paradigm. https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/ 50.
- Visual Paradigm Online. (б.г.). Онлайн-инструменты для диаграмм UML. Visual Paradigm. https://online.visual-paradigm.com/diagrams/features/uml-tool/ 51.





