نريد في هذا الدرس أن نفهم الاقتراح الذي تم على أساسه إضافة الـ Use Case إلى لغة
UML و كيفية ربط العلاقات بين الـ Use Case بعضها ببعض.
ما هي الـ Use Case ؟
الترجمة الحرفية لها هي "حالة الإستخدام" وهي عبارة عن إقتراح توضيحي لكيفية إستخدام الممثل Actor لبرنامج النظام
المراد تصميمه, حتى يتم تنشيط وظيفة عملية يقوم النظام
بإتاحتها للإستخدام من قبل المستخدم حتى تظهر نتائج أو تغير على حالة النظام.
بإستخدام الـ Use Case يمكن توضيح كل الخدمات التي يتيحها النظام للمستخدم. عندما تكون هنالك Use Case متخصصة
لـ Actor معين هذا يعني أنها تصف بطريقة مباشرة لمهمات
النظام لذلك الـ Actor .
بالنظر إلى الشكل 1 يمكن أن نرى التمثيل الرسومي للـ Use Case في لغة UMLعلى هيئة كرة بيضاوية ويتم وضع نص
تحت الكرة البيضاوية يحمل إسم المهمة التي تقوم بها الـ Use Case .
الشكل 1 التمثيل الرسومي للـ Use Case في لغة UML
الـ Use Case في العادة تتمثل من خلال الأفعال Verb phrases والتي يمكن أن يتم إستخلاصها من المستخدم
, ويمكن أن تكون منحدرة من الممثل Actor .
كمثال على كيفية يمكن أن نستخدم الـ use case كما في الشكل 2 يظهر لنا ثلاثة use cases لنظام بيع وشراء الممتلكات,
real estate property : تصفح النظام Browse , بيع ممتلكات sell a property , شراء ممتلكات Buy property.
كل من هذه الـ Use Case يمكن أن يتم تنفيذ مهمة يهيئها النظام للإستخدام. الـ Use case الثلاثة تعكس ثلاثة إجراءات
رئيسية لنظام بيع وشراء الممتلكات.
Browse تقوم بإتاحة التصفح للمستخدم ليتطلع على الممتلكات المعروضة. Sell a property تسمح
للمستخدم بإضافة ملكية ليتم عرضها للبيع . Buy a property تسمح للمستخدم أن يقوم بوضع قائمة
بالممتلكات التي يريد أن يشتريها.
الشكل 2 Use Case لنظام بيع الممتلكات Real estate property
مثال آخر على كيفية إستخدام الـ Use Case كما يظهر في الشكل 3 اللذي يظهر أربعة
Use Cases لموقع تحاور على الإنترنت online chat : إضافة مستخدم Add user ,
حذف مستخدم remove user , إستلام رسالة receive Message , إرسال رسالة Send Message
. لقد تم تصميم النظام بكيفية حتى يسمح للمستخدمين بالبدء في النقاش في غرفة النقاش , أي مستخدم يمكنه أن
يبدأ جلسة من خلال الدخول على النظام, بعد ذلك , وعملية النقاش عبر الإنترنت تكون من خلال إستلام
الرسائل أو من خلال إرسال رسائل فورية للآخرين, وكل هذه الـ Use case يمكن أن يتم إستخدامها من قبل
مستخدم أو Actor واحد .
الشكل 3 الـ User Cases لنظام حوار على الإنترنت
مثال آخر كما في الشكل 4 اللذي يظهر أربعة Use Cases لنظام تسجيل جامعي اللذي يسمح للطلاب student
بأن يقوموا بالتسجيل في مواد course يقوم الـبروفوسورات professors بتدريس تلك المواد, الـ Use case اللذي
يسمى Maintain course information و Create course catalog يسمح لقسم التسجيل بأن يقوم بعمل تعديلات
على المواد المراد تدريسها , وأيضا القيام بإضافة مواد جديدة للقسم, أما بالنسبة لـ Maintain professor information و
Maintain student information , يسمحا لمكتب التسجيل بأن يقوموا بالتعديل على معلومات الأساتذة والطلاب.
الشكل 4 الـ Use cases لنظام تسجيل جامعي
ملاحظه : الـ Use case يمكن أن تقوم بتمثيل التقسيمات العامة للخدمات التي يقدمها النظام أو لتقسيم سولك المستخدم
بصورة إفتراضية , من خلال إستخدامها بتوضيح المستويات العاملة للإستخدام في مراحل تحليل النظام في من قبل الحلل .
علاقة التوسيع Extend Relationship
يمكن أن تتصل الـ Use Cases مع بعضها البعض من خلال علاقة التوسيع “Extend Relationship” وعلاقة التوسيع
عبارة عن علاقة تعميم generalization relationship , عندما تقوم use case بالتوسع عن use case أخرى من خلال
إضافة أحداث إضافة إلى ما هو عليه في الـ use case الأولى . في الشكل 5 يتضح لنا القالب العام فكيفية تمثيل علاقة
التوسع Extend في لغة UML,
الشكل 5 علاقة التوسع extend relationship
إذا نظارنا إلى الشكل 6 الذي يمثل مثال على تنفيذ العلاقة في نظام شراء القوارب boat purchase
يتم إظهار علاقة التوسيع extend بين حلات إستخدام use case , حالات الإستخدام توقيع عقد شراء قارب
Signing Boat Purchase Contract و توقيع سند التأمين Signing insurance Policy . وهذه العلاقة تمثلت
بالتوسيع لأن عملية توقيع سند التأمين عبارة عن جزء من العملية و بشكل تطبيعي يتم التوقيع عليها عند شراء قارب
لكنها عبارة عن عملية توسعية ( أو زيادة في التفاصيل ) في توقيع عقد شراء قارب .
الشكل 6 نظام شراء قوارب
وكمثال آخر كما يظهر في الشكل 7 , يظهر لنا use cases من عملية البحث Search و التصفح Browse
و إتجاه العلاقة من البحث إلى التصفح لأن كل عملية بحث تتطلب أن يكون هنالك عملية بصفح فصورة إفتراضية
الشكل 7 علاقة التوسيع بين البحث والتصفح
علاقة الإستخدام Uses Relationship
يمكن أن تكون هنالك علاقة بين use case و use case أخرى من خلال علاقة الإستخدام Uses relationship
التي تمثل من خلال علاقة التعميم generalization relationship , حيث تقوم إحدى حالت الإستخدام use case بإستخدام
Use case أخرى , على أنها جزء من الـ use case المخصصة لتنفيذ المهمة , وسلوك الـ use case المستخدمة يتم تضمينه
في الـ use case التي تستخدم إمكانيات الأولى . الشكل 8 يمثل تمثيل القالب التمثيلي لعلاقة Uses في لغة UML
الشكل 8 التمثيل العام لعلاقة الإستخدام Uses relationship
هنالكإختلاف بين علاقة الإستخدام Uses وعلاقة التوسيع Extend , في الحقيقة علاقة التوسيع extend تقوم بإستخدام التوريث inheritance
لأن حالت الإستخدام Use case التي تم تخصيصها عبارة عن مجموعة جزئية من الـ Use case التي البناء منها . لكن في علاقة الإستخدام uses relation
يمكن أن يكون كلا الـ use cases لا يحمل علاقة توريث inheritance في العملية , بل تقوم واحدة من الـ use case بإستخدام الأخرى لسبب معين .
الشكل 9 يمثل التحليل البسيط لنظام جرد الكتب في مخزن الكتب . فعملية الجرد تحتاج إلى تحديد مكان الكتاب Locates Book فهذا تم تحديده
بـ use case تستخدم حالت تحديد السعر Gives Price use case, في هذه الحالة علاقة الإستخدام uses تكون ملائمة أكثر من علاقة التوسيع extend
لأنه في لحظه أننا قمنا بتحديد مكان الكتاب يجب أن نقوم بإرجاع سعر الكتاب . إذا نحن نستخدم الـ Use case Give Price ولا نحتويها أو نعممها.
الشكل 9 مثال على علاقة إستخدام uses في نظام جرد الكتب في مخزن كتب