الوحدة الرابعة: نمذجة حالات الاستخدام

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

مقدمة الوحدة

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

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

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

المتفاعلون (Actors)

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

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

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

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

توثيق المتفاعلين (Documentation of Actors)

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

الرمز البياني للمتفاعل وعلاقته بحالة الاستخدام
الشكل (1): الرمز المستخدم لتوثيق المتفاعل، وعلاقته بحالة استخدام يتشاركها مع متفاعل آخر

ومن الأمثلة الشائعة على المتفاعلين في نظام تسجيل الطلاب الجامعي: "الطالب" وهو أهم المتفاعلين في مثل هذا النظام، حيث يستعمل الطالب الرمز المبيّن أعلاه مع كتابة اسم المتفاعل ("Student") أسفله.

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

حالات الاستخدام (Use-Cases) وأنواعها

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

يمكن تعريف حالة الاستخدام بأنها عبارة عن تتابع من العمليات التي يمكن أن يتابعها النظام يستطيع من خلالها المستخدم لقياس معين. لكن أعتقد العديد من محللي الأنظمة إلى تصنيف حالات الاستخدام إلى نوعين رئيسين هما: حالات الاستخدام ذات الشكل العام (General Use-Cases)، وحالات الاستخدام ذات الشكل الأساسي (Essential Use-Cases).

النوعالوصف
حالات الاستخدام ذات الشكل العام
(General Use-Cases)
إن حالات الاستخدام ذوات الشكل العام تمكّن محللي النظام ومستخدميه من التوصل إلى اتفاقية حول متطلبات النظام بشكل مبدئي، وعادة ما تنشأ حالات الاستخدام من هذا النوع في مرحلة متقدمة من تحليل متطلبات النظام للأشخاص الأساسية، وتكون عبارة عن توثيق عام لحالة الاستخدام يحتوي الاسم، والرقم التسلسلي، والمتفاعل الرئيس، والوصف المختصر.
حالات الاستخدام ذات الشكل الأساسي
(Essential Use-Cases)
تحتوي على وظيفة استخدام محددة بشكل مسبق يمكن استخدامها من قبل حالة الاستخدام الأخرى، مثل حالة تسجيل الدخول (Login) التي يمكن استدعاؤها من العديد من حالات الاستخدام الأخرى، ويمكن استخدامها من قبل عدة متفاعلين مثل الطالب والمسجّل، لذلك تُعتبر حالة استخدام أساسية مجرَّدة.

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

بناء حالات الاستخدام (Use-Cases Development)

لبناء حالات الاستخدام قد يحتاج محلل النظام إلى محل نفسه واستقراء إيجاد الأسئلة التالية لطرح النقاشات بينه وبين المستخدمين:

حدد المهام والأدوار التي يقوم بها كل متفاعل عند تعامله مع النظام.
حدد العمليات التي يقوم بها كل متفاعل على بيانات النظام.
اربط كل عملية بيانات بحالة الاستخدام المسؤولة عنها.
حدد حالات الاستخدام الاستثنائية غير الروتينية المرتبطة بصلاحيات النظام.
حدد حالات الاستخدام المرتبطة بمهام الصيانة والدعم الفني.
تأكد من أن مجموع حالات الاستخدام يغطي جميع وظائف النظام المطلوبة دون نقص.

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

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

  • ما هي واجبات المتفاعل "الطالب"؟ تسجيل المواد، الدراسة، دفع رسوم التسجيل، استخدام المكتبة.
  • هل يقوم "الطالب" بتخزين، أو تعديل، أو قراءة معلومات من النظام؟ نعم، يعدّل المواد المختارة، ينسحب من الفصل الدراسي، يعدّل معلوماته الشخصية.

وبعد تنقيح المجموعة الابتدائية من حالات الاستخدام التي يمكن للطالب القيام بها، يمكن إجمالها كالآتي: تسجيل المواد، دفع رسوم التسجيل، تعديل المواد المختارة، الانسحاب من فصل دراسي، تسجيل الطالب، وتعديل ملف الطالب.

توثيق حالات الاستخدام (Use-Cases Documentation)

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

مثال على شكل توثيق حالة الاستخدام وعلاقة التضمّن
الشكل (2): الشكل البيضاوي المستخدم لتوثيق حالة استخدام، وربطها بمتفاعل عبر خط الرابطة

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

علاقات حالات الاستخدام (Use-Cases Relationships)

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

تُسمى العلاقة بين المتفاعل وحالة الاستخدام بعلاقة التشارك (Associate Relationship)، وتحديد طريقة الاتصال تحدد من أين يبدأ تنفيذ الوظيفة الموصوفة في حالة الاستخدام. يُستخدم عادة خط يربط ما بين الأطراف المشاركة لترميز علاقة التشارك، ويمكن تحديد اتجاه السهم لبيان أي طرف يبدأ نقطة التنفيذ.

علاقة التشارك بين المتفاعلين وحالة الاستخدام
الشكل (3): علاقة التشارك الأولى بين "الطالب" وحالة الاستخدام "تسجيل المواد"، والثانية بين "تسجيل المواد" و"نظام الفوترة"

يمكن أن تتكون علاقة بين حالات الاستخدام نفسها، حيث يوجد نوعان من هذه العلاقات:

1. علاقة التضمّن (Include)

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

مثال على علاقة التضمّن Include
الشكل (4): مثال على علاقة التضمّن (Include)؛ تتضمن حالة "تسجيل دخول الطالب" حالة "تسجيل الدخول" لأن محتوياتهما الأساسية واحدة، والإضافة الخاصة بالطالب فقط تُضاف إلى حالته

2. علاقة الامتداد (Extend)

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

مثال على علاقة الامتداد Extend
الشكل (5): مثال على علاقة الامتداد (Extend)؛ تمتد حالة "تسجيل المواد" من حالة "تسجيل دخول الطالب" بشرط إتمام الدخول أولاً

ويمكن أن تتضمن مخططات حالات الاستخدام كلا النوعين من العلاقات في آن واحد، حيث تتم ملاحظة أن لكل منها وظيفتها المحددة الخاصة بها.

مخططات حالات الاستخدام (Use-Cases Charts)

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

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

مخطط حالات استخدام نظام التسجيل الجامعي
الشكل (6): مثال على مخطط حالات استخدام لنظام التسجيل الجامعي، ويحتوي على عدة علاقات بين متفاعلين وحالات استخدام واحدة

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

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

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

Actors
المتفاعلون؛ هم أطراف خارجية تتعامل مع النظام بمقتضى الحاجة إلى الوظائف والحاجة المتوفرة في النظام.
Use-Case
حالة الاستخدام؛ تمثل الوظيفة التي يستطيع النظام توفيرها عن طريق قدرات النظام، أي أن وجود حالة الاستخدام يوفر طريقة فعالة لوصف تصرف النظام.
System Boundary
حدود النظام؛ هي عملية تجزئة المخطط الرئيس لعدد من المخططات حسب الحاجة، وتُستخدم لتسهيل بناء النظام وفهمه.
Include
علاقة التضمّن؛ قد تتشارك العديد من حالات الاستخدام في جزء من وظيفة، بحيث يمكن تضمين هذا الجزء المشترك في حالة استخدام واحدة، وإنشاء علاقة تربط بينها وبين حالات الاستخدام التي تحتاج هذه الوظيفة.
Extend
علاقة الامتداد؛ يُستخدم هذا النوع من العلاقات بين حالة استخدام معينة وحالات استخدام أخرى حسب شرط معين يتحقق منها.
Associate Relationship
علاقة التشارك؛ العلاقة الرابطة بين المتفاعل وحالة الاستخدام، وتحدد من أي طرف يبدأ تنفيذ الوظيفة الموصوفة في حالة الاستخدام.
General Use-Cases
حالات الاستخدام ذات الشكل العام؛ حالات تمكّن المحللين والمستخدمين من التوصل إلى اتفاقية مبدئية حول متطلبات النظام في مرحلة مبكرة من التحليل.
Essential Use-Cases
حالات الاستخدام ذات الشكل الأساسي؛ حالات تحتوي وظيفة محددة مسبقاً يمكن أن تستخدمها حالات استخدام أخرى، مثل حالة تسجيل الدخول.

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

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

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

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

1. يُعتبر المتفاعل (Actor) جزءاً داخلياً من النظام وليس طرفاً خارجياً عنه.

2. يمكن أن يكون المتفاعل شخصاً، أو نظاماً آخر، أو حتى آلة كالطابعة.

3. تُستخدم الأشكال البيضاوية عادة لتوثيق حالات الاستخدام في مخططاتها.

4. علاقة الامتداد (Extend) تُستخدم دائماً بدون أي شرط للانتقال من حالة استخدام إلى أخرى.

5. تساعد علاقة التضمّن (Include) على تقليل التكرار غير الضروري بين حالات الاستخدام.

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

6. حالة الاستخدام التي تحتوي وظيفة محددة مسبقاً يمكن أن تستخدمها حالات استخدام أخرى، مثل "تسجيل الدخول"، تُسمى:

7. العلاقة التي تربط المتفاعل بحالة الاستخدام وتحدد من أي طرف يبدأ التنفيذ تُسمى:

8. في مثال نظام التسجيل الجامعي، حالة الاستخدام "تسجيل المواد" ترتبط بحالة "تسجيل دخول الطالب" عبر علاقة:

9. تجزئة مخطط حالات الاستخدام الرئيس إلى عدد من المخططات الفرعية حسب الحاجة يُسمى:

10. أي مما يلي ليس من الأسئلة التي تساعد في تحديد المتفاعلين؟

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

11. عرّف المتفاعل (Actor)، واذكر ثلاثة أمثلة مختلفة على أنواع المتفاعلين.

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

12. وضّح الفرق بين علاقة التضمّن (Include) وعلاقة الامتداد (Extend) مع إعطاء مثال على كل منهما.

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

13. اختر نظاماً من اختيارك (غير نظام التسجيل الجامعي)، وحدد فيه متفاعلَين اثنين وحالة استخدام واحدة تربط بينهما.

إجابة مقترحة: في نظام صراف آلي (ATM)، يمكن اعتبار "العميل" متفاعلاً يبدأ حالة الاستخدام "سحب نقود"، بينما يُعتبر "النظام المصرفي المركزي" متفاعلاً آخر يستلم نتيجة هذه العملية للتحقق من الرصيد وتحديثه.