حالات الاستخدام: المخطط والوصف
كيف تتأكد أن المتطلبات تغطي كل أهداف المستخدمين، وتصف كل هدف خطوة خطوة؟ ⏱ نحو 45 دقيقة.
- تحدد الممثلين وحالات الاستخدام وحدود النظام.
- ترسم مخطط حالات الاستخدام بـ
Mermaidمع علاقةinclude. - تكتب وصف حالة استخدام بسيناريو أساسي وبدائل وشروط مسبقة ولاحقة.
- ترسم سيناريو بمخطط نشاط فيه قرارات وحلقات.
١حالة الاستخدام: هدف يحققه المستخدم بالنظام
حالة الاستخدام Use Case وصف لتفاعل بين مستخدم والنظام لتحقيق هدف له قيمة: «التسجيل في دورة» حالة استخدام، أما «الضغط على زر» فخطوة داخلها. تساعدك حالات الاستخدام على التأكد من أن قائمة المتطلبات مكتملة: لكل مستخدم أهدافه، ولكل هدف خطواته.
| المفهوم | معناه | مثال |
|---|---|---|
| الممثل Actor | دور (لا شخص بعينه) يتفاعل مع النظام من خارجه | المتدرب، وموظفة التسجيل، وبوابة الدفع (نظام خارجي) |
| حالة الاستخدام | هدف يحققه الممثل باستخدام النظام | التسجيل في دورة |
| حدود النظام | ما يقع داخل مسؤولية نظامنا وما يقع خارجه | الدفع الفعلي يتم في بوابة خارجية خارج الحدود |
| include | حالة تتضمن دائمًا حالة أخرى | التسجيل يتضمن دفع الرسوم |
| extend | حالة اختيارية تضيف سلوكًا عند شرط | تطبيق كود خصم (عند وجوده) يمدّ الدفع |
٢مخطط حالات الاستخدام
في UML يُرسم الممثل شكلًا بشريًّا، وحالة الاستخدام شكلًا بيضاويًّا داخل مستطيل حدود النظام. Mermaid لا يحوي نوعًا خاصًّا لهذا المخطط، فنرسمه بمخطط التدفق باتفاق بسيط نلتزم به في المقرر:
| العنصر | في Mermaid |
|---|---|
| الممثل | T[المتدرب] مستطيل خارج الحدود |
| حالة الاستخدام | u2([التسجيل في دورة]) شكل بيضاوي داخل الحدود |
| حدود النظام | subgraph S[نظام دورات] … end |
| ارتباط الممثل بالحالة | T --- u2 خط بلا سهم |
| include | u2 -. include .-> u3 سهم منقط عليه include |
flowchart LR T[المتدرب] R[موظفة التسجيل] subgraph S[نظام دورات] u1([البحث عن دورة]) u2([التسجيل في دورة]) u3([دفع الرسوم]) u4([اعتماد طلب التسجيل]) end P[بوابة الدفع] T --- u1 T --- u2 u2 -. include .-> u3 u3 --- P R --- u4
اقرأ المخطط: المتدرب يبحث عن دورة ويسجّل فيها، والتسجيل يتضمن دفع الرسوم الذي يتم عبر بوابة الدفع الخارجية، وموظفة التسجيل تعتمد الطلبات. جرّب: أضف ممثلًا ثالثًا «المدرب» وحالة «عرض قائمة المسجلين».
٣وصف حالة الاستخدام
المخطط يعطي الصورة العامة، لكن التفاصيل في وصف الحالة: نص منظم بقالب ثابت يصف السيناريو خطوة خطوة، ومنه يُكتب الكود والاختبار.
- الممثل الأساسي
- المتدرب
- الممثلون الثانويون
- بوابة الدفع
- الشروط المسبقة
- المتدرب مسجّل الدخول، والدورة منشورة.
- السيناريو الأساسي
- يختار المتدرب الدورة.
- يعرض النظام التفاصيل والمقاعد المتاحة.
- يضغط المتدرب «سجّل».
- يحجز النظام المقعد 15 دقيقة.
- ينفّذ المتدرب حالة «دفع الرسوم».
- يؤكد النظام التسجيل ويرسل رسالة.
- السيناريوهات البديلة
- 2أ. لا توجد مقاعد: يعرض «مكتملة» ويقترح دورات مشابهة.
5أ. فشل الدفع: يُلغى الحجز بعد 15 دقيقة ويُبلَّغ المتدرب. - الشروط اللاحقة
- للمتدرب تسجيل مؤكد، ونقص عدد المقاعد واحدًا.
- المتطلبات المرتبطة
- FR-02, FR-03, NFR-01
لاحظ ترقيم البدائل: «2أ» يعني بديلًا عن الخطوة 2. هكذا تغطي الحالات الاستثنائية التي ينساها كثيرون، وهي غالبًا ما تُسقط الأنظمة.
٤السيناريو مرسومًا: مخطط النشاط
حين يكثر التفرع في السيناريو، يوضّحه مخطط النشاط Activity: خطوات متتابعة، ومعيّنات للقرارات، وأسهم للتسلسل.
flowchart TD a([يختار المتدرب دورة]) --> b{هل توجد مقاعد؟} b -- لا --> c[يعرض «مكتملة» ويقترح دورة أخرى] b -- نعم --> d[يُدخل بياناته] d --> e{البيانات صحيحة؟} e -- لا --> d e -- نعم --> f[يحجز النظام المقعد مؤقتًا] f --> g[دفع الرسوم] g --> h([يرسل النظام تأكيد التسجيل])
المعيّن {…} قرار له مخرجان؛ اكتب على كل سهم شرطه: -- نعم -->. لاحظ الحلقة: إن كانت البيانات خاطئة يعود السهم إلى خطوة الإدخال.
توقّع وتحقّق
أي مما يلي يصلح اسمًا لحالة استخدام؟
بوابة الدفع الإلكتروني في مخطط حالات الاستخدام:
«التسجيل يتضمن دائمًا دفع الرسوم» علاقة:
ماذا يعني البديل «5أ» في وصف الحالة؟
الخلاصة
- حالة الاستخدام: هدف ذو قيمة يحققه ممثل بالنظام، واسمها فعل + مفعول.
- الممثل دور أو نظام خارجي، يقع خارج حدود النظام.
include: تتضمنها دائمًا.extend: تضيف سلوكًا اختياريًّا عند شرط.- وصف الحالة: الممثلون، والشروط المسبقة، والسيناريو الأساسي، والبدائل، والشروط اللاحقة.
- مخطط النشاط يوضح التفرعات والحلقات في السيناريو.
تحدٍّ تصميمي: مخطط حالات استخدام «دورات»
متوسطأكمل مخطط حالات الاستخدام لنظام «دورات» بالاتفاق المستخدم في الدرس.
- الممثلون (مستطيلات خارج الحدود): المتدرب، وموظفة التسجيل، والمدرب، وبوابة الدفع.
- خمس حالات استخدام على الأقل (أشكال بيضاوية) داخل
subgraphالنظام. - كل حالة مرتبطة بممثل أو بحالة أخرى.
- التسجيل في دورة يتضمن
(include)دفع الرسوم، والدفع مرتبط ببوابة الدفع. - المدرب مرتبط بحالة عرض قائمة المسجلين.
- المخطط مكتوب بصيغة صحيحة ويُرسم
- نوعه: مخطط تدفق flowchart
- ممثل «المتدرب»
- ممثل «موظفة التسجيل»
- ممثل «المدرب»
- ممثل «بوابة الدفع»
- خمس حالات استخدام على الأقل
- كل حالات الاستخدام داخل حدود النظام
- الممثلون خارج الحدود
- كل حالة استخدام مرتبطة بشيء
- التسجيل يتضمن الدفع
(include) - الدفع مرتبط ببوابة الدفع
- المدرب مرتبط بعرض قائمة المسجلين
💡 تلميح 1
u2([التسجيل في دورة]) داخل subgraph.💡 تلميح 2
💡 تلميح 3
u2 -. include .-> u3حاول بنفسك أولًا؛ للتصميم أكثر من حلّ صحيح، والفحص يتأكد من العناصر الأساسية فقط.
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