1 / 37

المخططات في لغة الن م ذجة الموحدة UML DIAGRAMS مخططات التعاون

المخططات في لغة الن م ذجة الموحدة UML DIAGRAMS مخططات التعاون. المحاضرة الثامنة د. محمد أحمد. سندرس في هذا المحاضرة:. نمذجة النشاط (الأنشطة, حالات النشاط, مخطط النشاط) نمذجة التفاعل. مخطط التسلسل. مخطط التعاون. نموذج الحالات (الحالات, و الانتقالات, مخطط الحالات).

wylie-avery
Télécharger la présentation

المخططات في لغة الن م ذجة الموحدة UML DIAGRAMS مخططات التعاون

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. المخططات في لغة النمذجة الموحدة UML DIAGRAMSمخططات التعاون المحاضرة الثامنة د. محمد أحمد

  2. سندرس في هذا المحاضرة: • نمذجة النشاط (الأنشطة, حالات النشاط, مخطط النشاط) • نمذجة التفاعل. • مخطط التسلسل. • مخطط التعاون. • نموذج الحالات (الحالات, و الانتقالات, مخطط الحالات).

  3. نمذجة النشاطActivity Modeling • الأداة المستخدمة: مخطط النشاط (Activity Diagram). • مخطط النشاط • هو تمثيل بياني لتسلسل الأحداث في حالة الاستخدام. • يمكن استخدامه لفهم إجرائيات العمل بمستوى عالٍ من التجريد (وقبل توصيف حالات الاستخدام). • يبين مخطط النشاط خطوات العملية • كل خطوة هي حالة (State) في تنفيذ أمر ما • نُطلق على الخطوات التنفيذية تسمية حالات النشاط (Activity States). • يبين ما الخطوات التي ستنفذ بالتسلسل وما الخطوات التي يمكن تنفيذها بشكل متزامن (Concurrently). • نستخدم مصطلح الانتقال (Transition) للإشارة إلى انتقال التحكم من حالة نشاط للحالة التالية. • يُكنب توصيف حالات الاستخدام عادة من وجهة نظر الفاعل الخارجي، أما مخططات النشاط فتمثل وجهة نظر النظام من الداخل.

  4. نمذجة النشاط • يمثل نموذج النشاط تدفق الأحداث في حالة الاستخدام بصيغة بيانية. وهو مفيد لسد الفجوة ما بين التمثيل عالي المستوى الذي تقدمه حالات الاستخدام لسلوك النظام من جهة والتمثيل الأكثر تفصيلاً الذي تقدمه نماذج النشاط (مخططات التسلسل والتعاون) من جهة أخرى. • يبين مخطط النشاط خطوات العملية الحسابية. وكل خطوة تمثل حالة في العملية. ولهذا السبب نُطلق على خطوات التنفيذ تسمية حالات النشاط. يبين المخطط الخطوات التي تُنفذ بالتسلسل وتلك التي يمكن تنفيذها بالتوازي (تنفيذ متزامن). ونُطلق على انتقال التحكم من حالة نشاط إلى الحالة التالية تسمية الانتقال (Transition). • يمكن اكتشاف حالات النشاط من تدفق الأحداث الرئيسي ومن التدفقات البديلة الموجودة في وصف حالة الاستخدام إذا كان بناء هذه الوثيقة الأخيرة قد اكتمل. تجب الإشارة هنا إلى فارق هام ما بين وصف حالة الاستخدام ونموذج النشاط، ففي حين يُكتب الأول من وجهة نظر الفاعل الخارجي، يتبنى نموذج النشاط وجهة نظر النظام الداخلية. • يمكن استخدام نموذج النشاط لفهم إجرائيات العمل على مستوى عالٍ من التجريد قبل بناء حالات الاستخدام. بالمقابل، يمكن استخدامها في مستوى أدنى لتصميم خوارزميات تسلسلية معقدة أولتصميم تنافس الإجراءات (Concurrency) في التطبيقات متعددة مسارات التنفيذ (multi-threaded applications).

  5. الأنشطة • يمكن استنتاج حالات النشاط من وثيقة توصيف حالة الاستخدام. • يجب تسمية الأنشطة من وجهة نظر النظام من الداخل وليس من وجهة نظر الفاعل الخارجي. • يستغرق النشاط زمناً ليكتمل تنفيذه. • لا يحتاج الانتقال إلى زمن (زمنه مهمل على مقياسنا البشري).

  6. مخطط النشاط • يبين مخطط النشاط الانتقال بين أنشطة حالة الاستخدام. • تُمثل حالة البداية (initial state) بدائرة مطموسة. • تُمثل حالة النهاية (final state) بدائرة مطموسة داخل دائرة أخرى (bull’s eye). • يمكن أن يتفرع الانتقال إلى أكثر من انتقال أو أن تندمج عدة انتقالات في انتقال واحد (لتمثيل مسارات بديلة) ويُرمز لذلك بشكل المعين (diamond). • يمكن أن تتشعب الانتقالات (fork) أو أن تلتقي (re-join) لتمثيل مسارات التنفيذ المتوازية. • يماثل مخطط النشاط (عند غياب الإجراءات المتوازية) مخطط التدفق التقليدي (flowchart).

  7. مثال حالات النشاط مثال التسوق الآني، يُطلب تحليل تدفق الأحداث الرئيسي والتدفقات لبديلة لحالة الاستخدام (Order Configured Computer) وإيجاد أنشطتها.

  8. حالات النشاط

  9. حالات النشاط

  10. حالات النشاط • يُسند النظام لطلب الشراء رقم طلب مميز (Order Number) ورقم حساب الزبون (Customer Account Number) ويخزن معلومات الطلب في قاعدة معطيات.

  11. مخطط النشاط شرط تفريع يظهر عند الخروج من حالة نشاط تعدد انتقالات الخرج (نتيجة شرط تفريع داخل حالة النشاط.

  12. نمذجة التفاعلInteraction Modeling • تُصوِّر نمذجة التفاعل، التفاعلات اللازمة بين مجموعة أغراض لتنفيذ حالة استخدام، وتُستخدَم في مرحلة متقدمة من تحليل المتطلبات بعد أن يكون نموذج الصفوف الأساسي قد اكتمل. • الفارق بين نمذجة النشاط ونمذجة التفاعل: يصور كلا النموذجين سلوك النظام في حالة استخدام واحدة، لكن تصور نمذجة النشاط هذا السلوك على مستوى تجريد أعلى، فهي تُبيّن تسلسل الأحداث لكن دون ربط هذه الأحداث بالأغراض، أما نمذجة التفاعل فتبين تسلسل الأحداث (الرسائل) بين أغراض متعاونة. • يوجد نوعان من مخططات التفاعل: مخطط التسلسل (Sequence Diagram) ومخطط التعاون (Collaboration Diagram).

  13. مخططات التفاعل • تقدّم لغة UML نمطين من مخططات التفاعل: • مخطط التسلسل (Sequence Diagram) • مخطط التسلسل هو مخطط تفاعل يركّز على الترتيب الزمني للرسائل المتبادلة بين الأغراض. • مخطط التعاون (Collaboration Diagram) • مخطط التعاون هومخططتفاعل يركز على العلاقات بين الأغراض المشاركة في التفاعل.

  14. مخطط التسلسل • يُرسَم مخطط التسلسل كبيان ثنائي الأبعاد، فتظهر الأغراض على بعده الأفقي بينما يظهر تسلسل الرسائل على بعده الشاقولي من الأعلى باتجاه الأسفل. • يُدعى كل خط شاقولي مرسوم على محاذاة أحد الأغراض بخط حياة الغرض. • في هذا المخطط يُمثِل السهم رسالة من غرض مستدعٍ (أو مرسل) إلى عملية (أو طريقة) في الغرض المستدعى (أو المستهدَف). ويظهر لكل رسالة اسمها على الأقل، ويمكن أن تظهر وسطاء الرسالة وبعض معلومات التحكم الأخرى. • يرسم عادة مخطط تسلسل مستقل لكل حالة من حالات الاستخدام.

  15. مخطط التسلسل • يمثل التفاعل من خلال التركيز على تسلسل استدعاء الطرق زمنياً. • يمكن أن يكون في واحدة من صيغتين: • صيغة المثل (Instance form) • الصيغة العامة (Generic form ) • تصف صيغة المثل سيناريو محدد (السيناريو هو مثل من حالة الاستخدام). • تصف الصيغة العامة تفاعلات حالة الاستخدام كاملة (قد تستخدم شروط وحالات تفريع وتكرار تنفيذ).

  16. أهمية مخططات التسلسل • تصور تفاعل الأغراض في سيناريو محدد من حالة استخدام محددة. • توصّف الرسائل المتبادلة بين الأغراض (إضافة للرسائل المتبادلة مع الفاعلين الخارجيين).

  17. message() delete() response() عناصر مخطط التسلسل obj1 new() obj2 إنشاء وتدمير الغرض حالة النشاط (استلام التحكم) خط حياة الغرض

  18. مثال «global» c: Client p : ODBCProxy <<transient>> «create» : Transaction setActions(a,d,o) setValues(d, 3.4) setValues(a, “CO”) committed «destroy»

  19. تمثيل الرسائل على مخطط التسلسل • تمثل الأسهم الرسائل المتبادلة بين غرضين في المخطط، ويُرسم السهم منطلقاً من خط حياة غرض ما إلى خط حياة غرض آخر وباعتماد التدوين التالي:

  20. مخطط التسلسل يبين الشكل التالي مخطط النشاط (Activity Diagram) لحالة الاستخدام Order Configured Computer في تطبيق التسوّق الآني. أنشئ مخطط التسلسل مقتصراً على الخطوةالأولى للنشاط (Display Current Configuration).

  21. مخطط التسلسل • يختار الفاعل الخارجي (Customer) عرض بنية حاسوب، فيرسل لهذه الغاية الرسالة openNew إلى الغرض ConfWin (من الصف ConfigurationWindow) التي تؤدي إلى إنشاء الغرض aConfWin (Boundary Class). • يحتاج الغرض aConfWin أن ”يعرض نفسه“ مع البيانات المتعلقة بالحاسوب فيرسل رسالة إلى الغرض aComp من الصف Computer. (الغرض aComp هو في الواقع غرض من الصف StandardComputer أو من الصف ConfiguredComputer). • يستخدم الغرض aComp معامل الخرج item_rec ”لبناء ذاته“ من أغراض ConfigurationItem. ويرسل بعدئذ مكونات الحاسوب (أي مكوناته) ككتلة واحدة إلى الغرض aConfWin ضمن الوسيط I_recset مع الرسالة displayComputer. وبذلك يمكن للغرض aConfWin أن ”يعرض ذاته“.

  22. مخطط التسلسل

  23. اكتشاف الطرق • يساعد تفحص مخطط التفاعل (التسلسل) على اكتشاف الطرق: • فكل رسالة تستدعي طريقة ضمن الغرض المرسل إليه • تحمل الطريقة اسم الرسالة نفسه. • بالمثل، يقتضي وجود رسالة في مخطط التسلسل وجود علاقة اقتران بين صفي الغرضين في مخطط الصفوف.

  24. اكتشاف الطرق

  25. اكتشاف الطرق • يبين الشكل الصفوف الثلاثة المتأثرة بهذه العملية: ConfigurationWindow (وهو صف محيطي)، أما الصفان الآخران فهما صفا كيانات (Entity Classes) يمثلان أغراضاً دائمة في قاعدة المعطيات. • الصف Computer هو صف مجرد، والطريقة getConf هي طريقة مجردة يرثها الصفان ConfiguredComputer و StandardComputer فيحقق كل منهما هذه الطريقة بما يناسبه.

  26. ما هي الصفوف المحيطية؟Boundary Classes • تطرقنا سابقاً لاستخدام الصفوف التي تعرّف ”أغراض العمل“ (Business objects): • نسمي هذه الصفوف صفوف الكيانات (صفوف النموذج) • وهي تمثل أغراضاً دائمة في قاعدة معطيات التطبيق. • يحتاج التطبيق إلى صفوف أخرى لتعريف أغراض واجهة الاستخدام البيانية (GUI objects) وهي التي ندعوها الصفوف المحيطية. • قد لا نتعرض لهذه الصفوف خلال مرحلة تحليل المتطلبات وغالباً ما نؤجل دراستها إلى مرحلة التصميم.

  27. مخطط التسلسل

  28. مخطط التسلسل • ينتج عن الرسالة acceptConf إرسال الرسالة prepareForOrder إلى الغرض Order. يؤدي هذا إلى إنشاء غرض مؤقت من Order يُعرض في OrderWindow. • مع قبول الزبون لتفاصيل العرض (أي عند إرسال submitOrder) يُرسل OrderWindow الرسالة storeOrder لإنشاء غرض دائم من الصف Order الذي يربط نفسه عندئذ مع الأغراض الملائمة من Computer و Customer و Payment. بعد حفظ هذه الأغراض بشكل دائم في قاعدة المعطيات يرسل الغرض Order الرسالة emailOrder للفاعل الخارجي Customer. • لاحظ الاستخدام المزدوج للغرض Customer كفاعل خارجي وكغرض داخلي.

  29. مخطط التعاون • يُعتبر مخطط التعاون أحد شكلي نموذج التفاعل في UML ويُفضل استخدامه في مرحلة التصميم. • هناك تكافؤ بين مخطط التعاون ومخطط التسلسل من حيث أنه يمكن تحويل أحدهما إلى الآخر تلقائياً، لكن مع الانتباه إلى أن كلاً منهما يُركِّز على ملامح مختلفة لعملية تفاعل الأغراض. • يُركِّز مخطط التسلسل على التسلسل الزمني لتبادل الرسائل بين الأغراض، لكنه يفتقر إلى الدقة في تمثيل المسارات البديلة للرسائل. • يعرض مخطط التعاون بصيغة صريحة العلاقات السكونية بين الأغراض التي يمكن أن يجري تبادل الرسائل عبرها، فتتميز بدقة أكبر عند الحاجة لمعاينتها من الناحية الشكلية.

  30. تحويل نموذج التسلسل إلى نموذج تعاون • ليكن لدينا المثال التالي: حالة استخدام "عملية استعارة نسخة كتاب من مكتبة": • يقوم الشخص الذي يرغب بالاستعارة باحضار الكتاب المطلوب. • يقوم النظام بالتحقق من أن هذا الشخص عضو في المكتبة، وأنه لم يقم باستعارة الحد الأقصى من الكتب. • إذا تمت عملية التحقق بنجاح، يقوم النظام بتسجيل عملية إعارة نسخة الكتاب لهذا الشخص. • الصفوف الموجودة في المثال: الشخص المسؤول عن المكتبة (LibraryMember)، صف نسخة الكتاب (Copy)، صف الكتاب (Book). • فاعلو النظام: الشخص الذي يقوم بعملية الاستعارة (BookBorrower). • أغراض النظام: غرض من الصف (LibraryMember)، غرض من الصف (Copy)، غرض من الصف (Book)، نسخة من الفاعل (BookBorrower).

  31. تحويل نموذج التسلسل إلى نموذج تعاون

  32. theBook : Book aMember : BookBorrower 2.1: borrowed borrow(theCopy) theLibraryMember : LibraryMember theCopy : Copy 2: borrow 1: okToBorrow تحويل نموذج التسلسل إلى نموذج تعاون

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

  34. مخططات الحالة State Diagrams  • تستخدم مخططات الحالة "State Diagrams" لوصف سلوك الكائن "object" من خلال استخدام العديد من حالات الاستخدام "use cases" للنظام. تستخدم مخططات الحالة "State Diagrams" فقط للصفوف "classes" عندما يكون من الضروري فهم سلوك الكائن "object" من خلال النظام بأكمله. ليست كل الفئات "classes" تحتاج إلى مخططات الحالة "State Diagrams" و مخططات الحالة ليست مفيدة لوصف التعاون لجميع الكائنات في حالة الاستخدام.

  35. كيفية رسم مخططات الحالة State Diagrams  • مخططات الحالة لديها عناصر قليلة جدا. العناصر الأساسية تمثل صناديق مستديرة من الجوانب تصف لنا حالة الكائن "object" واسهم تصف لنا عملية الانتقال إلى الحالة القادمة. قسم النشاط "activity section" لرمز الحالة يصور لنا ما هي أنشطة الكائن التي سيقوم بها أثناء وجوده في تلك الحالة. • جميع مخططات الحالة "state diagrams" تبدأ مع الحالة البدائية "initial state" للكائن. هذه هي حالة الكائن عندما يتم إنشاؤه. بعد الحالة البدائية يبدأ الكائن بتغيير الحالات. الشروط "Conditions" تعتمد على الأنشطة لتحديد الحالة القادمة التي سيتحول لها الكائن.

  36. مثال عن State Diagram The class diagram shows the static structures of the system: • define interfaces of participating objects • specify attributes, methods, and associations (communication links) • behavior will be defined by associated state diagram -id : int

  37. تكملة المثال (رسم المخطط) • The state diagrams are used to detail the transitions or changes of state an object can go through in the system. • In general they describe the dynamics. Gate behavior:

More Related