تنفيذ مشروع برمجي, سنتعرف في هذه المقالة عن الخطوات التي يجب اتباعها لكي تمكننا من  تنفيذ مشروع برمجي حيث يبحث الأشخاص الذين يودون تعلّم البرمجة عن اللغة الأكثر طلباً أو اللغة الأكثر سهولةً لغايات ماديةً عادةً, لكن مما يعتقده الأغلب أن مجرد المعرفة في كتابة الكود وجعل البرنامج يعمل بشكل صحيح هي البرمجة إلّا أن البرمجة تمر بمراحل كثيرة قبل أن نبدأ بكتابة الكود

بأي مشروع يُعرض على المبرمج لتنفيذه  يجب أن يمر بالمراحل التالية:

1-مرحلة التخطيط أحد أهم المراحل في تنفيذ مشروع برمجي:

بدايةً يجب تحديد ما هي المشكلة التي يريد العميل حلّها,ماهي المتطلبات الوظيفية وغير الوظيفية المراد تضمينها  والأهداف التي يتطلع إليها العميل

ونعني بالمتطلبات الوظيفية: ما يمكنه النظام القيام به “كالتسجيل في الموقع مثلاً”

والمتطلبات غير الوظيفية: هي القيود المفروضة على النظام “كمستوى الأمان في الموقع”

ماهي التكلفة والوقت المتوقع للتسليم واللغة المراد التنفيذ بها؟

يجب أن يتم في هذه المرحلة إبرام عقد يتضمن كافة المتطلبات المراد تنفيذها لننتفل إلى المرحلة الثانية.

التخطيط

2-مرحلة اختيار البيئة المناسبة: 

اختيار نمط معين على حسب توجّه المشروع ولكل اختيار يوجد إيجابيات وسلبيات واستخدامات معينة

والجدير بالذكر ان النمط هو تمثيل,مشاركة أو إعادة استخدام شيء معرّف سابقاً

ومن أهم الأنماط التي يجب ذكرها:

  • نمط MVC وهو اخصتار لـ Model View Controller:

يُستخدم عندما تكون هناك طرق متعددة لعرض البيانات والتفاعل معها

من الإيجابيات حيث يسمح للبيانات بالتغيير بشكل مستقل و يدعم عرض نفس البيانات بطرق مختلفة مع إجراء تغييرات في تمثيل واحد يظهر فيها جميعها

ونذكر أيضا من السلبيات حيث يمكن أن يتضمن تعقيداً إضافياً للتعليمات البرمجية  عندما يكون نموذج البيانات والتفاعلات بسيطة

  • نمط Layered:

وهو نمط مؤلف من عدّة طبقات ويكون التطوير ضمن هذا النمط عن طريق تقسيم المهام إلى عدة مهام ولكل مهمة لفريق

يستخدم عندما نريد أن يكون الموقع أكثر أماناً فوجود عدّة طبقات يُساعد على الصعوبة إلى الوصول للبنة التحتية للنظام

من الإيجابيات يسمح باستبدال الطبقات بأكملها طالما تم الحفاظ على الواجهة. يمكن توفير تسهيلات زائدة (مثل المصادقة) في كل طبقة لزيادة موثوقية النظام.

ونذكر أيضا من السلبيات يتأثر أداء الموقع بسبب وجود عدّة طبقات حيث من الممكن أن تحتاج الطبقة الأعلى التواصل مع الطبقات الدُنيا مما يؤدي إلى وجود وقت وهذا يؤثر سلباً على الأداء

  • نمط Repository:

يُستخدم عندما يجب عليك استخدام هذا النمط عندما يكون لديك نظام يتم فيه إنشاء كميات كبيرة من المعلومات والتي يجب تخزينها لفترة طويلة

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

ونذكر أيضا من السلبيات في حال فشل أحد مكونات النظام هذا يؤدي إلى فشل النظام بالكامل

  • نمط Client–server:

يُستخدم عندما يلزم الوصول إلى البيانات الموجودة في قاعدة بيانات مشتركة من مجموعة من المواقع المختلفة أي يتم استخدام الموقع من قبل عدد كبير من المستخدمين

الميزة الرئيسية لهذا النموذج هي أنه يمكن توزيع الخوادم عبر الشبكة. يمكن أن تكون الوظائف العامة (على سبيل المثال، خدمة الطباعة) متاحة لجميع العملاء أي مبدأ المشاركة حيث لا داع لوجود عدة طابعات لتنفيذ الخدمة بل يمكن المشاركة بين عدّة مستخدمين

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

بينما في حال كان هناك شخص يستخدمها فهذه الحالة تتطلب إنتظاراً لتنفيذ الطلب وهذه إحدى أهم السلبيات في هذا النمط

  • نمط Pipe and filter:

يُستخدم بشكل شائع في تطبيقات معالجة البيانات (القائمة على الدُفعات والمعاملات) حيث تتم معالجة المدخلات في مراحل منفصلة عن بعضها

من الإيجابيات سهل الفهم ويدعم إعادة استخدام التحويل,يتطابق نمط سير العمل مع بنية العديد من العمليات التجارية ويمكن تنفيذه إما كنظام متسلسل أو متزامن

ومن السلبيات التي يجب أن يتم ذكرها أنه ليس خياراً جيداً للنظام التفاعلي تؤدي إضافة عدد كبير من العمليات التجارية إلى تقليل الأداء بسبب النفقات الحسابية الزائدة

ومن هذه المرحلة نتاكد تماماً من أهمية اختيار النمط المناسب للمشروع حيث لا يوجد نمط ليس له مساوئ لذلك دراسة المشروع بدقة يمكننا من اختيار النمط المناسب له حسب الحاجة

تنفيذ مشروع برمجي

3-مرحلة التحليل وهذه المرحلة تمثل الجزء الأكبر من الوقت المراد لتنفيذ مشروع برمجي:

بعد أن قمنا بفهم ماهي متطلبات العميل وماهو المراد تنفيذه والنمط الذي تم اختياره هنا يجب أن نحلل كافة المتطلبات وندرس كيفية إمكانية تنفيذها ويشمل أيضا إنشاء مستند أو ملف يتضمن كافة المتطلبات تفصيلاً يعرف بإسم مواصفات متطلبات البرمجيات “SRS”

فيجب تضمينه بالمتطلبات الوظيفية وغير الوظيفية مثلاً إمكانية التسجيل في النظام أو إمكانية المشاركة وإرسال الدعوات هذه تصنف ضمن المتطلبات الوظيفية التي تعني ماذا يقوم به النظام

ومثالاً على المتطلبات غير الوظيفية: سرعة البرنامج – الأمان في البرنامج – سهولة الإستخدام أي عبارة عن المتطلبات التي تطرأ على النظام وليس ماذا يقوم به النظام

4-مرحلة التصميم :

بعد أن فهمنا المتطلبات نقوم بتصميم وحدات النظام الكلية وكيفية تفاعل النظام مع بعضه البعض وما هي المكونات الأساسية للنظام وهنا يجب أن نرسم البكج و الصفوف ونلتزم بالنمط المختار بطريقة التوصيف فمثلا في نمط الـ Layered يجب أن نرسم الطبقات وكيف تتفاعل البكج مع بعضها البعض وماذا يوجود عناصر بداخلها ويجب تمثيل جميع الطبقات وصولاً إلى البنية التحتية للنظام

 

5-مرحلة كتابة الكود:

هنا يأتي دور البرمجة وكتابة الكود ويتم تنفيذ كل ما تم تصميمه في المرحلة السابقة من قبل مهندس البرمجيات بدقة كبيرة من ناحية التسميات والترابط الموجود بين النظام وهنا يكون الدور بشكل بارز على مساعد المهندس حيث مهمة مهندس البرمجيات في هذه المرحلة هي فقط الإشراف على كتابة الكود ومعالجة المشكلات التي قد تظهر أثناء تنفيذ التصميم ولم يستطع المساعد معرفة حلّها

تنفيذ مشروع برمجي

وننتقل إلى المرحلة التالية التي تعتبر مرحلة ذات أهمية كبيرة

6-مرحلة التجريب:

التجريب هو ثاني أكثر مرجلة تأخذ وقتاً وفي بعض الأحيان تكون الأكثر, حيث في هذه المرحلة يتم تجريب ما تمت كتابته في مرحلة الكود وتجريب البرنامج هل يعمل بشكل سليم,هل هو مطابق للمتطلبات المراد تنفيذها من قبل طالب الخدمة “المشتري”,هل كافة الخدمات تعمل بشكل سليم

ومن الممكن إجراء اختبارات ثانية على سبيل المثال

  • ما هي سهولة الموقع “أي كم يحتاج المستخدم العادي وقتاً لكي يكون قادراً على فهم النظام بالكامل واستخدامه بشكل فعّال”
  • ما هي نسبة الأمان في الموقع “عدد محاولات الإختراق الإجمالية التي قمنا بها وما هي نسبة نجاح المحاولات من إجمالي المحاولات”
  • أداء الموقع “هل الموقع يستجيب بشكل سريع أو يحتاج وقتاً للمعالجة وماهو متوسط الإستجابة”
  • هل الموقع متجاوب مع مختلف الشاشات في حال كان يتم استخدامه من بيئات مختلفة “موبايل,لابتوب,آيباد”
  • ما هو توافق السيو مع محركات البحث

ومن المؤكد أن الاختبارات التي نقوم بها هي تعتمد بشكل جذري على النظام المراد تنفيذه ففي حال العميل لا يريد أن يكون النظام يستجيب بشكل سريع لأغراض تتعلق بالحماية مثلا ف لا داعي لذكر لأداء الموقع

7-مرحلة الصيانة بعد تنفيذ المشروع البرمجي

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

 

تنفيذ مشروع برمجي

نؤكد في هذا المقال على أهمية الخطوات وتنفيذها بشكل سليم لكي نتمكن من تنفيذ مشروع ذو مواصفات عالية ونؤكد على فهم تحليل SWOT لكي نقرر فيما إذا يمكننا استلام المشروع وتنفيذه أو الاعتذار عنه فيعتبر أداة هامة جداً يجب معرفتها, ويجب أن نبحث أكثر وأكثر عن الخطوات ونطبق بشكل عملي لكي نكون قادرين على استلام مشاريع للعملاء ومن أهم الأشياء التي يجب القيام بها الإطلاع على مشاريع تم تنفيذها سابقاً وفهمها بشكل دقيق لمعرفة المراحل بشكل عملي أكثر.