Опубликован: 11.03.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Школа IT-менеджмента АНХ при Правительстве РФ
Лекция 12:

Элементы графической нотации диаграммы компонентов

< Лекция 11 || Лекция 12: 123 || Лекция 13 >

Интерфейсы

Следующим графическим элементом диаграммы компонентов являются интерфейсы. В общем случае интерфейс графически изображается окружностью, которая соединяется с компонентом отрезком линии без стрелок (рис. 12.3, а). При этом имя интерфейса, которое рекомендуется начинать с заглавной буквы "I", записывается рядом с окружностью. Семантически линия означает реализацию интерфейса, а наличие интерфейсов у компонента означает, что данный компонент реализует соответствующий набор интерфейсов.

Графическое изображение интерфейсов на диаграмме компонентов.

Рис. 12.3. Графическое изображение интерфейсов на диаграмме компонентов.

Кроме того, интерфейс на диаграмме компонентов может быть изображен в виде прямоугольника класса со стереотипом << interface>> и секцией поддерживаемых операций (рис. 12.3, б). Как правило, этот вариант обозначения используется для представления внутренней структуры интерфейса.

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

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

Зависимости между компонентами

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

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

В этом случае рисуют стрелку от компонента-клиента к импортируемому интерфейсу (рис. 12.4). Наличие такой стрелки означает, что компонент не реализует соответствующий интерфейс, а использует его в процессе своего выполнения. При этом на этой же диаграмме может присутствовать и другой компонент, который реализует этот интерфейс. Отношение реализации интерфейса обозначается на диаграмме компонентов обычной линией без стрелки.

Так, например, изображенный ниже фрагмент диаграммы компонентов представляет информацию о том, что компонент с именем Control зависит от импортируемого интерфейса IDialog, который, в свою очередь, реализуется компонентом с именем DataBase . При этом для второго компонентa этот интерфейс является экспортируемым. Изобразить связь второго компонентa DataBase с этим интерфейсом в форме зависимости нельзя , поскольку этот компонент реализует указанный интерфейс.

Фрагмент диаграммы компонентов с отношениями зависимости и реализации

Рис. 12.4. Фрагмент диаграммы компонентов с отношениями зависимости и реализации

Другим случаем отношения зависимости на диаграмме компонентов является отношение программного вызова и компиляции между различными видами компонентов. Для рассмотренного фрагмента диаграммы компонентов (рис. 12.5) наличие подобной зависимости означает, что исполнимый компонент Control .exe использует или импортирует некоторую функциональность компонентa Library .dll, вызывает страницу гипертекста Home .html и файл помощи Search .hlp, а исходный текст этого исполнимого компонентa хранится в файле Control .cpp. При этом характер отдельных видов зависимостей может быть отмечен дополнительно с помощью текстовых стереотипов.

Графическое изображение отношения зависимости между компонентами.

Рис. 12.5. Графическое изображение отношения зависимости между компонентами.

На диаграмме компонентов могут быть также представлены отношения зависимости между компонентами и реализованными в них классами. Эта информация имеет значение для обеспечения согласования логического и физического представлений модели системы. Разумеется, изменения в структуре описаний классов могут привести к изменению этой зависимости. Ниже приводится фрагмент зависимости подобного рода, когда исполнимый компонент Control .exe зависит от соответствующих классов (рис. 12.6).

Графическое изображение зависимости между компонентом и классами.

Рис. 12.6. Графическое изображение зависимости между компонентом и классами.

В этом случае из диаграммы компонентов не следует, что классы реализованы данным компонентом. Если требуется подчеркнуть, что некоторый компонент реализует отдельные классы, то для обозначения компонентa используется расширенный символ прямоугольника. При этом прямоугольник компонентa делится на две секции горизонтальной линией. Верхняя секция служит для записи имени компонентa и, возможно, дополнительной информации, а нижняя секция – для указания реализуемых данным компонентом классов (рис. 12.7).

Графическое изображение компонентa с информацией о реализуемых им классах.

Рис. 12.7. Графическое изображение компонентa с информацией о реализуемых им классах.

В случае если компонент является экземпляром и реализует три отдельных объекта, он изображается в форме компонентa уровня экземпляров (рис. 12.8). Объекты, которые находятся в отдельном компоненте-экземпляре, изображаются вложенными в символ данного компонента. Подобная вложенность означает, что выполнение компонентa влечет за собой выполнение операций соответствующих объектов. При этом существование компонентa в течение времени исполнения программы обеспечивает функциональность всех вложенных в него объектов. Что касается доступа к этим объектам, то он может быть дополнительно специфицирован с помощью видимости, подобно видимости пакетов.

Графическое изображение компонента-экземпляра, реализующего отдельные объекты.

Рис. 12.8. Графическое изображение компонента-экземпляра, реализующего отдельные объекты.

Для компонентов с исходным текстом программы видимость может означать возможность внесения изменений в соответствующие тексты программ с их последующей перекомпиляцией. Для компонентов с исполняемым кодом программы видимость может характеризовать возможность запуска на исполнение соответствующего компонентa или вызова реализованных в нем операций или методов.

< Лекция 11 || Лекция 12: 123 || Лекция 13 >
Евгений Сеничак
Евгений Сеничак

Здравствуйте!
Текущий курс изучает UML 1.5.
Современные версии UML 2.х. 
Разница существенна. Есть ли курс по более новым версиям UML?

Елена Михеенкова
Елена Михеенкова

В разделе Курсы и разделе Повышение квалификации есть курс Нотация и семантика языка UML. В курсах он бесплатный, а в повышение квалификации стоит 3000 руб. В чем различия?

 

Сергей Пантелеев
Сергей Пантелеев
Россия, Москва
Ахмет Арчаков
Ахмет Арчаков
Россия, Магас