Jak: navigace modelu UML
Toto téma představuje hlavní typy modelu UML.
Prvky modelu, modelu a modelu úložiště
Typy definované v sestavení Microsoft.VisualStudio.Uml.Interfaces.dll odpovídají typům definované v specifikace UML, verze 2.1.2.
Typy specifikace UML jsou realizovány jako rozhraní v Visual Studio Ultimate.Písmeno "I" je před název každého typu.For example: IElement, IClass, IInteraction, IOperation.
Všechny druhy s výjimkou IElement dědí vlastnosti z jednoho nebo více nadtyp.
Souhrn typů model, viz Typy prvků modelu.
Úplné podrobnosti o rozhraní API naleznete v Odkaz na rozhraní API pro rozšíření modelu UML.
Vztahy
Vlastnosti a vztahy, které jsou definovány ve specifikaci UML jsou implementovány jako.NET vlastnosti.
Většina vztahy jsou snadnou navigaci v obou směrech.Vztah odpovídá dvojici vlastnosti s jednu vlastnost typu na každém konci.Například vlastnosti IElement.Owner a IElement.OwnedElements představují oba konce vztah.Proto tento výraz se vyhodnotí vždy na hodnotu true:
IElement c; ... c.OwnedElements.All(x => x.Owner == c)
Mnoho vztahů, například IAssociation, představují také objekt, který může mít své vlastní vlastnosti.
Prvek odstraníte z modelu, je automaticky odstraněny všechny relace, ve které se účastní a vlastnost na druhém konci je aktualizován.
Pokud specifikace UML přiřadí velkému 0..1 vlastnost, může mít hodnotu null.Násobnost maximální větší než 1 znamená, že.NET vlastnosti má typ: IEnumerable<typu>.
Další informace o procházení vztahy, viz Jak: navigace vztahy s UML API.
Vlastnictví stromu
Model obsahuje strom IElement objektů.Každý prvek má vlastnosti OwnedElements a Owner.
Ve většině případů cílů Owner a OwnedElements vlastnosti také odkazují jiné vlastnosti, které mají zvláštní názvy.Například každá operace UML je vlastněna třídy UML.Proto IOperation má vlastnost pojmenovanou Classa v každém IOperation objektu, Class == Owner.
Vrchní element stromu má bez vlastníka, je IModel.Je součástí IModel IModelStore, v níž je Root.
Každý prvek modelu je vytvořen s vlastníka.Další informace naleznete v tématu Jak: vytvoření prvky a vztahy.
Tvary a diagramy
Prvky v modelu UML lze zobrazit v diagramech.Různé typy diagramů můžete zobrazit různé podtypy IElement.
V některých případech se může zobrazit prvek v diagramu více.Prvek IUseCase může mít například několik IShapes, které se mohou objevit na jedné diagram nebo různé diagramy.
Obrazce jsou uspořádány ve stromové struktuře.Vlastnosti buňky ParentShape a ChildShapes představují okraje stromu.Diagramy jsou pouze obrazce, které nemají rodiče.Obrazce na povrchu diagramu jsou složeny z menší části.Například obrazec Třída má prostory pro atributy a operace.
Další informace o obrazcích Jak: zobrazení v diagramech modelu.
Přístup k modelu v rozšíření
V Visual Studio definován jako součásti MEF rozšíření, můžete deklarovat vlastnosti, které importovat informace z kontextu, ve kterém je spuštěno rozšíření.
Typ atributu |
Co to poskytuje přístup k |
Další informace |
---|---|---|
Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation .IDiagramContext (v Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll) |
Aktuální zaměření diagramu. |
|
Microsoft.VisualStudio.Modeling.ExtensionEnablement .ILinkedUndoContext (v Microsoft.VisualStudio.Modeling.Sdk.11.0.dll) |
Umožňuje skupině změny do transakcí. |
|
Microsoft.VisualStudio.Shell.SVsServiceProvider (v Microsoft.VisualStudio.Shell.Immutable.11.0.dll) |
The host Visual Studio.Zde můžete přistupovat, soubory, projekty a další aspekty. |
Jak: Otevřete UML Model pomocí rozhraní API aplikace Visual Studio |
Získání kontextu
Prohlašuji, že jeden nebo oba následující rozhraní uvnitř třídy rozšíření:
[Import] public IDiagramContext DiagramContext { get; set; }
Rámec spravované rozšiřitelnost (MEF) vytvoří vazbu těchto definic, ze kterých můžete získat aktuální diagram, úložiště modelu, kořenový objekt a podobně:
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>) {...}
Získat aktuální výběr
// 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>())
{...}
Přístup k jiný model nebo diagramy
Můžete:
Použití Visual Studio modelu sběrnice vytvořit propojení mezi prvky v různých modelech.Další informace naleznete v tématu Jak: Modely UML integrovat s ostatními modely a nástroje.
Načíst bez zviditelnění v projektu modelování a diagramy v režimu jen pro čtení Visual Studio uživatelského rozhraní.Další informace naleznete v tématu Jak: čtení modelu UML v kódu programu.
Otevřete projekt modelování a jeho diagramy v Visual Studioa pro přístup k obsahu.Další informace naleznete v tématu Jak: Otevřete UML Model pomocí rozhraní API aplikace Visual Studio.