Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции комп мод.doc
Скачиваний:
23
Добавлен:
23.08.2019
Размер:
3.01 Mб
Скачать

Виды отношений вариантов использования

Отношение

Функция

Нотация

Ассоциация (Association)

Отношение, указывающее на связь между актантом и вариантом использования.

Расширить (Extend)

Включение добавочного поведения в исходный вариант использования без изменения последнего.

“extend”

Обобщение вариантов использования (Use case generalization)

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

Включить (Include)

Включение добавочного поведения в исходный вариант использования, который явно описывает включение.

“include”

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

На диаграммах вариант использования изображается в виде эллипса. Внутри эллипса или под ним указывается имя варианта использования. Сплошные линии соединяют варианты использования с актантами. Вариант использования может включать в себя черты поведения других вариантов использования. Такое отношение носит название отношения включения (include). Полученный в этом случае вариант использования не является вариацией исходного и не может его заменить. Кроме того, один вариант использования может рассматриваться как расширение и дополнение исходного варианта использования (extend). У исходного варианта использования может быть несколько расширяющих вариантов, которые вносят дополнения в его семантику. Все эти варианты могут применяться вместе. Вариант использования может иметь несколько вариантов-потомков, причем любой из них можно подставлять вместо варианта-родителя. Этот механизм называется обобщением вариантов использования (use case generalization).

8.2. Представления программной реализации и развертывания

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

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

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

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

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

Графически компоненты изображаются в виде прямоугольника, у которого в одну из боковых сторон врезаны два прямоугольника поменьше. Прямоугольник-компонент может соединяться сплошной линией с интерфейсами, которые он поддерживает. Интерфейсы изображаются в виде полых кружков (рис. 15).

Рис. 15. Компонент и его интерфейсы

Зависимости между компонентами изображаются с помощью диаграмм компонентов. Существует два вида таких диаграмм. На первом указывается набор компонентов (библиотека компонентов) и их зависимости — это «детали», из которых можно «собрать» готовую систему. Во втором случае на диаграмме изображается сконфигурированная система и те компоненты, которые были использованы для ее построения (выбранные из всей библиотеки компонентов). На такой диаграмме каждый компонент связан с другими компонентами, чьими услугами он пользуется, причем все эти связи должны быть полностью согласованы с точки зрения соответствия интерфейсов компонентов.

Рис. 16. Диаграмма компонентов

Узел (node) — это работающий физический объект, представляющий собой вычислительный ресурс, у которого есть, по меньшей мере, память, и нередко процессор. Узлы могут иметь стереотипы, с помощью которых одни типы ресурсов отличаются от других (например, процессор, устройство, память). (Для справки: стереотип – это конструкция для расширения возможностей языка UML, позволяющая вводить новые типы элементов модели, которые создаются разработчиком на основе существующих элементов.) На узлах содержатся экземпляры объектов и компонентов. На диаграммах узел изображается в виде куба. Узел имеет имя, которое указывается внутри этого графического символа. Узлы могут представляться в качестве типов или в качестве экземпляров. В первом случае имя узла записывается в форме <Имя-типа-узла> без подчеркивания и начинается с заглавной буквы. Во втором – имя узла-экземпляра записывается в виде <имя узла:Имя типа узла>, а вся запись подчеркивается. Имя типа узла указывает на некоторую разновидность узлов, присутствующих в модели (рис. 17).

Рис. 17. Диаграмма развертывания

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

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

Чтобы показать наличие на узле какого-либо объекта, достаточно нарисовать пиктограмму объекта в пиктограмме узла. К пиктограмме объекта можно добавить комментарий location (месторасположение), название которого будет отражать название узла, на котором размещается компонент. Также можно изобразить и перемещение объектов между различными узлами.