مخطط حالات الاستخدام Use Case Diagrams

مقال حول مخططات حالات الاستخدام (Use Case Diagrams)، بدءًا من تعريفها وأهميتها، مرورًا بتصنيفاتها ومكوناتها، وصولًا إلى خطوات إنشائها وتطبيقها

مخطط حالات الاستخدام Use Case Diagrams

في هندسة البرمجيات وتطوير الأنظمة، تعتبر مخططات حالات الاستخدام (Use Case Diagrams) واحدة من أهم التقنيات المستخدمة في تحليل المتطلبات وتصميم الأنظمة. فهي توفر تمثيلًا بصريًا يوضح كيفية تفاعل المستخدمين (Actors) مع النظام لتلبية احتياجاتهم من خلال مجموعة من السيناريوهات....

هندسة البرمجيات - حالات الاستخدام Software Engineering- use case

في هذا المقال، سنستعرض كل ما تحتاج لمعرفته حول مخططات حالات الاستخدام (Use Case Diagrams)، بدءًا من تعريفها وأهميتها، مرورًا بتصنيفاتها ومكوناتها، وصولًا إلى خطوات إنشائها وتطبيقها في سيناريو عملي. سواءً كنت مبتدئًا أو محترفًا، ستجد في هذا المقال دليلًا شاملًا لفهم مخططات حالات الاستخدام use-case diagrams وكيفية توظيفها في مشاريع البرمجيات. لنبدأ…

نتعرف في هذا المقال على:



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

مخطط حالة الاستخدام (Use Case Diagram) أحد مخططات لغة الـ UML وهي لغة النمذجة الموحدة المستخدمة في هندسة البرمجيات Software Engineering. ويمثل الـ Use Case Diagram الشكل الأساسي لمتطلبات النظام/ البرنامج الجديد غير المطور. حيث تحدد حالات الاستخدام السلوك المتوقع (ماذا)، وليس الطريقة الدقيقة لتحقيق ذلك (كيف).

تم تطوير مخطط حالات الاستخدام (use-case diagram) في الأصل لدعم استنباط المتطلبات (المزيد عن المتطلبات في مقال المتطلبات) وتم دمجها الآن في لغة النمذجة الموحدة (UML). وتمثل كل حالة استخدام (Use-Case) مهمة منفصلة تتضمن تفاعلًا خارجيًا مع النظام. قد يكون الجهات الخارجية في الـ Use-case diagram أشخاصًا أو أنظمة أخرى. و يتم تمثيلها بشكل تخطيطي لتقديم نظرة عامة على حالات الاستخدام (use-case) أوفي شكل نصي أكثر تفصيلاً.

إن حالة الاستخدام (Use Case) أحد المفاهيم الأساسية في نمذجة النظم أنها تساعدنا في تصميم نظام من وجهة نظر المستخدم النهائي. ويمكن لحالات الاستخدام use-cases أن تمثل بشكل النصي أو المرئي (أي مخطط حالة الاستخدام). إنها تقنية فعالة لوصف سلوك النظام وفقًا لشروط المستخدم من خلال تحديد جميع سلوكيات النظام المرئية خارجيًا.

عادةً ما يكون مخطط حالة الاستخدام (use-case diagram) بسيطًا. ولا يعرض تفاصيل حالات الاستخدام إنه يلخص فقط بعض العلاقات بين حالات الاستخدام(use-cases) والجهات الفاعلة.ولا يُظهر الترتيب الذي يتم به تنفيذ الخطوات لتحقيق أهداف كل حالة استخدام. ومعنى أن يكون مخطط حالة الاستخدام بسيطًا أن يحتوي على عدد قليل فقط من الأشكال. إذا كان يحتوي على أكثر من 20 حالة استخدام، فمن المحتمل أنك تسيء استخدام مخطط حالة الاستخدام use-case diagram.

يمنحنا مخطط حالة الاستخدام (use-case diagram) رؤية عالية المستوى لما يفعله النظام أو جزء منه دون الخوض في تفاصيل التنفيذ.حيث تعرض مخططات الحالات الممكنة والتفاعلات بين الممثلين (المستخدمين) والنظام، مما يساعد في تحديد متطلبات النظام وتوثيق التفاعلات المتوقعة.

إذن مخطط حالات الاستخدام (Use-Case Diagram) هو تقنية تستخدم في هندسة البرمجيات لتوثيق وتحليل متطلبات النظام من منظور وظيفي. يتم استخدامها لوصف سيناريوهات محددة لاستخدام النظام وتفاعلاته مع المستخدمين أو أنظمة أخرى. (المزيد عن هندسة البرمجيات في مقال مقدمة في هندسة البرمجيات).



حالات الاستخدام Use Case التصنيف والمواصفات

يصنف مخطط حالات الاستخدام Use-case من مخططات الـ UML السلوكية. وحالات الاستخدام (Use Cases) تمثل فقط المتطلبات الوظيفية للنظام. يجب تمثيل المتطلبات الأخرى مثل قواعد العمل ومتطلبات جودة الخدمة وقيود التنفيذ بشكل منفصل. فالهدف من مخطط الـ Use case هو إنشاء نموذج شبه رسمي للمتطلبات الوظيفية بحيث يحلل ويحدد التالي :

  • نِطَاق النظام (System Scope).
  • الواجهات الخارجية (External interfaces).
  • السيناريوهات وردود أفعال (Scenarios and Reactions).

ومن مواصفات مخطط الـ  Use-case الجيد:

  • عدم الغموض (Lack of ambiguity): يجب تفسير كل شرط بطريقة واحدة.
  • الاكتمال (Completeness): يجب أن تلبي جميع المتطلبات الحالية للنظام.
  • التناسق (Consistency): يجب ألا تتعارض المتطلبات مع بعضها البعض. إذا كانت هناك مفاضلات، فيجب اكتشافها ومناقشتها.
  • تجنب التصميم (Avoid design) : فالمتطلبات يجب أن تثير الحاجة، لا أن تجيب عليها. (لماذا؟)
في مخطط حالات الاستخدام (Use-Case Diagram)، يجب أن تحفز حالة الاستخدام (use case) مناقشة حول ما يجب أن يفعله النظام، خاصة مع الأشخاص الذين هم خارج فريق التطوير.


مكونات مخطط حالات الاستخدام Use Case

يوفر مخطط حالة الاستخدام (Use Case Diagram) تمثيلاً مرئيًا لكيفية تفاعل المستخدمين مع النظام. وهو بمثابة مخطط لفهم المتطلبات الوظيفية للنظام من وجهة نظر المستخدم، والمساعدة في التواصل بين أصحاب المصلحة وتوجيه عملية التطوير. لهذا فمكونات مخطط حالة الاستخدام (use-case Diagram) محدودة وتشكل العلاقات الجزء الأهم، ويوضح الشكل التالي مكونات مخطط حالة الاستخدام use-case diagram :

مكونات مخطط حالات الاستخدام use-case-components

حدود النظام (System boundaries):

يتم إنشاء حدود النظام لتحديد ما هو داخل النظام وما هو خارجه. وهي تظهر الأنظمة الأخرى المستخدمة أو التي تعتمد على النظام الجاري تطويره. موضع حدود النظام له تأثير عميق على متطلبات النظام. إن تحديد حدود النظام بدقة مهم فقد تزيد / تقلل من تأثير أو عبء العمل على أجزاء مختلفة من المنظمة.

حالات الاستخدام Use Cases:

حالات الاستخدام (use-cases) تشبه المشاهد في المسرحية. إنها تمثل أشياء محددة يمكن للنظام القيام بها.مثلاً في نظام التسوق عبر الإنترنت، يمكن أن تكون أمثلة حالات الاستخدام "تقديم الطلب" أو "تتبع التسليم" أو "تحديث معلومات المنتج". يتم تمثيل حالات الاستخدام بأشكال بيضاوية.

الجهة الفاعلة (Actor) :

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

كما قد يكون انسان او آلة أخرى أو نظام آخر خارجي أو مستشعرات Sensors او وحدات تنظيمية Organizational Units ولايمكن للـ Actor ان يكون اي جزء من النظام مثل قاعدة البيانات.كما إن التحديد والفهم الصحيحين للجهات الفاعلة أمر بالغ الأهمية لنمذجة سلوك النظام بدقة.

العلاقات في مخططات حالات الاستخدام (use-cases)

في مخططات حالات الاستخدام (Use Case Diagrams) ، تعمل العلاقات (Relationships) على تصوير التفاعلات بين الجهات الفاعلة(Actors) وحالات الاستخدام (Use-cases). توفر هذه العلاقات رؤية شاملة لوظائف النظام وسيناريوهاته المختلفة. وتتضمن العلاقات عدة أنواع فيما يلي الأنواع الرئيسية للعلاقات:

1. علاقة الارتباط (Association Relationship):

تمثل علاقة الارتباط (Association Relationship) اتصالاً أو تفاعلاً بين جهة فاعلة (Actor) وحالة استخدام (use case). يتم تصويرها بخط يربط الجهة الفاعلة بحالة الاستخدام. تشير هذه العلاقة إلى أن الجهة الفاعلة مرتبطة في الوظيفة التي تصفها حالة الاستخدام.

2.علاقة التضمين (Include Relationship):

تشيرعلاقة التضمين (Include Relationship) إلى أن حالة الاستخدام (use case) تتضمن وظيفة لحالة استخدام (use case) أخرى ، التضمين هو كاعتماد بين حالات الاستخدام. وتستخدم علاقة التضمين (Include) لتحليل السلوك المعقد و تركزعلى السلوك الشائع . مثلاً في نظام متجر تتضمن عملية البيع عملية ملء معلومات الفوترة. ويتم الإشارة الى (include-relationship) بواسطة سهم منقط مع الكلمة الأساسية "include".

3.علاقة امتداد (Extend Relationship):

توضح علاقة الامتدا أو التوسع (Extend Relationship) أنه يمكن تمديد حالة استخدام (use case) بواسطة حالة استخدام أخرى (use case) في ظل ظروف معينة (القيود - Constraints). ولا تُعرف حالة الاستخدام الأساسية أي حالة استخدام تمتد إليها كما انه لابد أن يذكر القيد - Constraint (الشرط) الذي يتسبب في التفرع. يتم تمثيلها بواسطة سهم متقطع مع الكلمة الأساسية "extend".

ومن الأمثلة عليها أن تمتد عملية تسجيل الدخول اختياريًا من عملية التسجيل أو في نظام تنظيم الرحلات تمتد عملية اختيار المقعد من عملية حجز الرحلة. هذه العلاقة مفيدة للتعامل مع السلوك الاختياري أو الاستثنائي.

4. علاقة التعميم ( Generalization Relationship):

تنشئ علاقة التعميم اتصالاً "is-a" بين حالتي استخدام ، مما يشير إلى أن إحدى حالات الاستخدام هي نسخة متخصصة من أخرى. ويتم تمثيلها بسهم يشير من حالة الاستخدام المتخصصة إلى حالة الاستخدام العامة. مثلاً: في نظام تأجير المركبات كل من حالات الاستخدام "تأجير السيارات" وتأجير الدراجات" عبارة عن نسخ مخصصة لحالة الاستخدام العامة "تأجير المركبات". وتمثل عنها بسهم.


وتعتبر معرفة مكونات مخطط حالات الاستخدام (Use Case Diagram) أساسًا لفهم كيفية تفاعل النظام مع المستخدمين والعمليات التي يدعمها. من خلال العناصر الرئيسية، مثل الممثلين (Actors)، وحالات الاستخدام (Use Cases)، والعلاقات (Relationships)، يمكن للمطورين والمحللين تصميم مخطط يُظهر بوضوح وظائف النظام وطريقة عمله.



خطوات إنشاء مخطط حالات الاستخدام Use -Case Diagram

إن إنشاء مخطط حالات الاستخدام (Use Case Diagram) يتطلب اتباع خطوات منهجية تضمن تمثيلًا دقيقًا وواضحًا لتفاعلات المستخدمين مع النظام. هذه الخطوات تساعد في تحديد المتطلبات الوظيفية للنظام، وتوضيح السيناريوهات المختلفة التي يمر بها المستخدمون لتحقيق أهدافهم .و لإنشاء مخطط حالات الاستخدام use -case diagram نتبع الخطوات التالية:

  • تحديد الجهات الفاعلة (Identify Actors): حدد من أو ما الذي يتفاعل مع النظام. هؤلاء هم الجهات الفاعلة الخاصة بك. يمكن أن يكونوا مستخدمين أو أنظمة أخرى أو كيانات خارجية.
  • تحديد حالات الاستخدام (Identify Use Cases): حدد الوظائف الرئيسية أو الإجراءات التي يجب أن يقوم بها النظام. هذه هي حالات الاستخدام الخاصة بك. يجب أن تمثل كل حالة استخدام جزءًا معينًا من الوظائف.
  • تحديد الروابط ( Identify Associations): أي ربط الجهات الفاعلة (Actors) و حالات الاستخدام (Use Cases) من خلال رسم خطوطًا (ارتباطات) بين الجهات الفاعلة وحالات الاستخدام التي تشارك فيها. يمثل هذا التفاعلات بين الجهات الفاعلة والنظام.
  • إضافة حدود النظام (Add System Boundary): ارسم مربعًا حول حالات الاستخدام لتمثيل حدود النظام. يحدد هذا نطاق نظامك.
  • تعريف العلاقات (Define Relationships): إذا كانت حالات استخدام معينة تشمل حالة مضمنة (include) أو إذا كانت إحدى حالات الاستخدام امتدادًا (expand) لأخرى ، فيمكنك الإشارة إلى هذه العلاقات باستخدام تدوينات مناسبة.
  • المراجعة (Review): قم بمراجعة مخططك. وتأكد من أنه يمثل بدقة التفاعلات والعلاقات في نظامك. قم بتحسينه حسب الحاجة.
  • التحقق (Validate): شارك مخطط حالة الاستخدام الخاص بك مع أصحاب المصلحة وجمع الملاحظات. تأكد من أنه يتماشى مع فهمهم لوظائف النظام.

إرشادات عامة حول انشاء مخطط حالات الاستخدام (Use Case Diagram):

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

من خلال تنظيم عملية التصميم ضمن خطوات محددة، يمكن للمحللين والمطورين بناء مخطط يعكس احتياجات النظام والمستخدمين بشكل متكامل. ولفهم أعمق سنأخذ فيما يلي مثال تطبيقي على مخطط حالات الاستخدام (Use-cases Diagram)..



مثال تطبيقي على مخطط حالات الاستخدام (Use-cases Diagram)

في المثال التالي سنقوم بتكوين نظام الاختبارات (Examination system) سنقوم بتعيين المستخدمين (Actors)- حالات الاستخدام (Use-case) لكل مستخدم - العلاقات والروابط - وشرح المسار الأساسي والمسارات البديلة.

أولاً : نقوم بتحديد قائمة أولية للجهات الفاعلة (Actors) ستكون الأدوار التي يلعبها المستخدمون عند التفاعل مع النظام ، على سبيل المثال:

  • الطالب (Student).
  • المعلم (Teacher).
  • مشرف النظام (Admin).

ثانياً: نحدد قائمة أولية لحالات الاستخدام (use-cases) لكل مستخدم والتي تظهر لدينا في الشكل التالي :

use case and Actors

ثالثاً: نقوم بتعيين علاقات التضمين والتوسع لحلات الاستخدام بحسب الاحتياج، فمثلاً

  • حالة الاستخدام الخاصة بتسجيل الدخول (log in use-case) يجب أن تكون امتداد من حالة الاستخدام التسجيل (Register) حيث يشترط توفر بيانات الدخول للتم عملية تسجيل الدخول.
  • حالة استخدام إدارة الاختبارات (Mange exams) يمكن أن تتضمن (include) تعيين بيانات الاختبار(Set exams info) مثل عدد الطلاب المسجلين وتاريخ ووقت الاختبار ارسال الاشعارات (ٍSend the notifications) للمستخدمين .

رابعاً : بعد تعيين كل العلاقات والارتباطات نحدد حدود النظام (System boundary) ، بعد هذه سيكون مخطط حالات الاستخدام (use-case diagram) على الشكل التالي:

مثال على حالات الاستخدام Use-case example

نلاحظ في مخطط الـ use-case اعلاة استخدم المستخدم العام (General Actor) ويتم استخدام هذا الميزة عندما توجد لدينا عدد من الوظائف المشتركة بين عدد من المستخدمين، حيث يتم ربط هذه الوظائف مع جهة فاعلة واحدة (General Actor)، ثم ربطه مع المستخدمين المشتركين في هذه الوظائف.

في حالة المثال كل من وظائف تسجيل الدخول (login) و استعراض الاختبارات المتاحة (view -exams) واستعراض نتائج الاختبارات (Show exam results)، مشتركة بين المعلم والطالب ومشرف النظام لهذا تتربط هذه الوظائف مع المستخدم العام (User)، في نفس الوقت يشير المستخدمين المشتركين في هذه الوظائف إلى (User).

كما نلاحظ في المثال تعيين حدود النظام (System Boundary) في المثال كل الجهات الفاعلة (Actors) من خارج النظام العام ، ففي الأنظمة الأكثر تعقيد يمكن أن تكون الجهات الفاعلة انظمة اخرى تتفاعل مع النظام ضمن نظام اكبر واشمل. على سبيل المثال في نظام مؤسسة تعليمية تتفاعل الانظمة الفرعية مع بعضها البعض فيمكن أن يرتبط نظام تقييم أداء المعلمين و نظام تقييم الطلاب مع نظام الاختبارات.



توصيف حالات الاستخدام (Use Case Description)

لتوثيق وتحليل النظام بشكل أكثر تفصيلًا، نقوم بتوصيف حالات الاستخدام (Use Case Description) وهو خطوة مكملة وأساسية لمخطط حالات الاستخدام (Use Case Diagram) . بينما يُركز المخطط على تقديم تصور بصري للعلاقات بين الممثلين (Actors) وحالات الاستخدام (Use Cases)، يأتي التوصيف لشرح تفاصيل كل حالة استخدام بشكل نصي ومنهجي.

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

  • مسار أساسي للأحداث.
  • عدد من المسارات البديلة والاستثنائية.

على سبيل المثال يمكن وصف ما يحدث في لحالة الاستخدام "إجراء الاختبار - Take exam"

المسار الأساسي للأحداث

يدخل الطالب الى النظام بواسطة بيانات بيانات الدخول ثم يستعرض الاختبارات المتاحة و يجرى الاختبار.

مسار بديل للحدث - لا يوجد اختبارات متاحة:

يدخل الطالب الى النظام بواسطة بيانات بيانات الدخول ويستعرض الاختبارات المتاحة ولا يجد أي امتحان مدرج.

ويأخذ توصيف حالات الاستخدام (use-cases) أشكال عدة منها الشكل الجدولي الذي ذكرناه في مقال نمذجة النظم (System Modeling) في وقد يكون أكثر دقة وشمولية حيث يقوم التوصيف بتغطية حالة الاستخدام (use-case) بالاعتماد على نقاط منها:

  • الاسم (Name): ويذكر اسم حالة الاستخدام (use-case) المراد توصيفها.
  • الجهات الفاعلة (Actors): نذكر جميع الجهات الفاعلة المشاركة في حالة الاستخدام (use-case).
  • المحفز (Trigger): ما الحدث الذي تبدأ به حالة الاستخدام (use-case)؟ على سبيل المثال يقدم العميل مطالبة.
  • الشروط المسبقة (Preconditions): ما الذي يجب أن يتوافر في النظام قبل تشغيل حالة الاستخدام (use-case). على سبيل المثال لابد أن يكون حساب المستخدم موجود
  • الشروط اللاحقة (Post-Conditions): الشرط اللاحق هو نتيجة حالة الاستخدام. مثلاً تم تسجيل دخول المستخدم أو تم حفظ الملف.
  • سيناريو نجاح (Success Scenario): السيناريو النجاح هو القصة الرئيسية لحالة الاستخدام use-case ، حيث تتم كتابته على افتراض أن كل شيء على ما يرام، ولا تحدث أخطاء أو مشكلات، ويؤدي مباشرة إلى النتيجة المرجوة لحالة الاستخدام.
  • ويتكون من سلسلة من خطوات العمل . على سبيل المثال :

    1. يدخل مشرف النظام اسم الدورة والرمز والوصف.
    2. ثم يتحقق النظام من صحة رمز الدورة.
    3. ويضيف النظام الدورة إلى قاعدة البيانات ويعرض رسالة تأكيد.
  • سيناريو بديل (Alternatives Scenario): ,وفيه يتم لوصف الحالات الاستثنائية للوظائف مثل : الأخطاء، الحالات غير العادية أو النادرة، الأعطال، نقاط البداية، نقاط النهاية، الاختصارات.

لنأخذ مثال على توصيف حالة الاستخدام "Mange exams " من المثال التطبيقي اعلاه:

توصيف حالات الاستخدام use-case-description

والأفضل أن يكون توصيف حالة الاستخدام  (use-case)  واضح، سواء كان الشكل الذي يأخذه مبسط أو مفصل .ولكن هل نقوم بالتوصيف لجميع حالات الاستخدام لدينا؟ للاجابة على هذا السؤال علينا ادراك احتياجنا لمعرفة تفاصيل حالة الاستخدام (use-case) من ناحية تسليط الضوء على عملية معينة، أو ميزة في النظام. ويمكن كذالك في البداية تقديم التوصيف لاغلب الـ use-cases المتوفرة لتتضح لدينا طريقة عمل عمليات النظام.



مخطط حالات الاستخدام (Use Case Diagram) في الأساس رسم تخطيطي يمثل سيناريوهات مختلفة لاستخدامات النظام. ويُعد فهم مخططات حالات الاستخدام (use-case diagrams) أمرًا ضروريًا لأي فريق تطوير أو محلل أعمال، حيث تصور هذه المخططات وظائف النظام أو جزء من النظام مما يساعد في تحديد أهداف النظام، توضيح العمليات الأساسية، والتواصل بين الفرق المختلفة. كما أنها تُستخدم كأساس لتوثيق المتطلبات وتطوير الحلول البرمجية بشكل منظم وفعّال.

إرسال تعليق

فضلاً اترك تعليق
موافقة ملفات تعريف الارتباط
لتحسين تجربتك… يستخدم موقعنا ملفات تعريف الارتباط (Cookies)
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.