Программирование с UML API
UML API Visual Studio Ultimate позволяет создавать код для разработки, чтения и обновления моделей и схем UML.
API описывается на страницах справочных материалов об API и в следующих разделах.
Раздел |
Примеры описываемых типов и методов |
Описываемые функции |
---|---|---|
Практическое руководство. Переход по отношениям с помощью UML API |
UML-элементы, их свойства и связи.Например, IElement и его потомки, включая IClass, IActivity, IUseCase, IComponent, IInteraction, IModel и IPackage. |
В Visual Studio Ultimate модели UML соответствуют UML-спецификации версии 2.1.2, которую можно получить на Странице UML-ресурсов.Каждый тип является интерфейсом, который имеет то же имя, что и UML-тип, начинающийся с префикса "I". |
IPackage.CreateClass() IClass.CreateOperation() |
Каждый тип элемента имеет методы для создания дочерних элементов. |
|
IShape, IDiagram IShape.Move() |
Каждый элемент в модели может быть представлен в виде фигуры на схеме.В некоторых случаях можно создавать новые фигуры для каждого объекта.Эти фигуры можно перемещать, сворачивать или разворачивать, а также изменять их размер и цвет. |
|
IModelStore IDiagramContext |
В хранилище моделей хранятся модели. Контекст схемы предоставляет доступ к текущей схеме и хранилищу. |
|
Практическое руководство. Связывание обновлений модели с использованием транзакций |
ILinkedUndoContext |
Ряд изменений можно связать в одну транзакцию. |
Практическое руководство. Определение команды меню на схеме моделирования |
IMenuCommand IGestureExtension ICommandExtension |
Чтобы расширить функциональные возможности схемы, нужно определить команды, вызываемые двойным щелчком, и перетащить их на схему. |
Практическое руководство. Определение ограничений проверки для моделей UML |
ValidationContext |
Можно определить правила проверки, которые помогают удостовериться, что выполняются заданные ограничения для модели. |
Практическое руководство. Получение элементов модели UML из IDataObject |
IElement, IShape |
Если элемент перетаскивается из Проводника по моделям UML или UML-схемы на другую схему или в другое приложение, он сериализуется в качестве IDataObject. |
Практическое руководство. Редактирование схем последовательностей с помощью API UML |
IInteraction, ILifeline, IMessage |
Создание и обновление схемы взаимодействия несколько отличается от работы с другими типами схем. |
ILayer, ILayerDiagram |
Можно написать код для создания и редактирования схем слоев, а также для проверки кода программы на соответствие схемам слоев. |
О реализации
Средства моделирования UML созданы на основе Инструменты DSL.Каждый пакет и каждая схема представлены моделью Инструменты DSL, соответствие между ними обеспечивается коллекцией правил и другими методами.
Типы из этой платформы видны в некоторых сборках, на которые дается ссылка при создании UML-расширений.Хотя расширения для средств UML можно создать с помощью API-интерфейса Инструменты DSL, необходимо помнить о следующем.
Может оказаться, что некоторые кажущиеся простыми изменения вызывают несоответствия и дают непредвиденные результаты.
В будущем реализация может измениться и внесенные с помощью API-интерфейса Инструменты DSL изменения окажутся недействительными.
Сборки API
В этой таблице представлены сборки, позволяющие обеспечить расширяемость средств UML, и пространства имен, которые рекомендуется использовать.
Сборка |
Пространства имен |
Предоставляет доступ к |
---|---|---|
Microsoft.VisualStudio.Uml.Interfaces |
(Все) |
Типы UML. |
Microsoft.VisualStudio.ArchitectureTools.Extensibility |
||
Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation |
||
Microsoft.VisualStudio.Modeling.Sdk.11.0 |
||
(другие пространства имен) |
Рекомендуется только для опытных пользователей. |
|
Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 |
Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement |
|
(другие пространства имен) |
Рекомендуется только для опытных пользователей. |
|
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
||
Microsoft.TeamFoundation.WorkItemTracking.Client |
||
Microsoft.TeamFoundation.Client |
||
System.ComponentModel.Composition |
||
System.Linq |
Простое управление коллекциями, особенно при работе с отношениями. |