Programar con la API de UML

La API de UML de Visual Studio Ultimate permite escribir código para crear, leer y actualizar modelos y diagramas UML.

En los temas siguientes se describe la API, además de en las páginas de referencia de la API.

Tema

Métodos y tipos de ejemplo que se describen

Características que se describen

Cómo: Navegar por las relaciones con la API de UML

Elementos UML, así como sus propiedades y asociaciones.Por ejemplo, IElement y sus descendientes, incluidos: IClass, IActivity, IUseCase, IComponent, IInteraction, IModel, IPackage

En Visual Studio Ultimate, los modelos UML se ajustan a la versión de la especificación de UML 2.1.2, que puede obtenerse en la página de recursos de UML.Cada tipo es una interfaz que tiene el mismo nombre que el tipo UML precedido del prefijo "I".

Cómo: Crear elementos y relaciones

IPackage.CreateClass()

IClass.CreateOperation()

Cada tipo de elemento contiene métodos para crear sus elementos secundarios.

Cómo: Mostrar un modelo en diagramas

IShape, IDiagram

IShape.Move()

Cada elemento de un modelo se puede representar como una forma en un diagrama.En algunos casos, se pueden crear nuevas formas para cada objeto.Se puede cambiar la posición, el tamaño y el color de estas formas. También pueden contraerse y expandirse.

Cómo: Navegar por el modelo UML

IModelStore

IDiagramContext

El modelo se guarda en el almacén de modelos.

El contexto del diagrama proporciona acceso al diagrama y al almacén actuales.

Cómo: Vincular actualizaciones del modelo mediante transacciones

ILinkedUndoContext

Puede vincular una serie de cambios a una transacción.

Cómo: Definir un comando de menú en un diagrama de modelado

IMenuCommand

IGestureExtension

ICommandExtension

Para extender la funcionalidad de un diagrama, puede definir comandos que se invoquen haciendo doble clic en ellos y arrastrándolos hasta el diagrama.

Cómo: Definir restricciones de validación para modelos UML

ValidationContext

Puede definir reglas de validación que le ayuden a asegurarse de que un modelo se ajusta a las restricciones especificadas.

Cómo: Obtener elementos del modelo UML a partir de IDataObject

IElement, IShape

Cuando un elemento se arrastra desde el Explorador de modelos UML o un diagrama de UML hasta otro diagrama o aplicación, se serializa como IDataObject.

Cómo: Modificar diagramas de secuencia usando la API de UML

IInteraction, ILifeline, IMessage

La creación y actualización de un diagrama de interacciones es ligeramente distinta que en otros tipos de diagramas.

Ampliar diagramas de capas

ILayer, ILayerDiagram

Puede escribir código para crear y modificar los diagramas de capas y también validar código de programa con ellos.

Acerca de la implementación

Las herramientas de modelado UML se basan en Domain-Specific Language Tools.Un modelo de Domain-Specific Language Tools representa cada diagrama y paquete, y una colección de reglas y otros métodos mantiene la coherencia entre ellos.

Los tipos de esa plataforma están visibles en algunos de los ensamblados a los que se hace referencia para escribir extensiones UML.Aunque puede crear extensiones a las herramientas UML teniendo acceso a la API de Domain-Specific Language Tools, debería tener en cuenta las siguientes consideraciones:

  • Podría encontrar que algunos cambios aparentemente simples presentan inconsistencias y efectos inesperados.

  • La implementación puede cambiar en el futuro, de modo que las adaptaciones que realice utilizando la API de Domain-Specific Language Tools podrían dejar de funcionar.

Los ensamblados de la API

En esta tabla se resumen los ensamblados que proporcionan extensibilidad a las herramientas UML y los espacios de nombres que se recomienda utilizar.

Ensamblado

Espacios de nombres

Proporciona acceso a:

Microsoft.VisualStudio.Uml.Interfaces

(Todo)

Los tipos UML.

Microsoft.VisualStudio.ArchitectureTools.Extensibility

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml

Métodos de creación

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation

Diagramas y formas

Microsoft.VisualStudio.ArchitectureTools.Extensibility

El proyecto de modelado

Microsoft.VisualStudio.Modeling.Sdk.11.0

Microsoft.VisualStudio.Modeling.ExtensionEnablement

Extensión de comando de menú.

Transacciones de fase de reversión vinculadas.

Microsoft.VisualStudio.Modeling.Validation

Validación

(otros espacios de nombres)

Solo se recomienda para el uso avanzado.

Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0

Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement

Controladores de gestos.

(otros espacios de nombres)

Solo se recomienda para el uso avanzado.

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

Vincula a elementos de trabajo.

Microsoft.TeamFoundation.WorkItemTracking.Client

Microsoft.TeamFoundation.WorkItemTracking.Client

Elementos de trabajo y sus campos.

Microsoft.TeamFoundation.Client

Microsoft.TeamFoundation.Client

Elementos de trabajo y sus campos.

System.ComponentModel.Composition

System.ComponentModel.Composition

Exportación e importación para componentes MEF

System.Linq

System.Linq

Fácil manipulación de colecciones, sobre todo cuando se trata de relaciones.

Vea también

Conceptos

Ampliar modelos y diagramas UML

Otros recursos

Referencia de la API para la extensibilidad del modelado UML