طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 241 · تحليل وتصميم برمجيات الويب
الدرس 6 · الوحدة 3: التحويل من متطلبات العميل إلى مواصفات دقيقة

حالات الاستخدام: المخطط والوصف

كيف تتأكد أن المتطلبات تغطي كل أهداف المستخدمين، وتصف كل هدف خطوة خطوة؟ ⏱ نحو 45 دقيقة.

بعد هذا الدرس ستستطيع أن:
  • تحدد الممثلين وحالات الاستخدام وحدود النظام.
  • ترسم مخطط حالات الاستخدام بـ Mermaid مع علاقة include.
  • تكتب وصف حالة استخدام بسيناريو أساسي وبدائل وشروط مسبقة ولاحقة.
  • ترسم سيناريو بمخطط نشاط فيه قرارات وحلقات.

١حالة الاستخدام: هدف يحققه المستخدم بالنظام

حالة الاستخدام Use Case وصف لتفاعل بين مستخدم والنظام لتحقيق هدف له قيمة: «التسجيل في دورة» حالة استخدام، أما «الضغط على زر» فخطوة داخلها. تساعدك حالات الاستخدام على التأكد من أن قائمة المتطلبات مكتملة: لكل مستخدم أهدافه، ولكل هدف خطواته.

المفهوممعناهمثال
الممثل Actorدور (لا شخص بعينه) يتفاعل مع النظام من خارجهالمتدرب، وموظفة التسجيل، وبوابة الدفع (نظام خارجي)
حالة الاستخدامهدف يحققه الممثل باستخدام النظامالتسجيل في دورة
حدود النظامما يقع داخل مسؤولية نظامنا وما يقع خارجهالدفع الفعلي يتم في بوابة خارجية خارج الحدود
includeحالة تتضمن دائمًا حالة أخرىالتسجيل يتضمن دفع الرسوم
extendحالة اختيارية تضيف سلوكًا عند شرطتطبيق كود خصم (عند وجوده) يمدّ الدفع

٢مخطط حالات الاستخدام

في UML يُرسم الممثل شكلًا بشريًّا، وحالة الاستخدام شكلًا بيضاويًّا داخل مستطيل حدود النظام. Mermaid لا يحوي نوعًا خاصًّا لهذا المخطط، فنرسمه بمخطط التدفق باتفاق بسيط نلتزم به في المقرر:

العنصرفي Mermaid
الممثلT[المتدرب] مستطيل خارج الحدود
حالة الاستخدامu2([التسجيل في دورة]) شكل بيضاوي داخل الحدود
حدود النظامsubgraph S[نظام دورات] … end
ارتباط الممثل بالحالةT --- u2 خط بلا سهم
includeu2 -. include .-> u3 سهم منقط عليه include
diagram.mmd
flowchart LR  T[المتدرب]  R[موظفة التسجيل]  subgraph S[نظام دورات]    u1([البحث عن دورة])    u2([التسجيل في دورة])    u3([دفع الرسوم])    u4([اعتماد طلب التسجيل])  end  P[بوابة الدفع]  T --- u1  T --- u2  u2 -. include .-> u3  u3 --- P  R --- u4

نظام دورات

include

المتدرب

موظفة التسجيل

البحث عن دورة

التسجيل في دورة

دفع الرسوم

اعتماد طلب التسجيل

بوابة الدفع

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

٣وصف حالة الاستخدام

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

📋 UC-02 · التسجيل في دورةوصف حالة استخدام
الممثل الأساسي
المتدرب
الممثلون الثانويون
بوابة الدفع
الشروط المسبقة
المتدرب مسجّل الدخول، والدورة منشورة.
السيناريو الأساسي
  1. يختار المتدرب الدورة.
  2. يعرض النظام التفاصيل والمقاعد المتاحة.
  3. يضغط المتدرب «سجّل».
  4. يحجز النظام المقعد 15 دقيقة.
  5. ينفّذ المتدرب حالة «دفع الرسوم».
  6. يؤكد النظام التسجيل ويرسل رسالة.
السيناريوهات البديلة
2أ. لا توجد مقاعد: يعرض «مكتملة» ويقترح دورات مشابهة.
5أ. فشل الدفع: يُلغى الحجز بعد 15 دقيقة ويُبلَّغ المتدرب.
الشروط اللاحقة
للمتدرب تسجيل مؤكد، ونقص عدد المقاعد واحدًا.
المتطلبات المرتبطة
FR-02, FR-03, NFR-01

لاحظ ترقيم البدائل: «2أ» يعني بديلًا عن الخطوة 2. هكذا تغطي الحالات الاستثنائية التي ينساها كثيرون، وهي غالبًا ما تُسقط الأنظمة.

٤السيناريو مرسومًا: مخطط النشاط

حين يكثر التفرع في السيناريو، يوضّحه مخطط النشاط Activity: خطوات متتابعة، ومعيّنات للقرارات، وأسهم للتسلسل.

diagram.mmd
flowchart TD  a([يختار المتدرب دورة]) --> b{هل توجد مقاعد؟}  b -- لا --> c[يعرض «مكتملة» ويقترح دورة أخرى]  b -- نعم --> d[يُدخل بياناته]  d --> e{البيانات صحيحة؟}  e -- لا --> d  e -- نعم --> f[يحجز النظام المقعد مؤقتًا]  f --> g[دفع الرسوم]  g --> h([يرسل النظام تأكيد التسجيل])

لا

نعم

لا

نعم

يختار المتدرب دورة

هل توجد مقاعد؟

يعرض «مكتملة» ويقترح دورة أخرى

يُدخل بياناته

البيانات صحيحة؟

يحجز النظام المقعد مؤقتًا

دفع الرسوم

يرسل النظام تأكيد التسجيل

المعيّن {…} قرار له مخرجان؛ اكتب على كل سهم شرطه: -- نعم -->. لاحظ الحلقة: إن كانت البيانات خاطئة يعود السهم إلى خطوة الإدخال.

توقّع وتحقّق

أي مما يلي يصلح اسمًا لحالة استخدام؟

فعل + مفعول بهدف ذي قيمة.

بوابة الدفع الإلكتروني في مخطط حالات الاستخدام:

نظام خارجي يتفاعل مع نظامنا.

«التسجيل يتضمن دائمًا دفع الرسوم» علاقة:

ماذا يعني البديل «5أ» في وصف الحالة؟

الخلاصة

تحدٍّ تصميمي: مخطط حالات استخدام «دورات»

متوسط

أكمل مخطط حالات الاستخدام لنظام «دورات» بالاتفاق المستخدم في الدرس.

المطلوب:
  • الممثلون (مستطيلات خارج الحدود): المتدرب، وموظفة التسجيل، والمدرب، وبوابة الدفع.
  • خمس حالات استخدام على الأقل (أشكال بيضاوية) داخل subgraph النظام.
  • كل حالة مرتبطة بممثل أو بحالة أخرى.
  • التسجيل في دورة يتضمن (include) دفع الرسوم، والدفع مرتبط ببوابة الدفع.
  • المدرب مرتبط بحالة عرض قائمة المسجلين.
✓ التحقق الآلي: يقرأ المختبر مخططك (العناصر والروابط) ويفحصه
  • المخطط مكتوب بصيغة صحيحة ويُرسم
  • نوعه: مخطط تدفق flowchart
  • ممثل «المتدرب»
  • ممثل «موظفة التسجيل»
  • ممثل «المدرب»
  • ممثل «بوابة الدفع»
  • خمس حالات استخدام على الأقل
  • كل حالات الاستخدام داخل حدود النظام
  • الممثلون خارج الحدود
  • كل حالة استخدام مرتبطة بشيء
  • التسجيل يتضمن الدفع (include)
  • الدفع مرتبط ببوابة الدفع
  • المدرب مرتبط بعرض قائمة المسجلين

💡 تلميح 1
انسخ سطر حالة البحث وعدّل المعرّف والنص: u2([التسجيل في دورة]) داخل subgraph.
💡 تلميح 2
الممثلون تُكتب قبل subgraph أو بعده، لا بداخله.
💡 تلميح 3
سهم include: u2 -. include .-> u3

حاول بنفسك أولًا؛ للتصميم أكثر من حلّ صحيح، والفحص يتأكد من العناصر الأساسية فقط.

diagram.mmd
flowchart LR  T[المتدرب]  R[موظفة التسجيل]  C[المدرب]  subgraph S[نظام دورات]    u1([البحث عن دورة])    u2([التسجيل في دورة])    u3([دفع الرسوم])    u4([اعتماد طلب التسجيل])    u5([عرض قائمة المسجلين])  end  P[بوابة الدفع]  T --- u1  T --- u2  u2 -. include .-> u3  u3 --- P  R --- u4  C --- u5

نظام دورات

include

المتدرب

موظفة التسجيل

المدرب

البحث عن دورة

التسجيل في دورة

دفع الرسوم

اعتماد طلب التسجيل

عرض قائمة المسجلين

بوابة الدفع

انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس