Freigeben über


Programmieren mit der UML-API

Mithilfe der UML-API von Visual Studio Ultimate können Sie Code schreiben, um UML-Modelle und -Diagramme zu erstellen, zu lesen und zu aktualisieren.

In den folgenden Themen werden die API und die API-Referenzseiten beschrieben.

Thema

Beschriebene Beispieltypen und -methoden

Beschriebene Funktionen

Gewusst wie: Navigieren in Beziehungen mit der UML-API

UML-Elemente und ihre Eigenschaften und Zuordnungen. Zum Beispiel "IElement" und die zugehörigen Nachfolgerelemente wie IClass, IActivity, IUseCase, IComponent, IInteraction, IModel, IPackage.

In Visual Studio Ultimate entsprechen UML-Modelle der UML Spezifikation, Version 2.1.2. Sie finden diese Version unter UML-Ressourcenseite (möglicherweise in englischer Sprache). Jeder Typ ist eine Schnittstelle, die den gleichen Namen wie der UML-Typ hat, dem jedoch ein "I" vorangestellt ist.

Gewusst wie: Erstellen von Elementen und Beziehungen

IPackage.CreateClass()

IClass.CreateOperation()

Jeder Elementtyp verfügt über Methoden zum Erstellen seiner untergeordneten Elemente.

Gewusst wie: Anzeigen eines Modells in Diagrammen

IShape, IDiagram

IShape.Move()

Jedes Element in einem Modell kann als Form in einem Diagramm dargestellt werden. In einigen Fällen können Sie für die einzelnen Objekte neue Formen erstellen. Sie können diese Formen verschieben, ihre Größe ändern, mit Farbe versehen und reduzieren oder erweitern.

Gewusst wie: Navigieren im UML-Modell

IModelStore

IDiagramContext

Das Modell wird im Modellspeicher gespeichert.

Über den Diagrammkontext erhalten Sie Zugriff auf das aktuelle Diagramm und den Speicher.

Gewusst wie: Verknüpfen von Modellaktualisierungen mithilfe von Transaktionen

ILinkedUndoContext

Sie können eine Reihe von Änderungen zu einer Transaktion verknüpfen.

Gewusst wie: Definieren eines Menübefehls in einem Modellierungsdiagramm

IMenuCommand

IGestureExtension

ICommandExtension

Sie können die Funktionalität eines Diagramms erweitern, indem Sie Befehle definieren, die per Doppelklick und das Ziehen in das Diagramm aufgerufen werden.

Gewusst wie: Definieren von Validierungseinschränkungen für UML-Modelle

ValidationContext

Sie können Validierungsregeln definieren, mit denen Sie sicherstellen können, dass ein Modell angegebene Einschränkungen erfüllt.

Gewusst wie: Abrufen von UML-Modellelementen aus IDataObject

IElement, IShape

Wenn ein Element aus dem UML-Modell-Explorer oder einem UML-Diagramm in ein anderes Diagramm oder eine andere Anwendung gezogen wird, wird es als IDataObject serialisiert.

Gewusst wie: Bearbeiten von Sequenzdiagrammen mit der UML-API

IInteraction, ILifeline, IMessage

Das Erstellen und Aktualisieren eines Interaktionsdiagramms unterscheidet sich leicht vom Umgang mit den anderen Diagrammtypen.

Erstellen von Erweiterungen für Ebenendiagramme

ILayer, ILayerDiagram

Sie können Code schreiben, um Ebenendiagramme zu erstellen und zu bearbeiten sowie Programmcode anhand der Diagramme zu prüfen.

Informationen zur Implementierung

Die UML-Modellierungstools basieren auf Domänenspezifische Sprachtools. Jedes Paket und jedes Diagramm wird durch ein Domänenspezifische Sprachtools-Modell dargestellt. Die Konsistenz zwischen den Paketen und Diagrammen wird durch eine Auflistung von Regeln und anderen Methoden aufrecht erhalten.

Typen von dieser Plattform sind in einigen der Assemblys sichtbar, auf die Sie zum Schreiben von UML-Erweiterungen verweisen. Erweiterungen der UML-Tools können zwar über die Domänenspezifische Sprachtools-API erstellt werden, dabei ist jedoch Folgendes zu bedenken:

  • Es kann vorkommen, dass scheinbar einfache Änderungen zu Inkonsistenzen führen und unerwartete Auswirkungen haben.

  • Die Implementierung kann sich in der Zukunft ändern, sodass mit der Domänenspezifische Sprachtools-API vorgenommene Anpassungen nicht mehr funktionieren.

API-Assemblys

In der folgenden Tabelle werden die Assemblys für die Erweiterung der UML-Tools und die empfohlenen Namespaces zusammengefasst.

Assembly

Namespaces

Bietet Zugriff auf:

Microsoft.VisualStudio.Uml.Interfaces

(Alle)

UML-Typen

Microsoft.VisualStudio.ArchitectureTools.Extensibility

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml

Erstellungsmethoden

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation

Diagramme und Formen

Microsoft.VisualStudio.ArchitectureTools.Extensibility

Modellierungsprojekt

Microsoft.VisualStudio.Modeling.Sdk.10.0

Microsoft.VisualStudio.Modeling.ExtensionEnablement

Menübefehlserweiterung

Verknüpfte Transaktionen zum Rückgängigmachen

Microsoft.VisualStudio.Modeling.Validation

Validierung

(andere Namespaces)

Nur für erweiterte Verwendung empfohlen

Microsoft.VisualStudio.Modeling.Sdk.Diagrams.10.0

Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement

Gestenhandler

(andere Namespaces)

Nur für erweiterte Verwendung empfohlen

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

Links zu Arbeitsaufgaben

Microsoft.TeamFoundation.WorkItemTracking.Client

Microsoft.TeamFoundation.WorkItemTracking.Client

Arbeitsaufgaben und zugehörige Felder

Microsoft.TeamFoundation.Client

Microsoft.TeamFoundation.Client

Arbeitsaufgaben und zugehörige Felder

System.ComponentModel.Composition

System.ComponentModel.Composition

Export und Import für MEF-Komponenten

System.Linq

System.Linq

Einfache Bearbeitung von Auflistungen, insbesondere bei Beziehungen

Siehe auch

Weitere Ressourcen

Erweitern von UML-Modellen und Diagrammen

API-Referenz für UML-Modellierungserweiterbarkeit