Condividi tramite


Procedura: creare elementi e relazioni

Nel codice programma di un'estensione di Visual Studio Ultimate è possibile creare ed eliminare elementi e relazioni.

Creare un elemento del modello

Importazioni degli spazi dei nomi

È necessario includere le istruzioni using seguenti.

I metodi di creazione sono definiti come metodi di estensione in questo spazio dei nomi:

using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;

Ottenere il proprietario dell'elemento che si desidera creare

Un modello forma una singola struttura ad albero, in modo che ogni elemento disponga di un solo proprietario, ad eccezione della radice del modello. Il tipo della radice del modello è IModel, ovvero un tipo IPackage.

Se si crea un elemento che verrà visualizzato in un diagramma specifico, ad esempio il diagramma corrente dell'utente, è necessario in genere crearlo nel pacchetto collegato a tale diagramma. Ad esempio:

IPackage linkedPackage = Context.CurrentDiagram.Element as IPackage;

Nella tabella seguente viene riepilogata la proprietà dei comuni elementi del modello:

Elemento da creare

Proprietario

IActor, IUseCase, IComponent, IClass, IInterface, IEnumeration

IActivity, IInteraction

IPackage, IModel

IAttribute, IOperation

IClass, IInterface

IPart, IPort

IComponent

IAction, IObjectNode

IActivity

ILifeline, IMessage, ICombinedFragment

IInteraction

Richiamare il metodo di creazione del proprietario

Il formato del nome del metodo è: CreateTipoProprietario(). Ad esempio:

IUseCase usecase1 = linkedPackage.CreateUseCase();

Alcuni tipi dispongono di metodi di creazione più complessi, in particolare nei diagrammi di sequenza. Vedere Procedura: modificare i diagrammi di sequenza tramite l'API UML.

Per alcuni tipi di elemento è possibile modificare il proprietario di un elemento nel corso della relativa durata utilizzando SetOwner(newOwner). 

Impostare il nome e altre proprietà

usecase1.Name = "user logs in";

 

Esempio

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

Creare un'associazione

Per creare un'associazione

  1. Ottenere il proprietario dell'associazione che in genere è il pacchetto o il modello contenente l'estremità di origine della relazione.

  2. Richiamare il metodo di creazione richiesto del proprietario.

  3. Impostare le proprietà della relazione, ad esempio il nome.

    Ad esempio:

    IAssociation association = subject.Package.CreateAssociation(subject, observer);
    association .Name = "Observes";
    
  4. Impostare le proprietà di ogni estremità della relazione. Sono sempre presenti due MemberEnds. Ad esempio:

    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;
    

Creare una generalizzazione

IGeneralization generalization = 
  subclass.CreateGeneralization(superClass);

Eliminare un elemento, una relazione o una generalizzazione dal modello

anElement.Delete();

Quando si elimina un elemento da un modello:

  • Viene eliminata anche ogni relazione ad esso collegata.

  • Viene eliminata anche ogni forma che lo rappresentava in un diagramma.

 

Vedere anche

Concetti

Estensione di modelli e diagrammi UML

Procedura: visualizzare un modello nei diagrammi