مقدمة في هندسة البرمجيات (ITGS-213) - Rبيع 2018 - LECTURE 9 PDF
Document Details
![JoyfulSphene](https://quizgecko.com/images/avatars/avatar-7.webp)
Uploaded by JoyfulSphene
جامعة طرابلس
2018
ITGS
Tags
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