Jak: Przejdź do modelu UML
W tym temacie przedstawiono główne typy modelu UML.
Elementy modelu, modelu i modelu magazynu
Typy zdefiniowane w zestawie Microsoft.VisualStudio.Uml.Interfaces.dll odpowiadają od typów zdefiniowanych w Specyfikacja UML, wersja 2.1.2.
Typy w specyfikacja UML są realizowane jako interfejsy w Visual Studio Ultimate.Litera "I" zabezpieczony nazwa każdego typu.For example: IElement, IClass, IInteraction, IOperation.
Wszystkie typy z wyjątkiem IElement dziedziczą właściwości nadtypów jednego lub więcej.
Podsumowanie typów modeli, zobacz Typy elementów modelu.
Pełne informacje na temat interfejsu API, zobacz Interfejs API odniesienia dla rozszerzeń do modelowania diagramów UML.
Relacje
Właściwości i relacje, które są zdefiniowane w specyfikacji UML są implementowane jako.Właściwości netto.
Większość relacji są żeglownych w obu kierunkach.Relacja odpowiada pary właściwości z jedną właściwość na koniec każdego typu.Na przykład właściwości IElement.Owner i IElement.OwnedElements stanowią dwa końce relacji.W związku z tym wyrażenie to będzie zawsze oceny na wartość true:
IElement c; ... c.OwnedElements.All(x => x.Owner == c)
Wiele relacji, takich jak IAssociation, również są reprezentowane przez obiekt, który może mieć własne właściwości.
Usunięcie elementu z modelu żadnych relacji, w której bierze udział jest automatycznie usuwany, a właściwość na drugim końcu jest aktualizowana.
Jeżeli specyfikacja UML przypisuje właściwości mnożenia od 0 do 1, może mieć wartość null.Liczebność maksymalnej większej niż 1 oznacza, że.Właściwość netto ma typ: IEnumerable<typu>.
Aby uzyskać więcej informacji o przeszukiwaniu relacje, zobacz Jak: Przejdź relacje z interfejsem API UML.
Drzewo własności
Model zawiera drzewo z IElement obiektów.Każdy element ma właściwości OwnedElements i Owner.
W większości przypadków obiekty docelowe z Owner i OwnedElements właściwości również odwołują się inne właściwości, które mają bardziej specyficzne nazwy.Na przykład każdej operacji UML jest własnością klasy UML.Dlatego IOperation ma właściwość o nazwie Classi w każdym IOperation obiektu, Class == Owner.
Jest najwyższym elementem drzewa, która ma bez właściciela, IModel.IModel jest zawarty w IModelStore, w którym jest Root.
Każdy element modelu jest tworzony z właściciela.Aby uzyskać więcej informacji, zobacz Jak: tworzenie elementów i relacje.
Kształtów i diagramów
Elementy w modelu UML mogą być wyświetlane na diagramach.Różne typy diagramów można wyświetlić różnych podtypów IElement.
W niektórych przypadkach element może występować w więcej niż jeden diagram.Na przykład IUseCase element może mieć kilka IShapes, które mogą być wyświetlane na jednym diagramie lub różne diagramy.
Kształty są rozmieszczone w drzewie.Krawędzie drzewa są reprezentowane przez właściwości ParentShape i ChildShapes.Diagramy są tylko kształty, które nie mają elementów nadrzędnych.Kształty na diagramie powierzchni składają się z mniejsze części.Na przykład kształtu Klasa ma przedziałów atrybutów i operacji.
Aby uzyskać więcej informacji na temat kształtów, zobacz Jak: wyświetlanie modelu na diagramach.
Dostęp do modelu w rozszerzeniach
W Visual Studio zdefiniowane jako składniki MEF rozszerzeń, można zadeklarować właściwości, które importować informacje z kontekstu, w którym działa rozszerzenia.
Typ atrybutu |
Co to zapewnia dostęp do |
Więcej informacji |
---|---|---|
Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation .IDiagramContext (w Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll) |
Na bieżącym diagramie fokus. |
|
Microsoft.VisualStudio.Modeling.ExtensionEnablement .ILinkedUndoContext (w Microsoft.VisualStudio.Modeling.Sdk.11.0.dll) |
Umożliwia zmiany grupy do transakcji. |
|
Microsoft.VisualStudio.Shell.SVsServiceProvider (w Microsoft.VisualStudio.Shell.Immutable.11.0.dll) |
The host Visual Studio.Stamtąd można uzyskać dostęp, pliki, projekty i inne aspekty. |
Jak: otworzyć modelu UML, używając interfejsu API programu Visual Studio |
Aby uzyskać kontekście
Jedną lub obie z następujących interfejsów wewnątrz klasy rozszerzenie, oświadczam:
[Import] public IDiagramContext DiagramContext { get; set; }
Ramy zarządzanych rozszerzeń (MEF) będzie powiązanie tych definicji, z których można uzyskać bieżącym diagramie, model magazynu, obiekt główny i tak dalej:
IDiagram diagram = this.DiagramContext.CurrentDiagram;
IClassDiagram classDiagram = diagram as IClassDiagram;
// or diagrams of other types
IModelStore modelStore = diagram.ModelStore;
IModel model = modelStore.Root;
foreach (IDiagram diagram in modelStore.Diagrams) {...}
foreach (IElement element in modelStore.AllInstances<IUseCase>) {...}
Aby uzyskać bieżące zaznaczenie.
// All selected shapes and their elements
foreach (IShape shape in diagram.SelectedShapes)
{
IDiagram selectedDiagram = shape as IDiagram;
if (selectedDiagram != null)
{ // no shape selected - user right-clicked the diagram
... Context.CurrentDiagram ...
}
else
{
IElement selectedElement = shape.Element;
...}
// All selected shapes that display a specfic type of element
foreach (IShape<IInterface> in
diagram.GetSelectedShapes<IInterface>())
{...}
Dostęp do innego modelu lub diagramy
Można:
Użyj Visual Studio model bus, aby utworzyć łącza między elementami w różnych modelach.Aby uzyskać więcej informacji, zobacz Jak: integrowanie modeli UML z innych modeli i narzędzia.
Ładowanie projektu modelowanie i diagramy w trybie tylko do odczytu bez dokonywania widoczne w Visual Studio interfejsu użytkownika.Aby uzyskać więcej informacji, zobacz Jak: odczytać modelu UML w kod programu.
Otwórz projekt modelowania i jego diagramów w Visual Studio, a następnie uzyskać dostęp do zawartości.Aby uzyskać więcej informacji, zobacz Jak: otworzyć modelu UML, używając interfejsu API programu Visual Studio.