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


Практическое руководство. Определение профиля для расширения UML

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

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

Можно определить собственные профили, чтобы адаптировать и расширить UML в соответствии с конкретной сферой бизнеса и архитектурой системы.Например:

  • Если необходимо регулярно определять веб-сайты, можно определить собственный профиль, предоставляющий стереотип "Веб-страница", который можно применить к классам на схеме классов.Затем схемы классов можно использовать для планирования веб-сайта.Каждый класс "Веб-страница" будет иметь дополнительные свойства для содержимого страницы, стиля и т. д.

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

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

ПримечаниеПримечание

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

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

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

Определение профиля

Определение UML-профиля

  1. Создайте новый XML-файл с расширением имени файла .profile.

  2. Добавьте определения стереотипа, следуя рекомендациям в разделе Структура профиля.

  3. Добавьте профиль в расширение Visual Studio (файл .vsix).Можно либо создать новое расширение для профиля, либо добавить профиль в существующее расширение.

    См. следующий раздел Добавление профиля в расширение Visual Studio.

  4. Установите расширение на компьютер.

    1. Дважды щелкните файл расширения, который имеет расширение имени файла .vsix.

    2. Перезапустите Visual Studio.

  5. Убедитесь, что профиль установлен.

    1. Выберите модель в обозревателе UML.

    2. В окне "Свойства" выберите свойство Профили.Профиль появится в меню.Установите флажок рядом с профилем.

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

    4. Если профиль определяет дополнительные свойства для этого стереотипа, для их просмотра разверните свойство стереотипа.

  6. Отправьте файл расширения другим пользователям Visual Studio для установки на их компьютеры.

Добавление профиля в расширение Visual Studio

Чтобы установить профиль и разрешить его отправку другим пользователям, нужно добавить профиль в расширение Visual Studio.Дополнительные сведения см. в разделе Развертывание расширений Visual Studio.

Определение профиля в новом расширении Visual Studio

  1. Создайте проект с расширением Visual Studio.

    ПримечаниеПримечание

    Чтобы выполнить эту процедуру, нужно установить SDK для Visual Studio.

    1. В меню Файл последовательно выберите пункты Создать и Проект.

    2. В диалоговом окне Новый проект под заголовком Установленные шаблоны разверните Visual C#, выберите Расширяемость, затем щелкните проект VSIX.Задайте имя проекта и нажмите кнопку ОК.

  2. Добавьте профиль в проект.

    • В обозревателе решений щелкните правой кнопкой мыши проект, выберите команду Добавить и щелкните Существующий элемент.В диалоговом окне найдите файл профиля.
  3. Задайте для файла профиля свойство Копировать в выходной каталог.

    1. В обозревателе решений щелкните правой кнопкой мыши файл профиля и выберите пункт Свойства.

    2. В окне свойств присвойте свойству Копировать в выходной каталог значение Всегда копировать.

  4. В обозревателе решений откройте source.extension.vsixmanifest.

    Файл открывает редактор манифеста расширения.

  5. На странице Активы добавьте строку, описывающую профилирование:

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

    • В поле Тип задайте значение Microsoft.VisualStudio.UmlProfile.

      Это не является одним из вариантов падающих вниз.Это имя введите с клавиатуры.

    • Щелкните Файл в файловой системе и выделите имя файла профилирования, например MyProfile.profile

  6. Выполните построение проекта.

  7. Отладка профилирования нажмите клавишу F5.

    Откроется экспериментальный экземпляр Visual Studio.В этом случае открытие проекта моделирования.В обозревателе моделей UML, выделите корневой элемент модели, и в окне свойств, выберите для профилирования.Затем выделите элементы внутри стереотипов модели и набора, заданные для них.

  8. Извлечение VSIX для развертывания

    1. Чтобы найти файл .vsix, в проводнике откройте каталог .\bin\Debug или .\bin\Release.Это файл расширения Visual Studio.Его можно установить на данном компьютере и отправить другим пользователям Visual Studio.

    2. Установка расширения

      1. Дважды щелкните файл .vsix.Запускается установщик расширения Visual Studio.

      2. Перезапустите все выполняемые экземпляры Visual Studio.

Если не установлено SDK для Visual Studio, для небольших расширений может использоваться следующая альтернативная процедура.

Определение расширения профиля без использования Visual Studio SDK

  1. Создайте каталог Windows, содержащий следующие три файла.

    • ваш_профиль.profile

    • extension.vsixmanifest

    • [Content_Types].xml — введите это имя, как показано здесь, заключив его в квадратные скобки.

  2. Измените [Content_Types].xml, чтобы в нем содержался следующий текст.Обратите внимание, что здесь можно найти запись для каждого расширения имени файла.

    <?xml version="1.0" encoding="utf-8"?>
    <Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types">
      <Default Extension="profile" ContentType="application/octet-stream" />
      <Default Extension="vsixmanifest" ContentType="text/xml" />
    </Types>
    
  3. Скопируйте существующий extension.vsixmanifest и измените его с помощью редактора XML.Измените узлы "Идентификатор", "Имя" и "Содержимое".

    • В этом каталоге можно найти пример extension.vsixmanifest.

      диск**:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles**

    • Узел "Содержимое" должен иметь следующий вид.

      <Content>
        <CustomExtension Type="Microsoft.VisualStudio.UmlProfile"
        >YourProfile.Profile</CustomExtension>
      </Content>
      
  4. Упакуйте три файла в сжатый ZIP-файл.

    В проводнике выберите эти три файла, щелкните правой кнопкой мыши, укажите Отправить и щелкните Сжатая ZIP-папка.

  5. Переименуйте ZIP-файл и измените расширение имени файла с .zip на .vsix.

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

Установка UML-профиля из расширения Visual Studio

  1. Дважды щелкните файл .vsix в проводнике или откройте его в Visual Studio.

  2. В появившемся диалоговом окне щелкните Установить.

  3. Чтобы удалить или временно отключить расширение, откройте Диспетчер расширений в меню Сервис.

Определение локализованных профилей

Можно определить разные профили для разных культур и языков и упаковать их в одно расширение.При загрузке расширения пользователь увидит профиль, определенный для его страны и языка.

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

Определение локализованного профиля

  1. Создайте профиль, следуя инструкциям в предыдущих разделах Определение профиля и Добавление профиля в расширение Visual Studio.Это профиль по умолчанию, который будет использоваться в любой установке, для которой не предоставляется локализованный профиль.

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

    ПримечаниеПримечание

    Если расширение создается с использованием проекта с расширением Visual Studio, для добавления в проект новой папки используйте обозреватель решений.

  3. Измените имя нового каталога на короткий код ISO для языка локализации, например bg для болгарского или fr для французского.Следует использовать нейтральный идентификатор языка и страны (как правило, состоящий из двух букв), а не указывать конкретную страну, например fr-CA.Дополнительные сведения об идентификаторах языков и стран см. в разделе Метод CultureInfo.GetCultures, в котором содержится полный список идентификаторов языков и стран.

  4. Добавьте копию профиля по умолчанию в новый каталог.Не изменяйте имя файла.

    Стандартная папка с расширением Visual Studio (до встраивания или сжатия в файл .vsix) содержит следующие папки и файлы.

    extension.vsixmanifest

    MyProfile.profile

    fr\MyProfile.profile

    de\MyProfile.profile

    ПримечаниеПримечание

    Не следует вставлять в extension.vsixmanifest ссылку на локализованные версии профилей.Скопированные файлы профилей должны иметь те же имена, что и профили в родительской папке.

  5. Измените новую копию профиля, переведя на соответствующий язык все части, которые будут видны пользователю, такие как атрибуты displayName.

  6. Можно создать дополнительные папки для языков и стран и локализованные профили для неограниченного числа языков и стран.

  7. Выполните построение расширения Visual Studio, создав проект расширения или осуществив сжатие всех файлов, следуя инструкциям в предыдущих разделах.

Структура профиля

XSD-файл для профилей UML можно найти в следующем примере: Setting Stereotypes and Profiles XSD.Для облегчения управления файлами профилей установите файл .xsd в следующий каталог.

%ProgramFiles%\Microsoft Visual Studio 11.0\Xml\Schemas

В этом разделе в качестве примера используется профиль C#.Полное определение профиля можно найти в каталоге.

диск**:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\CSharp.profile**

В установке пользователя первая часть этого пути может отличаться от указанного.

Дополнительные сведения о профиле .NET см. в разделе Стандартные стереотипы для моделей UML.

Dd465143.collapse_all(ru-ru,VS.110).gifОсновные разделы определения UML-профиля

Каждый профиль содержит следующее содержимое.

<?xml version="1.0" encoding="utf-8"?>
<profile dslVersion="1.0.0.0" 
       name="CSharpProfile" displayName="C# Profile" 
       xmlns="https://schemas.microsoft.com/UML2.1.2/ProfileDefinition">
  <stereotypes>...</stereotypes>
  <metaclasses>...</metaclasses>
  <propertyTypes>...</propertyTypes>
</profile>
ПримечаниеПримечание

В атрибуте name не должно быть пробелов или знаков препинания.Атрибут displayName, отображаемый в пользовательском интерфейсе, должен представлять собой допустимую строку XML.

В каждом профиле имеется три основных раздела.Ниже они представлены в обратном порядке.

  • <propertyTypes> — список типов, которые используются для свойств, определенных в разделе стереотипов.

  • <metaclasses> — список типов элементов модели, к которым применимы стереотипы в этом профиле, такие как IClass, IInterface, IOperation, IDependency.

  • <stereotypes> — определения стереотипа.Каждое определение включает имена и типы свойств, добавляемых в целевой элемент модели.

Dd465143.collapse_all(ru-ru,VS.110).gifТипы свойств

Раздел <propertyTypes> объявляет список типов, которые используются для свойств в разделе <stereotypes>.Существует две разновидности типов свойств: внешние типы и перечисление.

Внешний тип объявляет полное имя стандартного типа .NET.

<externalType name="System.String" />

Тип перечисления определяет набор строковых литералов.

    <enumerationType name="PackageVisibility">
      <enumerationLiterals>
        <enumerationLiteral name="internal" displayName="internal"  />
        <enumerationLiteral name="protectedinternal" displayName="protected internal" />
      </enumerationLiterals>
    </enumerationType>

Dd465143.collapse_all(ru-ru,VS.110).gifМетаклассы

Раздел <metaclasses> представляет собой список типов элементов модели, для которых можно определить стереотипы в данном профиле.

<metaclass 
      name="Microsoft.VisualStudio.Uml.Classes.IClass" />
<metaclass
      name="Microsoft.VisualStudio.Uml.Classes.IInterface" />
<metaclass
      name="Microsoft.VisualStudio.Uml.Components.IComponent" />

Полный список элементов модели и типов отношений, которые можно использовать как метаклассы, см. в разделе Типы элементов модели.

Dd465143.collapse_all(ru-ru,VS.110).gifОпределение стереотипа

Раздел <stereotypes> содержит одно или несколько определений стереотипа.

    <stereotype name="CSharpClass" displayName="C# Class"> ...

В каждом стереотипе перечислены один или несколько типов элементов модели или отношений, к которым его можно применять.Можно предоставить имя базового типа, в который включены все производные типы.Например, если задается Microsoft.VisualStudio.Uml.Classes.IType, стереотип можно применить к IClass, IInterface, IEnumeration и некоторым другим типам элементов.

      <metaclasses>
        <metaclassMoniker name=
         "/CSharpProfile/Microsoft.VisualStudio.Uml.Classes.IClass" />
      </metaclasses>

Атрибут name объекта metaclassMoniker представляет собой ссылку на элемент в разделе <metaClasses>.

ПримечаниеПримечание

Имя моникера должно начинаться с /yourProfileName/, где yourProfileName определяется в атрибуте name профиля (CSharpProfile в этом примере).Моникер заканчивается именем одной из записей в разделе метаклассов.

В каждом стереотипе можно перечислить сколько угодно свойств (или ни одного), которые он добавляет в любой элемент модели, к которому применяется.<propertyType> содержит ссылку на один из типов, определенных в разделе <propertyTypes>.Это должна быть ссылка <externalTypeMoniker>, ссылающаяся на <externalType>, или <enumerationTypeMoniker>, ссылающаяся на <enumerationType>.Ссылка начинается с имени профиля.

      <properties>
        <property name="IsStatic" 
                displayName="Is Static" defaultValue="false">
          <propertyType>
    <externalTypeMoniker 
                   name="/CSharpProfile/System.Boolean" />
          </propertyType>
        </property>
        <property name="PackageVisibility" 
                  displayName="Package Visibility"
                  defaultValue="internal">
          <propertyType>
            <enumerationTypeMoniker 
                  name="/CSharpProfile/PackageVisibility"/>
          </propertyType>
        </property>
      </properties>
    </stereotype>

Типы элементов модели

Набор типов, для которых можно определить стереотипы, представлен в разделе Типы элементов модели.

Устранение неполадок

  • Мои стереотипы не отображаются в моих моделях UML.
    Необходимо выбрать свой профиль в пакете или модели.Стереотипы появятся на элементах внутри пакета или модели.Дополнительные сведения см. в разделе Практическое руководство. Добавление стереотипов к элементам модели.

  • При открытии модели UML отображается следующая ошибка: VS1707: The following profiles cannot be loaded because a serialization error occurred: MyProfile.profile.

    1. Убедитесь в правильности базового синтаксиса XML PROFILE-файла.

    2. Убедитесь, что имя каждого моникера представлено в форме /имя_профиля/имя_узла.Имя_профиля — это значение атрибута имени в корневом узле профиля.Имя_узла — это значение атрибута имени в метаклассе, внешнем типе или типе перечисления.

    3. Убедитесь, что синтаксис соответствует описанию данного раздела и диск**:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\**.

    4. Удалите расширение с ошибкой.В меню Сервис выберите пункт Диспетчер расширений.

      • Если расширение не отображается, см. следующий пункт.
    5. Перестройте файл VSIX и откройте его в проводнике для повторной установки.Перезапустите Visual Studio.

  • Расширение не отображается в диспетчере расширений, но при попытке повторной установки появляется следующее сообщение: The extension is already installed to all applicable products..

    1. Удалите файл расширения из вложенной папки LocalAppData\Microsoft\VisualStudio\11.0\Extensions\.

      • Для просмотра LocalAppData на вкладке "Вид" в свойствах папки проводника нужно задать значение "Показывать скрытые файлы и папки".

      • Папка LocalAppData, как правило, расположена по следующему пути: C:\Users\имя_пользователя\AppData\Local\.

    2. Перезапустите Visual Studio.

См. также

Задачи

Практическое руководство. Добавление стереотипов к элементам модели

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

Стандартные стереотипы для моделей UML

Другие ресурсы

Настройка модели с помощью профилей и стереотипов

Sample: Color UML Elements by Stereotype

Sample: Setting Stereotypes, Profiles XSD