Professional Documents
Culture Documents
11 - Seq-Coll Diagram
11 - Seq-Coll Diagram
Interaction Modeling
نمذجة التفاعل
Interaction Modeling
• ُتصوِّ ر نمذجة التفاعل ،التفاعالت الالزمة بين مجموعة أغراض
لتنفي ذ حال ة اس تخدام ،و ُتس تخدَم ف ي مرحل ة متقدم ة م ن تحلي ل
المتطلبات بعد أن يكون نموذج الصفوف األساسي قد اكتمل.
• الفارق بين نمذجة النشاط ونمذجة التفاعل :يصور كال النموذجين
سلوك النظام في حالة استخدام واحدة ،لكن تصور نمذجة النشاط
هذا السلوك على مستوى تجريد أعلى ،فهي ُتبيّن تسلسل األحداث
لكن دون ربط هذه األحداث باألغراض ،أما نمذجة التفاعل فتبين
تسلسل األحداث (الرسائل) بين أغراض متعاونة.
• يوج د نوعان م ن مخططات التفاع ل :مخط ط التس لسل
( )Sequence Diagramومخطط التعاون (Collaboration
.)Diagram
ITA330 – S9
2
مخططات التفاعل
ITA330 – S9
3
مخطط التسلسل
ُرسم مخطط التسلسل كبيان ثنائي األبعاد ،فتظهر األغراض على ي َ •
بعده األفق ي بينم ا يظه ر تس لسل الرس ائل عل ى بعده الشاقول ي م ن
األعلى باتجاه األسفل.
يُدعى ك ل خط شاقول ي مرس وم عل ى محاذاة أحد األغراض بخط •
حياة الغرض.
تدع (أ و
ف ي هذا المخط ط يُم ِث ل الس هم رس الة م ن غرض مس ٍ •
مرس ل) إل ى عملي ة (أ و طريق ة) ف ي الغرض المس تدعى (أ و
المس تهدَ ف) .ويظه ر لك ل رس الة اس مها عل ى األق ل ،ويمك ن أ ن
تظهر وسطاء الرسالة وبعض معلومات التحكم األخرى.
يرسم عادة مخطط تسلسل مستقل لكل حالة من حاالت االستخدام. •
ITA330 – S9
4
مخطط التسلسل
يمثل التفاعل من خالل التركيز على تسلسل استدعاء الطرق زمنياً. •
يمكن أن يكون في واحدة من صيغتين: •
– صيغة المثل ()Instance form
– الصيغة العامة () Generic form
تصف صيغة المثل سيناريو محدد (السيناريو هو مثل من حالة •
االستخدام).
تصف الصيغة العامة تفاعالت حالة االستخدام كاملة (قد تستخدم •
شروط وحاالت تفريع وتكرار تنفيذ).
ITA330 – S9
5
أهمية مخططات التسلسل
• تصور تفاعل األغراض في سيناريو محدد من حالة استخدام محددة.
• تو ّ
ص ف الرسائل المتبادلة بين األغراض (إضافة للرسائل المتبادلة مع
الفاعلين الخارجيين).
ITA330 – S9
6
عناصر مخطط التسلسل
obj1
)(new
obj2
)(message
c: Client p : ODBCProxy
<<transient>>
«create»
: Transaction
setActions(a,d,o)
setValues(d, 3.4)
setValues(a, “CO”)
committed
«destroy»
ITA330 – S9
8
تمثيل الرسائل على مخطط التسلسل
• تمثل األسهم الرسائل المتبادلة بين غرضين في المخطط ،ويُرسم السهم منطلقا ً من
خط حياة غرض ما إلى خط حياة غرض آخر وباعتماد التدوين التالي:
رسالة بسيطة
يُرسل الغرض الرسالة إلى غرض آخر ويفقد التحكم Simple message
رسالة متزامنة
يعلق الغرض المرسل العمل وينتظر وصول جواب الرسالة Synchronous message
ITA330 – S9
9
– مخطط التسلسل13 الخطوة:التحليل
Order Configured ة االستخدام$) لحالActivity Diagram( ط النشاط$ي مخط$ل التال$بين الشك$ي
ى$راً عل$لسل مقتص$ط التس$ئ مخط$ أنش.)6 م$ة رق$س$ع الجل$ج$ي (را$ ّوق اآلن$بيق التس$ي تط$ فComputer
.)Display Current Configuration( الخطوةاألولى للنشاط
Display
Purchase Form
[ timeout ]
[ incomplete ]
Email Order
Details
ITA330 – S9
10
التحليل :الخطوة – 13مخطط التسلسل
openNew
getConf
* getConfItem (out item_rec)
displayComputer(item_recset)
ITA330 – S9
12
التحليل :الخطوة – 13مخطط التسلسل
ITA330 – S9
13
التحليل :الخطوة – 14اكتشاف الطرق
• يساعد تفحص مخطط التفاعل (التسلسل) على اكتشاف الطرق:
• فكل رسالة تستدعي طريقة ضمن الغرض المرسل إليه
• تحمل الطريقة اسم الرسالة نفسه.
• بالمث$ل ،يقتض$ي وجود رس$الة ف$ي مخط$ط التس$لسل وجود عالق$ة اقتران بي$ن ص$في
الغرضين في مخطط الصفوف.
ُع$د إل$ى مخط$ط الص$فوف الذي أوجدت$ه س$ابقا ً وأض$ف الطرق المناس$بة
للص$$فوف( .ال داع$$ي إلعادة رس$$م المخط$$ط بأكمل$$ه ويُكتف$$ى بإظهار
الصفوف التي تتأثر بهذه العملية).
ITA330 – S9
14
– اكتشاف الطرق14 الخطوة:التحليل
<<boundary>>
ConfigurationWindow
<<constructor>> openNew()
displayComputer(item_recset)
ConfigurationItem
Computer
item_type : String
computer_name : String
item_descr : String
<<abstract>> getConf()
getConfItem(out item_rec)
ITA330 – S9
15
التحليل :الخطوة – 14اكتشاف الطرق
• يبين الشكل الصفوف الثالثة المتأثرة بهذه العمليةConfigurationWindow :
(وهو صف محيطي) ،أما الصفان اآلخران فهما صفا كيانات ()Entity Classes
يمثالن أغراضا ً دائمة في قاعدة المعطيات.
• الصف Computerهو صف مجرد ،والطريقة getConfهي طريقة مجردة
يرثها الصفان ConfiguredComputerو StandardComputerفيحقق كل
منهما هذه الطريقة بما يناسبه.
ITA330 – S9
16
ما هي الصفوف المحيطية؟
Boundary Classes
ITA330 – S9
17
التحليل :الخطوة – 15مخطط التسلسل
ُع د إل ى مخط ط التفاع ل الم بين ف ي الشريح ة رق م ( )10وارس م مخط ط التس لسل
المقابل له (ولحالة االستخدام التي يمثلها).
لتبسيط رسم المخطط ،ال ُتظهر الرسائل المتبادلة بين الغرضين Computerو
،ConfigurationItemوافترض أ ن الغرض Computerه و إم ا
StandardComputerأو ( ConfiguredComputerال داعي للتمييز بينهما
اآلن) وتجاهل توصيف معامالت العمليات.
ITA330 – S9
18
التحليل :الخطوة – 15مخطط التسلسل
ITA330 – S9
19
التحليل :الخطوة – 15مخطط التسلسل
• ليكن لدينا المثال التالي :حالة استخدام "عملية استعارة نسخة كتاب من مكتبة":
– يقوم الشخص الذي يرغب باالستعارة باحضار الكتاب المطلوب.
– يقوم النظام بالتحقق من أن هذا الشخص عضو في المكتبة ،وأنه لم يقم باستعارة الحد
األقصى من الكتب.
– إذا تمت عملية التحقق بنجاح ،يقوم النظام بتسجيل عملية إعارة نسخة الكتاب لهذا
الشخص.
• الصفوف الموجودة في المثال :الشخص المسؤول عن المكتبة
( ،)LibraryMemberصف نسخة الكتاب ( ،)Copyصف الكتاب (.)Book
• فاعلو النظام :الشخص الذي يقوم بعملية االستعارة (.)BookBorrower
• أغراض النظام :غرض من الصف ( ،)LibraryMemberغرض من الصف
( ،)Copyغرض من الصف ( ،)Bookنسخة من الفاعل
(.)BookBorrower
ITA330 – S9
22
تحويل نموذج التسلسل إلى نموذج تعاون
borrow(theCopy)
1: okToBorrow
2: borrow
2.1: borrow
ITA330 – S9
23
تحويل نموذج التسلسل إلى نموذج تعاون
theBook : Book
aMember : BookBorrower
2.1: borrowed
borrow(theCopy)
theLibraryMember :
LibraryMember theCopy : Copy
2: borrow
1: okToBorrow
ITA330 – S9
24
تمرين
ITA330 – S9
25