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 |
---|---|---|
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. |
|
IPackage.CreateClass() IClass.CreateOperation() |
Jeder Elementtyp verfügt über Methoden zum Erstellen seiner untergeordneten Elemente. |
|
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. |
|
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. |
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.Presentation |
||
Microsoft.VisualStudio.Modeling.Sdk.10.0 |
||
(andere Namespaces) |
Nur für erweiterte Verwendung empfohlen |
|
Microsoft.VisualStudio.Modeling.Sdk.Diagrams.10.0 |
Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement |
|
(andere Namespaces) |
Nur für erweiterte Verwendung empfohlen |
|
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
|
Microsoft.TeamFoundation.WorkItemTracking.Client |
||
Microsoft.TeamFoundation.Client |
||
System.ComponentModel.Composition |
||
System.Linq |
Einfache Bearbeitung von Auflistungen, insbesondere bei Beziehungen |