Aracılığıyla paylaş


UML Modeli Nasıl Gezilir

Bu konu UML modelin ana türlerini tanıtır.

Model Öğeler, Model ve Model Deposu

Microsoft.VisualStudio.Uml.Interfaces.dll derlemesinde tanımlanan türler UML Specification, version 2.1.2 öğesinde tanımlanan türlere karşılık gelir.

UML Belirtimindeki türler Visual Studio Ultimate'ta arabirimler olarak gerçekleştirilir.'I' harfi her türün adının başına eklenir.Örneğin: IElement, IClass, IInteraction, IOperation.

IElement dışında tüm türler özelliklerini bir veya daha fazla supertype'dan devralır.

Ee330925.collapse_all(tr-tr,VS.110).gifİlişkiler

UML Belirtiminde tanımlanmış özellikler ve ilişkiler .NET özellikleri olarak uygulanır.

Çoğu ilişkiler her iki yönde de gezinebilir.Bir ilişki, türde her uçta bir özellik olacak şekilde bir çift özelliğe karşılık gelir.Örneğin, özellikler IElement.Owner ve IElement.OwnedElements ilişkinin iki ucunu gösterir.Bu nedenle, bu ifade her zaman true olarak değerlendirir:

IElement c; ... c.OwnedElements.All(x => x.Owner == c)

IAssociation gibi birçok ilişki de kendi özelliklerine sahip olabilecek nesne tarafından gösterilir.

Eğer modelden öğeyi silerseniz, bir parça aldığı herhangi bir ilişki otomatik olarak silinir ve diğer uçtaki özellik güncelleştirilir.

Eğer UML Belirtimi özelliğe 0..1 çeşitliliği atarsa, null değerine sahip olabilir.En fazla 1'den büyük ile olan çeşitlilik .NET özelliğinin türü olduğu anlamına gelir: IEnumerable<Type>.

Geçiş yapan ilişkiler hakkında daha fazla bilgi için bkz. UML API ile İlişkilerde Nasıl Gezilir.

Ee330925.collapse_all(tr-tr,VS.110).gifSahiplik Ağacı

Model IElement nesneler ağacı içerir.Her öğenin OwnedElements ve Owner özellikleri vardır.

Çoğu durumda, Owner ve OwnedElements özelliklerinin hedefleri daha özel isimleri olan diğer özellikler tarafından da başvurulur.Örneğin, her UML işlemi bir UML sınıfı tarafından sahiplenilir.Bu nedenle IOperationClass olarak adlandırılmış özelliğe sahiptir ve her IOperation nesnesinde, Class == Owner'dır.

Ağacın en üst öğesi IModel'dir ve Sahibi yoktur.IModel, Root içindeki IModelStore'un içinde yer alır.

Her model öğesi Sahip ile birlikte oluşturulur.Daha fazla bilgi için bkz. Öğe ve İlişkiler Nasıl Oluşturulur.

Sınıf diyagramı: Model, diyagram, Şekil ve öğe

Şekiller ve Diyagramlar

UML modeldeki öğeler diyagramlarda gösterilebilir.Farklı tür diyagramlar IElement'in farklı alt türlerini gösterebilir.

Bazı durumlarda, öğe birden çok diyagramda görünebilir.Örneğin, IUseCase öğesinin bir diyagramda veya farklı diyagramlarda görünebilen birkaç IShapes'i olabilir.

Şekiller ağaçta düzenlenir.Ağacın kenarları ParentShape ve ChildShapes özellikleri tarafından gösterilir.Diyagramlar ebeveynleri olmayan tek şekildir.Diyagramın yüzeyindeki şekiller daha küçük parçalardan oluşur.Örneğin, sınıf şeklinin öznitelikler ve işlemler için bölmeleri vardır.

Şekiller hakkında daha fazla bilgi için bkz. Bir Model, Diyagramlar Üzerinde Nasıl Görüntülenir.

Uzantılardaki Modele Erişim

MEF Bileşenleri olarak tanımlanmış Visual Studio uzantılarında, uzantının çalıştığı bağlamdan bilgi içeri aktaran özellikleri bildirebilirsiniz.

Öznitelik türü

Bu neye erişim sağlar

Daha fazla bilgi

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation

.IDiagramContext

(Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll dosyasında)

Geçerli odak diyagramı.

Nasıl yapılır: Modelleme Diyagramında Menü Komutu Tanımlama

Microsoft.VisualStudio.Modeling.ExtensionEnablement

.ILinkedUndoContext

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

İşlemlerin içindeki grup değişikliklerine izin verir.

Nasıl yapılır: İşlemleri kullanarak Model Güncelleştirmelerini Bağlama

Microsoft.VisualStudio.Shell.SVsServiceProvider

(Microsoft.VisualStudio.Shell.Immutable.11.0.dll)

Konak Visual Studio'dur.Buradan dosyalara, projelere ve diğer yönlere erişebilirsiniz.

Nasıl yapılır: Visual Studio API Kullanarak Bir UML Modeli Açma

Ee330925.collapse_all(tr-tr,VS.110).gifBağlama ulaşmak için

Uzantı sınıfınız içinde aşağıdaki bir veya her iki arabirimi birden bildirin:

[Import] public IDiagramContext DiagramContext { get; set; }

Yönetilen Genişletilebilirlik Çerçevesi (MEF) geçerli diyagramdan, model deposundan, kök nesneden ve benzerlerinden edinebileceğiniz bu tanımları bağlayacaktır.

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(tr-tr,VS.110).gifGeçerli seçime ulaşmak için

// 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>()) 
{...}

Başka model ve diyagramlara erişme

Şunları yapabilirsiniz:

Ayrıca bkz.

Kavramlar

UML Modellerini ve Diyagramları Genişletme

UML API ile Programlama