UML: مخططات حالات الاستخدام والسيناريوهات

تعميم الأطراف الفاعلة وحالات الاستخدام

18 دقيقة الدرس 5 من 10

تعميم الأطراف الفاعلة وحالات الاستخدام

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

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

تعميم الأطراف الفاعلة

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

في نظام حجز عيادة طبية، تأمَّل الأدوار الثلاثة التالية:

  • المستخدم (User) — أي شخص يتفاعل مع البوابة العامة: يستطيع تصفح المواعيد المتاحة وعرض ملفات الأطباء.
  • المريض (Patient) — مستخدم مسجّل: يرث التصفح والعرض، ويضيف حجز موعد وإلغاء موعد وعرض السجل الطبي.
  • المريض المميز (Premium Patient) — مشترك بباقة مدفوعة: يرث كل ما يقوم به المريض، ويضيف طلب موعد ذي أولوية وتنزيل التقارير.

يُرسم هذا التسلسل الهرمي الثلاثي المستويات بسهمَي تعميم: Patient → User و Premium Patient → Patient. المخطط الناتج أكثر وضوحًا بكثير من تكرار جميع الارتباطات الموروثة على كل طرف فاعل.

Actor Generalization in a Clinic Booking System Clinic Booking System Browse Available Slots View Doctor Profiles Book Appointment Cancel Appointment View Medical History Request Priority Appt. Download Reports User Patient Premium Patient = Generalization
التسلسل الهرمي لتعميم الأطراف الفاعلة: المريض المميز يرث من المريض، والمريض يرث من المستخدم — كل مستوى يضيف حالات استخدام جديدة.
قراءة السهم: يشير سهم التعميم من الابن نحو الأب (من الطرف الفاعل المتخصص نحو الطرف العام). يتبع هذا نفس القاعدة المستخدمة في تعميم الفئات ضمن مخططات الفئات (Class Diagrams): رأس السهم المثلثي المجوف يشير دائمًا نحو العنصر الأكثر عمومية.

تعميم حالات الاستخدام

يمكن أيضًا تعميم حالات الاستخدام ذاتها. تُعرِّف حالة الاستخدام الأم الهدف الكلي والتدفق العام؛ أما حالة الاستخدام الابنة فترث ذلك السلوك وتُعيد تعريف خطوات بعينها أو تُوسِّعها دون الحاجة إلى إعادة تعريف التدفق بأكمله. ويختلف هذا عن «include» و«extend» اللذين يتعلقان بإعادة الاستخدام والإضافة الشرطية — إذ يتعلق التعميم بـتخصيص السلوك.

في متجر إلكتروني، تُعرِّف حالة الاستخدام معالجة الدفع (Process Payment) الهدف المجرد المتمثل في تحصيل المال من العميل. تخصِّصها حالتا استخدام ابنتان:

  • الدفع ببطاقة الائتمان (Pay by Credit Card) — ترث التدفق العام للدفع وتُعيد تعريف الخطوة التي تُجمع فيها بيانات الدفع لتطلب رقم البطاقة وتاريخ انتهاء الصلاحية ورمز CVV.
  • الدفع بالمحفظة الرقمية (Pay by Digital Wallet) — ترث الأم نفسها وتُعيد تعريف خطوة جمع البيانات لإعادة توجيه العميل إلى مزود المحفظة (PayPal، Apple Pay، إلخ).

يمكن للأطراف الفاعلة تشغيل حالات الاستخدام الابنة مباشرةً، في حين قد تكون حالة الاستخدام الأم مجردة — أي لا يُشغِّلها أي طرف فاعل بشكل مباشر، بل وجودها محصورٌ في تحديد البنية المشتركة التي ترثها الحالات الابنة.

Use Case Generalization in an Online Store Online Store – Payment Subsystem Process Payment (abstract) Pay by Credit Card Pay by Digital Wallet Customer Confirm Order Abstract UC Concrete UC
تعميم حالة الاستخدام: الدفع ببطاقة الائتمان والدفع بالمحفظة الرقمية تُخصِّصان حالة الاستخدام المجردة "معالجة الدفع".

الفرق بين التعميم و«include» و«extend»

كثيرًا ما يخلط المحللون الجدد بين التعميم والعلاقتين الأخريين في حالات الاستخدام. يوضح الجدول التالي الفرق:

Relationship | Meaning | When to use ------------------|------------------------------------------|--------------------------------- Generalization | Child inherits & may override parent | Role hierarchy; behavioral specialization «include» | Base UC always calls the included UC | Mandatory shared sub-behavior «extend» | Extension UC optionally inserts behavior | Optional, conditional additions
إرشاد عملي: استخدم التعميم عندما تستطيع إكمال الجملة: "الطرف/الحالة [الابن] هو نوع من الطرف/الحالة [الأم]، ولكن بسلوك مختلف أو إضافي." إذا كنت ستقول "أ تُشغِّل ب دائمًا" فاستخدم «include»؛ وإذا كنت ستقول "ب تُضيف أحيانًا سلوكًا لأ" فاستخدم «extend».

تعميم الأطراف الفاعلة في نظام مكتبة

تأمَّل نظام إدارة مكتبة يضم التسلسل الهرمي التالي للأدوار:

  • عضو المكتبة (Library Member) — يستطيع البحث في الفهرس واستعارة مادة وإعادة مادة وسداد غرامة.
  • موظف المكتبة (Staff Member) — يرث كل ما يستطيعه العضو العادي، ويضيف معالجة إعارة وتسجيل عضو جديد وتوليد التقارير.
  • رئيس المكتبة (Head Librarian) — يرث من موظف المكتبة، ويضيف ضبط إعدادات النظام واعتماد الميزانية.

هنا السلسلة الهرمية هي Staff Member → Library Member وHead Librarian → Staff Member. رسم هذين السهمين بدلًا من تكرار كل ارتباط موروث يجعل المخطط أكثر إيجازًا ودقةً دلاليًا.

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

المجرد مقابل الملموس في تعميم حالات الاستخدام

تُسمى حالة الاستخدام الأم مجردة (Abstract) عندما لا يُشغِّلها أي طرف فاعل مباشرةً — فوجودها محصورٌ في تعريف البنية المشتركة التي ترثها الحالات الابنة وتُخصِّصها. تُعرَض حالات الاستخدام المجردة باصطلاح بإطار بيضاوي بخط متقطع أو بكتابة الاسم بـخط مائل (italic).

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

في السيناريوهات النصية: عند كتابة وثيقة سيناريو حالة الاستخدام لحالة ابنة، ابدأ بـ"يمتد من: [اسم حالة الاستخدام الأم]" في الترويسة، ثم أدرج فقط الخطوات المُعاد تعريفها أو الإضافية. هذا يجعل الوثائق النصية بسيطةً كما هو المخطط.

ملخص

  • التعميم = علاقة "هو نوع من" (IS-A)؛ الابن يرث جميع ارتباطات وسلوكيات الأب.
  • اتجاه السهم: من الابن (المتخصص) نحو الأب (العام)، مع رأس سهم مثلثي مجوف عند نهاية الأب.
  • يسري على كلٍّ من الأطراف الفاعلة (وراثة الأدوار) وحالات الاستخدام (تخصيص السلوك).
  • حالة الاستخدام الأم المجردة لا تحمل ارتباطات مباشرة مع أطراف فاعلة — فقط حالاتها الملموسة الابنة تُشغَّل مباشرةً.
  • فضِّل التعميم على تكرار الارتباطات متى وُجدت علاقة IS-A حقيقية بين الأطراف الفاعلة أو حالات الاستخدام.