ما هو مخطط حالة الاستخدام Use Case Diagram؟

 

مخطط حالة الاستخدام هو نوع من أنواع مخططات الـ (UML) السلوكية، ويستخدم بشكل متكرر لتحليل الأنظمة المختلفة، وهو طريقة لتلخيص تفاصيل النظام والمستخدمين داخل هذا النظام، حيث يظهر بشكل عام كصورة بيانية للتفاعلات بين العناصر المختلفة في النظام، وتقوم مخططات حالة الاستخدام بتحديد الأحداث في النظام وكيف تتدفق هذه الأحداث، مع ذلك، لا تصف مخطط حالة الاستخدام كيفية تنفيذ هذه الأحداث.

 

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

 

أهمية استخدام مخطط حالة الاستخدام:

 

تُستخدم مخططات حالة الاستخدام لتجميع متطلبات استخدام النظام، بناءً على متطلباتك، يمكنك استخدام تلك البيانات بطرق مختلفة، فيما يلي بعض الطرق لاستخدامها:

 

  • لتحديد الوظائف وكيفية تفاعل النظام والمستخدمين معها: الغرض الأساسي من استخدام مخططات حالة الاستخدام.

 

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

 

  • لتحديد العوامل الداخلية والخارجية: قد يبدو هذا بسيطًا ولكن في المشاريع الكبيرة المعقدة يمكن تحديد النظام باعتباره نظام خارجي في حالة استخدام أخرى.

 

كائنات مخطط حالة الاستخدام:

 

 مخططات حالة الاستخدام تتكون من أربعة كائنات:

 

1. الممثل أو الفاعل Actor:

 

الفاعل في مخطط حالة الاستخدام هو أي كيان يؤدي دورًا في نظام معين، ويمكن أن يكون هذا شخصًا أو منظمةً أو نظامًا خارجيًا، وعادة ما يتم رسمه مثل الهيكل العظمي الموضح أدناه:

 

 

2. حالة الاستخدام Use Case:

 

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

 

 

3. النظام System:

 

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

 

 

4. الحزمة Package:

 

الحزمة هي عنصر اختياري آخر مفيد للغاية في المخططات المعقدة، كما في مخططات الفصل “class diagram”، تُستخدم الحزم لتجميع حالات الاستخدام معًا، ويتم رسمها كما في الصورة الموضحة أدناه:

 

 

العلاقات في مخططات حالة استخدام:

 

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

 

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

 

  • التعميم Generalization: فيما يتعلق بالفاعل أو بحالة الاستخدام.

 

  • التمديد Extend: وتكون علاقة بين حالتي استخدام.

 

  • التضمين Include: وتكون علاقة بين حالتي استخدام.

 

كيفية إنشاء مخطط حالة الاستخدام؟

 

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

 

1- تحديد الجهات الفاعلة actors:

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

 

2- تحديد حالات الاستخدام use cases:

 

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

 

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

 

3- البحث عن الوظائف الشائعة لاستخدامها:

 

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

 

4- هل من الممكن إضافة علاقة التعميم للفاعلين وحالات الاستخدام؟

 

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

 

5- وظائف اختيارية أو وظائف إضافية:

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

 

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