كيفية القيام بما يلي: الانتقال في طراز UML

يقدم هذا الموضوع الأنواع الرئيسية من طراز UML.

عناصر الطراز, الطراز, مخزن الطراز

الأنواع المعرّفة في التجميع Microsoft.VisualStudio.Uml.Interfaces.dll تتوافق مع الأنواع المعرّفة في مواصفات UML ، الإصدار 2.1.2.

الأنواع في مواصفات UML يتم تحقيقها كواجهات في Visual Studio Ultimate. الحرف 'I' يتم إرفاقه مسبقاً باسم كل نوع. فعلى سبيل المثال: IElement, IClass, IInteraction, IOperation.

كافة الأنواع باستثناء IElement ترث خصائص من نوع رئيسي واحد أو أكثر.

العلاقات

الخصائص و العلاقات المعرفة في مواصفات UML يتم تطبيقها كخصائص .NET .

تكون معظم العلاقات قابلة للتنقل في كلا الاتجاهات. العلاقة تناظر زوج من الخصائص، بخاصية واحدة على النوع في كل طرف. على سبيل المثال، الخصائص IElement.Owner و IElement.OwnedElements تمثل طرفي العلاقة. لذلك، سيتم دوماً تقييم هذا التعبير إلى true:

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

علاقات كثيرة ,مثل IAssociation, يمكن تمثيلها أيضاً بواسطة كائن يمكن أن يكون لديه الخصائص الخاصة به.

إذا قمت بحذف عنصر من الطراز, يتم تلقائياً حذف أي علاقة مشاركة ، و يتم تحديث الخاصية عند الطرف الآخر.

إذا كانت مواصفات UML تعيّن تعدد 0..1 إلى خاصية، قد يكون لديك القيمة null. التعدد بحد أقصى أكبر من 1 يعني أن الخاصية .NET لديها النوع: IEnumerable<النوع>:

للحصول على مزيد من المعلومات حول اجتياز العلاقات ، راجع كيفية القيام بما يلي: الانتقال بين العلاقات باستخدام UML API.

شجرة الملكية

يحتوي الطراز على شجرة من كائنات IElement . كل عنصر لديه خصائص OwnedElements و Owner.

في معظم الحالات، أهداف Owner و OwnedElements يتم أيضا الرجوع إليها بواسطة بعض الخصائص الأخرى التي لها أسماء أكثر تحديداً. على سبيل المثال، كل عملية UML مملوكة لفئة UML. ولذلك IOperation تحتوي على خاصية مسماة Class ، و في كل كائن IOperation ، Class == Owner.

أعلى عنصر في شجرة وحدة التحكم، فيه ليس مالك، هو IModel. IModel هو المتضمنة في IModelStore، في عليها هو Root.

يتم إنشاء كل عنصر الطراز بمالك. لمزيد من المعلومات، راجع كيفية القيام بما يلي: إنشاء عناصر و علاقات.

مخطط الفئة: النموذج والمخطط والشكل والعنصر

المخططات و الأشكال

العناصر في طراز UML يمكن عرضها في مخططات. الأنواع المختلفة من المخططات يمكنها عرض أنواع فرعية مختلفة من IElement.

في بعض الحالات، يمكن أن يظهر عنصر على أكثر من مخطط واحد. على سبيل المثال، عنصر IUseCase IShapes يمكن أن يحتوي على IShapes عديدة, و التي يمكن أن تظهر على مخطط واحد أو مخططات مختلفة.

يتم ترتيب الأشكال في شجرة. يتم تمثيل حواف الشجرة بواسطة الخصائص ParentShape و ChildShapes . المخططات تعتبر الأشكال الوحيدة التي ليس لها أصول. الأشكال الموجودة على سطح مخطط تتكون من أجزاء أصغر. على سبيل المثال، شكل فئة يحتوي على حجرات للسمات والعمليات.

لمزيد من المعلومات حول الأشكال, راجع كيفية القيام بما يلي: عرض نموذج على صوره رسم مخطط توضيحي..

الوصول إلى الطراز في الملحقات

في ملحقات Visual Studio المعرّفة كمكونات MEF, يمكنك تعريف خصائص تقوم باستيراد معلومات من السياق الذي يتم تشغيل الملحق بداخله.

نوع السمة

ما يوفر هذا الوصول إليه

مزيد من المعلومات

Microsoft.VisualStudio.ArchitectureTools.التوافق مع البرامج الخارجية.Presentation

.IDiagramContext

(في Microsoft.VisualStudio.ArchitectureTools.التوافق مع البرامج الخارجية.dll)

مخطط التركيز الحالي.

كيفية القيام بما يلي: تعريف أمر قائمة على مخطط طراز

Microsoft.VisualStudio.Modeling.ExtensionEnablement

.ILinkedUndoContext

(في Microsoft.VisualStudio.Modeling.Sdk.10.0.dll)

يسمح لك بتجميع التغييرات في عمليات.

كيفية القيام بما يلي: ربط تحديثات طراز باستخدام العمليات

.SVsServiceProvider Microsoft.VisualStudio.Shell

(في Microsoft.VisualStudio.Shell.Immutable.10.0.dll)

Visual Studio المضيف. من هناك يمكنك الوصول إلى ملفات, و مشاريع, و أوجه أخرى.

كيفية القيام بما يلي: فتح طراز UML باستخدام Visual Studio API

للحصول على السياق

قم بتعريف واحد أو كلٍ من الواجهتين التاليتين داخل فئة الملحق الخاصة بك:

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

Managed Extensibility Framework (MEF) ستقوم بربط هذه بالتعريفات التي يمكنك الحصول منها على المخطط الحالي, مخزن الطراز, الكائن الجذر, وما إلى ذلك:

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

للحصول على التحديد الحالي

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

الوصول إلى طراز آخر أو مخططات

يمكنك القيام بما يلي:

راجع أيضًا:

موارد أخرى

طرازات متوسعه و مخططات

برمجة بإستخدام API UML