من الطبيعي جداً عندما يريد المهندس المعماري في إنشاء مبنى معين , يقوم بإتباع استراتيجيه معينه من ضمن عدة استراتيجيات موجوده في علم الهندسه المعماريه من بداية المشروع وحتى نهايته .
كذلك الشي في مرحلة انشاء مشروع برمجي أو برنامج وهو ما نسميه دورة حياة المشروع ” Project life cycle “ وكما انه يوجد عند المهندسين , اصحاب الاختصاصات الاخرى عده طرق واستراتيجيات فإنه تماماً يوجد في تطوير البرمجيات العديد من الخطط والإستراتيجيات التي يتم اتباعها في مسيرة مرحلة تطوير المشروع او البرنامج.
ويأتي أصل كلمة هندسة برمجيات ,من هذه الجهه لأنها تتبع خطوات وأساليب واستراتيجيات وخطط متفق عليها مسبقاً لإنشاء برامج ذات كفاءه عاليه جدا وفق الوقت المحدد والجوده المطلوبه والميزانيه المتفق عليها .
لذلك يوجد عدة انواع استراتيجيات شائعه الاستخدام كدورة حياة لأي مشروع :
هذه النماذج الشائعه, ان اختيار نموذج من النماذج يعني اختيار خطه سيقوم المشروع بالمرور على عملياتها لذلك فهو اختيار مهم جدا لضمان نجاح المشروع وتسليمه في الوقت المحدد وبجوده عاليه وسوف نتناول لاحقاً شرحاً مبسطاً لكل نموذج من هذه النماذج الاربعه
1- تحليل النظام وتحديد المتطلبات
2- التصميم
3- كتابة الكود - الترميز - التطوير
4- التحقق
5- الصيانة
يمكن تعريف تحليل النظم بأنها عملية جمع المعلومات وتفحص دقيق لجميع أجزاء النظام ودراسته الكيفية التي يؤدي بها عمله، ويشمل ذلك الأفراد والآلات والعناصر التي تشكل بمجملها النظام
تَعتبر عملية تحليل النظم بأنّ النظام عبارةٌ عن نقاط قرارات، أي أنّها نقطة الانطلاق لاتخاذ القرار الصائب من قِبل محلل النظم وفقاً لما يتوفر لديه من بيانات المدخلات.
محلل النظم هو ذلك الشخص المعني بتحليل النظم من خلال دراسته للنظام الحالي، والكشف عما يعاني منه من نقاط ضعفٍ أو مشكلاتٍ وإيجاد حلول جذرية لها، ثمّ إيجاد نظامٍ جديد وتنفيذه، ويكون محلل النظم على علاقةٍ وثيقةٍ من حيث العمل مع كافة الأفراد داخل المنشأة أو خارجها حتّى يتمكن من إنجاز عمله على أكمل وجه
هي وثيقة تنتج عن عملية تحليل النظام
في التصميم يقسم البرنامج الى اجزاء او برامج صغيرة من السهل التعامل معها، وهذه الأجزاء مترابطة مع بعضها بطريقة منطقية
وتستخدم ادوات التصميم خوارزميات ومخططات انسيابية لكل جزء من الاجزاء السابقة وللبرنامج بشكل كامل، و ذلك لفهم التصميم بصورة كاملة ودقيقة.
ويعد اختيار لغة البرمجة المناسبة جزء من التصميم
في هذة الخطوة و بعد اختيار لغة البرمجة نبدأ عملية تحويل الخوارزميات والمخططات الإنسيابية، و غيرها من معلومات من عمليتي تحليل النظام والتصميم،إلى أوامر وجمل برمجية حسب قواعد لغة البرمجة التي تم اختيارها وتسمى هذه العملية بالترميز أو كتابة الكود البرمج
اوتتم هذه العملية على عدة مراحل:
في هذة المرحلة نتحقق اذا كان ما كتبناه، الترميز، يتبع قواعد لغة البرمجة التي اخترناها. فإذا كان يتبع تلك القواعد نكون قد نجحنا في اعطاء المعلومات للحاسوب بطريقة صحيحة، وان لم تكن كذلك فالحاسوب سوف يعطينا معلومات عن أخطائنا و علينا اصلاحها.
تذكر اننا قسمنا البرنامج الكبير في البداية الى اجزاء وبرامج صغيرة ونحن نتحقق من كل جزء. و لكن في هذه المرحلة نحن لا نتحقق من قواعد الترميز، لاننا تحققنا من ذلك في الخطوة السابقة، ولكن في هذه الخطوة نحن نتحقق من ما اذا كان هذا الجزء يعطينا النتائج المرجوة أم لا. ان كانت النتائج صحيحة نكمل وان كانت خاطئة نرجع ونتحقق من خوارزميات التحليل السابق، ونعيد عملية البرمجة و التحقق من هذا الجزء، الى ان يعطينا النتائج المرجوة.
مع انتهائنا من برمجة جميع أجزاء البرنامج و التأكد من صحتها، كما في الخطوة السابقة، نجمع البرنامج و نتأكد من ان جميع الاجزاء تعمل بشكل صحيح و متناسق ومتكامل، و تعطينا النتائج المطلوبة. ان كان هناك اي خلل في النتائج فلا بد من التحقق من كل جزء كما في الخطوة السابقة، و لا بد من إعادة عملية التحقق حتى نصل الى النتائج المطلوبة.
الرغم من كون البرنامج يعمل بلا خلل، فإن الصيانة ضرورية جداً، لأن المعطيات من حولنا تتغير باستمرار مثل برنامج لحساب الرواتب مثلا،حيث لا بد من التأكد من ان بعض المعطيات المتغيرة اخذت بعين الاعتبار، مثل نسبة الخصومات الضريبية او المعدل العام للاجور و بهذا لا بد من الصيانة وتعديل البرنامج عند الحاج