Диагра́мма компоне́нтов — элемент языка моделирования UML, статическая структурная диаграмма, которая показывает разбиение программной системы на структурные компоненты и связи (зависимости) между компонентами.
Компоненты
Для представления физических сущностей в языке UML применяется специальный термин - компонент (component). Компонент реализует некоторый набор интерфейсов и служит для общего обозначения элементов физического представления модели. Для графического представления компонента используется специальный символ - прямоугольник со вставленными слева двумя более мелкими прямоугольниками. Внутри большого прямоугольника записывается имя компонента и, при необходимости, некоторая дополнительная информация.
В языке UML выделяют три вида компонентов:
- развертывания, которые обеспечивают непосредственное выполнение системой своих функций.
- рабочие продукты Как правило – это файлы с исходными текстами программ, например, с расширениями h или срр для языка C++ (рис. 10.2, г).
- Исполнения, представляющие исполнимые модули – файлы с расширением ехе.
Интерфейсы
В общем случае, интерфейс графически изображается окружностью, которая соединяется с компонентом отрезком линии без стрелок. Имя интерфейса должно начинаться с заглавной буквы "I" и записываться рядом с окружностью. Семантически линия означает реализацию интерфейса, а наличие интерфейсов у компонента означает, что данный компонент реализует соответствующий набор интерфейсов.
При разработке программных систем интерфейсы обеспечивают не только совместимость различных версий, но и возможность вносить существенные изменения в одни части программы, не изменяя другие ее части. Таким образом, назначение интерфейсов существенно шире, чем спецификация взаимодействия с пользователями системы (актерами).
Зависимости
Зависимость служит для представления наличия такой связи, когда изменение одного элемента модели оказывает влияние или приводит к изменению другого элемента модели.