- •Назначение диаграммы
- •Замечания по созданию диаграммы компонентов
- •Создание диаграммы компонентов
- •Строка инструментов
- •Component (компонент)
- •Package (контейнер)
- •Dependency (зависимости)
- •Вкладка Realizes
- •Вкладка Files
- •Создание диаграммы
- •Примерные вопросы для самопроверки и защиты
- •Вкладка сом
- •Вкладка Detail
- •Литература
Строка инструментов
При активизации диаграммы строка инструментов приобретает следующий вид (рис. 10.1).
Рис. 10.1. Строка инструментов Component диаграммы
Здесь также присутствуют стандартные инструменты, уже рассмотренные ранее, — это Selection Tool, Note, Text Box, Anchor Note to Item. Они выполняют те же функции, что и в других диаграммах, поэтому не будем на них останавливаться и разберем другие инструменты диаграммы.
Component (компонент)
Значок Component позволяет показать создание компонента. Компонент представляет собой модуль программного обеспечения, такой как исходный код, двоичный файл, выполняемый файл, динамически подключаемые библиотеки и т.д.
Взаимодействие элементов представляется на диаграмме одним или несколькими значками интерфейса.
Компоненты также могут использоваться для показа взаимосвязи модулей на этапе компиляции или выполнения программы, а также показывать, какие классы используются для создания определенных компонентов.
В связи с тем, что система может состоять из модулей различного типа, пользователь может использовать стереотипы для определения этих различий, причем изменение стереотипа часто ведет к изменению графического отображения компонента на диаграмме.
Замечание. В отличие от других диаграмм, при создании элементов диаграммы компонентов в модель всегда добавляется один тип элементов — Component, который отличается только стереотипом. Например, при создании элемента Subprogram body (тело подпрограммы) в модель добавляется компонент,, который имеет стереотип Subprogram body, и который в любой момент можно изменить, что повлечет изменение графического отображения компонента.
Обычно имя компонента совпадает с именем файла, представляющего компонент и для каждого компонента должен быть назначен язык программирования .
Package (контейнер)
Значок Package позволяет отобразить контейнер, который объединяет группу компонентов в модели.
Совет. Для того чтобы перенести созданный компонент в контейнер, в окне Browse перетяните нужный компонент мышкой на значок контейнера.
Dependency (зависимости)
Пользователь может установить связи данного типа между компонентами, которые изображаются как пунктирная стрелка от одного компонента к другому. Этот тип связей показывает, что классы, содержащиеся в контейнере-клиенте, наследуются, содержат элементы, используют или каким-либо другим образом зависят от классов, которые экспортируются из компонента-сервера.
Пользователь может отобразить связь компонента и интерфейса другого компонента и это означает, что компонент-клиент использует операции другого компонента (рис. 10.2). Если в этом случае связь будет направлена в другую сторону, то это означает, что компонент-клиент предоставляет операции компоненту-серверу.
Рис. 10.2. Пример использования операций компонента
Main
program (главная программа)
Значок Main program позволяет добавить в модель компонент, обозначающий главную программу. Для задач, которые создаются в объектно-ориентированной среде Visual Studio, главная программа скрыта библиотекой MFC, а приложение начинает работать с создания главного класса приложения theApp, который наследуется из библиотечного класса CWinApp, поэтому данный значок используется редко.
Subprogram
body (тело подпрограммы)
Значок Subprogram body позволяет добавить в модель компонент, обозначающий тело подпрограммы, и используется также для необъектно-ориентированных компонентов.
Package specification/body
(определение/тело контейнера)
Значки Package specification/body позволяют отобразить определения контейнера (Package specification) и описание контейнера (Package body), которые обычно связаны между собой.
Для языка C++ Package specification — это заголовочный файл с расширением .h, a Package body — это файл с расширением .срр.
Task
specification/body
(определение/тело задачи)
Значки Task specification/body позволяют отобразить независимые потоки в многопотоковой системе. Если такие задачи компилируются независимо от обычных модулей, то появляется возможность разместить классы и их определения в таких задачах.
Свойства компонента
Для описанного ранее класса EnvironmentalController создадим значок Package Specification. Этим мы покажем, что определение данного класса будет находиться в файле EnvironmentalController.h.
Вкладка General (главная)
После создания элемента перейдите во вкладку General его спецификаций при помощи RClick=>Specification=>General и заполните ее, как показано на рис. 10.3.
Рис. 10.3. Вкладка General спецификаций компонента
Здесь пользователю доступно изменение имени компонента (Name), дан список стереотипов (Stereotype), доступных для выбора, как и в других элементах, есть возможность заполнения документации (Documentation). Также предоставляется возможность выбора языка программирования для компонента.
Замечание. Для нормальной работы с исходным текстом компонента все включенные в него классы должны быть ассоциированы с одним языком программирования.
В связи с тем, что мы создаем систему управления тепличным хозяйством на Visual C++, необходимо установить этот язык, изменив предлагаемое по умолчанию значение Analysis, на значение VC++ После чего при следующей активизации данного окна появятся вкладки СОМ и VC++.
