نموذج الشلال

نموذج الشلال هو عملية تنفيذ مراحل دورة حياة تطوير البرمجيات (SDLC) النموذجية بترتيب تسلسلي . تُستكمل كل مرحلة قبل البدء بالمرحلة التالية، وتُحدد نتائج كل مرحلة المراحل اللاحقة. [ 1 ] بالمقارنة مع منهجيات دورة حياة تطوير البرمجيات البديلة، مثل منهجية أجايل ، يُعد نموذج الشلال من بين الأقل تكرارًا ومرونة، [ 1 ] حيث يسير التقدم في اتجاه واحد إلى حد كبير (مثل الشلال ) عبر مراحل التصور، وتحليل المتطلبات ، والتصميم ، والبناء ، والاختبار ، والنشر، والصيانة . [ 2 ] يُعد نموذج الشلال أقدم منهجية لدورة حياة تطوير البرمجيات. [ 3 ] عند اعتماده لأول مرة، لم تكن هناك بدائل معترف بها للعمل الإبداعي القائم على المعرفة. [ 4 ]

تاريخ

أول عرض معروف يصف استخدام هذه المراحل في هندسة البرمجيات قدمه هربرت د. بينينجتون في ندوة أساليب البرمجة المتقدمة للحواسيب الرقمية في 29 يونيو 1956. [ 5 ] تناول هذا العرض تطوير برمجيات لنظام SAGE . في عام 1983، أعاد بينينجتون نشر بحثه مع مقدمة توضح أن المراحل نُظمت عمدًا وفقًا لتخصص المهام، مشيرًا إلى أن العملية لم تُنفذ في الواقع بطريقة هرمية صارمة، بل اعتمدت على نموذج أولي. [ 6 ]

على الرغم من عدم استخدام مصطلح "النموذج التتابعي" في هذه الورقة، إلا أن أول رسم تخطيطي رسمي ومفصل لهذه العملية يُستشهد به غالبًا [ 7 ] باعتباره مأخوذًا من مقال نُشر عام 1970 بقلم وينستون دبليو . رويس. [ 8 ] [ 9 ] [ 10 ] ومع ذلك، فقد علّق رويس على وجود عيوب جوهرية في هذا النموذج، نابعة من اقتصار الاختبار على نهاية العملية، وهو ما وصفه بأنه "محفوف بالمخاطر ويؤدي إلى الفشل". [ 8 ] وقدّم في بقية ورقته خمس خطوات رأى أنها ضرورية "للقضاء على معظم مخاطر التطوير" المرتبطة بالنموذج التتابعي دون تعديل. [ 8 ] لم تلقَ خطوات رويس الخمس الإضافية (والتي تضمنت كتابة وثائق كاملة في مراحل مختلفة من التطوير) رواجًا واسعًا، لكن رسمه التخطيطي لما اعتبره عملية معيبة أصبح نقطة الانطلاق عند وصف نموذج "النموذج التتابعي". [ 11 ] [ 12 ]

ربما كان أول استخدام لمصطلح "الشلال" في ورقة بحثية نشرها بيل وثاير عام 1976. [ 13 ]

في عام 1985، اعتمدت وزارة الدفاع الأمريكية نموذج الشلال في معيار DOD-STD-2167 للعمل مع مقاولي تطوير البرمجيات. يشير هذا المعيار إلى دورات تطوير البرمجيات [ 14 ] باعتبارها "المراحل المتسلسلة لدورة تطوير البرمجيات"، وينص على أن "على المقاول تنفيذ دورة تطوير برمجيات تتضمن المراحل الست التالية: تحليل متطلبات البرمجيات، والتصميم الأولي، والتصميم التفصيلي، والبرمجة واختبار الوحدات، والتكامل، والاختبار". [ 14 ] [ 15 ]

المراحل

يصف النموذج تسلسلًا خطيًا من الخطوات. على الرغم من وجود نسخ مختلفة، إلا أن ما يلي يصف جوهره. [ 16 ] [ 17 ] [ 18 ] [ 19 ]

التحليل الأولي

قم بإجراء تحليل أولي، وانظر في الحلول البديلة، وقدّر التكاليف والفوائد، وقدم خطة أولية مع التوصيات.

  • إجراء تحليل أولي: تحديد أهداف المنظمة وتحديد طبيعة المشروع ونطاقه. التأكد من توافق المشروع مع الأهداف.
  • ضع في اعتبارك الحلول البديلة: قد تأتي البدائل من إجراء مقابلات مع الموظفين والعملاء والموردين والاستشاريين، بالإضافة إلى التحليل التنافسي.
  • تحليل التكلفة والعائد: تحليل تكاليف وفوائد المشروع.

تحليل النظم، وتحديد المتطلبات

قسّم أهداف المشروع إلى وظائف وعمليات محددة. يتضمن ذلك جمع الحقائق وتفسيرها، وتشخيص المشكلات، واقتراح التغييرات. حلل احتياجات المستخدم النهائي من المعلومات، وحلّ التناقضات والنقص فيها: [ 20 ]

  • جمع الحقائق: الحصول على متطلبات المستخدم النهائي من خلال مراجعة الوثائق، ومقابلات العملاء، والملاحظة، والاستبيانات.
  • فحص النظام (الأنظمة) الحالية بدقة: تحديد الإيجابيات والسلبيات.
  • تحليل النظام المقترح: إيجاد حلول للمشاكل وإعداد المواصفات، مع تضمين مقترحات المستخدم المناسبة.

تصميم الأنظمة

في هذه الخطوة، يتم تفصيل الميزات والعمليات المطلوبة، بما في ذلك تخطيطات الشاشة، وقواعد العمل ، ومخططات العمليات ، والرموز الزائفة ، وغيرها من المخرجات.

تطوير

اكتب الكود.

التكامل والاختبار

قم بتجميع الوحدات في بيئة اختبار. تحقق من وجود أخطاء، وعيوب، وقابلية التشغيل البيني.

القبول والتركيب والنشر

قم بتشغيل النظام. قد يشمل ذلك تدريب المستخدمين، ونشر الأجهزة، وتحميل المعلومات من النظام السابق.

صيانة

راقب النظام لتقييم كفاءته المستمرة. قم بإجراء تعديلات وإصلاحات بسيطة حسب الحاجة. يساعد ذلك في الحفاظ على جودة النظام. تضمن المراقبة والتحديثات المستمرة بقاء النظام فعالاً وعالي الجودة. [ 21 ]

تقييم

يتم مراجعة النظام والعملية. وتشمل الأسئلة ذات الصلة ما إذا كان النظام المُطبق حديثًا يلبي المتطلبات ويحقق أهداف المشروع، وما إذا كان النظام سهل الاستخدام، وموثوقًا/متاحًا، وقابلًا للتوسع بشكل مناسب، وقادرًا على تحمل الأعطال. وتشمل فحوصات العملية مراجعة الجداول الزمنية والنفقات، بالإضافة إلى قبول المستخدم.

تصرف

عند انتهاء عمر النظام، تُوضع خطط لإيقاف تشغيله والانتقال إلى بديله. يجب إعادة استخدام المعلومات والبنية التحتية ذات الصلة، أو أرشفتها، أو التخلص منها، أو إتلافها، مع ضمان الحماية الأمنية المناسبة. [ 22 ]

الحجج الداعمة

يمكن أن يساهم الوقت المُستثمر في المراحل المبكرة من دورة إنتاج البرمجيات في خفض التكاليف في المراحل اللاحقة. على سبيل المثال، يكون إصلاح مشكلة يتم اكتشافها في المراحل المبكرة (مثل تحديد المتطلبات) أرخص من إصلاح نفس الخطأ الذي يتم اكتشافه لاحقًا في العملية (بنسبة تتراوح بين 50 و200 ضعف). [ 23 ]

في الممارسة الشائعة، تُنتج منهجيات الشلال جدولًا زمنيًا للمشروع يُخصص فيه ما بين 20% و40% من الوقت للمرحلتين الأوليين، وما بين 30% و40% للبرمجة، ويُخصص الباقي للاختبار والتنفيذ. ونظرًا لضرورة وجود هيكل تنظيمي مُحكم للمشروع، فإن معظم المشاريع المتوسطة والكبيرة تتضمن مجموعة مفصلة من الإجراءات والضوابط التي تُنظم كل عملية في المشروع. [ 24 ]

من الحجج الأخرى التي تدعم نموذج الشلال أنه يركز على التوثيق (مثل وثائق المتطلبات ووثائق التصميم) بالإضافة إلى شفرة المصدر . في المنهجيات الأقل دقة في التصميم والتوثيق، تُفقد المعرفة إذا غادر أعضاء الفريق قبل اكتمال المشروع، وقد يصعب على المشروع التعافي من هذه الخسارة. إذا كانت وثيقة تصميم كاملة وجاهزة للاستخدام (كما هو الحال في التصميم الشامل المسبق ونموذج الشلال)، فسيكون بإمكان أعضاء الفريق الجدد والفرق الجديدة التعرف على المشروع من خلال قراءة الوثائق. [ 25 ]

يُقدّم نموذج الشلال منهجًا مُنظّمًا؛ إذ يتقدّم النموذج نفسه بشكل خطي عبر مراحل منفصلة، ​​سهلة الفهم والتفسير، وبالتالي يسهل فهمه. كما يُوفّر معالم بارزة يسهل تحديدها في عملية التطوير، وغالبًا ما يُستخدم كمثال تمهيدي لنموذج تطوير في العديد من كتب ودورات هندسة البرمجيات. [ 26 ]

نقد

قد لا يعرف العملاء المتطلبات الدقيقة قبل رؤية البرنامج العامل، وبالتالي قد يغيرون متطلباتهم لاحقًا، مما يؤدي إلى إعادة التصميم وإعادة التطوير وإعادة الاختبار، وزيادة التكاليف. [ 27 ]

قد لا يكون المصممون على دراية بالصعوبات المستقبلية عند تصميم منتج أو ميزة برمجية جديدة، وفي هذه الحالة، يمكن أن تؤدي مراجعة التصميم في البداية إلى زيادة الكفاءة مقارنةً بتصميم لم يُبنَ مع مراعاة القيود أو المتطلبات أو المشكلات المكتشفة حديثًا. [ 28 ]

قد تحاول المؤسسات معالجة نقص المتطلبات المحددة من العملاء بتوظيف محللي نظم لدراسة الأنظمة اليدوية الحالية وتحليل وظائفها وكيفية استبدالها. مع ذلك، يصعب عمليًا الفصل التام بين تحليل النظم والبرمجة، [ 29 ] إذ غالبًا ما يكشف تطبيق أي نظام معقد عن مشكلات وحالات استثنائية لم يأخذها محلل النظم في الحسبان.

بعض المنظمات، مثل وزارة الدفاع الأمريكية، لديها الآن تفضيل معلن ضد المنهجيات من نوع الشلال، بدءًا من معيار MIL-STD-498 الصادر في عام 1994، والذي يشجع على الاكتساب التطوري والتطوير التكراري والتراكمي . [ 30 ]

نماذج شلالات معدلة

استجابةً للمشاكل التي لوحظت في نموذج الشلال الأصلي، تم ابتكار العديد من النسخ المعدلة لمعالجة هذه المشاكل. تشمل هذه النماذج نماذج التطوير السريع التي يسميها ستيف ماكونيل "الشلالات المعدلة": [ 23 ] نموذج "الساشيمي" لبيتر ديغريس (شلال بمراحل متداخلة)، وشلال مع مشاريع فرعية، وشلال مع تقليل المخاطر. كما توجد تركيبات أخرى لنماذج تطوير البرمجيات مثل "نموذج الشلال التزايدي". [ 31 ]

النموذج النهائي من رويس

أوضح نموذج رويس النهائي أن التغذية الراجعة يمكن (بل ينبغي، وغالبًا ما تفعل) أن تقود من اختبار الكود إلى التصميم (حيث يكشف اختبار الكود عن عيوب في التصميم)، ومن التصميم إلى تحديد المتطلبات (حيث قد تستلزم مشاكل التصميم إزالة المتطلبات المتضاربة أو غير القابلة للتنفيذ/التصميم). وفي الورقة البحثية نفسها، دعا رويس أيضًا إلى توثيق كميات كبيرة من الوثائق، وإنجاز المهمة "مرتين إن أمكن" [ 32 ] (وهو رأي مشابه لرأي فريد بروكس ، مؤلف كتاب "أسطورة شهر الرجل" - وهو كتاب مؤثر في إدارة مشاريع البرمجيات - الذي دعا إلى التخطيط "للتخلص من وثيقة واحدة")، وإشراك العميل قدر الإمكان (وهو رأي مشابه لمنهجية البرمجة المتطرفة ).

ملاحظات رويس على النموذج النهائي هي:

  1. أكمل تصميم البرنامج قبل البدء في التحليل والبرمجة
  2. يجب أن تكون الوثائق حديثة وكاملة
  3. قم بالعمل مرتين إن أمكن
  4. يجب تخطيط الاختبارات والتحكم فيها ومراقبتها.
  5. أشرك العميل

انظر أيضاً

مراجع

  1. 1 2 بيترسن، كاي؛ وولين، كلايس؛ باكا، ديجان (2009). "نموذج الشلال في التطوير واسع النطاق" . في: بوماريوس، فرانك؛ أويفو، ماركو؛ جارينغ، بايفي؛ أبراهامسون، بيكا (محررون). تحسين عملية البرمجيات الموجهة نحو المنتج . سلسلة محاضرات في معالجة معلومات الأعمال. المجلد  32. برلين، هايدلبرغ: سبرينغر . الصفحات 386-400 . Bibcode : 2009pfsp.book..386P . doi : 10.1007/978-3-642-02152-7_29 . ISBN  978-3-642-02152-7.
  2. توم جيلب (1985). "التسليم التطوري مقابل "نموذج الشلال"". ACM SIGSOFT Software Engineering Notes . 10 (3): 49– 61. doi : 10.1145/1012483.1012490 .أيقونة الوصول المفتوح
  3. ليندا شيريل (2013). "نموذج الشلال". في: أ. ل. رونيهوف؛ ل. أوفيدو (محرران). موسوعة العلوم والأديان . دوردريخت ، هولندا: سبرينغر . ص 2343-2344 . doi : 10.1007/978-1-4020-8265-8_200285 . ISBN  978-1-4020-8264-1.
  4. أندرياس ب. شميدت؛ كريستين كونزمان (16 سبتمبر 2014). تصميم برمجيات لتنمية المعرفة: من البرمجيات القائمة على المعرفة إلى دعم تيسير تطوير المعرفة . i-KNOW '14: وقائع المؤتمر الدولي الرابع عشر حول تقنيات المعرفة والأعمال القائمة على البيانات. ACM . الصفحات 1-7 . doi : 10.1145/2637748.2638421 . 
  5. الولايات المتحدة، اللجنة الاستشارية للحوسبة الرياضية التابعة للبحرية (29 يونيو 1956)، ندوة حول أساليب البرمجة المتقدمة لأجهزة الكمبيوتر الرقمية ، [واشنطن العاصمة]: مكتب البحوث البحرية، وزارة البحرية، OCLC 10794738 
  6. بينينغتون، هربرت د. (1 أكتوبر 1983). "إنتاج برامج حاسوبية ضخمة" (ملف PDF) . حوليات معهد مهندسي الكهرباء والإلكترونيات لتاريخ الحوسبة . 5 (4). قسم الأنشطة التعليمية في معهد مهندسي الكهرباء والإلكترونيات: 350-361 . doi : 10.1109/MAHC.1983.10102 . S2CID 8632276. مؤرشف من الأصل (ملف PDF) بتاريخ 18 يوليو 2011. تم الاطلاع عليه بتاريخ 21 مارس 2011 . 
  7. لارمان، كريج؛ باسيلي، فيكتور (يونيو 2003). "التطوير التكراري والتراكمي: تاريخ موجز" (ملف PDF) . مجلة الكمبيوتر . 36 (6): 47-56 . doi : 10.1109/MC.2003.1204375 .
  8. 1 2 3 رويس، وينستون (1970)، "إدارة تطوير أنظمة البرمجيات الكبيرة" ، وقائع مؤتمر IEEE WESCON ، 26 ( أغسطس ): 1-9
  9. "الشلال" . جامعة بريمن - قسم الرياضيات وعلوم الحاسوب . مؤرشف من الأصل بتاريخ 19 يناير 2022. تم الاطلاع عليه بتاريخ 15 أبريل 2021 .
  10. عباس، نورا؛ جرافيل، أندرو م.؛ ويلز، غاري ب. (2008). "الجذور التاريخية للمنهجيات الرشيقة: من أين نشأ "التفكير الرشيق"؟" (ملف PDF) . في: أبراهامسون، بيكا؛ باسكويرفيل، ريتشارد؛ كونبوي، كيران؛ فيتزجيرالد، برايان؛ مورغان، لورين؛ وانغ، شياوفينغ (محررون). العمليات الرشيقة في هندسة البرمجيات والبرمجة المتطرفة . سلسلة محاضرات في معالجة معلومات الأعمال. المجلد 9. برلين، هايدلبرغ: سبرينغر . الصفحات 94-103 . doi : 10.1007/978-3-540-68255-4_10 . ISBN   978-3-540-68255-4.
  11. كونراد وايزرت، منهجية الشلال: لا يوجد شيء من هذا القبيل!
  12. لينبرغر، روب (25 أبريل 2024). وراثة منهجية أجايل: دليل ممارس تكنولوجيا المعلومات لإدارة تطوير البرمجيات في عالم ما بعد أجايل . دورهام، كارولاينا الشمالية: دار ساندبرينت للنشر. ص 36. ISBN  9798989149605.
  13. بيل، توماس إي، وتا ثاير. متطلبات البرمجيات: هل هي مشكلة حقًا؟ وقائع المؤتمر الدولي الثاني لهندسة البرمجيات. مطبعة جمعية مهندسي الكهرباء والإلكترونيات، 1976.
  14. 1 2 DOD-STD-2167 - المعيار العسكري : تطوير برمجيات أنظمة الدفاع . وزارة الدفاع، الولايات المتحدة الأمريكية. 1985-06-04. ص 11.  
  15. "تطوير برمجيات نظام الدفاع القياسي العسكري" (ملف PDF) .
  16. وزارة العدل الأمريكية (2003). إدارة موارد المعلومات الفصل 1. مقدمة.
  17. إيفرات، جي دي؛ ماكلويد، آر جونيور (2007). "الفصل 2: ​​دورة حياة تطوير البرمجيات" . اختبار البرمجيات: الاختبار عبر دورة حياة تطوير البرمجيات بأكملها . جون وايلي وأولاده. ص 29-58 . ISBN  9780470146347.
  18. كاي، راسل (14 مايو 2002). "دراسة سريعة: دورة حياة تطوير النظام" . كمبيوتر وورلد .
  19. تايلور، جي دي (2008). مقدمة في هندسة اللوجستيات . مطبعة سي آر سي. الصفحات 12.6 – 12.18 . رقم ISBN  9781420088571.
  20. "الفصل 5". مراقبة وتدقيق نظم المعلومات (ملف PDF) . معهد المحاسبين القانونيين في الهند. أغسطس 2013. ص 5.28. 
  21. شاه، كاظم. "مرحلة الصيانة في دورة حياة تطوير البرمجيات" . primetechnologiesglobal . كاظم شاه . تاريخ الاسترجاع: ١٢ مايو ٢٠٢٤ .
  22. راداك، س. (بدون تاريخ). "دورة حياة تطوير النظام (SDLC)" (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا.
  23. 1 2 ماكونيل، ستيف (1996). التطوير السريع: ترويض جداول البرمجيات الجامحة . مطبعة مايكروسوفت. ISBN 1-55615-900-5.
  24. "نموذج تطوير البرمجيات المتتالي" . 5 فبراير 2014. تم الاطلاع عليه بتاريخ 11 أغسطس 2014 .
  25. شركة أركيسفير للتكنولوجيا (2012). "دليل تعليمي: دورة حياة تطوير البرمجيات (SDLC)" (ملف PDF) . تم الاطلاع عليه بتاريخ 13 نوفمبر 2012 .
  26. هيوجي، دوغلاس (2009). "مقارنة تحليل وتصميم النظم التقليدية بمنهجيات أجايل" . جامعة ميسوري - سانت لويس . تم الاطلاع عليه بتاريخ 11 أغسطس 2014 .
  27. بارناس، ديفيد ل.؛ كليمنتس، بول س. (1986). "عملية تصميم عقلانية: كيف ولماذا نتظاهر بها" (ملف PDF) . معاملات IEEE في هندسة البرمجيات (2): 251-257 . doi : 10.1109/TSE.1986.6312940 . S2CID 5838439. تاريخ الاسترجاع: 21 مارس 2011 . 
  28. ماكونيل، ستيف (2004). Code Complete، الطبعة الثانية . مطبعة مايكروسوفت. ISBN 1-55615-484-4.
  29. ↑ إنسمنجر ، ناثان (2010). أولاد الحاسوب يستولون على زمام الأمور . مطبعة معهد ماساتشوستس للتكنولوجيا. ص 42. ISBN  978-0-262-05093-7.
  30. لارمان، كريغ؛ باسيلي، فيكتير (2003). "التطوير التكراري والتراكمي: تاريخ موجز" . مجلة IEEE Computer . 36 (6) (عدد يونيو ): 47-56 . doi : 10.1109/MC.2003.1204375 . S2CID 9240477 .  
  31. "المنهجية: أساليب التصميم" . مؤرشف من الأصل بتاريخ 2016-03-03 . تم الاطلاع عليه بتاريخ 2018-05-16 .
  32. سارافانوس، أنطونيوس (2026-03-20). "نبذة تاريخية عن نموذج الشلال: الماضي والحاضر والمستقبل" . وقائع المؤتمر الدولي الثامن عشر لعلوم الحاسوب وتكنولوجيا المعلومات لعام 2025. ICCSIT '25. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة: 138-143 . doi : 10.1145/3783862.3783879 . ISBN 979-8-4007-1858-8.