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
Obtenha o proprietário da associação, que geralmente é o pacote ou um modelo contendo o fim de origem do relacionamento.
Chame o método de criar necessário sobre o proprietário.
Defina as propriedades do relacionamento como, por exemplo, 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, 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.