300 likes | 496 Views
نمذجة التفاعل. Interaction Modeling. نمذجة التفاعل Interaction Modeling. تُصوِّر نمذجة التفاعل، التفاعلات اللازمة بين مجموعة أغراض لتنفيذ حالة استخدام، وتُستخدَم في مرحلة متقدمة من تحليل المتطلبات بعد أن يكون نموذج الصفوف الأساسي قد اكتمل .
E N D
نمذجة التفاعل Interaction Modeling
نمذجة التفاعلInteraction Modeling • تُصوِّر نمذجة التفاعل، التفاعلات اللازمة بين مجموعة أغراض لتنفيذ حالة استخدام، وتُستخدَم في مرحلة متقدمة من تحليل المتطلبات بعد أن يكون نموذج الصفوف الأساسي قد اكتمل. • الفارق بين نمذجة النشاط ونمذجة التفاعل: يصور كلا النموذجين سلوك النظام في حالة استخدام واحدة، لكن تصور نمذجة النشاط هذا السلوك على مستوى تجريد أعلى، فهي تُبيّن تسلسل الأحداث لكن دون ربط هذه الأحداث بالأغراض، أما نمذجة التفاعل فتبين تسلسل الأحداث (الرسائل) بين أغراض متعاونة. • يوجد نوعان من مخططات التفاعل: مخطط التسلسل (Sequence Diagram) ومخطط التعاون (Collaboration Diagram). ITA330 – S9
مخططات التفاعل • تقدّم لغة UML نمطين من مخططات التفاعل: • مخطط التسلسل (Sequence Diagram) • مخطط التسلسل هو مخطط تفاعل يركّز على الترتيب الزمني للرسائل المتبادلة بين الأغراض. • مخطط التعاون (Collaboration Diagram) • مخطط التعاون هومخطط تفاعل يركز على العلاقات بين الأغراض المشاركة في التفاعل. ITA330 – S9
مخطط التسلسل • يُرسَم مخطط التسلسل كبيان ثنائي الأبعاد، فتظهر الأغراض على بعده الأفقي بينما يظهر تسلسل الرسائل على بعده الشاقولي من الأعلى باتجاه الأسفل. • يُدعى كل خط شاقولي مرسوم على محاذاة أحد الأغراض بخط حياة الغرض. • في هذا المخطط يُمثِل السهم رسالة من غرض مستدعٍ (أو مرسل) إلى عملية (أو طريقة) في الغرض المستدعى (أو المستهدَف). ويظهر لكل رسالة اسمها على الأقل، ويمكن أن تظهر وسطاء الرسالة وبعض معلومات التحكم الأخرى. • يرسم عادة مخطط تسلسل مستقل لكل حالة من حالات الاستخدام. ITA330 – S9
مخطط التسلسل • يمثل التفاعل من خلال التركيز على تسلسل استدعاء الطرق زمنياً. • يمكن أن يكون في واحدة من صيغتين: • صيغة المثل (Instance form) • الصيغة العامة (Generic form ) • تصف صيغة المثل سيناريو محدد (السيناريو هو مثل من حالة الاستخدام). • تصف الصيغة العامة تفاعلات حالة الاستخدام كاملة (قد تستخدم شروط وحالات تفريع وتكرار تنفيذ). ITA330 – S9
أهمية مخططات التسلسل • تصور تفاعل الأغراض في سيناريو محدد من حالة استخدام محددة. • توصّف الرسائل المتبادلة بين الأغراض (إضافة للرسائل المتبادلة مع الفاعلين الخارجيين). ITA330 – S9
message() delete() response() عناصر مخطط التسلسل obj1 new() obj2 إنشاء وتدمير الغرض حالة النشاط (استلام التحكم) خط حياة الغرض ITA330 – S9
مثال «global» c: Client p : ODBCProxy <<transient>> «create» : Transaction setActions(a,d,o) setValues(d, 3.4) setValues(a, “CO”) committed «destroy» ITA330 – S9
تمثيل الرسائل على مخطط التسلسل • تمثل الأسهم الرسائل المتبادلة بين غرضين في المخطط، ويُرسم السهم منطلقاً من خط حياة غرض ما إلى خط حياة غرض آخر وباعتماد التدوين التالي: ITA330 – S9
التحليل: الخطوة 13 – مخطط التسلسل يبين الشكل التالي مخطط النشاط (Activity Diagram) لحالة الاستخدام Order Configured Computer في تطبيق التسوّق الآني (راجع الجلسة رقم 6). أنشئ مخطط التسلسل مقتصراً على الخطوةالأولى للنشاط (Display Current Configuration). ITA330 – S9
التحليل: الخطوة 13 – مخطط التسلسل • يختار الفاعل الخارجي (Customer) عرض بنية حاسوب، فيرسل لهذه الغاية الرسالة openNew إلى الغرض ConfWin (من الصف ConfigurationWindow) التي تؤدي إلى إنشاء الغرض aConfWin (Boundary Class). • يحتاج الغرض aConfWin أن ”يعرض نفسه“ مع البيانات المتعلقة بالحاسوب فيرسل رسالة إلى الغرض aComp من الصف Computer. (الغرض aComp هو في الواقع غرض من الصف StandardComputer أو من الصف ConfiguredComputer). • يستخدم الغرض aComp معامل الخرج item_rec ”لبناء ذاته“ من أغراض ConfigurationItem. ويرسل بعدئذ مكونات الحاسوب (أي مكوناته) ككتلة واحدة إلى الغرض aConfWin ضمن الوسيط I_recset مع الرسالة displayComputer. وبذلك يمكن للغرض aConfWin أن ”يعرض ذاته“. ITA330 – S9
التحليل: الخطوة 13 – مخطط التسلسل ITA330 – S9
التحليل: الخطوة 13 – مخطط التسلسل ITA330 – S9
التحليل: الخطوة 14 – اكتشاف الطرق • يساعد تفحص مخطط التفاعل (التسلسل) على اكتشاف الطرق: • فكل رسالة تستدعي طريقة ضمن الغرض المرسل إليه • تحمل الطريقة اسم الرسالة نفسه. • بالمثل، يقتضي وجود رسالة في مخطط التسلسل وجود علاقة اقتران بين صفي الغرضين في مخطط الصفوف. • عُد إلى مخطط الصفوف الذي أوجدته سابقاً وأضف الطرق المناسبة للصفوف. (لا داعي لإعادة رسم المخطط بأكمله ويُكتفى بإظهار الصفوف التي تتأثر بهذه العملية). ITA330 – S9
التحليل: الخطوة 14 – اكتشاف الطرق ITA330 – S9
التحليل: الخطوة 14 – اكتشاف الطرق • يبين الشكل الصفوف الثلاثة المتأثرة بهذه العملية: ConfigurationWindow (وهو صف محيطي)، أما الصفان الآخران فهما صفا كيانات (Entity Classes) يمثلان أغراضاً دائمة في قاعدة المعطيات. • الصف Computer هو صف مجرد، والطريقة getConf هي طريقة مجردة يرثها الصفان ConfiguredComputer و StandardComputer فيحقق كل منهما هذه الطريقة بما يناسبه. ITA330 – S9
ما هي الصفوف المحيطية؟Boundary Classes • تطرقنا سابقاً لاستخدام الصفوف التي تعرّف ”أغراض العمل“ (Business objects): • نسمي هذه الصفوف صفوف الكيانات (صفوف النموذج) • وهي تمثل أغراضاً دائمة في قاعدة معطيات التطبيق. • يحتاج التطبيق إلى صفوف أخرى لتعريف أغراض واجهة الاستخدام البيانية (GUI objects) وهي التي ندعوها الصفوف المحيطية. • قد لا نتعرض لهذه الصفوف خلال مرحلة تحليل المتطلبات وغالباً ما نؤجل دراستها إلى مرحلة التصميم. ITA330 – S9
التحليل: الخطوة 15 – مخطط التسلسل عُد إلى مخطط التفاعل المبين في الشريحة رقم (10) وارسم مخطط التسلسل المقابل له (ولحالة الاستخدام التي يمثلها). لتبسيط رسم المخطط، لا تُظهر الرسائل المتبادلة بين الغرضين Computer و ConfigurationItem، وافترض أن الغرض Computer هو إما StandardComputer أو ConfiguredComputer (لا داعي للتمييز بينهما الآن) وتجاهل توصيف معاملات العمليات. ITA330 – S9
التحليل: الخطوة 15 – مخطط التسلسل ITA330 – S9
التحليل: الخطوة 15 – مخطط التسلسل • ينتج عن الرسالة acceptConf إرسال الرسالة prepareForOrder إلى الغرض Order. يؤدي هذا إلى إنشاء غرض مؤقت من Order يُعرض في OrderWindow. • مع قبول الزبون لتفاصيل العرض (أي عند إرسال submitOrder) يُرسل OrderWindow الرسالة storeOrder لإنشاء غرض دائم من الصف Order الذي يربط نفسه عندئذ مع الأغراض الملائمة من Computer و Customer و Payment. بعد حفظ هذه الأغراض بشكل دائم في قاعدة المعطيات يرسل الغرض Order الرسالة emailOrder للفاعل الخارجي Customer. • لاحظ الاستخدام المزدوج للغرض Customer كفاعل خارجي وكغرض داخلي. ITA330 – S9
مخطط التعاون • يُعتبر مخطط التعاون أحد شكلي نموذج التفاعل في UML ويُفضل استخدامه في مرحلة التصميم. • هناك تكافؤ بين مخطط التعاون ومخطط التسلسل من حيث أنه يمكن تحويل أحدهما إلى الآخر تلقائياً، لكن مع الانتباه إلى أن كلاً منهما يُركِّز على ملامح مختلفة لعملية تفاعل الأغراض. • يُركِّز مخطط التسلسل على التسلسل الزمني لتبادل الرسائل بين الأغراض، لكنه يفتقر إلى الدقة في تمثيل المسارات البديلة للرسائل. • يعرض مخطط التعاون بصيغة صريحة العلاقات السكونية بين الأغراض التي يمكن أن يجري تبادل الرسائل عبرها، فتتميز بدقة أكبر عند الحاجة لمعاينتها من الناحية الشكلية. ITA330 – S9
تحويل نموذج التسلسل إلى نموذج تعاون • ليكن لدينا المثال التالي: حالة استخدام "عملية استعارة نسخة كتاب من مكتبة": • يقوم الشخص الذي يرغب بالاستعارة باحضار الكتاب المطلوب. • يقوم النظام بالتحقق من أن هذا الشخص عضو في المكتبة، وأنه لم يقم باستعارة الحد الأقصى من الكتب. • إذا تمت عملية التحقق بنجاح، يقوم النظام بتسجيل عملية إعارة نسخة الكتاب لهذا الشخص. • الصفوف الموجودة في المثال: الشخص المسؤول عن المكتبة (LibraryMember)، صف نسخة الكتاب (Copy)، صف الكتاب (Book). • فاعلو النظام: الشخص الذي يقوم بعملية الاستعارة (BookBorrower). • أغراض النظام: غرض من الصف (LibraryMember)، غرض من الصف (Copy)، غرض من الصف (Book)، نسخة من الفاعل (BookBorrower). ITA330 – S9
تحويل نموذج التسلسل إلى نموذج تعاون ITA330 – S9
theBook : Book aMember : BookBorrower 2.1: borrowed borrow(theCopy) theLibraryMember : LibraryMember theCopy : Copy 2: borrow 1: okToBorrow تحويل نموذج التسلسل إلى نموذج تعاون ITA330 – S9
تمرين • حول نموذج التسلسل المبين في الشريحة رقم (19) إلى نموذج تعاون. ITA330 – S9