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

كتابة سيناريوهات حالات الاستخدام

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

كتابة سيناريوهات حالات الاستخدام

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

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

لماذا النموذج الكامل المحكم؟

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

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

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

النموذج الكامل المحكم

الأقسام المعيارية وغرض كل منها:

حالة الاستخدام: <رقم> — <الاسم> النطاق: النظام قيد التصميم (مثال: نظام حجز العيادة) المستوى: هدف المستخدم | ملخص | وظيفة فرعية الفاعل الأساسي: صاحب المصلحة الرئيسي الذي يُطلق حالة الاستخدام أصحاب المصلحة والاهتمامات: - <الفاعل>: <ما يريده من هذا التفاعل> - ... الشروط المسبقة: ما يجب أن يكون صحيحاً قبل بدء حالة الاستخدام الشروط اللاحقة (ضمان النجاح): ما يكون مضموناً إذا نجحت حالة الاستخدام السيناريو الرئيسي للنجاح: 1. <إجراء الفاعل أو استجابة النظام — خطوة مُرقَّمة> 2. ... الامتدادات (التدفقات البديلة / الاستثنائية): <خطوة>أ. <الحالة التي تُطلق الانحراف>: <خطوة>أ.1 <استجابة النظام أو الفاعل> <خطوة>أ.2 ... (استئناف الخطوة ن، أو انتهاء بالفشل) المتطلبات الخاصة: القيود غير الوظيفية لهذه الحالة تكرار الحدوث: مدى تشغيل حالة الاستخدام في الإنتاج القضايا المفتوحة: أسئلة لم تُحسم بعد قبل التنفيذ
المستوى مهم. تصف حالة الاستخدام على مستوى هدف المستخدم معاملةً كاملة تمنح الفاعل نتيجةً ذات قيمة تجارية (مثال: "حجز موعد"). أما على مستوى الملخص فتجمع عدة أهداف للمستخدم (مثال: "إدارة المواعيد"). والمستوى الوظيفة الفرعية يلتقط خطوة تُستخدم داخل حالة استخدام أخرى (مثال: "التحقق من بطاقة التأمين"). اكتب معظم حالات الاستخدام على مستوى هدف المستخدم — هذا هو المكان الذي يجري فيه العمل التحليلي الحقيقي.

التتبع خلال مثال كامل: حجز موعد

تخيّل عيادة خاصة. يتصل المريض بمكتب الاستقبال، ويستخدم موظف الاستقبال نظام حجز العيادة لتسجيل الموعد. لنبنِ السيناريو الكامل.

Fully-dressed use case structure for Book Appointment Clinic Booking System Book Appointment Check Doctor Availability Send Confirmation Cancel Appointment «include» «include» «extend» Receptionist MSS steps: enter patient details → check availability → confirm slot → send confirmation → save record
مخطط حالة الاستخدام لنظام حجز العيادة يُظهر حالة "حجز موعد" مع علاقاتي include وextend.

إليك الآن السيناريو الكامل المحكم لحالة حجز موعد:

حالة الاستخدام: UC-01 — حجز موعد النطاق: نظام حجز العيادة المستوى: هدف المستخدم الفاعل الأساسي: موظف الاستقبال أصحاب المصلحة والاهتمامات: - موظف الاستقبال: يريد تسجيل الموعد بسرعة مع أقل قدر من إدخال البيانات. - المريض: يريد تأكيداً لموعد مع الطبيب الصحيح في وقت مناسب. - الطبيب: يريد أن يعكس جدوله المواعيد الصحيحة والمؤكدة فقط. - مدير العيادة: يريد ربط كل موعد بسجل مريض لأغراض الفوترة. الشروط المسبقة: - موظف الاستقبال مُصادق عليه ولديه صلاحية "الحجز". - للمريض سجل موجود في النظام أو موافقة على إنشاء سجل جديد. - يوجد في النظام طبيب واحد على الأقل بالتخصص المطلوب. الشروط اللاحقة (ضمان النجاح): - يوجد سجل موعد جديد بحالة "مؤكد". - يظهر الموعد في جدول الطبيب. - تم إرسال رسالة تأكيد عبر الرسائل القصيرة أو البريد الإلكتروني للمريض. - يسجّل سجل التدقيق من أنشأ الموعد ومتى. السيناريو الرئيسي للنجاح: 1. يبحث موظف الاستقبال عن المريض بالاسم أو رقم الهاتف. 2. يعرض النظام سجل/سجلات المريض المطابقة. 3. يختار موظف الاستقبال المريض الصحيح. 4. يختار موظف الاستقبال التخصص المطلوب والطبيب المفضل. 5. يعرض النظام المواعيد المتاحة للـ 30 يوماً القادمة. 6. يختار موظف الاستقبال موعداً ويُدخل سبب الزيارة (ملاحظات اختيارية). 7. يتحقق النظام من أن الموعد لا يزال متاحاً ويفحص تعارضات الجدول. 8. ينشئ النظام سجل الموعد بحالة "مؤكد". 9. يرسل النظام رسالة تأكيد للمريض عبر قناته المفضلة. 10. يعرض النظام رمز التأكيد لموظف الاستقبال. الامتدادات (التدفقات البديلة / الاستثنائية): 3أ. لم يُعثر على سجل المريض: 3أ.1 يطلب النظام من موظف الاستقبال إنشاء سجل مريض جديد. 3أ.2 يُدخل موظف الاستقبال الاسم وتاريخ الميلاد ورقم التواصل ورقم التأمين. 3أ.3 يحفظ النظام السجل الجديد ويستأنف عند الخطوة 4. 5أ. لا توجد مواعيد متاحة للطبيب المختار خلال 30 يوماً: 5أ.1 يعرض النظام رسالة "لا توجد مواعيد متاحة في الـ 30 يوماً القادمة". 5أ.2 قد يختار موظف الاستقبال طبيباً مختلفاً بنفس التخصص. 5أ.3 إن لم يوجد بديل، تنتهي حالة الاستخدام بالفشل ويُخبر موظف الاستقبال المريض بالاتصال لاحقاً. 7أ. الموعد محجوز من طرف آخر بين الخطوتين 5 و7 (حالة التسابق): 7أ.1 يعرض النظام رسالة "هذا الموعد لم يعد متاحاً. الرجاء اختيار موعد آخر". 7أ.2 يحدّث النظام عرض الإتاحة. 7أ.3 استئناف عند الخطوة 6. 7ب. اكتشاف تعارض في الجدول (الطبيب غائب أو في إجازة): 7ب.1 يعرض النظام رسالة "الطبيب غير متاح في ذلك التاريخ". 7ب.2 استئناف عند الخطوة 5. 9أ. بيانات تواصل المريض مفقودة أو غير صالحة — لا يمكن إرسال التأكيد: 9أ.1 يُسجّل النظام تحذيراً ولا يوقف عملية الحجز. 9أ.2 يعرض النظام رسالة "تعذّر إرسال التأكيد — يرجى إخطار المريض يدوياً". 9أ.3 استئناف عند الخطوة 10. المتطلبات الخاصة: - يجب أن يستجيب اختيار الموعد خلال ثانيتين (أداء). - يجب أن يمتثل النظام للوائح بيانات المرضى المحلية / HIPAA (أمن). تكرار الحدوث: نحو 80–150 حجزاً يومياً لكل عيادة. القضايا المفتوحة: - هل يسمح النظام بالحجز المزدوج إذا كان الموعد الثاني مُصنَّفاً "عاجلاً"؟ - ما الحد الأقصى لنافذة الحجز المسبق (30 يوماً؟ 90 يوماً؟)؟

قراءة السيناريو: ملاحظات جوهرية

ادرس كيف يُبنى السيناريو:

  • كل خطوة في السيناريو الرئيسي تفاعل واحد قابل للملاحظة — إما يفعل الفاعل شيئاً، أو يستجيب النظام. لا تكون الخطوات أفعالاً مركّبة (لا تكتب "يفعل الفاعل X وY وZ" في خطوة واحدة). إذا احتجت ثلاثة أشياء، اكتب ثلاث خطوات.
  • الامتدادات تستخدم ترقيماً مركّباً، ، ، . الرقم الأول هو خطوة السيناريو الرئيسي التي يمكن أن يقع فيها الانحراف. الحرف يُميّز الحالات المتعددة في نفس الخطوة. الإجراءات المتداخلة داخل الامتداد هي 3أ.1، 3أ.2، إلخ.
  • كل امتداد يُحسم بشكل صريح — إما يستأنف عند خطوة سيناريو رئيسي محددة ("استئناف عند الخطوة 5") أو ينتهي بمخرج نجاح/فشل. ترك الامتداد دون حسم خطأ شائع في السيناريوهات المبتدئة.
  • الشروط اللاحقة نتائج مضمونة، لا خطوات — تصف حالة العالم بعد النجاح، لا ما يفعله النظام. "إرسال رسالة تأكيد" هي شرط لاحق، لا "يرسل النظام رسالة" (تلك هي الخطوة 9).
استخدم صيغة المبني للمعلوم مع فاعل واضح. اكتب "يختار موظف الاستقبال المريض" أو "يتحقق النظام من الموعد" — لا تستخدم صيغة المبني للمجهول مثل "يتم التحقق من الموعد". صيغة المبني للمجهول تُخفي المسؤول، مما يخلق التباساً في التنفيذ.

مثال ثانٍ: إعادة كتاب (نظام مكتبة)

إليك سيناريو أقصر لكنه مكتمل لتعزيز النمط مع نطاق مختلف:

حالة الاستخدام: UC-12 — إعادة كتاب النطاق: نظام إدارة المكتبة المستوى: هدف المستخدم الفاعل الأساسي: أمين المكتبة الشروط المسبقة: - أمين المكتبة مسجّل دخوله. - الباركود الخاص بالكتاب وسجل المستعير موجودان في النظام. الشروط اللاحقة: - تم تعيين حالة الكتاب إلى "متاح". - سجل الإعارة مُغلق مع تاريخ الإعادة. - تمت إضافة أي غرامة تأخير مستحقة إلى حساب المستعير. السيناريو الرئيسي للنجاح: 1. يمسح أمين المكتبة باركود الكتاب. 2. يسترجع النظام سجل الإعارة النشطة لهذا الكتاب. 3. يحسب النظام عدد أيام التأخير (إن وجدت). 4. يُعلّم النظام الإعارة كمُعادة ويحدّث حالة الكتاب إلى "متاح". 5. يعرض النظام ملخص الإعادة (اسم المستعير، تاريخ الاستحقاق، الغرامة إن وُجدت). 6. يؤكد أمين المكتبة المعاملة. الامتدادات: 1أ. الباركود غير معروف: 1أ.1 يعرض النظام رسالة "الكتاب غير موجود في الكتالوج". 1أ.2 يتحقق أمين المكتبة من الإدخال اليدوي أو يُبلّغ عن الباركود التالف. تنتهي حالة الاستخدام. 2أ. لا يوجد سجل إعارة نشط للكتاب (ربما أُعيد من قبل): 2أ.1 يعرض النظام رسالة "لا يوجد سجل إعارة نشط لهذا الكتاب". 2أ.2 يحقق أمين المكتبة يدوياً. تنتهي حالة الاستخدام. 3أ. الكتاب متأخر — تُطبَّق غرامة: 3أ.1 يحسب النظام الغرامة وفق السعر اليومي المُعدّ. 3أ.2 يضيف النظام الغرامة إلى حساب المستعير. 3أ.3 استئناف عند الخطوة 4.
Anatomy of a fully-dressed use case scenario تشريح حالة الاستخدام الكاملة المحكمة PRECONDITIONS ما يجب أن يكون صحيحاً قبل بدء حالة الاستخدام MAIN SUCCESS SCENARIO خطوات مُرقَّمة — المخرج المثالي في المسار الأمثل POSTCONDITIONS الحالة المضمونة بعد النجاح EXTENSIONS — التدفقات البديلة والاستثنائية انحراف مُرقَّم من خطوة محددة في السيناريو الرئيسي (مثال: 3أ، 7ب) — كل منه يُحسم أو ينتهي بالفشل الامتدادات تمثّل 60-80% من العمل التحليلي الحقيقي في حالة الاستخدام المعقدة تدفق الوقت: قبل ← أثناء → بعد التفرعات من السيناريو الرئيسي
الأقسام الثلاثة الرئيسية لحالة الاستخدام الكاملة المحكمة وكيف تتفرع الامتدادات من السيناريو الرئيسي للنجاح.

أخطاء شائعة يجب تجنبها

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