Transcript Slide 1

‫نماذج إلجرائيات التطوير البرمجية‬
Software Development Life Cycle Models
‫محتويات المحاضرة‬
‫• النموذج الشاللي (‪)Waterfall Model‬‬
‫• نموذج الطراز البدئي (‪)Prototype Model‬‬
‫• النموذج الحلزوني (‪)Spiral Model‬‬
‫‪2‬‬
‫‪ITA330 – S2‬‬
‫ما هي اإلجرائية البرمجية؟‬
‫(تذكرة)‬
‫• مجموعة من األنشطة المرتبة هدفها النهائي تطوير منتج برمجي جديد أو تحسين‬
‫منتج موجود‪.‬‬
‫• تتمحور كل اإلجرائيات البرمجية حول أنشطة عامة رئيسية‪:‬‬
‫– التوصيف (‪ :)Specification‬ما يجب أن يؤديه النظام والقيود المفروضة‬
‫عليه‪.‬‬
‫– التطوير (‪ :)Development‬عملية إنتاج النظام البرمجي‪.‬‬
‫– التحقق (‪ :)Validation‬التأكد من أن النظام يحقق ما يريده الزبون‪.‬‬
‫– التحسين (‪ :)Evolution‬تغيير النظام استجابة لمتطلبات متغيرة‪.‬‬
‫‪3‬‬
‫‪ITA330 – S2‬‬
‫دورة حياة المنتج البرمجي‬
(Software Development Life Cycle – SDLC)
ITA330 – S2
4
‫أربع مراحل أساسية في أي إجرائية تطوير‬
‫• انتقاء المتطلبات (‪ )Requirements‬وتحليلها وتوصيفها‪.‬‬
‫• تصميم النظام (‪.)System Design‬‬
‫• تحقيق البرامج (‪.)Program Implementation‬‬
‫• االختبارات (‪.)Test‬‬
‫‪5‬‬
‫‪ITA330 – S2‬‬
‫لكل مرحلة مخرجاتها‬
‫المرحلة‬
‫‪6‬‬
‫المخرجات‬
‫• تحليل المتطلبات‬
‫• توصيف متطلبات البرمجية‬
‫• التصميم‬
‫• وثيقة التصميم‬
‫• التنفيذ‬
‫• الرماز‬
‫• االختبار‬
‫• تقرير االختبارات وطلبات التعديل‬
‫‪ITA330 – S2‬‬
‫النموذج الشاللي‬
)Waterfall Model(
ITA330 – S2
7
‫النموذج الشاللي الصرف‬
‫• أول نموذج تطوير‬
‫• تسلسل خطي للمراحل‬
‫– ال تقاطعات بين المراحل المختلفة‪.‬‬
‫• موجّ ه بالوثائق‪.‬‬
‫• تجري عملية التخطيط بأكملها بشكل مسبق‪.‬‬
‫‪8‬‬
‫‪ITA330 – S2‬‬
‫النموذج الشاللي‬
‫• يفترض أنه يمكن جمع كل المتطلبات واستكمال التحليل قبل البدء‬
‫بالتصميم‪.‬‬
‫– يعتمد على مجموعة مراحل متعاقبة‪ :‬توصيف المنتج‪ ،‬التصميم‪ ،‬البرمجة‬
‫(‪ ،)Coding‬االختبارات‪.‬‬
‫– ال يمكن االنتقال إلى مرحلة جديدة إال بعد تجاوز آخر نقطة عالم‬
‫(‪ )check point‬من المرحلة السابقة بنجاح‪.‬‬
‫‪9‬‬
‫‪ITA330 – S2‬‬
‫النموذج الشاللي‬
‫‪10‬‬
‫‪ITA330 – S2‬‬
‫مراحل النموذج الشاللي‬
‫• تحليل المتطلبات وتعريفها‬
‫• تصميم النظام‬
‫• التنفيذ واالختبارات الوحدوية (‪.)Unit Testing‬‬
‫• المكاملة واختبارات النظام ( ‪Integration and System‬‬
‫‪.)Testing‬‬
‫• التشغيل والصيانة‪.‬‬
‫• من أهم عقبات النموذج صعوبة تبني التعديالت بعد البدء باإلجرائية‪.‬‬
‫يجب إكمال كل مرحلة قبل االنتقال إلى المرحلة التالية‪.‬‬
‫‪11‬‬
‫‪ITA330 – S2‬‬
‫المخرجات الممكنة لمراحل النموذج‬
‫‪12‬‬
‫‪ITA330 – S2‬‬
‫االستطالع األولي‬
‫(‪)Concept Exploration‬‬
‫• تركز المرحاة على طرح السؤال “لماذا نريد النظام؟”‪.‬‬
‫• ليست إلزامية (ليست من النموذج)‪:‬‬
‫– ُتدعى أحيانا مرحلة “ما قبل المشروع”‪.‬‬
‫• موجهة إلعداد الخطط األولية وتقدير الكلفة وزمن التنفيذ‪.‬‬
‫• المخرجات المحتملة‪:‬‬
‫– وثيقة المفهوم (‪ ،)Concept Document‬وصف المنتج ( ‪Product‬‬
‫‪ ،)Description‬مقترح النظام (‪ ،)System Proposal‬بيان العمل‬
‫(‪ ،)Statement of Work‬ميثاق المشروع (‪.)Project Charter‬‬
‫‪13‬‬
‫‪ITA330 – S2‬‬
‫تحليل المتطلبات (‪)1‬‬
‫(‪)Requirements Analysis‬‬
‫• مرحلة السؤال “ماذا؟”‪.‬‬
‫• ما المقصود بالمتطلبات‪:‬‬
‫– المتطلب‪ :‬بيان لخدمة من خدمات النظام أو لقيد من قيوده‪ ،‬ويصف بيان الخدمة السلوك‬
‫المطلوب من النظام بالنسبة لمستخدم مفرد أو بالنسبة لمجموعة من المستخدمين‪.‬‬
‫– بيان الخدمة‪ :‬يعرف بيان الخدمة قاعدة ضبط )‪ (business rule‬يجب احترامها دوما‪ .‬وقد‬
‫يعبر بيان الخدمة عن عملية حسابية يجب أن يجريها النظام‪.‬‬
‫– بيان القيد‪ :‬يعبر بيان القيد عن قيد مفروض على سلوك النظام أو على تطويره‪.‬‬
‫‪14‬‬
‫‪ITA330 – S2‬‬
‫تحليل المتطلبات (‪)2‬‬
‫• نوعان من المتطلبات‪:‬‬
‫– متطلبات وظيفية )‪(Functional‬‬
‫– ويُقصد بها إمكانات النظام والوظائف التي يجب أن يقدمها‪.‬‬
‫– متطلبات غير وظيفية )‪(Non-functional‬‬
‫– االستخدام‪ ،‬الوثوقية‪ ،‬األداء‪ ،‬إدارة النظام‪ ،‬التثبيت‪ ،‬االتصال مع أنظمة أخرى‪،‬‬
‫إضافة إلى متطلبات أخرى (قانونية‪ ،‬التجهيزات‪.)...‬‬
‫• يجب ترتيبها ضمن قائمة أولويات‪:‬‬
‫• ضرورية (‪.)Must-have‬‬
‫• يُحبذ وجودها (‪.)Should-have‬‬
‫• من الجيد توفيرها )‪(Could-have / Nice-to-have‬‬
‫‪15‬‬
‫‪ITA330 – S2‬‬
‫تحليل المتطلبات (‪)3‬‬
‫• مدخالت المرحلة‪ :‬بيان العمل‪ ،‬مقترح النظام‪.‬‬
‫• المخرجات‪:‬‬
‫– وثيقة المتطلبات )‪(Requirements Document‬‬
‫– وثيقة توصيف المتطلبات ( ‪Requirements Specification‬‬
‫‪ )Document - RSD‬أو ‪(Software Requirements Specification -‬‬
‫)‪SRS‬‬
‫– ُتعتبر النقطة المرجعية األولى (‪.)1st Project Baseline‬‬
‫‪16‬‬
‫‪ITA330 – S2‬‬
‫التصميم‬
‫(‪)Design‬‬
‫• السؤال األساسي في المرحلة هو “كيف؟”‪.‬‬
‫• المدخالت‪ :‬وثيقة توصيف المتطلبات‪.‬‬
‫• المخرجات‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫‪17‬‬
‫التوصيف الوظيفي (‪.)Functional Specification‬‬
‫وثيقة التصميم التفصيلي (‪.)Detailed Design Document‬‬
‫توصيف واجهات االستخدام (‪.)User Interface Specification‬‬
‫نموذج البيانات (‪.)Data Model‬‬
‫‪ITA330 – S2‬‬
‫التصميم‬
‫• يُقسم عادة إلى مرحلتين‪:‬‬
‫‪ .1‬تصميم البنيان (‪ :)Architectural Design‬هو توصيف النظام بداللة‬
‫المجتزآت التي تكونه‪ ،‬والذي يجب أن يتخذ قرارات بشأن استراتيجيات‬
‫الحل بالنسبة لكل من الزبون والمخدم‪.‬‬
‫‪ .2‬التصميم التفصيلي (‪ :)Detailed Design‬هو توصيف العمل الداخلي لكل‬
‫مجتزأ في النظام‪ ،‬والذي يجب أن يتضمن الخوارزميات التفصيلية وفق‬
‫المعطيات الخاصة بالمجتزأ والتي يجب أن تخضع لقيود بنية العمل النهائية‪.‬‬
‫ويجب أن يتضمن التصميم التفصيلي‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪18‬‬
‫تصميم واجهات االستخدام البيانية‪.‬‬
‫تصميم بنى وقواعد المعطيات‪.‬‬
‫‪ITA330 – S2‬‬
‫التحقيق‬
‫(‪)Implementation‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫مرحلة القيام بالفعل ”‪“Do It‬‬
‫كتابة الرماز واختبار الوحدات‪.‬‬
‫تتراكب غالبا مع مرحلتي التصميم والمكاملة‪.‬‬
‫أنشطة أخرى موازية للمرحلة‪:‬‬
‫– إكمال التصميم‪.‬‬
‫– بدء المكاملة‪.‬‬
‫– اختبار الوحدات بشكل مستقل بعضها عن بعض‪.‬‬
‫‪19‬‬
‫‪ITA330 – S2‬‬
‫التحقيق‬
‫• أهم ما يميز المرحلة‪:‬‬
‫– زيادة الضغوط على الفريق‬
‫– إشغال الفريق في أعلى مستوياته‪.‬‬
‫• اإلشكاليات‪:‬‬
‫– تعديالت اللحظة األخيرة‪.‬‬
‫– صعوبات التنسيق بين أعضاء الفريق (ال سيما في المشاريع الكبيرة)‪.‬‬
‫‪20‬‬
‫‪ITA330 – S2‬‬
‫المكاملة واالختبارات‬
‫(‪)Integration & Test‬‬
‫• تبدأ مع نهاية مرحلة التحقيق‪.‬‬
‫• ُتنفذ غالبا على مرحلتين على التوازي‪:‬‬
‫– المكاملة الجزئية و االختبارات األولية‪.‬‬
‫• تبدأ بمكاملة المجتزآت (‪.)Modules‬‬
‫• تؤدي إلى بناء نسخة أولية غير مكتملة من النظام‪.‬‬
‫• ُتضاف مجتزآت جديدة تدريجيا‪.‬‬
‫‪21‬‬
‫‪ITA330 – S2‬‬
‫المكاملة واالختبارات‬
‫• ُتعتبر المكاملة مبدئيا من مهمات المبرمجين‪.‬‬
‫• ُتعتبر االختبارات من مهمات فريق ضمان الجودة (‪.)QA Team‬‬
‫• طرق المكاملة‪:‬‬
‫– تنازلية (‪ :)Top-down‬نبدأ بمكاملة المجتزآت الوظيفية المركزية مع محاكاة‬
‫للبرامج غير المكتملة‪.‬‬
‫– تصاعدية (‪ :)Bottom up‬نبدأ بمكاملة مجتزآت المستويات األدنى‪.‬‬
‫– نفضل عادة الطريقة التنازلية‪.‬‬
‫‪22‬‬
‫‪ITA330 – S2‬‬
‫المكاملة واالختبارات‬
‫• االختبارات‪:‬‬
‫– اختبارات المكاملة (‪.)Integration testing‬‬
‫– اختبارات الصندوق األبيض والصندوق األسود ( & ‪Black‬‬
‫‪.)White-box testing‬‬
‫– اختبارات العمل تحت األعباء (‪.)Load & Stress testing‬‬
‫– اختبارات القبول (‪.)Acceptance testing‬‬
‫‪23‬‬
‫‪ITA330 – S2‬‬
‫المكاملة واالختبارات‬
‫• أهم ما يميز المرحلة‪:‬‬
‫– زيادة الضغوط على الفريق‪.‬‬
‫– تجاوز مواعيد الخطة‪.‬‬
‫– الخالف مع الزبون حول مزايا النظام‪.‬‬
‫– اإلحباط الناتج عن الفشل وأخطاء اللحظات األخيرة‪.‬‬
‫– تجاوز الموازنة‪.‬‬
‫‪24‬‬
‫‪ITA330 – S2‬‬
‫التسليم والصيانة‬
‫(‪)Deployment & Maintenance‬‬
‫• غالبا ما ُتهمل الخطط مرحلة الصيانة‪.‬‬
‫• الصيانة‪:‬‬
‫– إصالح األخطاء‪.‬‬
‫– إضافة مزايا جديدة‪.‬‬
‫– تحسين األداء (‪.)Improve performance‬‬
‫• تصبح مسألة إدارة اإلصدارات على درجة عالية من األهمية‪.‬‬
‫• تظهر الضرورة لتحديث الوثائق السابقة‪.‬‬
‫‪25‬‬
‫‪ITA330 – S2‬‬
‫إيجابيات النموذج الشاللي‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪26‬‬
‫سهل الفهم واالستخدام والتتبع‪.‬‬
‫مناسب لفرق العمل التي ال تتمتع بخبرات عالية (ويطور خبراتها)‪.‬‬
‫يسمح بتعريف نقاط عالم (‪ )Milestones‬واضحة لعملية التطوير‪.‬‬
‫يدفع باتجاه تثبيت المتطلبات‪.‬‬
‫يسهل على اإلدارة عملية التخطيط (للموارد البشرية واألزمنة‬
‫والكلف)‪.‬‬
‫تنتهي كل مرحلة بإنتاج وثيقة تسمح بفهم ما جرى إنجازه (األمر الذي‬
‫يسهل إدخال عناصر جديدة في فريق العمل في أية مرحلة)‪.‬‬
‫‪ITA330 – S2‬‬
‫سلبيات النموذج الشاللي‬
‫• يجب أن تكون كافة المتطلبات معروفة مسبقا‪.‬‬
‫• ُتعتبر مخرجات كل مرحلة نهائية (تقلل من مرونة التعديالت)‪.‬‬
‫• قد يعطي انطباعات خاطئة عن درجة التقدم واإلنجاز‪.‬‬
‫• ال يتماشى مع منطق حل المشكالت (تكرار المراحل)‪.‬‬
‫• ال يعطي فرصة للزبون لمعاينة النظام (إال ربما بعد فوات األوان)‪.‬‬
‫• تجري عمليات المكاملة واالختبارات فقط في نهاية المشروع (مع ما ينطوي عليه‬
‫ذلك من مخاطر)‪.‬‬
‫• يمكن أن ينتج كما كبيرا من الوثائق‪.‬‬
‫‪27‬‬
‫‪ITA330 – S2‬‬
‫متى نستخدم النموذج الشاللي؟‬
‫• المتطلبات واضحة ومعرفة بشكل جيد‪.‬‬
‫• هناك تعريف ووصف مستقر للمنتج‪.‬‬
‫• عند بناء إصدار جديد من منتج موجود مسبقا‪.‬‬
‫• عند نقل منتج موجود إلى منصة عمل جديدة‪.‬‬
‫• عندما يكون فريق العمل ضعيفا فنيا‪.‬‬
‫‪28‬‬
‫‪ITA330 – S2‬‬
‫المنهجيات المهيكلة‬
‫(‪)Structured Methods‬‬
‫• يُعتبر النموذج الشاللي مثاال نمطيا عن المنهجيات المهيكلة‪.‬‬
‫• المنهجية المهيكلة‪ :‬تستند عادة على تقنيتين أساسيتين‪:‬‬
‫– مخططات تدفق المعطيات ‪ (Data Flow Diagrams) DFD‬لنمذجة اإلجرائيات‬
‫– مخططات عالقات الكيانات ‪ (Entity Relationship Diagrams) ERD‬لنمذجة المعطيات‪.‬‬
‫• خصائص ميزات المنهجية المهيكلة‪:‬‬
‫‪.1‬‬
‫تأخذ المنهجية منحى تسلسليا وتحويليا أكثر منه تكراريا وتزايديا‪.‬‬
‫‪.2‬‬
‫تعطي المنهجية حلوال غير مرنة تلبي وظائف العمل المعرفة مسبقا ويصعب توسيعها تدريجيا‬
‫في المستقبل‪.‬‬
‫‪.3‬‬
‫تفترض المنهجية أن التطوير يبدأ دوما من الصفر وال تدعم إعادة استخدام مكونات برمجية‬
‫موجودة‪.‬‬
‫‪29‬‬
‫‪ITA330 – S2‬‬
‫النموذج ‪V‬‬
‫‪30‬‬
‫‪ITA330 – S2‬‬
‫النموذج ‪V‬‬
‫• نسخة مع ّدلة عن النموذج الشاللي‪.‬‬
‫• مصممة لتعزيز قابلية االختبار (تركز على التوثق والتحقق)‪.‬‬
‫• إيجابيات النموذج‪:‬‬
‫– التركيز على التوثق والتحقق في كل المراحل‪.‬‬
‫• سلبيات النموذج‪:‬‬
‫– تزداد صعوبة التعامل مع التعديالت‪.‬‬
‫• خيار جيد لتطوير األنظمة التي تتطلب درجة عالية من الوثوقية‬
‫كاألنظمة الطبية(‪.)Patient Control Systems‬‬
‫‪31‬‬
‫‪ITA330 – S2‬‬
‫متى نستخدم النموذج ‪V‬؟‬
‫• عند بناء أنظمة تتطلب درجة عالية من الوثوقية‪.‬‬
‫• عندما تكون المتطلبات معروفة مسبقا‪.‬‬
‫• عند توفر مرونة بجدول تنفيذ المشروع‪.‬‬
‫‪32‬‬
‫‪ITA330 – S2‬‬
‫نموذج الطراز البدئي (‪)prototype‬‬
‫‪33‬‬
‫‪ITA330 – S2‬‬
‫استخدامات نموذج الطراز البدئي‬
‫• لمساعدة الزبائن والمطورين على فهم متطلبات النظام‪.‬‬
‫– انتقاء المتطلبات (‪ :)Requirements Elicitation‬يمكن للمستخدمين‬
‫اختبار الطراز لفهم آلية دعم النظام ألعمالهم‪.‬‬
‫– التحقق من المتطلبات (‪ :)Requirements Validation‬يسمح الطراز‬
‫بكشف أخطاء المتطلبات والمتطلبات الناقصة‪.‬‬
‫• يساعد في تخفيض احتماالت وآثار المخاطر (من خالل تخفيض‬
‫احتماالت األخطاء في توصيف المتطلبات)‪.‬‬
‫‪34‬‬
‫‪ITA330 – S2‬‬
‫مناهج بناء الطراز البدئي‬
Ev o lu ti on ary
p ro to ty pi ng
Del i vered
s ys tem
Ou t li ne
R equ irem ent s
Th row-away
P ro to ty pi ng
ITA330 – S2
Execut able P rot ot yp e +
S y st em S peci ficat io n
35
‫مناهج بناء الطراز البدئي‬
‫• بناء الطراز التطوري (‪)Evolutionary prototyping‬‬
‫– يُعاد تحسين الطراز الذي تم بناؤه عبر عدد من المراحل المتعاقبة وصوال إلى‬
‫النظام النهائي المستهدف‪.‬‬
‫– يُبنى الطراز التطوري بهدف تسليم المستخدمين نظام صالح للعمل‪ .‬وفي هذه‬
‫الحالة يتم البدء بتحقيق المتطلبات األكثر وضوحا‪.‬‬
‫• بناء الطراز المهمل (‪)Throw-away prototyping‬‬
‫– يُبنى الطراز بهدف اكتشاف المتطلبات ومشكالتها ومن ثم يُهمل‪ ،‬حيث يمكن‬
‫بعد ذلك استخدام إجرائية تطوير أخرى‪.‬‬
‫– يُبنى الطراز المهمل بهدف اكتشاف المتطلبات والتحقق منها‪ .‬وفي هذه الحالة‬
‫يتم البدء بأقل المتطلبات وضوحا‪.‬‬
‫‪36‬‬
‫‪ITA330 – S2‬‬
‫نموذج الطراز البدئي التطوري‬
‫(‪)Evolutionary Prototype‬‬
‫• يُبنى النظام كسلسلة من اإلصدارات التزايدية (‪ُ )Incremental‬تسلم‬
‫تباعا للزبون‪.‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫‪37‬‬
‫يبني المطورون طرازا بدئيا خالل مرحلة جمع المتطلبات‪.‬‬
‫يقوم المستخدمون بتقييم الطراز المنجز‪.‬‬
‫يقوم المستخدمون باقتراح اإلجراءات التصحيحية‪.‬‬
‫يقوم المطورون بتحسين الطراز زبناء نسخة جديدة‪.‬‬
‫عند بلوغ الزبون درجة مقنعة من الرضى والكفاية‪ ،‬يقوم المطورون بمراجعة‬
‫رماز النموذج األخير لتحسينه من خالل تطبيق المعايير الالزمة العتباره‬
‫منتجا نهائيا‪.‬‬
‫‪ITA330 – S2‬‬
‫إيجابيات الطراز البدئي التطوري‬
‫• يستطيع الزبائن معاينة متطلبات النظام أثناء جمعها (إشراك والتزام الزبون)‪.‬‬
‫• يتعلم المطورون من الزبائن (وبالعكس)‪.‬‬
‫• يكون المنتج النهائي أكثر دقة وتوافقا مع ما هو متوقع أو مطلوب‪.‬‬
‫• يمكن اكتشاف المتطلبات غير الواضحة في مراحل مبكرة‪.‬‬
‫• يوفر درجة عالية من المرونة أثناء التصميم والتطوير‪.‬‬
‫• يعطي مؤشرات واضحة وصحيحة لدرجة التقدم باتجاه المنتج‪.‬‬
‫• يسمح بتسليم سريع لوظائف مفيدة‪.‬‬
‫‪38‬‬
‫‪ITA330 – S2‬‬
‫سلبيات الطراز البدئي التطوري‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪39‬‬
‫قد يُبعد الفريق عن منهجية التطوير المنظمة نحو المزيد من عمليات ”البرمجة‬
‫والتصحيح“ (‪.)code-and-fix‬‬
‫يجب أن يتمتع فريق التطوير بمهارات عالية‪.‬‬
‫تزداد صعوبة تقدير الكلفة والزمن‪.‬‬
‫قد يزيد من تعقيد عمليات الصيانة الالحقة‪.‬‬
‫قد يضغط الزبون باتجاه تسليم طراز غير نهائي‪.‬‬
‫قد تتحول عملية تحسين الطراز إلى حلقة غير منتهية مع اكتشاف المزيد من‬
‫االحتياجات والمتطلبات )‪.(scope creep‬‬
‫ال يمكن اختبار المتطلبات غير الوظيفية بشكل كا ٍ‬
‫ف (قد ال يُظهر النموذج‬
‫متطلبات األمان الحساسة بشكل واضح)‪.‬‬
‫‪ITA330 – S2‬‬
‫نموذج الطراز البدئي المهمل‬
)Throw-away Prototype(
Ou t li ne
requ irem en ts
Dev elo p
p ro to ty pe
Evalu at e
p ro to ty pe
S p eci fy
s ys tem
Reus abl e
com p on ent s
Develo p
s oft ware
ITA330 – S2
Vali dat e
s ys tem
Del ivered
s oft ware
s ys tem
40
‫مشكالت الطراز البدئي المهمل‬
‫• قد يتعرض المطورون لضغوط بهدف تسليم الطراز كمنتج نهائي‪.‬‬
‫• يجب تجنب الوقوع في هذا الخطأ‪:‬‬
‫– قد يكون مستحيال تحسين الطراز لتلبية المتطلبات غير الوظيفية‪.‬‬
‫– يبقى الطراز من دون توثيق‪.‬‬
‫– قد تنهار بنية النظام عند إجراء تعديالت إضافية‪.‬‬
‫– يصبح احترام معايير الجودة أمرا غاية في الصعوبة‪.‬‬
‫‪41‬‬
‫‪ITA330 – S2‬‬
‫فوائد نموذج الطراز البدئي‬
‫• يسمح بحل المشكالت الناجمة عن سوء الفهم بين المطورين‬
‫والمستخدمين‪.‬‬
‫• يسمح باكتشاف الخدمات الناقصة وبتوضيح الخدمات الملتبسة‪.‬‬
‫• يمكن الحصول على نظام صالح للعمل في مرحلة مبكرة من‬
‫اإلجرائية‪.‬‬
‫• يمكن االستفادة من الطراز لوضع توصيف دقيق للنظام‪.‬‬
‫• يساعد على نجاح تدريب المستخدمين واختبار النظام‪.‬‬
‫‪42‬‬
‫‪ITA330 – S2‬‬
‫النموذج الحلزوني (‪)Spiral‬‬
‫• الصيغة المبسطة‬
‫– هو نموذج الطراز البدئي‬
‫السريع مضافا إليه عملية‬
‫تحليل مخاطر قبل كل‬
‫مرحلة‪.‬‬
‫• إذا لم يكن ممكنا تخفيف‬
‫كل المخاطر يتم إنهاء‬
‫المشروع مباشرة‪.‬‬
‫‪43‬‬
‫‪ITA330 – S2‬‬
‫النموذج الحلزوني‬
‫• يجمع ما بين الطبيعة التكرارية‬
‫لنموذج الطراز البدئي والطبيعة‬
‫التسلسلي‬
‫للنموذج‬
‫الممنهجة‬
‫(الشاللي)‪.‬‬
‫• مع تطوير سريع لنسخ تزايدية‬
‫من النظام البرمجي في سلسلة من‬
‫اإلصدارات التزايدية‪.‬‬
‫‪44‬‬
‫‪ITA330 – S2‬‬
‫النموذج الحلزوني‬
‫• يسبق كل مرحلة‬
‫– دراسة البدائل‬
‫– تحليل المخاطر‬
‫• يلي كل مرحلة‬
‫– تقييم للنسخة‬
‫– تخطيط للمرحلة التالية‬
‫‪45‬‬
‫‪ITA330 – S2‬‬
‫النموذج الحلزوني‬
‫• يركز على تحليل المخاطر وإدارتها في كل مرحلة‪.‬‬
‫• يمكن النظر إليه كسلسلة مشاريع صغيرة يهتم كل منها بمعالجة‬
‫مجموعة من المخاطر ( ‪Start small, explore risks, prototype,‬‬
‫‪.)plan, repeat‬‬
‫• ال يمكن تحديد عدد الحلقات مسبقا (تشبه الحلقة األخيرة منه النموذج‬
‫الشاللي)‪.‬‬
‫‪46‬‬
‫‪ITA330 – S2‬‬
‫إيجابيات النموذج الحلزوني‬
‫• يعطي مؤشرات مبكرة للمخاطر التي ال يمكن تجاوزها (وبقليل من‬
‫الكلفة)‪.‬‬
‫• يستطيع المستخدمون رؤية النظام مبكرا (بسبب االعتماد على تقنيات‬
‫بناء الطراز)‪.‬‬
‫• ُتبنى الوظائف األكثر خطورة في البداية‪.‬‬
‫• يبقى المستخدمون قريبين من كل مراحل العمل‪.‬‬
‫• يمكن الحصول على انطباعات وآراء المستخدمين بشكل مبكر‪.‬‬
‫‪47‬‬
‫‪ITA330 – S2‬‬
‫سلبيات النموذج الحلزوني‬
‫• يصبح زمن تقييم المخاطر غير مبرر في المشاريع الصغيرة‪.‬‬
‫• قد يتطلب التخطيط وتقييم المخاطر وبناء الطرز وقتا طويال جدا‪.‬‬
‫• النموذج معقد (غير شائع االستخدام)‪.‬‬
‫• يحتاج لخبراء في تقييم المخاطر‪.‬‬
‫• قد يتزايد عدد الحلقات بطريقة ال يمكن التنبؤ بنتائجها‪.‬‬
‫• من الصعب تعريف مؤشرات ونقاط عالم لتقدير درجة التقدم باتجاه‬
‫المنتج النهائي‪.‬‬
‫‪48‬‬
‫‪ITA330 – S2‬‬
‫متى نستخدم النموذج الحلزوني؟‬
‫• يُعتبر منطقيا بالنسبة لألنظمة الكبيرة المعقدة (أو الموجهة لالستخدام‬
‫الداخلي)‪.‬‬
‫• يُعتبر مناسبا للمشاريع التي تنطوي على مخاطر كثيرة‪.‬‬
‫• عندما تكون المتطلبات معقدة جدا وال يدرك المستخدمون احتياجاتهم‬
‫بشكل واضح‪.‬‬
‫• عند العمل على إعداد منتج جديد كليا (غير مسبوق)‪.‬‬
‫‪49‬‬
‫‪ITA330 – S2‬‬
‫مقارنة بين النماذج المختلفة‬
‫• تم عرض نماذج مختلفة لتطوير البرمجيات (مع إيجابيات وسلبيات‬
‫كل منها)‪.‬‬
‫• تتضمن معايير انتقاء النموذج األنسب‪:‬‬
‫– المؤسسة (حجمها‪ ،‬خبراتها‪ ،‬إدارتها‪.)...‬‬
‫– خبرات ومهارات فريق العمل‪.‬‬
‫– طبيعة المنتج المطلوب‪.‬‬
‫• االقتراح األفضل؟‬
‫‪50‬‬
‫‪ITA330 – S2‬‬