Что такое диаграмма компонентов?

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

Component Diagram Hierarchy

Обзор диаграмм компонентов

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

Основные понятия диаграмм компонентов

Компонент представляет собой модульную часть системы, инкапсулирующую свои содержимое и поведение, которое может быть заменено в своей среде. В UML 2 компонент изображается в виде прямоугольника с необязательным разделом, расположенным вертикально. Высокоуровневое абстрактное представление компонента в UML 2 может быть смоделировано следующим образом:
  1. Прямоугольник с именем компонента
  2. Прямоугольник с иконкой компонента
  3. Прямоугольник с текстом стереотипа и/или иконкой
Appearance of a Component

Интерфейсы

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

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

Component Diagram Example with Interfaces

Подсистемы

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

Порты

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

Связи

Графически диаграмма компонентов представляет собой набор вершин и дуг, обычно содержащих компоненты, интерфейсы и связи, такие как зависимость, агрегация, ограничение, обобщение, ассоциация и реализация. Она также может включать примечания и ограничения.
Связь Символ
Ассоциация:

  • Ассоциация определяет семантическую связь, которая может существовать между экземплярами с типами.
  • У нее есть как минимум два конца, каждый из которых представлен атрибутом, и каждый конец соединен с типом другого конца. Множественные концы могут иметь один и тот же тип.

Component Diagram: Association




Композиция:

  • Композиция — это сильная форма агрегации, требующая, чтобы экземпляр находился не более чем в одном составном элементе.
  • Если составной элемент удаляется, его части обычно также удаляются.

Component Diagram: Composition




Агрегация:

  • Форма ассоциации, в которой один из концов отмечен как общая агрегация, то есть он имеет общую агрегацию.

Component Diagram: Aggregation




Ограничение:

  • Условие или ограничение, выраженное на естественном языке или машинно-читаемом языке, для объявления определенных семантик элемента.

Component Diagram: Constraint




Зависимость:

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

Component Diagram: Dependency




Обобщение:

  • Отношение классификации между более общим классификатором и более специфическим классификатором.
  • Каждый экземпляр специфического классификатора также является косвенным экземпляром общего классификатора.
  • Следовательно, специфический классификатор наследует особенности от более общего классификатора.

Component Diagram: Generalization




Моделирование исходного кода

  • Определите набор интересующих файлов исходного кода с помощью прямого или обратного инжиниринга и моделируйте их как компоненты, построенные как файлы.
  • Для крупных систем используйте пакеты для отображения групп файлов исходного кода.
  • Рассмотрите возможность включения тегированного значения для представления информации, такой как номер версии, автор и дата последнего изменения файла исходного кода. Используйте инструменты для управления значениями этих тегированных значений.
  • Используйте зависимости для моделирования зависимостей компиляции между этими файлами. Аналогично, используйте инструменты для помощи в генерации и управлении этими зависимостями.
Пример компонента – исходный код на Java
Component Diagram Example: Java Source Code
Пример диаграммы компонентов – код на C++ с версионированием
Component Diagram Example: C++ Code with Versioning

Моделирование исполняемых релизов

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

Физическое моделирование базы данных

  • Определите классы в модели, которые представляют логические схемы базы данных.
  • Выберите стратегию сопоставления этих классов с таблицами. Вы также должны учитывать физическое распределение базы данных. Ваша стратегия сопоставления будет зависеть от того, где вы хотите, чтобы данные сохранялись в развернутой системе.
  • Для визуализации, определения, построения и документирования сопоставления создайте диаграмму компонентов, содержащую компоненты, построенные как таблицы.
  • Где возможно, используйте инструменты для помощи в преобразовании логического дизайна в физический.
Component Diagram for Modeling Physical Database


Попробуйте нарисовать диаграмму компонентов UML прямо сейчас

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

Leave a Reply