دورة حياة تطوير البرمجيات
| English | العربية |
|---|---|
| requirements/rɪˈkwaɪəmənts/ | المتطلبات |
| development life cycle/dɪˈveləpmənt laɪf ˈsaɪkl/ | دورة حياة التطوير |
| waterfall/ˈwɔːtəfɔːl/ | الشلال |
| maintenance/ˈmeɪntənəns/ | الصيانة |
| iterative model/ˈɪtərətɪv ˈmɒdl/ | النموذج التكراري |
| rapid application development/ˈræpɪd ˌæplɪˈkeɪʃn dɪˈveləpmənt/ | تطوير تطبيقات سريع |
| prototype/ˈprəʊtəʊtaɪp/ | نموذج أولي |
| agile/ˈædʒaɪl/ | المرونة |
| implementation/ˌɪmplɪmənˈteɪʃn/ | التنفيذ |
المطار الذي افتتح تأخيراً لمدة ستة عشر شهراً
- كان من المقرر افتتاح مطار دنفر الجديد في أكتوبر 1993 بأكثر نظام للأمتعة طموحًا تم بناؤه على الإطلاق: 4,000 عربات تلقائية، 35 كم من المسارات، بدون تدخل بشري. افتتح في فبراير 1995، بتجاوز الميزانية بمبلغ $560 مليون، حيث كانت العربات تمزق الحقائب في الاختبارات.
- تم تحديد الجدول الزمني قبل تحليل أي شخص لما يجب أن يقوم به النظام. استمرت المتطلبات في التغير أثناء البناء. بدأت الاختبارات عندما لم يعد هناك وقت لإصلاح ما اكتشفته.
- لكل فشل من تلك الفشل اسم في هذا الدرس. يوجد دورة حياة التطوير حتى يتم التخطيط للمشروع وإدارته والسيطرة عليه بدلاً من اكتشافه.
- هذا الدرس هو الغرض من وجود دورة الحياة، والنماذج الثلاثة التي يذكرها المنهج، والمراحل الخمس التي يمر بها كل برنامج.
لماذا نحتاج إلى دورة حياة
- دورة حياة التطوير هي مجموعة المراحل من الفكرة إلى البرمجيات الجاهزة والمصانة. غرضها هو التخطيط والإدارة والسيطرة على المشروع: المنتج الصحيح، في الوقت المحدد، بجودة جيدة.
- إنها تدير التعقيد عن طريق تقسيم برنامج كبير إلى مراحل، تنسق فريق العمل، وتتبع التقدم مقابل نقاط التحول.
- إنها تدمج الاختبار بدلاً من تركه للنهاية، وتسجل قرارات التصميم لأي شخص صيانة البرنامج لاحقاً، وتدير المخاطر.
تُستخدم دورة حياة التطوير لـ:
إنه ينظم العمل إلى مراحل بحيث يبني الفريق المنتج الصحيح، في الوقت المحدد، وبجودة عالية.
ما هي أغراض دورة حياة التطوير؟ حدد كل الخيارات الصحيحة.
تخطط الدورة وتدير وتحكم. لا يمكنها ضمان الصحة؛ بل تجعل اكتشاف الأخطاء وإصلاحها جزءاً من الخطة.
لماذا يوجد أكثر من نموذج
- لا يناسب نموذج الحياة الواحد كل مشروع، لذلك توجد عدة نماذج ويطلب منك الامتحان اختيار الأنسب.
- يعتمد الاختيار على حجم وتعقيد البرنامج، مدى وضوح المتطلبات في البداية، مقدار التغيير المتوقع، الخطر في حال الفشل، الفريق، والموعد النهائي.
- نظام رواتب بقوانين قانونية ثابتة ولعبة لا يعرف لاعبوها بعد ما يريدونه هي مشاريع مختلفة. تستحق دورات حياة مختلفة.
الشلال
- نموذج الشلال هو تسلسل خطي: التحليل، التصميم، البرمجة، الاختبار، الصيانة. كل مرحلة مكتملة وموثقة ومعتمدة قبل بدء المرحلة التالية.
- المزايا: بنية واضحة، سهل الإدارة والتخطيط، وثائق شاملة في كل مرحلة، مناسب جداً لـ المتطلبات المستقرة.
- العيوب: تغيير المتطلبات في منتصف المشروع يعني العودة لأعلى الشلال؛ العميل لا يرى شيئاً يعمل حتى النهاية؛ تظهر أخطاء التحليل فقط عند الاختبار.

الماء لا يتدفق صعوداً
النموذج الشلالي مناسب بشكل أفضل للمشاريع التي:
الشلال خطي حيث تُنتهى كل مرحلة قبل التالية — ممتاز للمتطلبات المستقرة، وسيء عند تغيرها أثناء المشروع.
في النموذج الش waterfallي يرى العميل نسخة تعمل من البرنامج في وقت مبكر من المشروع.
لا يعمل شيء حتى البرمجة والاختبار، في النهاية. رؤية برنامج يعمل مبكراً هي قوة النموذج التكراري وRAD.
التكراري
- النموذج التكراري إجراء مرور متكرر. كل مرور ينتج نسخة جزئية تعمل يتم مراجعتها من قبل المستخدم وتحسينها في المرور التالي.
- المزايا: يتم اكتشاف المشاكل مبكراً؛ يرى المستخدم برمجيات تعمل مبكراً وغالباً؛ جيد عندما تكون المتطلبات مكتشفة بمرور الوقت.
- العيوب: أصعب لتقدير التكلفة والزمن الكلي؛ المراجعات المتكررة تتطلب انتباه المستخدم؛ يمكن أن يميل التصميم دون انضباط.

ابني، اعرض، محسن، كرر
تطوير التطبيقات السريعة
- تطوير التطبيقات السريعة (RAD) يبني نموذجاً أولياً بسرعة، ويقدمه للمستخدمين، ويعيد بنائه بناءً على ملاحظاتهم حتى يصبح المنتج. غالباً ما يعمل الفرق على أجزاء بالتوازي.
- المزايا: تسليم سريع للغاية في البداية؛ المتغيرات التي تتغير تمت امتصاصها كما تظهر؛用户使用 shaping المنتج مباشرة.
- العيوب: يعتمد على توفر المستخدمين طوال الوقت؛ اختصارات النموذج الأولي قد تبقى في المنتج؛ يناسب الأنظمة الصغيرة أكثر من الكبيرة الحرجة أمنياً. أساليب Agile تأخذ نفس الفكرة إلى أبعد حد، مع سباقات قصيرة واختبار مستمر.

نموذج أولي، ملاحظات، نموذج أولي مرة أخرى
في النموذج الش waterfallي تُنتهى كل مرحلة قبل بدء التالية، بينما يعمل Agile في دورات تكرارية قصيرة مع تغذية راجعة مستمرة.
الطريقة الشلالية خطية (مناسبة للمتطلبات المستقرة)؛ أما الطريقة المرنة فتتكيف من خلال دورات عمل قصيرة مع تعاون مستمر مع العملاء والاختبار.
صوّغ كل نموذج مع فكرته الرئيسية.
الطريقة الشلالية = خطية؛ التكرارية = تحسين متكرر؛ التطوير السريع للتطبيقات = قائم على النماذج الأولية وسريع.
يُبنى التطوير السريع للتطبيقات ____ يحاول المستخدمون تجربته وإعطاء ملاحظاتهم عليه، ثم يُعاد بناؤه.
النموذج الأولي هو السمة المميزة للتطوير السريع للتطبيقات؛ وملاحظات المستخدمين عليه هي الطريقة التي تُكتشف بها المتطلبات.
مثال محلل: اختيار دورة حياة وتبريرها
- شركة تحتاج إلى برمجيات لحساب رواتب الموظفين تحت قواعد ضريبية ثابتة بموجب القانون. أي دورة حياة، ولماذا؟ الشلال: المتطلبات مستقرة ومعروفة بالكامل في البداية، يمكن توثيق القواعد بشكل كامل في التحليل، وتُعد الوثائق الشاملة مهمة لنظام يجب أن يكون صحيحاً وقابلًا للتدقيق.
- شركة ناشئة تريد تطبيقاً لنوع جديد من الأحداث الاجتماعية؛ مستخدموها غير متأكدين من الميزات التي يريدونها. RAD: المتطلبات غير واضحة وتتغير، لذا فإن نموذج أولي يحاوله المستخدمون ويستجيب له يكتشفهم بسرعة، والنظام الصغير يناسب إعادة البناء السريع.
- سمِّ النموذج، ثم اربط خاصيتين منه بحقيقتين في السيناريو.
يجب على فريق صغير بناء تطبيق مستخدموه غير متأكدين مما يريدونه، ويمكن للمستخدمين تجربة إصدارات كل أسبوع. أي دورة حياة تناسب هذا scenario بشكل أفضل؟
المتطلبات غير الواضحة والمتغيرة بالإضافة إلى توفر المستخدمين تمثل حالة التطوير السريع للتطبيقات. تحتاج الطريقة الشلالية إلى تثبيت المتطلبات في البداية.
المراحل الخمس
- التحليل: معرفة ماذا يجب أن يفعل البرنامج؛ جمع وتوثيق المتطلبات من المستخدمين.
- التصميم: تحديد كيف: هياكل البيانات، الخوارزميات، الوحدات، واجهة المستخدم، تنسيقات الملفات، المعبرة عنها بالمخططات الهيكلية، مخططات الانسياب، والكود الوهمي.
- البرمجة (التنفيذ): كتابة الكود المصدري وفقاً للتصميم. الاختبار: تشغيله ضد بيانات اختبار مخطط وتصحيح الأخطاء التي تم العثور عليها.
- الصيانة: بعد الإطلاق، إبقاؤه يعملاً ومفيداً، وتصحيح الأخطاء، والتكيف مع التغيير وتحسينه.
دورة حياة تطوير البرمجيات
مر عبر المراحل التي يمر بها كل مشروع. إن تحديد المتطلبات بشكل صحيح في مرحلة التحليل هو الأهم — فالخطأ المكتشف في الاختبار أغلى بكثير في إصلاحه مقارنة بما يتم اكتشافه مبكراً.
مرحلة التحليل تتعلق بشكل رئيسي بـ:
يجمع التحليل المتطلبات (الـ "ماذا"); بينما يقرر التصميم (الـ "كيف").
رتب مراحل دورة حياة تطوير البرنامج بالتسلسل الصحيح.
ماذا، كيف، بناء، تحقق، استمر في العمل. في النموذج التكراري تتكرر المراحل الوسطى، لكن الترتيب داخل كل دورة هو نفسه.
مثال محلل: ماذا يحدث في التحليل والتصميم
- وصف ما يحدث خلال مرحلتي التحليل والتصميم لدورة حياة تطوير البرامج. [4]
- التحليل: يجري المطورون مقابلات ومراقبة المستخدمين لمعرفة ما يجب أن يفعله البرنامج؛ يحددون المدخلات والمخرجات والمعالجة المطلوبة، ويكتبون مواصفات المتطلبات التي يوافق عليها العميل.
- التصميم: يقرر المطورون كيف سيحقق البرنامج تلك المتطلبات: يختارون هياكل البيانات والخوارزميات، ويجزئون البرنامج إلى وحدات على مخطط الهيكلية، ويصممون الشاشات والملفات، ويكتبون الكود الوهمي.
- فعلان ومنتج لكل مرحلة. "يحللون المشكلة" يعيد صياغة العنوان ولا يحقق أي نقاط.
علامات ضائعة
- التحليل هو "ماذا"، والتصميم هو "كيف". "تحديد الخوارزميات" ينتمي إلى التصميم.
- نموذج شلال الماء ليس "السيئ". قوته تكمن في المتطلبات المستقرة والموثقة؛ وضعفه هو التغير. قدم كلاهما عند طلب الفوائد و العيوب.
- التطوير السريع الراديكالي (RAD) ليس مجرد "سرعة". سمة تعريفه هي النموذج الأولي وتغذية المستخدم الراجعة حوله.
- الصيانة مرحلة وليست تفكيراً ثانوياً: تُنفق معظم تكاليف عمر البرنامج هناك.
لقد فهمت الأمر
- دورة الحياة تخطط وتدير وتتحكم في المشروع: المراحل، المعالم، الاختبار المدمج، تسجيل القرارات، إدارة المخاطر
- شلال الماء: خطي، كل مرحلة معتمدة، الأنسب للمتطلبات المستقرة، ضعيف أمام التغير · تكراري: نسخ متكررة محسنة، كشف المشاكل مبكراً، صعوبة في التقدير · RAD: نموذج أولي بالإضافة لتغذية المستخدم الراجعة، سريع ومرن، يتطلب مستخدمين متاحين
- اختر بناءً على وضوح المتطلبات، التغير المتوقع، الحجم والمخاطر، برر اختيارك بالسيناريو
- المراحل: التحليل (ماذا) → التصميم (كيف) → البرمجة → الاختبار → الصيانة