Freigeben über


Gewusst wie: Erstellen von Elementen und Beziehungen

Im Programmcode für eine Erweiterung von Visual Studio Ultimate können Sie Elemente und Beziehungen erstellen und löschen.

Erstellen eines Modellelements

Namespaceimporte

Sie müssen die folgenden using-Anweisungen einschließen.

Die Erstellungsmethoden werden als Erweiterungsmethoden in diesem Namespace definiert:

using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;

Abrufen des Besitzers des zu erstellenden Elements

Ein Modell bildet eine einzelne Struktur, damit jedes Element, mit Ausnahme des Modellstamms, einen Besitzer hat. Der Modellstamm hat den Typ IModel, der ein Typ von IPackage ist.

Wenn Sie ein Element erstellen, das in einem bestimmten Diagramm angezeigt wird, z. B. im aktuellen Diagramm des Benutzers, sollten Sie es normalerweise in dem Paket erstellen, das mit diesem Diagramm verknüpft ist. Beispiel:

IPackage linkedPackage = Context.CurrentDiagram.Element as IPackage;

In dieser Tabelle wird der Besitz von allgemeinen Modellelementen zusammengefasst:

Zu erstellendes Element

Besitzer

IActor, IUseCase, IComponent, IClass, IInterface, IEnumeration

IActivity, IInteraction

IPackage, IModel

IAttribute, IOperation

IClass, IInterface

IPart, IPort

IComponent

IAction, IObjectNode

IActivity

ILifeline, IMessage, ICombinedFragment

IInteraction

Aufrufen der "Create"-Methode auf dem Besitzerelement

Der Methodenname hat die folgende Form: CreateOwnedType (). Beispiel:

IUseCase usecase1 = linkedPackage.CreateUseCase();

Einige Typen verfügen über komplexere Erstellungsmethoden, besonders in Sequenzdiagrammen. Informationen finden Sie unter Gewusst wie: Bearbeiten von Sequenzdiagrammen mit der UML-API.

Für einige Typen des Elements können Sie den Besitzer eines Elements während seiner Lebensdauer mithilfe von SetOwner(newOwner) ändern. 

Festlegen des Namens und anderer Eigenschaften

usecase1.Name = "user logs in";

 

Beispiel

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

Erstellen einer Zuordnung

So erstellen Sie eine Zuordnung

  1. Rufen Sie den Besitzer der Zuordnung ab. Dabei handelt es sich normalerweise um das Paket oder Modell, in dem das Quellende der Beziehung enthalten ist.

  2. Rufen Sie die erforderliche "Create"-Methode auf dem Besitzerelement auf.

  3. Legen Sie die Eigenschaften der Beziehung fest, z. B. ihren Namen.

    Beispiel:

    IAssociation association = subject.Package.CreateAssociation(subject, observer);
    association .Name = "Observes";
    
  4. Legen Sie die Eigenschaften der beiden Enden der Beziehung fest. Es sind immer zwei MemberEnds vorhanden. Beispiel:

    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;
    

Erstellen einer Generalisierung

IGeneralization generalization = 
  subclass.CreateGeneralization(superClass);

Löschen eines Elements, einer Beziehung oder einer Generalisierung aus dem Modell

anElement.Delete();

Wenn Sie ein Element aus einem Modell löschen, gilt Folgendes:

  • Jede Beziehung, die mit dem Element verknüpft ist, wird ebenfalls gelöscht.

  • Jede Form, die das Element im Diagramm dargestellt hat, wird ebenfalls gelöscht.

 

Siehe auch

Weitere Ressourcen

Erweitern von UML-Modellen und Diagrammen

Gewusst wie: Anzeigen eines Modells in Diagrammen