Compartir a través de


Cómo: Crear elementos y relaciones

En el código de programa de una extensión de Visual Studio Ultimate, puede crear y eliminar elementos y relaciones.

Crear un elemento del modelo

Importaciones del espacio de nombres

Debe incluir las siguientes instrucciones using:

Los métodos de creación se definen como métodos de extensión en este espacio de nombres:

using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;

Obtener el propietario del elemento que desea crear

Un modelo conforma un único árbol, de modo todos los elementos, a excepción de la raíz del modelo, tienen un propietario. La raíz del modelo es de tipo IModel, que es un tipo de IPackage.

Si está creando un elemento que va a aparecer en un diagrama determinado, por ejemplo, en el diagrama actual del usuario, normalmente deberá crearlo en el paquete que está vinculado a ese diagrama. Por ejemplo:

IPackage linkedPackage = Context.CurrentDiagram.Element as IPackage;

En esta tabla se resumen los propietarios de los elementos comunes del modelo:

Elemento que se va a crear

Propietario

IActor, IUseCase, IComponent, IClass, IInterface, IEnumeration

IActivity, IInteraction

IPackage, IModel

IAttribute, IOperation

IClass, IInterface

IPart, IPort

IComponent

IAction, IObjectNode

IActivity

ILifeline, IMessage, ICombinedFragment

IInteraction

Invocar el método Create en el propietario

El nombre del método tiene el formato: CreateTipoDePropietario(). Por ejemplo:

IUseCase usecase1 = linkedPackage.CreateUseCase();

Algunos tipos tienen métodos de creación más complejos, especialmente en los diagramas de secuencia. Vea Cómo: Modificar diagramas de secuencia usando la API de UML.

En algunos tipos de elemento, se puede cambiar el propietario de un elemento durante su período de duración mediante SetOwner(newOwner). 

Establecer el nombre y otras propiedades

usecase1.Name = "user logs in";

 

Ejemplo

 using Microsoft.VisualStudio.Uml.Classes;
 using Microsoft.VisualStudio.Uml.Extensions;
 ...
  void InstantiateObserverPattern (IPackage package, string namePrefix)
  {    IInterface observer = package.CreateInterface();
       observer.Name = namePrefix + "Observer";
       IOperation operation = observer.CreateOperation();
       operation.Name = "Update";
       IClass subject = package.CreateClass();
       subject.Name = namePrefix + "Subject"; ...

Crear una asociación

Para crear una asociación

  1. Obtenga el propietario de la asociación, que normalmente es el paquete o modelo que contiene el extremo de origen de la relación.

  2. Invoque el método Create necesario en el propietario.

  3. Establezca las propiedades de la relación, como su nombre.

    Por ejemplo:

    IAssociation association = subject.Package.CreateAssociation(subject, observer);
    association .Name = "Observes";
    
  4. Establezca las propiedades de cada extremo de la relación. Siempre hay dos objetos MemberEnds. Por ejemplo:

    association .MemberEnds[0].Name = "subject";   // role name
    association .MemberEnds[1].Name = "observers"; // role name
    association .MemberEnds[1].SetBounds("0..*");         
                // multiplicity defaults to "1"
    association.MemberEnds[0].Aggregation = AggregationKind.Composite;
    

Crear una generalización

IGeneralization generalization = 
  subclass.CreateGeneralization(superClass);

Eliminar un elemento, relación o generalización del modelo

anElement.Delete();

Cuando se elimina un elemento de un modelo:

  • También se eliminan todas las relaciones que tiene vinculadas.

  • También se eliminan todas las formas que lo representan en un diagrama.

 

Vea también

Conceptos

Ampliar modelos y diagramas UML

Cómo: Mostrar un modelo en diagramas