SDLC - Waterfall Model

🏞️ Waterfall Model – نموذج الشلال

"كل مرحلة بتنزل وتكمل اللي قبلها… ومفيش رجوع لفوق بسهولة."



✅ تعريف:

هو نموذج تقليدي لتطوير البرمجيات بيعتمد على تنفيذ المراحل واحدة وراء التانية بشكل خطي.
يعني المرحلة التالية تبدأ فقط بعد انتهاء اللي قبلها بنسبة 100%.

شبه شلال الميه… بينزل من فوق لتحت وما بيرجعش.



🧱 مراحل Waterfall Model بتفصيل كامل:


1. Requirement Gathering & Analysis – جمع وتحليل المتطلبات

🔍 في المرحلة دي:

  • بنقعد مع العميل أو المستخدمين

  • بنجمع المتطلبات المطلوبة للنظام

  • بنحللها ونفهم كل جزئية

📄 ناتج المرحلة:
وثيقة اسمها SRS (Software Requirements Specification)

📌 ملاحظات:

  • المتطلبات لازم تكون "كاملة وثابتة"

  • أي تعديل بعد كده صعب ومكلف


2. System Design – التصميم

🧠 بنستخدم المتطلبات اللي جمعناها علشان نعمل:

  • تصميم قاعدة البيانات

  • تصميم الواجهات (UI)

  • بنية النظام الداخلية (Architecture)

🛠️ ممكن نستخدم أدوات زي:

  • ERD

  • UML Diagrams

  • Wireframes

📄 ناتج المرحلة:
ملفات تصميم + مخططات

📌 ملاحظات:

  • التصميم هنا بيكون نهائي… مفيش رجوع بعده بسهولة

  • لازم يكون واضح ومفصل جدًا علشان يبدأ المبرمجين الشغل


3. Implementation – البرمجة

💻 بعد التصميم، المبرمجين يبدؤوا يكتبوا الكود.

📄 ناتج المرحلة:
البرنامج نفسه (Codebase) – ما زال في بيئة التطوير.

📌 ملاحظات:

  • مفيش تدخل من العميل هنا

  • الكود لازم يطابق التصميم بالضبط


4. Integration & Testing – الدمج والاختبار

🧪 بعد ما نكتب الكود، بنبدأ نعمل:

  • اختبار كل جزء (Module)

  • ربط الأجزاء ببعض

  • اختبار النظام بالكامل

📄 ناتج المرحلة:
تقرير بالاختبارات والمشاكل اللي تم اكتشافها وحلها

📌 ملاحظات:

  • لو اكتشفنا خطأ سببه التصميم أو المتطلبات، صعب نرجع

  • بنعتمد على وحدة اسمها QA Team


5. Deployment – النشر

🚀 بنرفع النظام على البيئة الحقيقية ويبدأ استخدامه.

📄 ناتج المرحلة:
البرنامج شغال عند العميل أو على الإنترنت.

📌 ملاحظات:

  • مفيش حاجة اسمها “نختبر بعد النشر” زي في Agile

  • النشر بيتم مرة واحدة، مش تدريجي


6. Maintenance – الصيانة

🔧 بعد النشر، بيبدأ العميل يطلب:

  • إصلاح أعطال

  • تحسينات

  • تعديلات بسيطة

📌 ملاحظات:

  • لو التعديل كبير بيرجع يمر بكل المراحل من الأول!



📊 ملخص بصري:

المتطلبات → التصميم → البرمجة → الاختبار → النشر → الصيانة


✅ مميزات Waterfall:

الميزة الشرح
📋 منظم جدًا كل مرحلة واضحة ومعروفة
🗂️ توثيق ممتاز كل حاجة مكتوبة
🕒 مناسب لمشاريع الوقت الثابت لو في وقت وتكلفة محددين
🧪 سهل في المراجعة كل مرحلة بتخلص لوحدها


❌ عيوب Waterfall:

العيب الشرح
❌ التغيير صعب أي تعديل بعد البدء = مشكلة
❌ العميل مش بيشوف حاجة إلا في الآخر ممكن يكتشف إن النظام مش عاجبه
❌ الأخطاء بتبان متأخر خصوصًا لو خطأ في المتطلبات أو التصميم
❌ مش مرن غير مناسب للمشاريع اللي فيها تغييرات مستمرة


🧠 إمتى أستخدم Waterfall؟

الحالة مناسب؟
متطلبات واضحة من البداية ✅ نعم
المشروع صغير ومحدد الوقت ✅ نعم
العميل عارف هو عايز إيه بالتفصيل ✅ نعم
في تغييرات كتير متوقعة ❌ لا
المشروع طويل ومتغير ❌ لا


🔄 مثال عملي:

لو العميل عايز تطبيق بسيط لحجز مواعيد في عيادة، وعنده كل التفاصيل من الأول، ومفيش نية لتغييرات مستمرة…
→ Waterfall هو الاختيار الصح.


تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

1.1 SQL Introduction