
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов
- •Диаграмма компонентов

Диаграмма компонентов
UML-диаграммы

Диаграмма компонентов
Диаграмма компонентов (Component Diagram) – это диаграмма физического уровня, которая служит для представления программных компонентов и зависимостей между ними.
Диаграмма компонентов разрабатывается для следующих целей:
–Визуализация общей структуры ПО.
–Спецификация исполняемого кода (единиц развертывания) ПО.
–Обеспечение многократного использования отдельных фрагментов кода ПО.
–Представление концептуальной и физической схем баз данных.
Имя компонента записывается аналогично имени линии жизни на диаграмме последовательности в следующем формате (БНФ):
<имя-компонента>::=[<собственное-имя-компонента>] [‘:’<имя-типа>],
при этом собственное имя компонента записывается со строчной буквы и в имени компонента должен присутствовать хотя бы один терм.
Пример изображения простого компонента и компонента с интерфейсами:
|
IDialog |
ISensor |
|
«component» |
|
||
|
«component» |
||
Заказ |
IApplication |
||
Контроллер |
|||
|
2

Диаграмма компонентов
Примеры изображения компонента в нотации черного и белого ящика:
|
|
|
|
«component» |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
Заказ |
|||
«component» |
|
|
|
||||
|
|
|
|
|
|
||
«provided interfaces» |
|||||||
Заказ |
|
||||||
|
|
|
|
МестонахождениеТовара |
|||
|
|
|
|
||||
«provided interfaces» |
|
СопровождениеТовара |
|||||
|
«required interfaces» |
||||||
МестонахождениеТовара |
|
||||||
|
ЗаказываемыйТовар |
||||||
СопровождениеТовара |
|
||||||
|
ПолучательТовара |
||||||
«required interfaces» |
|
||||||
|
|
|
|
||||
ЗаказываемыйТовар |
|
«realizations» |
|||||
ПолучательТовара |
|
||||||
|
ЗаголовокЗаказа |
||||||
|
|
|
|
||||
|
|
|
|
СтрокаТовара |
|||
|
|
|
|
||||
|
|
|
|
|
|||
|
|
|
|
«artifacts» |
|||
|
|
|
|
Заказ.jar |
|||
|
|
|
|
|
|
|
Предоставляемый интерфейс (provided interface) – интерфейс, который компонент предлагает для своего окружения (компонентной среды).
Требуемый интерфейс (required interface) – интерфейс, который необходим компоненту от своего окружения (компонентной среды) для выполнения заявленной функциональности (контракта, поведения).
3

Диаграмма компонентов
Пример представления компонентов и интерфейсов:
|
Заказываемый |
|
|
|
|
Товар |
«component» |
||
|
|
|||
«component» |
Заказываемый |
Заказ |
||
ЗаголовокЗаказа |
||||
Товар |
Товар |
|||
заказ |
1 |
|||
|
|
|||
|
Сопровождение |
элемент |
* |
|
|
Товара |
|||
|
СтрокаТовара |
|||
Счет-фактура |
|
|||
|
|
|
ПолучательТовара
Местонахождение
Товара
Представление интерфейсов в форме классификаторов с отношениями зависимости и реализации:
«interface» |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Заказываемый |
|
|
|
|
|
|
|
«interface» |
Товар |
«use» |
«component» |
|
|
|
|
|
МестонахождениеТовара |
|
|
|
|
|
||||
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
задать() |
||||||
найтиПоИмени() |
|
Заказ |
|
|||||
|
|
|
|
|
|
|
изменить() |
|
задатьКоличество() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
получитьДетали() |
|
получитьДетали() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4

Диаграмма компонентов
Порт определяет различимую точку взаимодействия между компонентом и окружающей средой или между компонентом и его внутренними частями.
Наличие имени у порта не является обязательным. При отсутствии имени порта его тип ассоциируется с типом интерфейса, с которым связан порт.
Заказываемый |
|
|
ПолучательТовара |
|
Товар |
«component» |
|||
|
|
Заказ |
|
|
|
ЗаголовокЗаказа |
|
||
Сопровождение |
заказ |
1 |
Местонахождение |
|
|
|
Товара |
||
Товара |
элемент |
* |
||
|
||||
|
СтрокаТовара |
|
5

Диаграмма компонентов
Собирающий соединитель связывает два компонента в контексте требуемых и предоставляемых интерфейсов:
Сопровождение |
Сопровождение |
|
Товара |
||
Товара |
||
|
||
|
«component» |
|
«component» |
:Заказ |
|
Заказ |
|
|
ЗаказываемыйТовар |
ЗаказываемыйТовар |
|
|
ЗаказываемыйТовар |
|
ЗаказываемыйТовар |
|
|
«component» |
«component» |
|
Товар |
:Товар |
6

Диаграмма компонентов
Пример диаграммы компонентов с собирающими соединителями для одинаковых интерфейсов:
|
:ОтмененныйЗаказ |
Клиент |
|
|
|
|
|
||
Местоположение |
Местонахождение |
|
Клиент |
|
|
Товара |
|
Человек |
|
|
|
:Заказ |
:Физическое |
|
:Склад |
|
|
||
|
|
Лицо |
||
|
|
|
|
|
Местоположение |
|
|
Организация |
|
|
Сопровождение |
|
|
|
:Поставщик |
|
Заказываемый |
:Компания |
|
|
|
Товар |
||
|
Сопровождение |
|
Заказываемый |
|
|
|
Товар |
|
|
|
|
|
|
|
|
:Сервис |
|
:Товар |
|
7

Диаграмма компонентов
Делегирующий соединитель связывает контракт компонента (интерфейсы) с внутренними частями этого компонента.
Делегирующий соединитель выполняет одну из следующих задач:
–Передача сообщений или сигналов, поступающих в порт компонента извне, для обработки в некоторую внутреннюю часть компонента или другой порт.
–Передача сообщений или сигналов, поступающих из некоторой внутренней части компонента, для обработки во внешний порт компонента.
|
«component» |
|
Местонахождение |
Заказ |
|
Товара |
:ЗаголовокЗаказа |
ПолучательТовара |
|
||
|
:СтрокаТовара |
|
8

Диаграмма компонентов |
|
|||
Пример представления внутренней структуры компонента: |
||||
Местонахождение |
|
«component» |
|
|
Товара |
|
|
||
|
:Магазин |
|
||
|
«delegate» |
|
||
|
|
|
||
|
«component» |
Клиент |
«component» |
|
|
|
:Физическое |
||
|
:Заказ |
|
||
Местонахождение |
Клиент |
Лицо |
||
|
||||
Товара |
|
|
|
|
|
Заказываемый |
|
Счет |
|
|
Товар |
|
|
|
|
|
Заказываемый |
«delegate» |
|
|
|
Товар |
Счет |
|
|
«component» |
|
|
|
|
:Товар |
|
|
9

Диаграмма компонентов
Пример отношений зависимости между компонентами с интерфейсами:
Местонахождение |
Человек |
||
Товара |
Получатель |
Физическое |
|
|
|
Товара |
Лицо |
|
Заказ |
|
|
Местоположение |
Сопровождение |
|
Организация |
Товара |
Заказываемый |
||
Поставщик |
|
Товар |
Компания |
|
|
||
Сопровождение |
Заказываемый |
|
|
Товар |
|
||
|
|
||
Сервис |
|
Товар |
|
Обратите внимание: стрелка «отношения зависимости» направлена от «требуемого интерфейса» к «предоставляемому интерфейсу»
10