الأربعاء، 28 يوليو 2010

مخططات التفاعل Interaction Diagrams

نموذج مخططات التفاعل "Interaction Diagrams" هو سلوك حالات الاستخدام "use cases" مع وصف طريقة تفاعل مجموعات من الكائنات "objects" لإكمال المهمة. يوجد نوعين من مخططات التفاعل وهم مخططات التسلسل "sequence diagrams" و مخططات التعاون "collaboration diagrams". ويهدف هذا المثال فقط الى اعطاء مقدمة للغة النمذجة الموحدة “Unified Modeling Language — UML” و  مخططات التفاعل "Interaction Diagrams".

متى تستخدم مخططات التفاعل Interaction Diagrams

وتستخدم مخططات التفاعل "Interaction Diagrams"  عندما تريد وضع نموذج لسلوك كائنات متعددة "several objects" في حالة استخدامها "use case". وهي تبين كيف يمكن للكائنات "objects" ان تتعاون لتحقيق سلوك معين.  مخططات التفاعل "Interaction Diagrams" لا يمكنها ان تعطي وصف عميق للسلوك. إذا كنت تريد أن ترى ما تقوم به كائنات معينة للعديد من حالات الاستخدام فعليك باستخدام مخطط الحالة "state diagram".

كيفية رسم مخططات التفاعل Interaction Diagrams

مخططات تسلسل "sequence diagrams" و مخططات التعاون "collaboration diagrams" يمكن استخدامهما على حد سواء لوصف التفاعل بين الكائنات  "objects" في حالة استخدامهم "use case". مخططات التسلسل "sequence diagrams" يظهرون بشكل عام تسلسل الأحداث التي تحدث. مخططات التعاون "collaboration diagrams" تصف كيفية ترابط الكائنات بشكل ثابت. كل من المخططات بسيطة نسبيا للاستخلاص وتحتوي على عناصر مماثلة.

مخططات تسلسل sequence diagrams

مخططات التسلسل "Sequence diagrams" تشرح سلوك الكائنات "objects" في حالة استخدامها "use case" مع وصف الكائنات "objects" والرسائل المُمررة بينهم. تتم قراءة المخططات من اليسار إلى اليمين وتنازليا. يوضح المثال التالي كائن الفئة "object of class" يبداء سلوكه عن طريق إرسال رسالة إلى كائن الفئة الاخر. تُمرر الرسائل بين الكائنات المختلفة الى ان يتلقى كائن الفئة 
"object of class" الرسالة النهائية.



أدناه هو مثال أكثر تعقيدا. تمثل المستطيلات العمودية الزرقاء المضيئة نشاط الكائنات "objects"  بينما تمثل الخطوط المتقطعة الخضراء العمودية حياة الكائن " the life of the object". المستطيلات الخضراء العمودية تمثل متى يتحصل كائن معين على السيطرة. و يمثيل هدا المربع   عملية  إتلاف الكائن. كما تبين هذه المخططات حالات الرسائل التي يتم إرسالها إلى كائن آخر. يتم سرد الحالة "[condition]" بين معقفين [] بجانب الرسالة. على سبيل المثال  الحالة "[condition]" لابد ان يتم تغطيتها قبل ان يقوم كائن الفئة 2 "object:class2" من إرسال الرسالة "message()" لكائن الفئة 3 "object:class3".



المخطط التالي يبين بداية مخطط التسلسل "Sequence diagram"  لوضع الأمر. الكائن an Order Entry Window يقوم بإنشاء و إرسال رسالة إلى an Order لإعداد الامر. نلاحظ ان أسماء الكائنات "objects" تليها نقطتان فوق بعضهما. أسماء الفئات "classes" التي تنتمي إليها الكائنات "objects" لا يجب أن يتم سردها. لكن النقطتان مطلوب وجودهما للدلالة على أنه يوجد اسم يتبع هذا الكائن objectName:className نظام التسمية.

بعد ما يتحقق الكائن  Order من معرفة ما اذا كان هذا البند هو في التخزين و إذا كان تحقق من وجود الشرط  [InStock] فسيقوم بإرسال رسالة ليتم خلق تسليم جديد لهذا البند.




المخططات التالية تضيف رسالة مشروطة اخرى إلى كائن الأمر "Order object". إذا كان هذا البند هو [OutOfStock] يرسل رسالة إلى الكائن Order Entry Window تفيد أن الكائن "object" اصبح خارج التخزين.




هذا الرسم البياني يبين تسلسل بسيط للرسائل التي يتم تمريرها بين الكائنات لإكمال حالة الاستخدام لطلب عنصر.

مخططات التعاون "collaboration diagrams"

مخططات التعاون "Collaboration diagrams" هي أيضا من السهل نسبيا رسمها. انها تشير الى العلاقة بين الكائنات "objects" وترتيب تمرير الرسائل بينها. يتم سرد الكائنات كرموز و أسهم تبين عملية تمرير الرسائل بينها. الأرقام بجانب الرسائل تسمى أرقام التسلسل "sequence numbers". وكما يوحي اسمها ، انها تشير الى تسلسل الرسائل حسب عملية تمريرها في ما بين الكائنات "objects". هناك العديد من ترقيمات التسلسل المقبولة في مخططات لغة النمذجة الموحدة "UML" . شكل الارقام البسيطة 1 ، 2 ، 3... ويمكن استخدام الشكل ، كما في المثال أدناه ، أو في المخططات الأكثر تفصيلا وتعقيدا: 1, 1.1 ,1.2, 1.2.1...



المثال التالي يوضح مخطط تعاون "collaboration diagram" بسيط من أجل وضع حالة استخدام امر "order use case". هذه المرة أسماء الكائنات "objects" تظهر بعد النقطتين ، مثل :Order Entry Window عوضا عن التسمية التقليدية objectName:className .هذه المرة يظهر اسم الفئة لإثبات أن كل الكائنات لتلك الفئة سوف تتصرف بنفس الطريقة.



إذا كنت ترى خطأ أو لديك أسئلة لا تتردد في وضع تعليق

هناك تعليق واحد: