Udostępnij za pośrednictwem


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.

Ee330925.collapse_all(pl-pl,VS.110).gifRelacje

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.

Ee330925.collapse_all(pl-pl,VS.110).gifDrzewo 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.

Diagram klas: Model, wykres, kształt i Element

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.

Jak: Definiowanie polecenia Menu na diagramie modelowania

Microsoft.VisualStudio.Modeling.ExtensionEnablement

.ILinkedUndoContext

(w Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)

Umożliwia zmiany grupy do transakcji.

Jak: łącze Aktualizacje modelu przy użyciu 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

Ee330925.collapse_all(pl-pl,VS.110).gifAby 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>) {...}

Ee330925.collapse_all(pl-pl,VS.110).gifAby 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:

Zobacz też

Koncepcje

Rozszerzanie modeli UML i diagramów

Programowanie przy użyciu interfejsu API UML