Поделиться через


Определение пакетов и пространств имен

В Visual Studio Ultimate пакет — это контейнер для определений UML-элементов, таких как классы, варианты использования и компоненты. Пакет также может содержать другие пакеты.

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

В этом разделе

Пространства имен

Создание и просмотр пакетов

Создание элементов модели внутри пакетов

Перемещение элементов в пакет или из него

Вставка элементов в пакет

Импорт отношений между пакетами

Ссылки из одного пространства имен на другое

Свойства пакетов

Пространства имен

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

Свойство "полное имя" каждого элемента представляет собой полное имя пакета, к которому этот элемент относится, за которым следует собственное имя элемента. Например, если пакет называется MyPackage, класс внутри пакета будет иметь полное имя MyPackage::MyClass. Поскольку каждый элемент содержится внутри модели, полное имя всегда начинается с имени модели.

Модель также определяет пространство имен так, что полное имя каждого элемента в модели начинается с имени модели.

Другие элементы модели также определяют пространства имен. Например, операция принадлежит пространству имен, определенному его родительским классом, тогда полное имя операции — MyModel ::MyPackage ::MyClass ::MyOperation. Точно так же действие относится к пространству имен, определенному его родительским действием.

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

Создание и просмотр пакетов

Можно создать пакет на UML-схеме классов или в обозревателе моделей UML.

Создание пакета на UML-схеме классов

  1. Откройте или создайте UML-схему классов.

  2. Выберите средство Пакет.

  3. Щелкните в любом месте схемы. Появится новая фигура пакета.

    Чтобы вложить один пакет в другой, можно щелкнуть внутри существующего пакета.

  4. Введите новое имя для пакета.

Создание пакета в обозревателе моделей UML

  1. Откройте Обозреватель моделей UML. В меню Архитектура последовательно выберите пункты Окна и Обозреватель моделей UML.

  2. Щелкните правой кнопкой мыши пакет или модель, к которой требуется добавить новый пакет.

    Примечание

    Можно вложить один пакет в другой.

  3. В открывшемся контекстном меню выберите Добавить, а затем щелкните Пакет.

    В модели откроется новый пакет.

  4. Введите новое имя для пакета.

Если пакет создан в обозревателе моделей UML, можно отобразить его на UML-схеме классов. Пакет также можно отобразить на нескольких UML-схемах классов.

Отображение существующего пакета на UML-схеме классов

  • Перетащите пакет из обозревателя моделей UML на схему классов.

    Примечание

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

Создание элементов модели внутри пакетов

Существует четыре способа разместить элементы модели внутри пакета.

  • Добавьте новый элемент в пакет в обозревателе моделей UML.

  • Добавьте классы и другие типы в пакеты на UML-схеме классов.

  • Задайте свойство Связанный пакет схемы так, чтобы новые элементы, создаваемые на схеме, размещались внутри заданного пакета. Таким образом с пакетом можно связывать схемы классов, компонентов и вариантов использования.

  • Переместите элементы в пакет или из него в обозревателе моделей UML.

В обозревателе моделей UML элемент в пакете отображается под пакетом, его полное имя начинается с полного имени пакета. Чтобы просмотреть полное имя элемента, щелкните элемент правой кнопкой мыши и выберите Свойства. Свойство Полное имя отображается в окне Свойства.

Создание элемента в пакете в обозревателе моделей UML

  1. Откройте Обозреватель моделей UML. В меню Вид выберите пункт Другие окна, затем щелкните Обозреватель моделей UML.

  2. Щелкните правой кнопкой мыши пакет или модель, в которую требуется добавить новый элемент.

  3. Выберите команду Добавить и щелкните вид элемента, который необходимо добавить.

    Новый элемент отображается под пакетом.

  4. Введите имя для нового элемента.

    Примечание

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

Создание элемента в пакете на UML-схеме классов

  1. Откройте схему классов, на которой отображается пакет.

    • Создайте новый пакет, если вы еще не сделали это.

    • Чтобы существующий пакет отображался на схеме классов, можно перетащить пакет из Обозревателя моделей UML на схему классов.

  2. Щелкните средство для класса, интерфейса, перечисления или пакета.

  3. Щелкните пакет, в котором нужно разместить новый элемент.

    Новый элемент отображается внутри пакета.

Создание всех элементов схемы в заданном пакете

  1. Создайте пакет, если вы еще не сделали это.

  2. Откройте схему компонентов, вариантов использования или UML-схему классов.

  3. Откройте свойства схемы. Щелкните правой кнопкой мыши пустую область схемы и выберите Свойства.

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

  5. Создайте новые элементы на схеме. Они будут размещены внутри пакета.

    • Полное имя каждого элемента будет начинаться с полного имени пакета.

    • В Обозревателе моделей UML каждый элемент будет отображаться в пакете.

Перемещение элементов в пакет и из него

Элемент или элементы можно перемещать в пакет или из него.

При перемещении пакета перемещается все его содержимое.

Перемещение элемента в пакет или из него

  • В обозревателе моделей UML перетащите элемент в дерево, корнем которого является пакет, или из него.

    Полное имя элемента изменится, и в нем будет содержаться имя нового пакета или модели, которая им владеет.

    - или -

  • На схеме классов перетащите элемент в фигуру пакета.

    Полное имя элемента изменится, и в нем будет содержаться имя нового пакета-владельца.

    Примечание

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

Вставка элементов в пакет

Элемент можно вставить в пакет. Если вставить группу связанных элементов в пакет, отношения между ними также переместятся в пакет.

Вставка элементов в пакет на UML-схеме классов

  1. На UML-схеме классов выберите все элементы, которые необходимо скопировать. Щелкните один из них правой кнопкой мыши и выберите Копировать.

  2. Щелкните пакет правой кнопкой мыши и выберите Вставить.

    Примечание

    Пакет может располагаться на другой схеме.

Импорт отношений между пакетами

Можно определить отношение импорта между пакетами, воспользовавшись средством Импорт.

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

Не рекомендуется создавать циклы в отношениях импорта.

Ссылки из одного пространства имен на другое

Если требуется создать ссылку на элемент одного пакета из другого, нужно использовать полное имя этого элемента.

Например, пусть пакет SalesCommon определяет тип CustomerAddress. В другом пакете, RestaurantSales, нужно определить тип MealOrder, который имеет атрибут типа "Адрес клиента". Имеются две возможности.

  • Задайте тип атрибута с использованием полного имени SalesCommon::CustomerAddress. Это можно сделать, только если свойству Видимость атрибута типа CustomerAddress присвоено значение Public.

  • Создайте отношение импорта из пакета RestaurantSales в пакет SalesCommon. В этом случае не обязательно использовать полное имя CustomerAddress.

Свойства пакетов

Каждый пакет имеет следующие свойства. Чтобы просмотреть свойства, щелкните пакет правой кнопкой мыши на схеме или в обозревателе моделей UML и выберите Свойства.

Свойство

Значение по умолчанию

Описание

Имя

(новое имя)

Имя пакета. Его можно изменить на схеме или в окне свойств.

Полное имя

Контейнер :: имя_пакета

Полное имя, имеющее префикс в виде имени пакета или модели, в которой содержится пакет. Дополнительные сведения см. в разделе Пространства имен.

Профили

(пусто)

Список профилей, связанных с этим пакетом. Эти профили предоставляют стереотипы, которые можно применить к элементам внутри пакета. Дополнительные сведения см. в разделе Настройка модели с помощью профилей и стереотипов.

Видимость

Открытый

Видимость пакета за пределами родительского пакета.

Рабочие элементы

(пусто)

Список связанных рабочих элементов. Дополнительные сведения см. в разделе Практическое руководство. Связывание элементов модели с рабочими элементами.

Расположение определения

(имя)

Имя файла, где хранятся сведения о пакете. Файлы находятся внутри папки проекта Определение модели. Эти сведения могут оказаться полезными при работе с системой управления версиями.

Описание

(пусто)

Описание пакета.

Стереотипы

(пусто)

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

Хранение пакетов

При создании нового пакета в папке проекта ModelDefinition создается новый файл .uml. Корневая модель, которая также представляет собой пакет, также хранится в файле .uml.

Кроме того, каждая схема хранится в двух файлах: один из них представляет фигуры схемы, а файл .layout регистрирует положения фигур.

См. также

Ссылки

Работа с моделями и диаграммами в управлении версиями

Основные понятия

Практическое руководство. Изменение модели и схем UML

UML-схемы классов: справочные материалы

UML-схемы классов: правила работы