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 |
---|---|---|
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". |
|
IPackage.CreateClass() IClass.CreateOperation() |
Cada tipo de elemento contiene métodos para crear sus elementos secundarios. |
|
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. |
|
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. |
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. |
|
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. |
IInteraction, ILifeline, IMessage |
La creación y actualización de un diagrama de interacciones es ligeramente distinta que en otros tipos de diagramas. |
|
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.Presentation |
||
Microsoft.VisualStudio.Modeling.Sdk.12.0 |
||
(otros espacios de nombres) |
Solo se recomienda para el uso avanzado. |
|
Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 |
Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement |
|
(otros espacios de nombres) |
Solo se recomienda para el uso avanzado. |
|
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
||
Microsoft.TeamFoundation.WorkItemTracking.Client |
||
Microsoft.TeamFoundation.Client |
||
System.ComponentModel.Composition |
||
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