مقدمة في هندسة البرمجيات (ITGS-213) - Rبيع 2018 - LECTURE 9 PDF

Summary

This document is Lecture 9 from the ITGS-213 Introduction to Software Engineering course offered at جامعة طرابلس in Spring 2018. The lecture covers various software development models, including Waterfall, Prototype, Incremental, Spiral, RAD, and Agile models. It introduces each model's characteristics and purpose.

Full Transcript

‫‪7/6/2022‬‬ ‫جامعة طرابلس‬ ‫كلية تقنية المعلومات‬ ‫مقدمة في هندسة البرمجيات‬ ‫‪Introduction to software Engineering‬‬ ‫‪ITGS-213‬‬ ‫المحاضرة التاسعة – نماذج إعداد المنظومات‬...

‫‪7/6/2022‬‬ ‫جامعة طرابلس‬ ‫كلية تقنية المعلومات‬ ‫مقدمة في هندسة البرمجيات‬ ‫‪Introduction to software Engineering‬‬ ‫‪ITGS-213‬‬ ‫المحاضرة التاسعة – نماذج إعداد المنظومات‬ ‫‪Software Development Models‬‬ ‫‪1‬‬ ‫ربيع‪-2018‬‬ ‫محتويات المحاضرة‬ ‫‪ ‬مراحل دورة حياة المنتج البرمجي) ‪(Software Development Life Cycle SDLC‬‬ ‫نموذج الشالل)‪(Waterfall Model‬‬ ‫‪‬‬ ‫نموذج التجريبي)‪(Prototype Model‬‬ ‫‪‬‬ ‫نموذج التزايدي‪(Incremental Model).‬‬ ‫‪‬‬ ‫النموذج الحلزوني)‪(Spiral Model‬‬ ‫‪‬‬ ‫التطوير السريع للبرنامج )‪(RAD) (Rapid Application Development‬‬ ‫‪‬‬ ‫النموذج الرشيق (‪(Agile Model‬‬ ‫‪‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪7/6/2022‬‬ ‫مقدمـــــــــــــــــــة‬ ‫سنتناول بعض النماذج المستخدمة في اعداد المنظومات والتي ساهمت في التعامل مع‬ ‫الكم الهائل من المتطلبات الجديدة والمتنوعة والمعقدة والتعامل مع أزمة البرمجيات‪.‬‬ ‫حيث كان في الخمسينات اعداد المنظومات يتم بطريقة بدائية تسمى طريقة بناء‪-‬ثم‪-‬‬ ‫إصالح‪.‬أي اكتب برنامج ثم صحح الخطأ وجربه الى أن تصل الى الحل النهائي‪.‬‬ ‫بناء‬ ‫تعمل هذه الطريقة بصورة جيدة على تمارين البرمجة‬ ‫عدّل حتى يتم إرضاء الزبون‬ ‫ذات طول يتراوح من ‪ 100‬إلى ‪ 200‬سطر‪.‬‬ ‫طور العمل‬ ‫صيانة‬ ‫جاهز‬ ‫تطوير‬ ‫‪3‬‬ ‫مقدمـــــــــــــــــــة‬ ‫ومنذ بداية السبعينات بدأ اعداد المنظومات يتم بطريقة صحيحة وهذه الطريقة‬ ‫‪‬‬ ‫تتكون من مجموعة من المراحل عرفت بإسم دورة حياة اعداد المنظومات‬ ‫‪Software Development Life Cycle SDLC.‬‬ ‫في دورة حياة اعداد المنظومات يتم استخدام مجموعة نماذج مختلفة لعمليات البرمجة في‬ ‫هندسة البرمجيات ‪.‬نموذج اعداد البرمجيات هو أسلوب لتنظيم نشاطات عمليات‬ ‫البرمجيات وفقا لطريقة معينة ‪.‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪7/6/2022‬‬ ‫عمليات البرمجيات‬ ‫‪Software processes‬‬ ‫كل نموذج هو مجموعة من األنشطة المرتبة هدفها النهائي تطوير منتج‬ ‫‪‬‬ ‫برمجي جديد أو تحسين منتج موجود‪.‬‬ ‫هذه النشاطات تهدف الي تطوير وتقييم البرمجيات ‪.‬وتحتوي النشاطات على‬ ‫‪‬‬ ‫عمليات تساعد في اداء انشطة هندسة البرمجيات بطريقة منظمة‪.‬‬ ‫كل عملية من عمليات البرمجيات تتضمن العديد من الخطوات او (المهام)‬ ‫‪‬‬ ‫لكل منها مدخالتها ومخرجاتها‪ ,‬وتأثيرها على جودة المنتج‪.‬‬ ‫بالتالي يوجد العديد من النماذج و المنهجيات إلدارة هذه العمليات ( نماذج‬ ‫‪‬‬ ‫اعداد البرمجيات(‬ ‫‪5‬‬ ‫نماذج اعداد المنظومات‬ ‫‪Software Development Models‬‬ ‫‪‬يوجد العديد من النماذج المختلفة إلعداد المنظومات التي تم تطوريها خالل الفترة‬ ‫من السبعينات الي اواخر التسعينات وهي‪:‬‬ ‫‪.1‬النموذج التدفقي أو االنحداري‪Waterfall Model‬‬ ‫‪.2‬نموذج العرض التجريبي‪Prototype Model‬‬ ‫‪.3‬النموذج التزايدي‪Incremental Model‬‬ ‫‪.4‬النموذج اللولبي( الحلزوني‪) Spiral Model‬‬ ‫‪.5‬نموذج التطوير السريع للبرنامج)‪(RAD‬‬ ‫‪Rapid Application Development‬‬ ‫‪6‬النموذج الرشيق (‪(Agile Model‬‬ ‫‪6‬‬ ‫‪3‬‬ ‫‪7/6/2022‬‬ ‫النموذج التدفقي‪Waterfall Model‬‬ ‫‪‬يسمي النموذج الشاللي أواالنحداري أو النموذج التتابعي الخطي ‪(Linear‬‬ ‫)‪sequential‬نظرا لتتابع المراحل أو" دورة الحياة التقليدية “هو ( اول نموذج تم‬ ‫استخدامه بداية السبعينيات ) لهندسة البرمجيات يقترح منهجا تتابعيا منتظما لتطوير‬ ‫البرمجيات‪ ،‬يبدأ عند مستوى النظام ويتقدم تباعا إلى التحليل فالتصميم فالشفرة‬ ‫فاالختبار فالصيانة ‪.‬‬ ‫‪‬يوضح دورة حياة البرمجيات بشكل تدرجي ‪ ،‬تبدأ من المرحلة االولى حتي‬ ‫االخيرة‪.‬كل مرحلة تبدأ بعد االنتهاء من المرحلة السابقة‪.‬‬ ‫‪7‬‬ ‫النموذج التدفقي‪Waterfall Model‬‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪7/6/2022‬‬ ‫النموذج التدفقي أو الشاللي‪Waterfall Model‬‬ ‫النموذج السابق يفترض تبات المراحل‬ ‫‪‬‬ ‫وخاصة في مرحلة جمع المتطلبات وهي‬ ‫من اكثر المراحل تغيرا‪.‬‬ ‫انه ال يسمح للزبون بمشاهدة النظام اال في‬ ‫‪‬‬ ‫المراحل المتأخرة جدا‪.‬‬ ‫ونتيجة لذلك تم تعديل في هذا النموذج‬ ‫‪‬‬ ‫واصبح النموذج التدفقي المعدل بحيث‬ ‫يمكن الرجوع للمراحل السابقة في حالة‬ ‫حدوث تغير في المتطلبات‬ ‫النموذج التدفقي المعدل‬ ‫‪9‬‬ ‫مميزات وعيوب‬ ‫النموذج التدفقي أو الشاللي‪Waterfall Model‬‬ ‫‪‬مميزات النموذج التدفقي‪:‬‬ ‫‪.1‬انه بسيط وسهل الفهم‪.‬‬ ‫‪.2‬يعمل بشكل جيد في المشاريع الصغيرة والتي تكون فيها المتطلبات واضحة‪.‬‬ ‫‪‬عيوب النموذج التدفقي‬ ‫‪.1‬ليس نموذج جيد للمشاريع الكبيرة والمعقدة‪.‬‬ ‫‪.2‬ليس جيد في المشاريع التي عادة ما تكون فيها تغير المتطلبات عالي جدا‪.‬‬ ‫‪.3‬قد يسبب التكرار أو التعديالت ارتباكا( فوضى )مع تقدم فريق المشروع‪.‬‬ ‫‪10‬‬ ‫‪5‬‬ ‫‪7/6/2022‬‬ ‫متى نستخدم النموذج الشاللي؟‬ ‫المتطلبات واضحة ومعرفة بشكل جيد‪.‬‬ ‫‪.1‬‬ ‫هناك تعريف ووصف مستقر للمنتج‪.‬‬ ‫‪.2‬‬ ‫عند بناء إصدار جديد من منتج موجود مسبقا‪.‬‬ ‫‪.3‬‬ ‫عند نقل منتج موجود إلى منصة عمل جديدة‪.‬‬ ‫‪.4‬‬ ‫‪11‬‬ ‫نموذج العرض التجريبي‬ ‫‪Prototype Model‬‬ ‫جاء هذا النموذج لحل القصور في النموذج التدفقي ( مشكلة المتطلبات الخاصة‬ ‫‪‬‬ ‫بالزبون الغير مدرك للمتطلبات ‪).‬غالبا ما يعرف الزبون مجموعة من األهداف‬ ‫العامة للبرنامج‪ ،‬وال يحدد بالتفصيل كل المتطلبات‪.‬‬ ‫يقوم معد المنظومة بإعداد نموذج تجريبي (منظومة تجريبية) كعينة لعرضها‬ ‫‪‬‬ ‫على الزبون‪.‬‬ ‫تستخدم هذه العينة عادة لتوضيح لمساعدة الزبائن على فهم متطلبات النظام ‪،‬‬ ‫‪‬‬ ‫وكبداية إلصدار عدة نسخ متتالية للوصول للمنظومة النهائية التي ستسلم للزبون‬ ‫فيما بعد‪.‬‬ ‫هذا النموذج يتم عرض وظائف محددة للمنظومة ابتداء من نسخة اولية‪.‬‬ ‫‪‬‬ ‫‪12‬‬ ‫‪6‬‬ ‫‪7/6/2022‬‬ ‫نموذج العرض التجريبي‬ ‫‪Prototype Model‬‬ ‫‪ ‬يبنى النظام كسلسلة من اإلصدارات التزايدية تسلم تباعا للزبون حيث‬ ‫يبني المطورون نموذج أولي )‪ (Prototype‬خالل مرحلة جمع‬ ‫‪.1‬‬ ‫المتطلبات‪.‬‬ ‫يقوم المستخدمون أو الزبون بتقييم النموذج المنجز‪.‬‬ ‫‪.2‬‬ ‫يقوم المستخدمون أو الزبون باقتراح اإلجراءات التصحيحية ‪.‬‬ ‫‪.3‬‬ ‫يقوم المطورون بتحسين النموذج وبناء نسخة جديدة‪.‬‬ ‫‪.4‬‬ ‫عند بلوغ الزبون درجة مقنعة من الرضى والكفاية‪ ،‬يقوم المطورون‬ ‫‪.5‬‬ ‫بمراجعة شفرة النموذج األخير لتحسينه من خالل تطبيق المعايير الالزمة‬ ‫العتباره منتجا نهائيا‪.‬‬ ‫‪13‬‬ ‫نموذج العرض التجريبي‬ ‫‪Prototype Model‬‬ ‫‪14‬‬ ‫‪7‬‬ ‫‪7/6/2022‬‬ ‫مميزات و عيوب‬ ‫نموذج العرض التجريبي‬ ‫‪ ‬مميزات النموذج التجريبي‪:‬‬ ‫‪.1‬يقلل من مشاكل تحديد المتطلبات‪.‬‬ ‫‪.2‬يوفر دعم ومشاركة اكبر من طرف الزبون في المراحل المبكرة للمشروع‪.‬‬ ‫‪.3‬يستخدم عندما ال يكون هناك رؤية واضحة للمتطلبات ‪ ،‬بالتالي هو مناسب‬ ‫للبيئة التي يكثر فيها تغير المتطلبات‪.‬‬ ‫‪.4‬يمكن استعماله لتدريب المستخدمين قبل التسليم‪.‬‬ ‫‪15‬‬ ‫مميزات و عيوب‬ ‫نموذج العرض التجريبي‬ ‫عيوب النموذج التجريبي‪:‬‬ ‫‪‬‬ ‫قد يضغط الزبون باتجاه تسليم نموذج غير نهائي‪.‬‬ ‫‪.1‬‬ ‫قد تتحول عملية تحسين الطراز إلى حلقة غير منتهية مع اكتشاف المزيد من‬ ‫‪.2‬‬ ‫االحتياجات والمتطلبات‪(scope creep).‬‬ ‫يجب أن يتمتع فريق التطوير بمهارات عالية‪.‬‬ ‫‪.3‬‬ ‫قلة استخدام التوثيق‪.‬‬ ‫‪.4‬‬ ‫‪16‬‬ ‫‪8‬‬ ‫‪7/6/2022‬‬ ‫نموذج العرض التجريبي‬ ‫‪Prototype Model‬‬ ‫‪ ‬متي نستخدم العرض التجريبي؟‬ ‫‪.1‬لتوضيح و تحديد وتنقيح المتطلبات‪.‬‬ ‫‪.2‬محاولة فهم المسألة المراد حلها‪.‬‬ ‫‪.3‬نسخة بدائية للتوصل الي النسخة النهائية او ما يسمي باإلصدار النهائي‪.‬‬ ‫‪17‬‬ ‫النموذج التزايدي‬ ‫‪Incremental Model‬‬ ‫الهدف من هذا النموذج هو تقليص وقت انتظار الزبون للحصول على المنظومة‬ ‫‪‬‬ ‫النهائية وخاصة المنظومات الكبيرة والمعقدة والتي تستغرق مدة طويلة إلعدادها‪.‬‬ ‫وبالتالي تسليم المنظومة علي دفعات يكون الحل‪.‬حيث يتم تقسيم المنظومة الي‬ ‫‪‬‬ ‫اجزاء أو بناء ‪ Build‬يتم تسليمها للزبون تباعا في فترات زمنية متالحقة‪.‬‬ ‫كل جزء تمر عليه جميع مراحل تطوير البرمجيات ليتم تشغيله فيما بعد في موقع‬ ‫‪‬‬ ‫الزبون‪.‬‬ ‫النموذج التزايدي هو عبارة عن خليط من النموذج التدفقي و نموذج العرض‬ ‫‪‬‬ ‫التجريبي‪.‬‬ ‫‪18‬‬ ‫‪9‬‬ ‫‪7/6/2022‬‬ ‫النموذج التزايدي‬ ‫‪Incremental Model‬‬ ‫‪ ‬فمثال قد تنجز برنامج معالجة النصوص باستخدام النموذج ألتزايدي كإنشاء‬ ‫الملفات والتحرير في التزايد األول‪ ،‬وتقدم إمكانيات أكثر تطورا (تعقيدا وتقدما)‬ ‫كتحرير والطباعة وادراج الجداول التزايد الثاني‪ ،‬وتقدم التصحيح اإلمالئي والقواعد‬ ‫في التزايد الثالث‪ ،‬وتقدم إمكانات متقدمة لضبط تنسيق الصفحة )‪(page layout‬‬ ‫في التزايد الرابع‪.‬‬ ‫‪19‬‬ ‫النموذج التزايدي‬ ‫‪Incremental Model‬‬ ‫‪20‬‬ ‫‪10‬‬ ‫‪7/6/2022‬‬ ‫خصائص النموذج التزايدي‬ ‫‪Incremental Model‬‬ ‫يتكون المنتوج عادة من اجزاء أو بناء‪Build.‬‬ ‫‪.1‬‬ ‫كل جزء( بناء )يتم تصميمه وكتابته ثم تسليمه للزبون‪.‬‬ ‫‪.2‬‬ ‫يعطي المنتوج للزبون تدرجيا علي شكل دفعات جزء بعد جزء‪.‬‬ ‫‪.3‬‬ ‫‪21‬‬ ‫مميزات وعيوب النموذج التزايدي‬ ‫‪Incremental Model‬‬ ‫مميزات النموذج التزايدي‬ ‫‪‬‬ ‫ال يحتاج الي الكثير من أعضاء فريق العمل مما يودي الي توفير التكلفة‪.‬‬ ‫‪.1‬‬ ‫يستطيع الزبون أن يرى منظومة قابلة للعمل في وقت مبكر‪.‬‬ ‫‪.2‬‬ ‫يمكنك تسليم األجزاء البرمجية العاجلة ‪ ،‬و تأجيل الباقي فيما بعد‪.‬‬ ‫‪.3‬‬ ‫عيوب النموذج التزايدي‬ ‫‪‬‬ ‫يحتاج الي تخطيط وتصميم جيد‪.‬‬ ‫‪.1‬‬ ‫التكلفة أكثر من النموذج االنحداري‪.‬‬ ‫‪.2‬‬ ‫‪22‬‬ ‫‪11‬‬ ‫‪7/6/2022‬‬ ‫النموذج الحلزوني‬ ‫‪Spiral Model‬‬ ‫ تسمح المنهجية اللولبية للفرق باعتماد‬ ‫نماذج ‪SDLC‬متعددة بناء على‬ ‫أنماط المخاطر للمشروع المحدد ‪.‬‬ ‫مزيج من النهج التكراري والشالل ‪،‬‬ ‫التحدي مع النموذج الحلزوني هو‬ ‫معرفة متى تكون اللحظة المناسبة‬ ‫لالنتقال إلى المرحلة التالية‬ ‫ ‪.‬يمكن أن تستفيد الشركات التي ليست‬ ‫متأكدة من متطلباتها أو تتوقع‬ ‫تعديالت كبيرة خالل مشروعها الذي‬ ‫يتسم بمخاطر متوسطة إلى عالية من‬ ‫قابلية التوسع في هذه المنهجية‪.‬‬ ‫التطوير السريع للبرنامج ( ‪RAD) (Rapid Application‬‬ ‫)‪Development‬‬ ‫ التطوير السريع للتطبيق هو منهجية تطوير البرمجيات التي تتضمن أساليب مثل‬ ‫التطوير التكراري ووضع النماذج األولية للبرمجيات‬ ‫ يستند نموذج )‪RAD (Rapid Application Development) Model‬علي‬ ‫النماذج والتطوير التكراري مع عدم وجود تخطيط محدد المعنية‪.‬عمليه كتابه البرنامج‬ ‫نفسه ينطوي علي التخطيط المطلوب لتطوير المنتج‪.‬‬ ‫ يركز تطوير التطبيقات السريعة علي جمع متطلبات العمالء من خالل ورش العمل أو‬ ‫مجموعات التركيز ‪ ،‬واالختبار المبكر للنماذج االوليه من قبل العميل باستخدام المفهوم‬ ‫التكراري ‪ ،‬وأعاده استخدام النماذج الحالية (المكونات) ‪ ،‬والتكامل المستمر التسليم‬ ‫السريع‪.‬‬ ‫‪06/27/18‬‬ ‫‪12‬‬ ‫‪7/6/2022‬‬ ‫مميزات نموذج تطوير التطبيقات السريع ‪RAD‬‬ ‫‪.1‬يمكن استيعاب االحتياجات المتغيرة‪.‬‬ ‫وقت التكرار يمكن ان تكون قصيرة مع استخدام أدوات راد قويه‪.‬‬ ‫‪.2‬‬ ‫االنتاجيه مع عدد اقل من الناس في وقت قصير‪.‬‬ ‫‪.3‬‬ ‫تقليل وقت التطوير‪.‬‬ ‫‪.4‬‬ ‫‪.5‬تشجيع مالحظات العمالء‪.‬‬ ‫عيوب نموذج تطوير التطبيقات السريع ‪RAD‬‬ ‫يتطلب المطورين ذوي المهارات العالية‪/‬المصممين‪.‬‬ ‫‪.1‬‬ ‫االعتماد العالي علي مهارات النمذجة‪.‬‬ ‫‪.2‬‬ ‫غير قابله للتطبيق علي مشاريع أرخص كتكلفه النمذجة وغيرها‪.‬‬ ‫‪.3‬‬ ‫يتطلب مشاركه المستخدم طوال دوره الحياة‪.‬‬ ‫‪.4‬‬ ‫درجة تعقيد عالية‬ ‫‪.5‬‬ ‫النموذج الرشيق‬ ‫‪Agile Model‬‬ ‫منهجية أجايل هي عكس نهج الشالل ‪.‬بدال من التعامل مع المتطلبات والتصميم واالختبار‬ ‫كخطوات متسلسلة كبيرة ‪ ،‬فإن النموذج الرشيق يجعلها جميع العمليات الجارية التي تتطلب‬ ‫مشاركة المطورين واإلدارة والعمالء‬ ‫‪.‬يتم تقسيم العمل عادة إلى شرائح من ‪ 2‬إلى ‪ 4‬أسابيع تُعرف باسم "سباقات‬ ‫السرعة "‪ ،Sprint‬حيث تقوم الفرق المسؤولة بمعالجة االحتياجات الرئيسية لعمالئها‬ ‫وإجراء االختبارات أثناء ذهابهم ‪.‬تميل ‪Agile‬إلى العمل بشكل جيد في المؤسسات‬ ‫الصغيرة ‪ ،‬وخاصة الشركات الناشئة ‪ ،‬حيث تكون السرعة والمرونة ضرورية‪.‬‬ ‫‪06/27/18‬‬ ‫‪13‬‬ ‫‪7/6/2022‬‬ ‫عند اختيار أفضل نهج‪ ،SDLC‬من المهم أن تتذكر أن أحد الحلول قد ال يناسب كل‬ ‫سيناريو أو عمل‪.‬قد تعمل بعض المشاريع بشكل أفضل مع نهج االنحدار ‪ ،‬بينما‬ ‫سيستفيد البعض اآلخر من المرونة في النماذج الرشيقة أو التكرارية‪.‬‬ ‫‪27‬‬ ‫‪14‬‬

Use Quizgecko on...
Browser
Browser