Como: criar elementos e relações
No código de programa para uma extensão do 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 forma 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 |
Chamar 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, especialmente em diagramas de seqüência.Consulte Como: Editar diagramas de seqüência usando a API de UML.
Para alguns tipos de elemento, você pode alterar o proprietário de um elemento durante sua existência, 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
Obtenha o proprietário da associação, que geralmente é o pacote ou o modelo que contém o fim de origem do relacionamento.
Invoca o método Create necessário sobre o proprietário.
Defina as propriedades do relacionamento, como seu nome.
Por exemplo:
IAssociation association = subject.Package.CreateAssociation(subject, observer); association .Name = "Observes";
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, relação de 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.
Todas as formas que representado-lo em um diagrama também será excluída.