Partilhar via


Programando com a API UML

A API UML do Visual Studio Ultimate permite que você escreva código para criar, ler e atualizar modelos e diagramas de UML.

Além das páginas de referência da API, os tópicos a seguir descrevem a API.

Tópico

Tipos e métodos de exemplo descritos

Recursos descritos

Como navegar em relações com a API UML

Elementos UML e suas propriedades e associações. Por exemplo, IElement e seus descendentes, incluindo: IClass, IActivity, IUseCase, IComponent, IInteraction, IModel, IPackage

No Visual Studio Ultimate, os modelos de UML obedecem a versão 2.1.2 de especificação de UML, que pode ser obtida na Página de recurso de UML. Cada tipo é uma interface que tem o mesmo nome que o tipo de UML, prefixados com “I”.

Como criar elementos e relações

IPackage.CreateClass()

IClass.CreateOperation()

Cada tipo de elemento tem métodos para criar seus filhos.

Como exibir um modelo em diagramas

IShape, IDiagram

IShape.Move()

Cada elemento em um modelo pode ser representado como uma forma em um diagrama. Em alguns casos, você pode criar novas formas para cada objeto. Você pode mover, redimensionar, colorir e recolher ou expandir essas formas.

Como: navegar no modelo UML

IModelStore

IDiagramContext

O Armazenamento de Modelo armazena o modelo.

O contexto do diagrama concede acesso ao diagrama e ao repositório atuais.

Como vincular atualizações de modelo usando transações

ILinkedUndoContext

Você pode vincular uma série de alterações em uma transação.

Como definir um comando de menu em um diagrama de modelagem

IMenuCommand

IGestureExtension

ICommandExtension

Você pode estender a funcionalidade de um diagrama definindo os comandos chamados clicando duas vezes e arrastando para o diagrama.

Como definir restrições de validação para modelos UML

ValidationContext

Você pode definir as regras de validação que ajudam a garantir que um modelo obedeça as restrições especificadas.

Como obter elementos de modelo UML de IDataObject

IElement, IShape

Quando um elemento é arrastado do Gerenciador de Modelos UML ou de um diagrama de UML para outro diagrama ou aplicativo, ele é serializado como um IDataObject.

Como editar diagramas de sequência usando a API UML

IInteraction, ILifeline, IMessage

A criação e atualização de um diagrama de interação diferem um pouco do trabalho com outros tipos de diagrama.

Estendendo diagramas de camada

ILayer, ILayerDiagram

Você pode escrever código para criar e editar diagramas de camada, e também validar o código de programa neles.

Sobre a implementação

As ferramentas de modelagem UML são criadas nas Ferramentas de Linguagem Específica do Domínio. Cada conjunto e cada diagrama são representados por um modelo de Ferramentas de Linguagem Específica do Domínio, e um conjunto de regras e outros métodos mantêm a consistência entre eles.

Tipos dessa plataforma são visíveis em alguns dos assemblies aos quais você faz referência para escrever extensões UML. Embora seja possível fazer as extensões para ferramentas de UML acessando a API Ferramentas de Linguagem Específica do Domínio, você deve levar as seguintes considerações em mente:

  • Você pode achar que algumas alterações aparentemente simples apresentam inconsistências e efeitos inesperados.

  • A implementação pode ser alterada no futuro, de modo que as adaptações feitas usando a API Ferramentas de Linguagem Específica do Domínio podem não funcionar mais.

Os assemblies de API

Essa tabela resume os assemblies que fornecem extensibilidade para as ferramentas UML e os namespaces que são aconselháveis você usar.

Assembly

Namespaces

Fornece acesso a:

Microsoft.VisualStudio.Uml.Interfaces

(Todos)

Os tipos de UML.

Microsoft.VisualStudio.ArchitectureTools.Extensibility

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml

Métodos de design

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation

Diagramas e formas

Microsoft.VisualStudio.ArchitectureTools.Extensibility

O projeto de modelagem

Microsoft.VisualStudio.Modeling.Sdk.12.0

Microsoft.VisualStudio.Modeling.ExtensionEnablement

Extensão de comando de menu.

Transações Undo (desfazer) associadas.

Microsoft.VisualStudio.Modeling.Validation

Validação

(outros namespaces)

Recomendado somente para uso avançado.

Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0

Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement

Manipuladores de gesto.

(outros namespaces)

Recomendado somente para uso avançado.

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

Links para itens de trabalho.

Microsoft.TeamFoundation.WorkItemTracking.Client

Microsoft.TeamFoundation.WorkItemTracking.Client

Itens de trabalho e seus campos.

Microsoft.TeamFoundation.Client

Microsoft.TeamFoundation.Client

Itens de trabalho e seus campos.

System.ComponentModel.Composition

System.ComponentModel.Composition

Exportar e importar para componentes de MEF

System.Linq

System.Linq

Fácil manipulação de coleções, especialmente ao manipular as relações.

Consulte também

Conceitos

Estendendo modelos e diagramas UML

Outros recursos

Referência de API para extensibilidade de modelagem UML