Como: Criar elementos e relações

No código de programa para uma extensão para Visual Studio Ultimate, você pode criar e excluir elementos e relações.

Criar um elemento de modelo

Importações de namespace

Você deve incluir o seguinte using instruções.

Os métodos de criação são definidos como métodos de extensão neste namespace:

using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;

Obter o proprietário do elemento que você deseja criar

Um modelo de formulários a uma única árvore, para que cada item possui um proprietário, exceto para a raiz do modelo. A raiz do modelo é do tipo IModel, que é um tipo de IPackage.

Se você estiver criando um elemento que será exibido em um diagrama específico, por exemplo, diagrama de atual do usuário, você deve geralmente criá-la no pacote que está vinculado a esse diagrama. Por exemplo:

IPackage linkedPackage = Context.CurrentDiagram.Element as IPackage;

Esta tabela resume a posse de elementos de modelo comuns:

Elemento a ser criado.

Owner

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 o método Create sobre o proprietário

O nome do método é do formulário: CreateOwnedType(). Por exemplo:

IUseCase usecase1 = linkedPackage.CreateUseCase();

Alguns tipos têm métodos de criação mais complexos, particularmente em diagramas de seqüência. Consulte Como: Editar os diagramas de seqüência usando a API de UML.

Para alguns tipos de elemento, você pode alterar o proprietário de um elemento durante seu ciclo de vida, usando SetOwner(newOwner). 

Definir o nome e outras propriedades.

usecase1.Name = "user logs in";

 

Exemplo

 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"; ...

Criar uma associação

Para criar uma associação

  1. Obtenha o proprietário da associação, que geralmente é o pacote ou um modelo contendo o fim de origem do relacionamento.

  2. Chame o método de criar necessário sobre o proprietário.

  3. Defina as propriedades do relacionamento como, por exemplo, seu nome.

    Por exemplo:

    IAssociation association = subject.Package.CreateAssociation(subject, observer);
    association .Name = "Observes";
    
  4. Defina as propriedades de cada extremidade do relacionamento. Sempre há dois MemberEnds. Por exemplo:

    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;
    

Criar uma generalização

IGeneralization generalization = 
  subclass.CreateGeneralization(superClass);

Excluir um elemento, o relacionamento ou a generalização do modelo

anElement.Delete();

Quando você exclui um elemento de um modelo:

  • Cada relação que vincula a ele também será excluída.

  • Cada forma representadas-lo em um diagrama também será excluída.

 

Consulte também

Conceitos

Diagramas e modelos UML estendendo

Como: Exibir um modelo em diagramas