مقدمة في هندسة البرمجيات (ITGS-213) - جامعة طرابلس - خريف 2020 PDF

Summary

These lecture notes cover the Introduction to Software Engineering course for ITGS-213 at Tripoli University in Fall 2020. The document discusses software requirement engineering, including functional and non-functional requirements, and various methods for gathering requirements.

Full Transcript

‫‪5/21/2022‬‬ ‫جامعة طرابلس ـ كلية تقنية المعلومات‬ ‫مقدمة في هندسة البرمجيات‬ ‫‪Introduction to software Engineering‬‬ ‫‪ITGS-213‬‬ ‫المحاضرة الثالثة – هندس...

‫‪5/21/2022‬‬ ‫جامعة طرابلس ـ كلية تقنية المعلومات‬ ‫مقدمة في هندسة البرمجيات‬ ‫‪Introduction to software Engineering‬‬ ‫‪ITGS-213‬‬ ‫المحاضرة الثالثة – هندسة المتطلبات البرمجية (مرحلة‬ ‫التحليل)‬ ‫‪Software Requirement Engineering‬‬ ‫خريف‪2020‬‬ ‫مواضيع المحاضرة‬ ‫‪‬مقدمة‬ ‫‪‬تعريف المتطلبات وأنواعها‬ ‫‪‬أهداف هندسة المتطلبات البرمجية‬ ‫‪‬مشاكل التي تواجه هندسة المتطلبات‬ ‫‪‬النشاطات المستخدمة لجمع المتطلبات‬ ‫‪2‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪1‬‬ ‫‪5/21/2022‬‬ ‫هندسة المتطلبات البرمجية‬ ‫‪Software Requirement Engineering‬‬ ‫‪ ‬ظهر مصطلح ‪ Requirement Engineering‬في بداية التسعينات‪.‬والذي يمثل‬ ‫ما يعرف بمرحلة التحليل‪.‬‬ ‫‪ ‬يعتمد كمال النظام المستهدف على مدى جمع المتطلبات ‪Requirement‬‬ ‫‪Gathering‬بالصورة الصحيحة والكاملة العتماد المراحل التالية عليها‪.‬‬ ‫‪ ‬يتم جمع المتطلبات من قبل ‪ Stakeholders‬وهم الزبون والمستخدم ومعد‬ ‫المنظومة كعملية جماعية‪.‬‬ ‫‪3‬‬ ‫المتطلبات‪Requirements‬‬ ‫‪ ‬تعريف المتطلبات‪Requirements:‬‬ ‫‪‬هي ملخص لمجموعة طلبات يرغبها الزبون في شكل وظائف وقدرات وخصائص ومعايير جودة خاصة‬ ‫بالمنظومة المطلوبة لجلب منفعة وقيمة للمستخدم‪.‬‬ ‫‪‬هي مجموعة من القدرات البرمجية المطلوبة في المنظومة لحل مشاكل المستخدم في النظام الحالي‪.‬‬ ‫ المتطلب هو شرط أو قدرة التي يمتلكها البرنامج أو مكون من مكونات النظام من أجل حل مشكلة في العالم‬ ‫الحقيقي‬ ‫ وصف المتطلبات كيف يجب أن يتصرف النظام أو يبدو أو ينفذ‪.‬لهذا‪ ،‬عندما يطلب المستخدمون برنام ًجا‪،‬‬ ‫قادرا على القيام به‪ ،‬وتختلف المتطلبات من‬ ‫تقديرا تقريبيًا لما يجب أن يكون النظام الجديد ً‬ ‫ً‬ ‫فإنهم يقدمون‬ ‫مستخدم آلخر ومن عملية تجارية إلى أخرى‪.‬‬ ‫‪4‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪2‬‬ ‫‪5/21/2022‬‬ ‫أنواع المتطلبات‪Type of Requirements‬‬ ‫‪ ‬يمكن تصنيف المتطلبات البرمجية حسب اآلتي‪:‬‬ ‫اولا ‪:‬المتطلبات الوظيفية‪Functional Requirements‬‬ ‫‪‬هي الوظائف أو األفعال المرغوب أداؤها من المنظومة البرمجية ‪.‬أو هي المعامالت التي تحدث في‬ ‫المنظومة من قراءة ومعالجة البيانات والحصول على المخرجات‪.‬‬ ‫امثلة ‪:‬‬ ‫‪.1‬النظام يسمح للمستخدم باضافة و الغاء المواد الدراسية‪.‬‬ ‫‪.2‬النظام يسمح للمستخدم بالبحث عن كتاب معين من خالل العنوان ‪ ،‬اسم الكاتب ‪ ،‬او الرقم الدولي للكتاب‪.‬‬ ‫انواع المتطلبات‪Type of Requirements‬‬ ‫ثانيا ا‪ :‬المتطلبات الغير وظيفية‪NON Functional Requirements‬‬ ‫هي المتطلبات التي تعرف خصائص النظام و القيود‪.‬و من امثلتها ‪:‬متطلبات االداء‬ ‫‪ performance Requirements‬زمن استجابة النظام إلنهاء عدد من المعامالت في فترة زمنية معينة‪.‬‬ ‫متطلبات القبول‪Acceptance Requirements‬‬ ‫‪Portability Requirements‬متطلبات قابلية النقل‬ ‫‪Reliability requirements‬الموثوقية‬ ‫‪Usability requirements‬سهولة االستخدام‬ ‫‪Lect2_Fall2020‬‬ ‫‪3‬‬ ‫‪5/21/2022‬‬ ‫امثلة علي المتطلبات الوظيفيه والغير وظيفيه‬ ‫ مثال متطلب وظيفي‬ ‫قادرا على استرداد معلومات مرضاه‬ ‫ على سبيل المثال‪ ،‬في نظام إدارة المستشفى‪ ،‬يجب أن يكون الطبيب ً‬ ‫ متطلب غير وظيفي‬ ‫ يجب ان يكون الموقع قادرا علي التعامل مع ‪ 20‬مليون مستخدم معا دون التأثير علي ادائه‬ ‫ يجب علي المستخدمين تغيير كلمة مرور تسجيل الدخول المعينة في بداية مباشره اول تسجيل دخول ناجح‪ ،‬وال‬ ‫ينبغي أبدا اعادة استخدام كلمة المرور ذاتها‬ ‫ يجب تحميل كل صفحة في غضون ثانيتين‬ ‫أهداف هندسة المتطلبات البرمجية‬ ‫التعرف على طرق الحصول على متطلبات‪.‬‬ ‫‪.1‬‬ ‫تحليل المتطلبات البرمجية‪.‬‬ ‫‪.2‬‬ ‫تكوين وكتابة مواصفات المتطلبات‪.‬‬ ‫‪.3‬‬ ‫تقييم واعتماد المتطلبات البرمجيات‪.‬‬ ‫‪.4‬‬ ‫ادارة اي تغييرات تحصل لهذه المتطلبات‪.‬‬ ‫‪.5‬‬ ‫‪8‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪4‬‬ ‫‪5/21/2022‬‬ ‫مصادر المتطلبات‪Sources Of Requirements‬‬ ‫‪Stakeholders‬‬ ‫اصحاب المصلحة‬ ‫‪‬‬ ‫‪documents‬‬ ‫الوثائق‬ ‫‪‬‬ ‫‪Existing System‬‬ ‫النظام القائم‬ ‫‪‬‬ ‫‪9‬‬ ‫المتطلبات‪ :‬المشاكل واألسباب‬ ‫أهم المشاكل التي تواجه هذه المرحلة‪:‬‬ ‫‪‬الزبون أو المستخدم ال يعرف ما هي متطلباته‪.‬‬ ‫‪‬عملية تحليل المتطلبات ناقصة او غير كاملة‪.‬‬ ‫‪‬التغيير المتكرر في اللوائح والقوانين وفي المتطلبات من جانب الزبون‪.‬‬ ‫‪‬الميزانية والمدة الزمنية غير معقولة أو غير مقبولة‪.‬‬ ‫‪‬التقليل من أهمية المراحل االبتدائية مقارنة بمرحلتي البرمجة واالختبار‪.‬‬ ‫‪‬عدم التواصل لفهم المتطلبات بين معد المنظومة و‪Stakeholders.‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪5‬‬ ‫‪5/21/2022‬‬ ‫هندسة المتطلبات البرمجية‬ ‫‪Software Requirement Engineering‬‬ ‫هي كل النشاطات المستخدمة للتعرف على المتطلبات ‪ ،‬من جمع وتحليل وادارة المتطلبات للوصول الى‬ ‫متطلبات صحيحة وكاملة وواضحة لتلبي احتياجات المستخدم‪.‬وهذه النشاطات تتمثل في‪:‬‬ ‫‪ Requirements elicitation‬‬ ‫جمع أو استنباط المتطلبات‬ ‫‪‬‬ ‫‪ Requirements analysis‬‬ ‫تحليل المتطلبات‬ ‫‪‬‬ ‫‪ Requirements specification‬‬ ‫توصيف وتحديد المتطلبات‬ ‫‪‬‬ ‫‪ Requirements validation‬‬ ‫اعتماد المتطلبات‬ ‫‪‬‬ ‫‪ Requirements Management‬‬ ‫إدارة المتطلبات‬ ‫‪‬‬ ‫جمع او استنباط المتطلبات‬ ‫‪Requirement Elicitation‬‬ ‫‪‬تعتبر أول خطوة في مرحلة التحليل ‪.‬ويتم فيها استنباط المتطلبات من المستخدم والزبون من أجل اكتشاف‬ ‫وفهم احتياجات المستخدم‪.‬‬ ‫‪‬أصعب مهمة في عملية جمع المتطلبات هي محاولة مساعدة الزبون لفهم ما يحتاجه‪.‬‬ ‫يستخدم في هذا النشاط طرق جمع المتطلبات وهي‪:‬‬ ‫المقابلة الشخصية ‪Interview.‬‬ ‫‪‬‬ ‫المالحظة ‪observation.‬‬ ‫‪‬‬ ‫‪12‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪6‬‬ ‫‪5/21/2022‬‬ ‫جمع او استنباط المتطلبات‬ ‫العينات والوثائق‪document & sampling.‬‬ ‫‪‬‬ ‫االستبيان‪questionnaire.‬‬ ‫‪‬‬ ‫تصميم التطبيق المشترك‪joint app design JAD.‬‬ ‫‪‬‬ ‫جلسة توليد االفكار‪Brainstorming.‬‬ ‫‪‬‬ ‫العرض التجريبي‪prototyping.‬‬ ‫‪‬‬ ‫المقابلة الشخصية‪Interview‬‬ ‫‪‬ويتم فيها اجراء مقابلة مع الزبون والمستخدم لفهم طبيعة العمل واللوائح والقوانين لتسيير العمل‪.‬‬ ‫وتوجد ارشادات يجب اتباعها لتكون المقابلة ناجحة‪:‬‬ ‫‪‬التجهيز الجيد للمقابلة‪.‬‬ ‫‪‬االستماع الجيد من قبل المحلل‪.‬‬ ‫‪‬إجراء المقابالت مع المستخدمين لمعرفة تفاصيل و دور كل منهم والتحديات التي تعترضهم‪.‬‬ ‫‪‬مقابلة المدراء لتحديد نطاق العمل واألهداف المرجوة‪.‬‬ ‫‪‬عيوبها‪ :‬عدد مقابالت محدود– الوقت – الجهد‪.‬‬ ‫‪14‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪7‬‬ ‫‪5/21/2022‬‬ ‫االستبيان‪Questionnaire‬‬ ‫‪‬تسمى ايضا ً المسح‪Survey.‬‬ ‫‪‬تتميز بجمع المتطلبات من عدد هائل من الناس في زمن قليل‪.‬‬ ‫‪‬تحتوي على مجموعة متنوعة من االسئلة‪.‬‬ ‫‪‬يمكن ان تجرى على االنترنت‪.‬‬ ‫‪‬عيوبها ‪ :‬دقة المعلومات وكمالها غير مستوفاة‪.‬‬ ‫‪15‬‬ ‫المالحظة‪Observation‬‬ ‫‪‬في الطريقتين السابقتين المعلومات تأتي من المستخدمين والزبائن‪.‬‬ ‫‪‬أما في طريقة المالحظة فإن محلل النظم هو من يراقب سير العمل‪.‬‬ ‫‪‬هي طريقة مباشرة لدراسة وتفقد النظام الحالي تحت الدراسة‪.‬‬ ‫‪‬تساعد على الحصول على المعلومات كما هي وليس كما يعتقد ها المستخدم‪.‬‬ ‫‪‬تعد هذه الطريقة مساعدة للطرق السابقة للتحقق من المعلومات‪.‬‬ ‫‪‬عيوبها ‪ :‬تضليل المحلل من قبل المستخدم بالتصنع في مدى أداء عمله (موظف مثالي ‪).‬وبالتالي‬ ‫يفضل أداء هذه الطريقة دون انتباه الموظف‪.‬‬ ‫‪16‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪8‬‬ ‫‪5/21/2022‬‬ ‫جمع وتحليل العينات والوثائق‬ ‫‪Document gathering & Sampling Analysis‬‬ ‫‪‬جمع كل النماذج )‪ (forms‬والوثائق )‪ (Documents‬والمخططات ذات العالقة‬ ‫بالنظام الحالي المستهدف وتحليلها‪.‬‬ ‫‪‬ال تقل أهمية عن الطرق االخرى‪.‬‬ ‫‪‬تساعد في مقارنة طريقة عمل النظام الحالي مع النظام المثالي او حسب اللوائح‪.‬‬ ‫‪17‬‬ ‫تصميم التطبيق المشترك‬ ‫‪Joint Application design JAD‬‬ ‫‪‬وهي عبارة عن جلسات مكثفة من قبل( ‪ Stakeholders‬الزبون والمستخدمين والمبرمجين )في‬ ‫جميع المراحل لتحليل النظام وحل المشاكل‪.‬‬ ‫‪‬تكون الجلسة في مكان واحد ووقت واحد ولمدة تستغرق أسبوعا في هذه المرحلة‪.‬‬ ‫‪‬النقاط المستهدفة في الجلسات‪:‬‬ ‫‪‬لمحة عن النظام والمشاكل التي تعترضه‪.‬‬ ‫‪‬مناقشة تصميم النماذج والتقارير للمنظومة المقترحة‪.‬‬ ‫‪‬مناقشة الوظائف المنظومة وخصائص الجودة المطلوبة في هذه المنظومة‪.‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪9‬‬ ‫‪5/21/2022‬‬ ‫جلسة توليد األفكار‬ ‫‪brainstorming‬‬ ‫جمع واقتباس متطلبات المنظومة المستهدفة من قبل االشخاص ذوي العالقة‬ ‫‪‬‬ ‫بالمنظومة ‪ Stakeholders‬في مدة قصيرة‪.‬‬ ‫توليد أفكار بخصوص المزايا المرتقبة في المنظومة‪.‬‬ ‫‪‬‬ ‫في هذه الطريقة يتم اكتشاف متطلبات مخفية لم يتعرف عليها بالطرق االخرى‪.‬‬ ‫‪‬‬ ‫‪19‬‬ ‫البحث والتطبيقات المشابهة‬ ‫‪Research & Similar Applications‬‬ ‫تجهز طريقة البحث ‪ Research‬محلل النظم بالمعلومات الكافية القناع الزبون بمدى درايته‬ ‫‪‬‬ ‫بطريقة عمل النظام الحالي والمصطلحات المستخدمة فيه‪.‬‬ ‫حيث يقوم المحلل بالبحث في المكتبات واالنترنت ودراسة السوق ومراجعة تطبيقات مشابهة‬ ‫‪‬‬ ‫‪Similar Applications‬في مؤسسات أخرى‪.‬‬ ‫مالحظة‪ :‬يجب إلحاق المستخدم من البداية مع فريق إعداد المنظومة للحصول على متطلبات كاملة‬ ‫وصحيحة والعكس صحيح‪.‬‬ ‫‪20‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪10‬‬ ‫‪5/21/2022‬‬ ‫العرض التجريبي‬ ‫‪Prototyping‬‬ ‫تعرض هذه الطريقة نسخة تجريبية مبدئية للمنظومة ‪ Prototype‬ذات الوظائف المحدودة تبين قدرات المنظومة‪.‬‬ ‫‪‬‬ ‫تجهز المنظومة التجريبية في مدة وجيزة ‪ ،‬باستخدام لغات برمجة سهلة وسريعة التنفيذ مثل البيسك المرئي‬ ‫‪‬‬ ‫وقواعد بيانات اكسس‪.‬‬ ‫يتم إصدار أكثر من نسخة وعرضها على الزبون وأخذ المالحظات من المستخدم‪.‬‬ ‫‪‬‬ ‫تستخدم هذه الطريقة في حالة وجود صعوبة بين المحلل والمستخدم في تحديد المتطلبات‪.‬‬ ‫‪‬‬ ‫‪21‬‬ ‫‪The end.‬‬ ‫‪22‬‬ ‫‪Lect2_Fall2020‬‬ ‫‪11‬‬

Use Quizgecko on...
Browser
Browser