Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Унифицированный язык моделирования (Unified Mod...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.06 Mб
Скачать

Импортирование пакета Семантика

Класс может вызываться из другого пакета. На уровне пакетов зависимость "импорта" показывает, что содержимое целевых пакетов может вызываться из клиентских пакетов или пакетов рекурсивно внедренных в них. Цели ссылок должны иметь видимость достаточную для ссылок. Видимость может быть определена как для элементов модели, так и для пакетов. Если элемент модели вложен в один или более пакет, то видимость элемента и всех его контейнеров объединяется согласно правилу, выбирающему наиболее ограниченную видимость из набора. Невозможно избирательно экспортировать некоторые элементы из вложенного пакета; видимость внешнего пакета применяется к каждому экспортируемому элементу внутреннего пакета. Импорт является рекурсивным для вложенных уровней пакетов. Зависимый класс должен иметь, по крайней мере, видимость "protected", любые другие классы требуют видимость "public". (Более подробно это описано в документе по семантике.)

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

Нотация

Зависимость импорта отображается как стрелка зависимости от ссылающегося (клиентского) пакета к целевому пакету (поставщику), содержащему цель ссылок. Стрелка имеет стереотип . Эта зависимость показывает, что элементы из клиентского пакета могут законным образом ссылаться на элементы поставщика. Ссылки должны также удовлетворять определенным поставщиком ограничениям видимости. Заметим, что зависимость не создает автоматически ссылки; она просто дает возможность их установить.

Пример

Рисунок 15. Зависимость импорта между пакетами

Объект

Семантика

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

Нотация

Нотация объекта получается из нотации класс подчеркиванием элементов уровня экземпляра.

Объект отображается в прямоугольнике с двумя секциями.

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

objectname : classname

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

display_window: WindowingSystem::GraphicWindows::Window

Стереотип класса может быть показан как текст (в русских кавычках (< >) над строкой названия) или как картинка в верхнем правом углу. Стереотип объекта должен соответствовать стереотипу его класса.

Набор классов, для которых объект является экземпляром, отображается в виде разделенного запятыми списка названий классов. Эти названия классов должны быть допустимы для множественной классификации (то есть, только одно является реализацией класса, а остальные ролями).

Для показа того, что объект находится в конкретном состоянии класса, используется следующий синтаксис:

objectname : classname '[' statename-list ']'

Список должен быть разделенным запятыми списком названий состояний, для которых допустимо одновременное наступление.

Вторая секция показывает список атрибутов объекта и их значений. Каждая строка значения имеет следующий синтаксис:

attributename : type = value названиеатрибута : тип = значение

Тип уже присвоен при объявлении атрибута класса и поэтому может быть опущен.

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