الوحدة السادسة: نمذجة سلوك النظام

مقرر تحليل الأنظمة وتصميمها (1380) — جامعة القدس المفتوحة

مقدمة الوحدة

تستخدم نماذج حالات الاستخدام، كما تم بيانه خلال الوحدات الدراسية السابقة، لوصف التصرف الخارجي للنظام ولتوضيح وظيفته، بينما يُستخدم النموذج الهيكلي لإعطاء واجهة ثابتة عن معلومات النظام.

في هذه الوحدة سنقوم ببيان كيفية وصف السلوك الديناميكي للنظام من الداخل، حيث يتمكّن المحلل من فهم ووصف التصرف الداخلي للنظام والصورة المتحركة لمعلوماته، وذلك عن طريق مخططات تسمى بمخططات التفاعل (Interaction Diagrams) التي تحتوي العديد من الأنواع مثل مخططات التسلسل أو التتابع (Sequence Diagrams) التي تستخدم لوصف تفاصيل العمليات الموجودة في النظام التي كان قد تم توضيحها باستخدام نموذج الاستخدام، ومخططات التعاون (Collaboration Diagrams) التي تستخدم لوصف التغيرات التي تحدث على البيانات، بالإضافة إلى مخططات الحالة (State Chart Diagrams) التي تُستخدم في حالة وصف أنظمة الوقت الحقيقي، ويُستخدم هذا النوع من النمذجة خلال مرحلة التحليل.

في هذه الوحدة سيتم كذلك -عزيزي الدارس- التركيز على إنشاء نماذج باستخدام مخططات التفاعل بنوعيها: مخططات التسلسل، ومخططات التعاون، بالإضافة إلى مخططات الحالة.

نماذج السلوك (Behavioral Models)

عند تحليل النظام، ولفهم النظام بتفاصيله، ينبغي أن يأخذ بعين الاعتبار النواحي الديناميكية بتفاعلها، بالإضافة إلى النواحي غير الديناميكية المتمثلة بسلوك النظام. يتم تحليل النظام المعتمد على حالات الاستخدام بحيث يقوم محل النظم بتقليص الفجوة المعنوية بين مجموعة من الكيونات المتفاعلة وبينها، ومجموعة الكيونات المتماثلة في العالم الحقيقي.

إن أحد أهم أهداف نماذج السلوك هو إظهار الكيونات التي تتعاون فيما بينها مع بعض لتقديم الاستخدام، بينما يقوم نموذج بناء النظم بتمثيل بنية الكيونات والعلاقات. ويبيّن في نموذج السلوك الداخلي على شكل تفاعل بين الكيونات التي تتعاون فيها الكيونات (التتابعية والتعاونية)، كما يمكن تكثير مجموعة من حالات الاستخدام على النظم في نمذجة مخططات الحالة (State Chart Diagrams).

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

أحد أهم الفروقات بين مخطط الأصناف ومخططات التفاعل، بالإضافة إلى الفرق الواضح الذي يتمثل في أن الأول يستخدم لوصف البنية بينما الآخر يركّز على السلوك، هو أن مخططات الأصناف تركز على الكيونة الأخرى بينما تركز مخططات التفاعل على العمليات والرسائل بالإضافة إلى الكيونات والتتابع والتعاون.

الكيونات (Objects)، والعمليات (Operations)، والرسائل (Messages)

من المعروف أن الكيونة ما هي إلا مشتقة من صنف معين، وهي عادة ما تمثل شخصاً أو حدثاً أو معلومات نريد الاحتفاظ عنه. إن مجموعة الأصناف في نظام التسجيل في نظام الجامعة -على سبيل المثال- يحتوي على صنف الطالب، وصنف المحاضر، وصنف المواد... إلخ، ومن ناحية أخرى فإن الكيونة هي نسخة واحدة من هذه الأصناف.

مثال: أحمد وسعيد وخليل ما هم إلا مشتقات لحظية لصنف "الطالب"، وكل كيونة تحتوي على صفات تصف معلوماتها الفريدة، كأسماء كينونة "الطالب" اسم الطالب، ورقم هاتفه، ورقمه الجامعي.

وكل كيونة تحتوي كذلك على مجموعة من التصرفات التي تُعرَّف بالعمليات التي تعبّر عن الفعل الذي تستطيع الكيونة القيام به، كأن يقوم الطالب بعملية التسجيل.

وتستطيع كل كيونة إرسال الرسائل واستقبالها، والرسالة هي عبارة عن تعريف طريقة أخرى لاستدعاء عملية بتصرف معين. كما يمكن تعريف أخرى بطريقة يقدّم عبارة عن استدعاء عملية أو أمر يوجه من كيونة إلى كيونة أخرى. ويستطيع الطالب مثلاً بإرسال طلب تسجيل بالمساق إلى نظام التسجيل بإرسال برسالة تسجيل، ومن ثم يتم تسجيله بإعطائه رقم جديد للمسجل.

مخططات التسلسل أو التتابع (Sequence Diagrams)

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

وتستخدم مخططات التتابع في مرحلتَي التحليل والتصميم حيث إنها تُستخدم في مرحلة التصميم على مفاهيم كثيرة مثل قواعد البيانات وواجهات الاستخدام (User Interfaces) وجميع المواصفات التقنية.

والشكل (1) يبيّن مخططاً تتابعياً من نظام التسجيل الجامعي حيث يوضح الخطوات والرسائل اللازمة لتسجيل مادة معينة وتعديلها. ويتضح لنا -عزيزي الدارس- أن المتفاعلين والكيونات التي تشترك في التتابع تُوضع على أعلى قائمة المخطط الجامع، حيث يستخدم رمز المستطيل لهذا الغرض، وتجدر الإشارة هنا إلى أن المتفاعلين ليس بالضرورة أن يكون لها معنى ذا معنى، لكن يفضّل أن ترتّب بشكل منطقي كأن يكون ترتيبهم حسب ترتيب ظهورهم في المشاهد المتحدثة.

مخطط تتابع لتسجيل مادة وتعديل قائمة المواد
الشكل (1): مخطط تتابع لتسجيل مادة وتعديل قائمة المواد

ويستمر مخطط التتابع بشكل يفضّل أن يكون التتابع يمتد بالزمن بشكل واقعي.

رموز مخطط التسلسل

الرموز المستخدمة في مخطط التسلسل والهدف والغرض من استخدامها:

الرمزالتعريف
شكل شخص (Actor)المتفاعل.
مستطيل يحمل الاسم مسبوقاً بنقطتين، مثل ": Course"كينونة من صنف معين.
خط رأسي متقطع أسفل كل كينونةخط الحياة؛ الذي يعرّف وجود الكيونة زمنياً.
مستطيل ضيق فوق خط الحياةوقت التنفيذ؛ يحدد الفترة التي تنفّذ الكيونة فيها عملاً ما.
سهم أفقي بين خطَّي حياة كيونتينرسالة من كيونة إلى أخرى ومعاملاتها.

لاحِظ -عزيزي الدارس- أن كل كيونة في المخطط تُشتق من اسم الصنف الذي تنتمي إليه، ولاحِظ أيضاً أن هناك خطاً منقطعاً عمودياً تحت كل متفاعل أو كيونة يرمز إلى "وقت التنفيذ"، وهو يرسم فوق هذا الخط ويرمز إلى الفترة التي يكون فيها المتفاعل في حالة استقبال أو إرسال معلومات.

مخططات التعاون (Collaboration Diagrams)

المخططات التعاونية تشبه المخططات التتابعية من حيث إن النوعين يبيّنان الناحية الديناميكية للنظام، وهي عبارة عن مخططات تفاعلية تظهر تراسل الرسائل بدلاً من إظهار العلاقات التجميعية والتعميمية، وتعتبر هذه المخططات مفيدة لإظهار نشاط العمليات، وهي تعبر مكانية النتائج للكيونات ولكن بفارق جوهري وهو أن التركيز على الترتيب في مخططات التتابع بينما تركز مخططات التعاون على تنظيم الكيونات وعلاقاتها.

ومن أوجه التشابه بين مخططات التعاون والتتابع فهو أن النوعين يحتويان على نوعين وكيونات، حيث تتعاون فيما بينها لتنفيذ حالات الاستخدام.

يبيّن الشكل التالي مخططاً تعاونياً معادلاً لنفس السيناريو الموضّح سابقاً في مخطط التتابع، ولكن بالتركيز على تنظيم الكيونات وترقيم الرسائل حسب تسلسلها الزمني بدلاً من إظهارها على محور الزمن:

مخطط تعاون معادل لسيناريو التسجيل
الشكل (2): مخطط تعاون يبيّن ترابط الطالب والمادة ونظام الفوترة بيانياً، والرسائل مرقّمة حسب تسلسلها الزمني

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

مخططات الحالة (State Chart Diagrams)

بعض الأصناف تمثل مجموعة من الحالات التي يكون بها الكينونات الديناميكية المنسحبة، وهي مجموعة من الحالات، كأن يكون الطالب مسجّلاً أو غير مسجّل، ودافع الرسوم، أو غير دافع، حيث يمكن تمثيل هذه الحالات باستخدام مخطط متخصص يسمى بمخطط الحالة.

إن مخطط الحالة عبارة عن نموذج ديناميكي يظهر بشكل دورة حياتية معينة خلال فترة حياتها. يمكن استعمال مخطط الحالة لجميع الكينونات في غير عملي، ويفضّل استخدامها للكيونات المعقدة من ناحية التصميم، حيث يمتلك استخدام هذا النوع من المخططات لتسهيل التعامل مع هذه الكيونات المعقدة.

إن مخطط الحالة يظهر عادة حالات الكيونة المختلفة، كما يبيّن السبب الذي أدى بها شيء ما قد يحدث في وقت معين في وقت معين، ويعرّف حالة الكيونة عندما يتسبب طالب معين لهذا الحدث دخوله في حالة معينة "مسجّل".

وبالمقارنة مع المخططات التفاعلية، فإن مخططات الحالة تستخدم النظم مهتمة بنواحي حالات الاستخدام الواحد وكيفية تطوير الكيونات لهذا الاستخدام أكثر من النوع من الزمن، وليس مهتم بتفاصيل هذه الصفات لأنها قيمة إحدى صفات الكيونة في هذه الحالة.

يبيّن الشكل التالي مخطط حالة مبسّطاً يوضح مراحل معالجة نموذج طلب تسجيل طالب جديد، من استلام النموذج وحتى قبول الطالب نهائياً في النظام:

مخطط حالة لمعالجة طلب تسجيل طالب جديد
الشكل (3): مخطط حالة لمراحل معالجة نموذج تسجيل طالب جديد، من حالة البداية حتى حالة النهاية

رموز مخطط الحالة

الرمزالتعريف
مستطيل بزوايا مدوّرة يحمل اسم الحالةحالة (State).
سهم يربط بين حالتينانتقال (Transition).
دائرة سوداء محاطة بدائرة أخرىحالة نهاية (End State).
دائرة سوداء مصمتةحالة بداية (Start State).

تُستخدم الحالة البدائية للدلالة على البداية الافتراضية لدورة حياة الكيونة، وتُستخدم حالة النهاية للدلالة على انتهاء دورة حياتها، أما الانتقالات فتوضح الأحداث (Events) التي تنقل الكيونة من حالة إلى أخرى، وتجدر الإشارة إلى أن هناك استثنائين لهذه القاعدة: الأول أن في حالة البداية يجب أن يكون لها انتقال واحد فقط خارج منها، والثاني أن في حالة النهاية يجب أن يكون لها انتقال داخل إليها ولا يوجد انتقال خارج منها، وكل من تلك الحالات ولديها بشكل مناسب وليدة معامل أو شرط للمزيد من الإيضاح.

مسرد المصطلحات

اضغط على كل بطاقة لعرض تعريف المصطلح.

Sequence Diagram
مخطط التسلسل أو التتابع؛ يعتبر أحد أنواع مخططات التفاعل، حيث إنه يوضح أنواع حالات الاستخدام التي تشترك في حالات الاستخدام التي تشترك فيها الكيونات على مجرى الرسائل التي تتشارك فيها الكيونات إلى أخرى ومن كيونة إلى حالة استخدام.
Collaboration Diagram
مخطط التعاون؛ تشبه المخططات التتابعية الديناميكية للاستخدام، حيث يبيّن هذا النوع عبارة عن مخططات تفاعلية تظهر تراسل الرسائل، وتعتبر هذه المخططات مفيدة لإظهار نشاط العمليات، وهي تعبر تقارب النتائج للكيونات وتظهر مكافئة لمخططات التتابع ولكن بفارق جوهري وهي تعبّر هذا التركيز على الترتيب الزمني بينما تركز مخططات التعاون على تنظيم الكيونات وعلاقاتها.
State Chart Diagram
مخطط الحالة؛ إن مخطط الحالة عبارة عن مخطط ديناميكي يظهر مجموعة الحالات التي يمكن أن تمر بها كيونة معينة خلال فترة حياتها، ويفضّل استخدامها لجميع الكيونات من غير عملي.
Behavioral Modeling
نمذجة السلوك؛ هو إظهار الكيونات التي تتعاون مع بعضها لتقديم حالات الاستخدام، حيث يقوم بذلك المنظور الداخلي لمنطق العمل الذي تحويه هذه الكيونات، حيث يتم عرض هذا المنطق على شكل مخططات التفاعل بأنواعها (التتابعية والتعاونية).

4 مصطلحات أساسية لهذه الوحدة.

اختبار الوحدة

يتكوّن الاختبار من 5 أسئلة صح/خطأ، و5 أسئلة اختيار من متعدد، و3 أسئلة إنشائية. تُصحَّح الأسئلة الموضوعية تلقائياً، بينما تعرض الأسئلة الإنشائية إجابة نموذجية لتقييم إجابتك بنفسك.

أولاً: صح أم خطأ

1. الكيونة هي نسخة واحدة (Instance) من صنف معين.

2. تُستخدم مخططات التسلسل لتوضيح تسلسل الرسائل بين الكيونات عبر محور الزمن.

3. تركز مخططات التعاون على المحور الزمني بشكل أساسي وليس على تنظيم الكيونات.

4. يجب أن يكون لحالة البداية في مخطط الحالة انتقال واحد فقط خارج منها.

5. لا يوجد أي تشابه بين مخططات التعاون ومخططات التسلسل.

ثانياً: اختيار من متعدد

6. الرمز المستخدم لتمثيل "خط الحياة" لكيونة في مخطط التسلسل هو:

7. المخطط الذي يستخدم لوصف أنظمة الوقت الحقيقي عبر تمثيل دورة حياة الكيونة هو:

8. في مخطط التعاون، يتم توضيح تسلسل الرسائل الزمني عن طريق:

9. عبارة عن استدعاء عملية أو أمر يوجَّه من كيونة إلى كيونة أخرى، تسمى:

10. الرمز المستخدم للدلالة على "حالة النهاية" في مخطط الحالة هو:

ثالثاً: أسئلة إنشائية

11. عرّف مخطط التسلسل (Sequence Diagram)، واذكر أين يُستخدم عادة (في أي مرحلتين من مراحل بناء النظام)؟

مخطط التسلسل يوضح الكيونات المشتركة في حالة استخدام ومجرى الرسائل بينها عبر فترة زمنية معينة. يُستخدم في مرحلتَي التحليل والتصميم، ففي مرحلة التصميم يُستفاد منه في تفاصيل تقنية مثل قواعد البيانات وواجهات الاستخدام.

12. وضّح الفرق الجوهري بين مخطط التسلسل ومخطط التعاون رغم تشابههما في إظهار الناحية الديناميكية للنظام.

يركز مخطط التسلسل على الترتيب الزمني للرسائل عبر محور زمني رأسي، بينما يركز مخطط التعاون على تنظيم الكيونات وعلاقاتها البنيوية، ويوضح الترتيب الزمني فيه عن طريق ترقيم الرسائل بدلاً من محور الزمن.

13. متى يُفضَّل استخدام مخطط الحالة (State Chart Diagram) لتمثيل كيونة معينة؟

يُفضَّل استخدام مخطط الحالة للكيونات المعقّدة من ناحية التصميم، والتي تمر بعدة حالات مختلفة خلال دورة حياتها (كأن يكون الطالب مسجلاً أو غير مسجل، دافعاً للرسوم أو غير دافع)، حيث يساعد هذا المخطط على تسهيل التعامل مع هذا النوع من الكيونات المعقدة.