Transcript Slide 1

‫نمذجة إجرائية العمل‬
‫نمذجة حاالت االستخدام‬
‫‪Use Case Modeling‬‬
‫د‪ .‬محمد أحمد‬
‫المحاضرة الرابعة‬
‫مقدمة‬
‫• تقدم لغة النمذجة الموحدة مجموعة من أفضل خبرات الممارسات الهندسية التى‬
‫ثبت نجاحها فى نمذجة النظم الكبيرة والمعقدة‪ ،‬وهى جزء مهم من التطوير الكائنى‬
‫المنحى للبرمجيات وعمليات تطوير البرمجيات‪.‬‬
‫• ليست لغة النمذجة الموحدة منهجية لبناء أو تصميم البرمجيات وتطويرها‪.‬‬
‫• ال ترتبط لغة النمذجة الموحدة بمنهجية أو طرق إنتاج البرمجيات‪ ،‬ويمكن توظيف‬
‫هذه اللغة على مختلف العمليات البرمجية بغض النظر عن المنهجية المتبعة‪.‬‬
‫‪2‬‬
‫• لغة )‪: (UML‬‬
‫هي اختصار إلى )‪. (Unified Modeling Language‬‬
‫باللغة العربية تسمى (لغة النمذجة الموحده)‪.‬‬
‫• استخدام لغة )‪: (UML‬‬
‫في عمل التخطيط لمشاريع البرمجة قبل البدا في عمل المشروع البرمجي عمليا‪.‬‬
‫• مكونات لغة )‪: (UML‬‬
‫‪ .1‬أشكال هندسية ‪.‬‬
‫‪ .2‬رموز مثل (مربع ‪ ,‬مستطيل ‪ ,‬خط مستقيم ‪ ,‬أسهم ‪ ,‬سداسي ) ‪.‬‬
‫مالحظة ‪ -:‬كل رمز من الرموز يرمز إلى شيء في المشروع البرمجي‪.‬‬
‫• ابرز سمات لغة )‪: (UML‬‬
‫‪ .1‬ال ترتبط لغة النمذجة الموحدة بمنهجية أو طرق إنتاج البرمجيات‪.‬‬
‫‪ .2‬تقدم لغة النمذجة الموحدة مجموعة من أفضل خبرات‬
‫الممارسات الهندسية ‪.‬‬
‫‪ .3‬ليست لغة النمذجة الموحدة منهجية لبناء أو تصميم البرمجيات‬
‫وتطويرها‪.‬‬
‫ما هي حالة االستخدام؟‬
‫• تصف حاالت االستخدام كيفية توظيف النظام من قبل مستخدميه من أجل‬
‫تحقيق أهدافهم؛‬
‫• تصف حاالت االستخدام سلوك النظام المرئي من الخارج والقابل لالختبار‬
‫والتطبيق (أي كيفية استجابته لألحداث الخارجية وتفاعله معها)‪.‬‬
‫• تعبّر حالة االستخدام عن تتالي أحداث يقوم النظام بتنفيذها (بناء على طلب)‪،‬‬
‫والتي تقوم بدورها بإعادة نتيجة ذات قيمة محددة لطالبها؛‬
‫– بحيث تنجز كل حالة استخدام وظيفة محددة ومستقلة يمكن أن يراها الفاعل الخارجي وأن‬
‫يختبرها باستقاللية؛‬
‫ما هي حالة االستخدام؟ (‪)2‬‬
‫• متى ننشئ حاالت االستخدام؟‬
‫– يجري توثيق حاالت االستخدام بطريقة شبه صورية (‪ )semi-formal‬خالل مرحلة جمع‬
‫متطلبات النظام األولية‪.‬‬
‫– يجري تحسين وتطوير حاالت االستخدام خالل مرحلة التحليل‪ ،‬وقد يستمر هذا طيلة فترة‬
‫تطوير النظام‪.‬‬
‫– يمكن توثيق معظم متطلبات النظام (‪ )System-level Requirements‬كحاالت‬
‫استخدام‪.‬‬
‫وصف المتطلبات من خالل حاالت االستخدام‬
‫•‬
‫النظام‬
‫•‬
‫‪Student‬‬
‫‪register‬‬
‫‪Administrator‬‬
‫‪create new‬‬
‫‪course‬‬
‫‪Instructor‬‬
‫‪delete‬‬
‫‪offering‬‬
‫حاالت االستخدام‬
‫الفاعلون‬
‫•‬
‫•‬
‫تبين حاالت االستخدام كافة التفاعالت المحتملة بين‬
‫النظام واألشخاص الذين يستخدمونه‪.‬‬
‫تبين حاالت االستخدام أيضا التفاعل بين النظام قيد‬
‫التطوير واألنظمة األخرى‪.‬‬
‫يمكن االعتماد على حاالت االستخدام أيضا‬
‫لوصف التفاعل بين األنظمة الجزئية‪.‬‬
‫يُعرف مخطط حاالت االستخدام بأنه التمثيل‬
‫المرئي للفاعلين وحاالت االستخدام باإلضافة إلى‬
‫أية تعاريف أو توصيفات إضافية‪ ،‬وهو ليس مجرد‬
‫مخطط بل هو أيضا نموذج موثق بالكامل لسلوك‬
‫النظام‪.‬‬
‫مفهوم الفاعل‬
‫• الفاعل هو أي كائن (شخص‪ ،‬آلة‪ )...‬يمكن أن يتفاعل مع حالة االستخدام‪ ،‬ويتوقع‬
‫الفاعل أن يحصل من حالة االستخدام على نتيجة مفيدة قابلة للقياس؛‬
‫• الفاعل هو كيان موجود خارج النظام‪.‬‬
‫• يتفاعل الفاعلون مع النظام‪:‬‬
‫– غالبا ما يطلب الفاعل من النظام إنجاز بعض األفعال بالنيابة عنه‪.‬‬
‫– يتلقى الفاعل أيضا إجابات من النظام‪.‬‬
‫• يلعب الفاعل “دورا” في استخدام النظام‪:‬‬
‫– يُطلق على الفاعلين تسميات تمثل األدوار‪ ،‬مثل‪ :‬مستخدم‪ ،‬مدير‪ ،‬محاسب‪...‬‬
‫– يُنظر إلى كل دور على أنه فاعل مستقل (حتى لو كان الشخص المستخدم نفسه يلعب أكثر من دور‬
‫واحد)‪.‬‬
‫التخاطب بين الفاعلين والنظام‬
‫• في كل حالة استخدام يبدأ ما نسميه “الفاعل األولي” عملية التخاطب مع النظام‪.‬‬
‫• عندئذ يستجيب النظام لرسالة الفاعل وقد يقوم بإرسال رسائل إلى فاعلين‬
‫آخرين‪.‬‬
‫• في حالة االستخدام يسعى الفاعل األولي لبلوغ هدف محدد‪:‬‬
‫– تتألف حالة االستخدام من كل التفاعالت التي قد تجري كمحاولة لبلوغ ذلك الهدف‪.‬‬
‫– قد تتضمن حالة االستخدام الواحدة عدة سيناريوهات يمثل كل منها مسارا بديال يجري‬
‫تحديده بناء على نجاح أو فشل بعض الخطوات السابقة‪.‬‬
‫– ليس بالضرورة أن يتم بلوغ الهدف (بسبب فشل بعض الخطوات)‪.‬‬
‫األهداف‬
‫• الهدف هو نتيجة (ذات قيمة بالنسبة للعمل) يريد أحد الفاعلين تحقيقها‪.‬‬
‫• أمثلة‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫مدير يريد إضافة مستخدم جديد للنظام‪.‬‬
‫طيار يريد الهبوط بطائرته‪.‬‬
‫زبون يريد أن يتقدم بشكوى‪.‬‬
‫موظف صيانة يريد إنشاء تقرير يصف مشكلة وكيفية حلها‪.‬‬
‫خطوات بناء حاالت االستخدام‬
‫• خطوات العملية التقليدية المُستخدمة في بناء حاالت االستخدام‪:‬‬
‫– تحديد الفاعلين؛‬
‫– تحديد حاالت االستخدام؛‬
‫– وصف كل حالة استخدام على حده‪.‬‬
‫• خطوات العملية الموسّعة المُستخدمة في بناء حاالت االستخدام‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫تعريف حدود النظام؛‬
‫تحديد الفاعلين؛‬
‫تحديد حاالت االستخدام؛‬
‫وصف كل حالة استخدام على حده‪.‬‬
‫إعادة تحليل نموذج حاالت االستخدام؛‬
‫تحديد األولويات فيما بين حاالت االستخدام المختلفة‪ ،‬أو بعبارة أخرى‪ ،‬تثقيل حاالت االستخدام؛‬
‫إضافة المتطلبات المستقبلية؛‬
‫إنشاء نموذج حالة االستخدام‪.‬‬
‫مخرجات نمذجة حاالت االستخدام‬
‫• أنماط المخرجات‪:‬‬
‫– وصف نصي لكل حالة من حاالت االستخدام‪.‬‬
‫– مخططات حاالت االستخدام الصورية‪.‬‬
‫• عالم تركز المخرجات؟‬
‫– وصف النظام الحالي (‪)as-is system‬‬
‫– وصف النظام المستهدف (‪)to-be system‬‬
‫• مستويات التجريد في المخرجات‪:‬‬
‫– ابدأ من الجوهري‪/‬المنطقي (ماذا يجب أن يفعل النظام دون وصف كيف يفعله)‬
‫– انتقل تدريجيا إلى الفيزيائي‪/‬الحقيقي (كيف تنفذ الوظيفة – من وجهة نظر العمل وليس من‬
‫وجهة نظر نظام مؤتمت)‬
‫تحديد الفاعلين‬
‫• يساهم الفاعلون في استنتاج حاالت االستخدام وذلك من خالل تأمين صورة واضحة للتفاعالت‬
‫التي تجري في النظام؛‬
‫• أنواع الكيانات التي يمكن اعتبارها من فاعلي النظام‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫نظم أُخرى؛‬
‫مؤسسات خارجية؛‬
‫تجهيزات خارجية؛‬
‫أية كيانات خارجية أخرى تتفاعل مع النظام (يمكن أن يعتبر الوقت مثال أحد الفاعلين في النظام)؛‬
‫ميزان الحرارة ‪...‬الخ‪.‬‬
‫• الفاعل بالتعريف هو الدور وليس الشخص‪ ،‬وبالتالي يمكن أن يقوم الفاعل بنمذجة العديد من‬
‫األشخاص أو األمثال‪ ،‬مع العلم أنه يمكن كذلك لفرد محدد أن يلعب أكثر من دور؛‬
‫ما هي الفائدة من تحديد الفاعلين في النظام؟‬
‫• يزودنا الدور الذي يلعبه الفاعلون بمنظور عام حول أهمية حاالت االستخدام‬
‫والفائدة المرجوّ ة منها؛‬
‫• تؤمن كل من األدوار التي يلعبها الفاعلون في البيئة المحيطة‪ ،‬والسلوك الذي‬
‫يتبعونه‪ ،‬ومسؤولياتهم تجاه النظام‪ ،‬عامال أساسيا ومؤثرا على حاالت‬
‫االستخدام‪ ،‬فبالتركيز على الفاعلين‪ ،‬يمكننا أن نركز اهتمامنا على الكيفية التي‬
‫سيتم من خاللها استخدام النظام بدال من االهتمام بكيفية بناء النظام وتطبيقه في‬
‫هذه المرحلة المبكرة؛‬
‫• يساعدنا التركيز على الفاعلين في النظام على مراجعة وتأكيد حدود النظام‬
‫وتعريفها بالشكل األنسب‪ ،‬هذا باإلضافة إلى الدور الذي يلعبه الفاعلون في‬
‫تحديد كافة متطلبات النظام؛‬
‫كيف يتم تحديد الفاعلين في النظام؟‬
‫• ينبغي أثناء نمذجة حاالت االستخدام أن ننتبه لمجموعة من النقاط الهامة التي‬
‫تساهم في تحديد فاعلي النظام المُحتملين واستنتاجهم‪ ،‬منها‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫البحث عن كافة الكيانات الخارجية التي تتفاعل مع النظام؛‬
‫تحليل العامل البشري؛‬
‫التوصيفات المكتوبة والوثائق المرتبطة بالمشروع كالمالحظات المُسجّ لة واللقاءات‬
‫المسجلة مع المستخدمين؛‬
‫دليل المستخدم أو الكتيّبات المخصصة للنظام الحالي أو للعملية قيد االستخدام‪.‬‬
‫كيف يتم تحديد الفاعلين في النظام؟‬
‫• عادة ما يُنصح بطرح األسئلة التالية عند البحث عن فاعلي النظام أو‬
‫استنتاجهم‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫من أو ما الذي يقوم بإطالق األحداث في النظام؟‬
‫من أو ما الذي يتفاعل مع النظام من أجل االستجابة لحدث معين؟‬
‫هل توجد أية تقارير خرج؟‬
‫هل توجد أية واجهات مخصصة إلدارة النظام؟‬
‫هل يحتاج النظام حاليا أو مستقبليا للتعاطي أو تبادل المعلومات مع نظام آخر موجود مسبقا؟‬
‫هل يوجد فاعلون مُعرّ فون مسبقا في النظام؟‬
‫هل توجد أية تجهيزات عتادية أو برمجية تقوم بالتفاعل مع النظام الذي ينبغي أن تتم نمذجته أثناء مرحلة‬
‫التحليل؟‬
‫إذا حصل حدث معين في النظام‪ ،‬هل من الضروري إبالغ أي كيان خارجي بهذا الحدث؟‬
‫هل يحتاج النظام إلى أن يسأل كيان خارجي معين أي سؤال بهدف إتمام مهمة معينة؟‬
‫أنواع الفاعلين‬
‫• ال تتحدد حالة االستخدام بفاعل وحيد فقط‪ ،‬إذ من الممكن أن يرتبط بحالة‬
‫االستخدام عدد غير محدد من الفاعلين‪ ،‬فحالة االستخدام موجودة إلعادة قيمة‬
‫معينة لفاعل واحد على األقل؛‬
‫• يمتلك الفاعلون‪ ،‬المرتبطون بحالة استخدام معينة‪ ،‬بح ّد ذاتهم‪ ،‬أدوارا مختلفة‬
‫ومسؤوليات متعددة‪ ،‬فبعضهم يستقبل قيمة محددة‪ ،‬وبعضهم اآلخر ُيؤدي‬
‫خدمات معينة‪ ،‬في حين يساهم غيرهم بتنفيذ أو إطالق األحداث أو تشغيل‬
‫حاالت االستخدام؛‬
‫• يُقسم عادة الفاعلون إلى نوعين أساسيين‪ ،‬هما‪:‬‬
‫– الفاعل األولي؛‬
‫– الفاعل الثانوي‪.‬‬
‫أنواع الفاعلين ‪ -‬الفاعل األولي‬
‫• يُطلق اسم الفاعل األولي على المستخدم الذي يقوم باستخراج قيمة محددة من النظام‪ ،‬بحيث‬
‫تؤثر حاجات الفاعل األولي على سلوك وأداء حالة االستخدام بحد ذاتها‪ ،‬فلو تغيرت تلك‬
‫االحتياجات‪ ،‬كان البد من إجراء تعديالت هامة وأساسية على النظام؛‬
‫• عادة ما يُنصح بطرح األسئلة التالية عند البحث عن الفاعل األولي في النظام‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫ما هو اإلجراء الرئيسي الذي يقوم به الفاعل في المؤسسة بشكل عام؟‬
‫ما هي القيمة القابلة للقياس من بين األدوار والمسؤوليات المنجزة من قبل الفاعل؟ (ستعبر اإلجابة عن‬
‫هذا السؤال ‪-‬حتما‪ -‬عن السلوك والمتطلبات المحددة في حالة االستخدام بحيث يؤثر تغيير القيمة الناتجة‬
‫بالضرورة على ذلك السلوك وتلك المتطلبات)؛‬
‫ما هو السلوك الذي ينبغي على النظام أن يُؤمنه للوصول إلى تلك القيمة؟‬
‫ما هي المتطلبات الوظيفية وقواعد العمل المرتبطة بهذه القيمة؟‬
‫هل ترتبط بهذه القيمة أي من متطلبات األداء أو الزمن أو متطلبات واجهات العرض أو غيرها؟‬
‫أنواع الفاعلين ‪ -‬الفاعل الثانوي‬
‫• الفاعل الثانوي هو الذي يقوم بتنفيذ مهمة ما في حالة االستخدام بحيث ال يمكن‬
‫أن يوجد من دون وُ جود فاعل أولي يرتبط به؛‬
‫• عادة ما يُنصح بطرح األسئلة التالية عند البحث عن الفاعل الثانوي في النظام‪:‬‬
‫– ما هي القيمة التي يدعم هذا الفاعل عملية حسابها في حالة االستخدام؟ هل ستؤثر‬
‫التغيرات التي تطرأ على تلك القيمة أثناء تطوير النظام‪ ،‬على ذلك الفاعل؟‬
‫– هل هناك أي من متطلبات األداء أو الزمن أو متطلبات واجهات العرض أو غيرها ترتبط‬
‫بهذه الخدمة؟‬
‫الفاعل المج ّرد‬
‫•‬
‫•‬
‫•‬
‫•‬
‫تلعب بعض أنواع الفاعلين أدوارا واقعية محددة‪ ،‬في حين تلعب أنواع أُخرى أدوارا مفاهيمية‬
‫مجرَّ دة‪ ،‬فعلى سبيل المثال يمكن أن يحتوي نظام "المصرف" دورا مجرّ دا يُطلق عليه اسم‬
‫"الزبون" الذي يستفيد من الخدمات المختلفة التي يق ِّدمها المصرف‪ ،‬إال أنه ومن جهة أُخرى‪،‬‬
‫ُقترض‪ ،‬اللّذين يمثالن بالضرورة‬
‫يمكن أن يحتوي على أدوار أكثر تحديدا كالمُودِع أو الم ِ‬
‫أنواعا من زبائن النظام‪ ،‬إذ ال يُعتبر دور الزبون كافيا لتحديد كافة العناصر الضرورية‬
‫لوصف مُستخدِم نظام اإلقراض؛‬
‫ُقترض‬
‫يعتبر دور "الزبون" في المثال السابق دورا رئيسيا في حين يعتبر دور ال ُمودِع والم ِ‬
‫دورا فرعيا‪ ،‬وتربط بينهما عالقة تعميم؛‬
‫ِّ‬
‫يمثل الفاعل المجرَّ د السلوك المشترك ما بين فاعلين أو أكثر‪ ،‬وهذا المفهوم شبيه بمفهوم‬
‫الصف المجرَّ د في لغات البرمجة غرضية التوجّ ه؛‬
‫ليس من السهل اكتشاف الفاعلين المجرَّ دين مبكرا‪ ،‬إذ يتم ذلك بعد التق ّدم في عملية تحليل‬
‫النظام ودراسة تفاعله مع الفاعلين الذين يؤثرون ويتأثرون به‪.‬‬
‫مثال تطبيقي‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ليكن لدينا نظام مكتبة تابع للجامعة ويستخدم إلدارة الكتب وإعارتها للق ّراء؛‬
‫يدير نظام المكتبة شخص يطلق عليه اسم أمين الكتبة؛‬
‫يمكن أن يكون المُستعير طالبا من طالب الكلّية أو موظفا في الجامعة؛‬
‫ال يمكن السماح ألي مُستعير بأن يأخذ أي كتاب ما لم يقم أمين المكتبة بمسح رمز الكتاب بواسطة جهاز القارئ اآللي‬
‫المتوفر في المكتبة وذلك بغرض تسجيل طلب اإلعارة للكتاب المحدد؛‬
‫يختبر النظام إمكانية إعارة الكتاب المُختار من خالل اختبار فيما إذا تجاوز المستعير الحد المتاح له‪ ،‬أي عدد الكتب التي‬
‫يُسمح بإعارتها للقارئ‪ .‬فإذا ما تخطى عدد الكتب الحد المسموح به‪ ،‬يقوم النظام بعرض رسالة إعالم مناسبة وال يسمح‬
‫بإعارة المزيد من الكتب لذلك المستعير؛‬
‫يمثل السيناريو التالي عرضا ألحداث عملية االستعارة‪:‬‬
‫– بعد أن يقوم المستعير باختيار الكتب التي يرغب باستعارتها‪ ،‬يقوم بتحديد أرقام (أو رموز) تلك الكتب وأخذها إلى‬
‫مكتب أمين المكتبة في صالة اإلعارة؛‬
‫– يقوم أمين المكتبة بمسح أرقام الكتب باستخدام جهاز قارئ الباركود؛‬
‫– يختبر النظام إمكانية اإلعارة من خالل اختبار عدد الكتب التي استعارها القارئ‪ ،‬كما يختبر فيما إذا كان المستعير قد‬
‫أودع في حسابه مبلغ ‪ 500‬ل‪.‬س‪ .‬كتأمين عن الكتب التي يقوم باستعارتها؛‬
‫لتسهيل عملية البحث عن كتاب محدد‪ ،‬يستطيع المستعير أن يقوم باستخدام نظام إدارة المكتبة للبحث عن الكتب من خالل‬
‫اسم الكتاب أو اسم المؤلف أو رقم الكتاب‪.‬‬
‫البحث عن الفاعلين‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫يدير نظام المكتبة شخص يطلق عليه اسم أمين الكتبة؛‬
‫يمكن أن يكون المُستعير طالبا ً من طالب الكلّية أو موظفا ً في الجامعة؛‬
‫ال يمكن السماح ألي ُمستعير بأن يأخذ أي كتاب ما لم يقم أمين المكتبة بمسح رمز الكتاب بواسطة جهاز القارئ اآللي‬
‫المتوفر في المكتبة وذلك بغرض تسجيل طلب اإلعارة للكتاب المحدد؛‬
‫يختبر النظام إمكانية إعارة الكتاب المُختار من خالل اختبار فيما إذا تجاوز المستعير الحد المتاح له‪ ،‬أي عدد الكتب التي‬
‫يُسمح بإعارتها للقارئ‪ .‬فإذا ما تخطى عدد الكتب الحد المسموح به‪ ،‬يقوم النظام بعرض رسالة إعالم مناسبة وال يسمح‬
‫بإعارة المزيد من الكتب لذلك المستعير؛‬
‫يمثل السيناريو التالي عرضا ألحداث عملية االستعارة‪:‬‬
‫– بعد أن يقوم المستعير باختيار الكتب التي يرغب باستعارتها‪ ،‬يقوم بتحديد أرقام (أو رموز) تلك الكتب وأخذها إلى‬
‫مكتب أمين المكتبة في صالة اإلعارة؛‬
‫– يقوم أمين المكتبة بمسح أرقام الكتب باستخدام جهاز قارئ الباركود؛‬
‫– يختبر النظام إمكانية اإلعارة من خالل اختبار عدد الكتب التي استعارها القارئ‪ ،‬كما يختبر فيما إذا كان المستعير قد‬
‫أودع في حسابه مبلغ ‪ 500‬ل‪.‬س‪ .‬كتأمين عن الكتب التي يقوم باستعارتها؛‬
‫لتسهيل عملية البحث عن كتاب محدد‪ ،‬يستطيع المستعير أن يقوم باستخدام نظام إدارة المكتبة للبحث عن الكتب من خالل‬
‫اسم الكتاب أو اسم المؤلف أو رقم الكتاب‪.‬‬
‫البحث عن الفاعلين‬
‫• يمكننا بعد تفحص النص السابق أن نستنتج فاعلي النظام‪ ،‬وهم‪:‬‬
‫أمين المكتبة‬
‫المُستعير‬
‫الطالب‬
‫الموظف‬
‫البحث عن الفاعلين‬
‫• كما ويمكننا أن نستنتج وجود عالقة تعميم بين الفاعلين المستنتجين‪:‬‬
‫المُستعير‬
‫الطالب‬
‫الموظف‬
‫تحديد حاالت االستخدام‬
‫• استعارة كتاب (المستعير‪ ،‬أمين المكتبة)‬
‫• البحث عن كتاب (المستعير)‬
‫مستعير‬
‫استعارة كتاب‬
‫مستعير‬
‫البحث عن كتاب‬
‫تطوير حاالت االستخدام‬
‫الخطوة (‪ :)1‬خذ هدفا محددا من أهداف أحد الفاعلين‪.‬‬
‫الخطوة (‪ :)2‬اكتب الشروط السابقة (‪ )preconditions‬التي يجب تحققها لبلوغ ذلك الهدف‪.‬‬
‫الخطوة (‪ :)3‬اكتب السيناريو المثالي (‪ )sunny-day‬للتفاعل بين المستخدم والنظام‪.‬‬
‫الخطوة (‪ :)4‬حدد السيناريوهات البديلة التي قد تحدث في حال فشل كل خطوة من خطوات‬
‫السيناريو المثالي‪.‬‬
‫الخطوة (‪ :)5‬لكل حالة من حاالت الفشل األساسية أنشئ سيناريو كامل أو مدد (وسع) السيناريو‬
‫األساسي‪.‬‬
‫الخطوة (‪ – )6‬اختيارية‪ :‬ابحث عما هو مشترك ما بين عدة سيناريوهات والذي يمكن عزله‬
‫خارجها بحيث تصبح تلك السيناريوهات أبسط‪.‬‬
‫تدوين حاالت االستخدام‬
‫• مجموعة النقاط التي ينبغي أن تتوافر ضمن التدوين‪:‬‬
‫– الفاعلين‪ :‬حيّز خاص لوصف الفاعل أو الفاعلين الذين يؤثرون ويتأثرون بحالة االستخدام؛‬
‫– الشروط المسبقة‪ :‬حيّز خاص للتعبير عن الشروط التي ينبغي تحقيقها قبل إطالق حالة‬
‫االستخدام؛‬
‫– تسلسل األحداث‪ :‬حيِّز خاص للتعبير عن األحداث التي يتم تنفيذها أثناء محاولة الفاعلين‬
‫والنظام الوصول بحالة االستخدام إلى الهدف المرجو تحقيقه‪ ،‬بحيث يمكن أن تتضمن تلك‬
‫األحداث تفاعالت النظام مع المستخدم أو المناقالت الضمنية التي يتم تنفيذها؛‬
‫• الشروط الالحقة‪ :‬حيّز خاص للتعبير عن الشروط التي تتحقق بعد االنتهاء من‬
‫تنفيذ حالة االستخدام بنجاح‪.‬‬
‫تحليل نموذج حاالت االستخدام‬
‫• يمكن تعريف النظام من خالل مجموع حاالت االستخدام التي يتضمنها؛‬
‫• يمكننا التعبير عن نفس تسلسل األحداث في النظام من خالل حالة استخدام‬
‫وحيدة أو من خالل حالة استخدام مجزأة إلى عدة أقسام‪ ،‬وذلك من منطلق‬
‫التقسيم الوظيفي الذي يُعتبر واحدا من المبادئ الشهيرة في هندسة البرمجيات؛‬
‫• ُتستخدم عالقات االحتواء >>‪ <<include‬والتمديد >>‪ <<extend‬كأدوات‬
‫إلعادة تحليل أو بناء نموذج حاالت االستخدام بغرض التعامل مع مفهوم‬
‫التكرارية وعزل العمليات المشتركة بين حاالت االستخدام؛‬
‫تحليل حاالت االستخدام‬
‫العالقات بين حاالت االستخدام ‪ -‬التمديد‬
‫•‬
‫•‬
‫•‬
‫•‬
‫تسمح عالقة التمديد بتوسيع حالة االستخدام بسلوك أو تبدالت إضافية؛‬
‫تظهر أهمية عالقة التمديد عندما تمتلك حالة استخدام محددة سلوك حالة‬
‫استخدام أخرى بشكل كامل‪ ،‬إال أنها تتميز بأنه ليس من الضروري أن يتم‬
‫تنفيذها لكي تستكمل حالة االستخدام األساسية تنفيذها؛‬
‫يمكن أن تمتلك حالة االستخدام ع ّدة عالقات تمديد مختلفة‪ ،‬كما أنه يمكن لحالة‬
‫االستخدام المم ّددة أن تختار الوقت المناسب لتنفيذ األنشطة المتاحة من خالل‬
‫حالة االستخدام الفرعية التي أجرت عملية التمديد؛‬
‫يُشار إلى عالقة التمديد بين حالتي استخدام من خالل خط من ّقط وموجَّ ه من‬
‫حالة االستخدام التي تزوِّ د عملية التمديد إلى حالة االستخدام األساسية المم َّددة؛‬
‫العالقات بين حاالت االستخدام ‪ -‬التمديد‬
‫>>‪<<extend‬‬
‫)‬
‫>>‪<<extend‬‬
‫(‬
‫العالقات بين حاالت االستخدام ‪ -‬االحتواء‬
‫• تسمح عالقة االحتواء لحالة االستخدام بالولوج إلى مجموعة من العمليات التي‬
‫تشكل إجراء مستقال ضمن حالة استخدام مستقلّة؛‬
‫• عندما توجد عالقة احتواء بين حالتي استخدام‪ ،‬فهذا يجعل من عملية تنفيذ حالة‬
‫االستخدام الرئيسية مرتبطة مباشرة بتنفيذ حالة االستخدام الفرعيّة؛‬
‫• يُشار إلى عالقة االحتواء بين حالتي استخدام من خالل خط من ّقط وموجَّ ه من‬
‫حالة االستخدام األساسية الحاوية‪ ،‬إلى حالة االستخدام الفرعية المُحتواة؛‬
‫العالقات بين حاالت االستخدام ‪ -‬االحتواء‬
‫>>‪<<include‬‬
‫)‬
‫)‬
‫(‬
‫>>‪<<include‬‬
‫(‬
‫العالقات بين حاالت االستخدام ‪ -‬التعميم‬
‫•‬
‫•‬
‫•‬
‫•‬
‫تعرِّ ف لغة النمذجة الموحّ دة ‪ UML‬عالقة التعميم بأنها عالقة بين حالتي استخدام أب وابن‪،‬‬
‫بحيث تتضمن حالة االستخدام االبن كافة واصفات األب وخصائص سلوكه‪ ،‬كما تشترك في‬
‫كافة ارتباطات وعالقات حالة االستخدام األب؛‬
‫تعتبر حالة االستخدام االبن في عالقة التعميم‪ ،‬أكثر تخصيصا من حالة االستخدام األب‪ ،‬إذ‬
‫ترث هذه الحالة كافة خصائص األب وواصفاته‪ ،‬وتقوم بتعديل بعضها أو إضافة البعض‬
‫اآلخر؛‬
‫يُطلق على حالة االستخدام األب اسم حالة االستخدام المُجرَّ دة‪ ،‬كما ويتم اإلشارة إلى ذلك‬
‫ضمن التدوين الخاص بوصفها؛‬
‫يُشار إلى عالقة التعميم بين حالتي استخدام من خالل خط موجّ ه من حالة االستخدام االبن إلى‬
‫حالة االستخدام األب بحيث يكون رأس السهم بشكل مثلث مغلق؛‬
‫العالقات بين حاالت االستخدام‬
‫>>‪<<Extend‬‬
‫>>‪<<Include‬‬
‫>>‪<<Include‬‬
‫تدوين حاالت االستخدام المتقدم‬
‫اسم حالة االستخدام‬
‫استعارة كتاب‬
‫رقم معرِّف حالة االستخدام‬
‫‪UC-01‬‬
‫وصف موجز‬
‫يذذذهب المسذذتعير إلذذى المكتبذذة السذذتعارة كتذذاب‪ ،‬ويقذذوم بجلذذب الكتذذب إلذذى أمذذين المكتبذذةب يطلذذب أمذذين المكتبذذة رقذذم بطاقذذة المسذذتعيرب يقذذوم المسذذتعير بتقذذديم بطاقت ذ الخاصذذة (بطاقذذة الطالذذب أو بطاقذذة‬
‫الموظف) باإلضافة إلى الكتب التي يرغب باستعارتها‪ ،‬يقوم أمين المكتبة بمسح أرقام الكتب المختارة بواسطة القارئ اآللي إلنشاء طلب استعارة للمستعير‪.‬‬
‫الفاعل (أو الفاعلون) األولي‬
‫المنشئ)‪ ،‬أمين المكتبة‪.‬‬
‫المستعير ( ُ‬
‫الفاعل (الفاعلون) الثانوي‬
‫‪---‬‬
‫الشروط السابقة‬
‫أن يمتلك المستعير بطاقة ورقم يخول ل إجراء عملية االستعارةب‬
‫سجل سابق في النظام‪.‬‬
‫أن يكون للمستعير‬
‫ّ‬
‫التدفق الرئيسي‬
‫النظام‬
‫المستخدم‬
‫يجلب المستعير الكتب إلى أمين المكتبة‪ ،‬ويقدم بطاقت الخاصةب‬
‫‪.1‬‬
‫يمسح أمين المكتبة رقم بطاقة المستعيرب‬
‫‪.2‬‬
‫يختبذذر النظذذام فيمذذا إذا كذذان للمسذذتعير سذذجل معذ ّذرف‪ ،‬وفيمذذا إذا كذذان هذذذا المسذذتعير قذذد أود رسذذم التذذيمين الذذذي‬
‫تطلب المكتبة من قرائهاب‬
‫‪.3‬‬
‫يختبذذر النظذذام فيمذذا إذا كذذان المسذذتعير قذذد تجذذاوز الحذذد المسذذمو ل ذ باالسذذتعارة‪ ،‬أي عذذدد الكتذذب األعظمذذي التذذي‬
‫يمكن استعارتها في نفس الوقتب‬
‫‪.4‬‬
‫يقذوم أمذذين المكتبذة بمسذذح أرقذذام الكتذب الجديذذدة التذي يرغذذب المسذذتعير‬
‫‪.5‬‬
‫التدفقات البديلة‬
‫باستعارتهاب‬
‫‪.6‬‬
‫يختبر النظام فيما إذا تجاوز المستعير حد الكتب المتاحة ل ب‬
‫‪.7‬‬
‫يجعل النظام حالة الكتب التي تمت قراءة أرقامها على أنها " ُمعارة" للقارئ المحددب‬
‫‪.8‬‬
‫يطبع النظام إيصاالً مناسباً بتاريخ االستعارة والتاريخ الذي ينبغي في إعادة الكتب إلى المكتبة‪.‬‬
‫‪(1‬‬
‫في حال عدم وجود رسم تيمين‪ ،‬يطلب أمين المكتبة من المستعير أن يسدد رسم التيمين المطلوب‪ ،‬ويتم إلغاء حالة االستخدام‪.‬‬
‫‪(2‬‬
‫يقوم النظام بإعالم أمين المكتبة بين الحد المسمو ب من عدد الكتب التي ينبغي إعارتها لهذا المستعير قد تم تجاوزه‪ ،‬ويتم إلغاء حالة االستخدام‪.‬‬
‫‪Lesson 06‬‬