Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОСЫ / ГОСБилеты.odt
Скачиваний:
139
Добавлен:
05.06.2015
Размер:
1.54 Mб
Скачать

Билет 35.

1. Компоненты и интерфейсы. Диаграммы физического уровня.

Компонента реализуют некоторый набор действий, и служит для общего обозначения элементов физического представления модели. Изображение в UML позволяет визуализировать компоненту без привязки к операционной системе или алгоритмическому языку с помощью специального символа (рис. 1.29 а).

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

Компоненты зачастую воспринимаются как двоичные исполняемые EXE-файлы, но могут быть частью системы, которая не является непосредственно исполняемым модулем (например, файлом исходного текста программы, файлом данных, динамически компонуемой библиотекой DLL или хранимой процедурой базы данных). Механизмы расширения, принятые в UML, расширяют как свойства компонент, так и определяют новые стереотипы. Базовый набор включает несколько элементов (табл. 1.1), общепринятая нотация их представлена на рис. 1.30. Все виды компонент именуют артефактами, подчеркивая их законченное информационное содержание.

Табл. 1.1. Разновидности компонент.

Разновидность компонента

Описание

исполнимый (executable)

программный модуль, исполняющийся в узле

библиотека (library)

динамическая или статическая библиотека

таблица (table)

таблицы базы данных

файл (file)

файлы с исходными текстами

документ (document)

текстовый документ

Рис. 1.30. Условное изображение базовых стереотипов компонента в UML.

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

Приведем основные характеристики компонент:

  1. компонента представляет независимо развертываемый программный блок (компонента никогда не развертывается частично);

  2. компонента может служить строительным блоком для стороннего разработчика (компонента в достаточной мере документирована и самодостаточна, чтобы сторонний разработчик мог встроить ее в другие компоненты);

  3. компонента – заменяемая часть системы, т.е. ее можно заменить другой компонентой, которая согласуется с тем же интерфейсом;

  4. компонента выполняет четко определенную функцию и с логической и с физической точки зрения образует единое целое;

  5. компонента может быть вложена в другие компоненты.

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

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

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

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

Другим вариантом зависимости является отношение между различными видами компонент. Наличие подобной зависимости означает, что внесение изменений в исходные тексты программ или динамические библиотеки приводит к изменениям самого компонента

Диаграмма развертывания

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

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

Диаграмма развертывания позволяет:

  1. определить распределение компонентов системы по ее физическим узлам;

  2. показать физические связи между всеми узлами реализации системы на этапе ее исполнения;

  3. выявить узкие места системы и сконфигурировать ее топологию для достижения требуемой производительности.

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

Диаграмма развертывания представляет граф с узлами в вершинах и соединениями между ними. Узел является физически существующим элементом, обладающим некоторым вычислительным ресурсом (например, процессор с электронной или магнитооптической памятью). Начиная с версии UML 1.3, понятие узла расширено и может включать в себя не только вычислительные, но и механические и электронные устройства – датчики, манипуляторы, принтеры, модемы, и др.

Диаграмма вариантов использования

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

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

Соседние файлы в папке ГОСЫ