حقق جاهزية شاملة لتدقيق NIS2 في غضون 12 أسبوعًا فقط.اقرأ المزيد عن امتثالنا لمعيار NIS2 →
Turn AI into deliveryBuild your AI-native teams →

ما هو دورة حياة تطوير البرمجيات (SDLC) ولماذا هي مهمة؟

مقدمة موجزة عن مراحل ومنهجيات دورة حياة تطوير البرمجيات (SDLC)

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

مراحل دورة حياة تطوير البرمجيات - رسم بياني 1

ومع ذلك، فإن هياكل SDLC الأكثر شيوعًا هي اختلافات في المراحل التالية:

  1. التخطيط والتحليل
  2. التصميم
  3. التنمية
  4. الاختبار
  5. النشر
  6. الصيانة

ما الفرق بين دورة حياة تطوير البرمجيات ودورة حياة تطوير النظام؟

يمكن أن تعني SDLC أيضًا "دورة حياة تطوير النظام" عند استخدامها بشكل أكثر شمولية لضمان تصميم ضوابط ومتطلبات الأمان بدلاً من تعديلها لاحقًا في عملية تطوير البرامج. عندما تشير الحرف "S" في SDLC إلى "النظام"، فإنها تشمل الأشخاص والعمليات ومكونات البرامج والبنية التحتية وإدارة التغيير.

إنه مصطلح إدارة المشاريع الأكثر "عمومية"، بينما يركز مصطلح "دورة حياة تطوير البرمجيات" بشكل محدد على مكونات البرمجيات فقط.

لماذا يعتبر دورة حياة تطوير البرمجيات مهمة؟

يؤدي تحديد ومتابعة مراحل دورة حياة تطوير البرمجيات إلى تحسين جودة المنتج النهائي من البرمجيات، مع تقليل الوقت اللازم لإنشائه ونشره وتقليل التكاليف الإجمالية في الوقت نفسه.

يحقق اتباع SDLC هذه المكاسب لعملية تطوير البرمجيات من خلال:

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

هل يتبع دورة حياة تطوير البرمجيات دائمًا نفس المراحل بنفس الترتيب؟

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

بعضها، مثل Crystal، تتيح مرونة للفريق العامل على مشروع تطوير برمجيات لكي يحدد مراحل SDLC الخاصة به وفقًا لما يراه الأنسب للبرمجيات المحددة التي يتم تطويرها.

على سبيل المثال، يتبع إطار عمل Agile Extreme Programming (XP) دورة حياة تطوير البرمجيات المكونة من 5 مراحل:

  1. التخطيط
  2. التصميم
  3. الترميز
  4. الاختبار
  5. الاستماع

يحدد إطار عمل التطوير الموجه بالميزات (FDD) الرشيق أيضًا خمس مراحل، ولكنها محددة بشكل مختلف:

  1. وضع نموذج شامل
  2. إنشاء قائمة الميزات
  3. الخطة حسب الميزة
  4. التصميم حسب الميزة
  5. بناء حسب الميزة

يحدد إطار عمل Adaptive Software Development (ASD) Agile ثلاث مراحل فقط من دورة حياة تطوير البرمجيات:

  1. التكهنات
  2. التعاون
  3. التعلم

رسم تخطيطي للمراحل الثلاث لإطار عمل تطوير البرمجيات التكيفي - التخمين والتعاون والتعلم

نهج نموذج تطوير الأنظمة الديناميكية (DSDM) في Agile يتضمن أربعة عناصر:

  • دراسة الجدوى والأعمال
  • النموذج الوظيفي / تكرار النموذج الأولي
  • تصميم وبناء التكرار
  • التنفيذ

كما هو واضح، فإن الطريقة التي تحدد بها مناهج تطوير البرمجيات المختلفة مراحل دورة حياة تطوير البرمجيات الخاصة بها هي طريقة مرنة.

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

المراحل الشائعة لدورة حياة تطوير البرمجيات

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

التخطيط والتحليل

غالبًا ما يتم دمج عمليات التخطيط والتحليل في مرحلة واحدة من دورة حياة تطوير البرمجيات. ولكن غالبًا ما يتم تقسيمها إلى مرحلتين منفصلتين.

خلال هذه المرحلة الأولى، يتم تحليل الجدوى التجارية لتطوير برنامج حاسوبي. ومن بين الأسئلة التي عادة ما يتم طرحها في هذه المرحلة ما يلي:

  • ما هي المشكلة التي سيحلها البرنامج؟ ما هي القيمة المحتملة لحل هذه المشكلة؟
  • ما حجم قاعدة المستخدمين المحتملين لهذا البرنامج؟
  • هل توجد برامج أخرى تحل نفس المشكلة؟
  • كيف سيحسن هذا البرنامج ذلك؟
  • كم قد يكلف تطوير برنامج لحل المشكلة بشكل فعال؟
  • هل حل المشكلة ذو قيمة كافية لتوفير عائد مقبول على الاستثمار في تلك التكلفة؟
  • هل لدينا الموارد اللازمة لتغطية هذه التكلفة؟

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

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

يتم تحديد الأهداف والقيود.

أدوار فريق تطوير البرمجيات التي تشارك عادة في مرحلة التخطيط والتحليل من دورة حياة تطوير البرمجيات (وهذا يختلف من فريق لآخر ويتأثر بالمنهجية/الإطار المختار) هي:

  • مالك المنتج
  • مدير المشروع
  • المدير التقني
  • محلل أعمال

التصميم

بمجرد التحقق من الحاجة إلى البرنامج وتحديد نطاقه الأولي ومتطلباته والموارد المتوقع أن تكون مطلوبة خلال مرحلة التحليل والتخطيط، تبدأ مرحلة التصميم.

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

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

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

يجب أيضًا تحديد نطاق وميزات MVP الذي سيتم إصداره أولاً هنا، حيث سيكون ذلك بمثابة أساس للمرحلة التالية، وهي مرحلة التطوير.

تشمل أدوار الفريق الأساسية في مرحلة تصميم دورة حياة تطوير البرمجيات ما يلي:

  • مهندس برمجيات
  • مصممو واجهة المستخدم/تجربة المستخدم

التنمية

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

في نهج الشلال، يتم توثيق ما يُعتبر المنتج النهائي بتفاصيل تقنية من البداية إلى النهاية خلال مرحلة التصميم، ثم يتم بناؤه من البداية إلى النهاية خلال مرحلة التطوير.

أدوار الفريق الأكثر انخراطًا في مرحلة التطوير هي:

  • مطورو الواجهة الأمامية
  • مطورو البرمجيات الخلفية
  • مصممو واجهة المستخدم/تجربة المستخدم

الاختبار

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

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

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

إنفوجرافيك DevOps

أدوار الفريق الأكثر انخراطًا في مرحلة الاختبار هي:

  • مهندس الحلول
  • مهندس ضمان الجودة
  • المختبر
  • مهندس DevOps

النشر

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

من الخطوات الحاسمة في مرحلة النشر أيضًا التأكد، أي الاختبار، من أن البرنامج يعمل بنفس الطريقة في البيئة الحية كما يعمل في بيئات التطوير والاختبار. في خط أنابيب تطوير البرامج DevOps CI/CD، يجب أن تكون بيئات ما قبل النشر والبيئات الحية متطابقة، مما يقلل من مخاطر التباينات بين طريقة تشغيل البرنامج. يدمج DevOps مرحلتي التطوير والنشر بشكل وثيق.

أبرز أدوار الفريق في مرحلة النشر من دورة حياة تطوير البرمجيات (SDLC) هي:

  • مهندس DevOps
  • مدير قاعدة البيانات

الصيانة

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

الأدوار الرئيسية في مرحلة الصيانة هي في الغالب:

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

دورات حياة تطوير البرمجيات التكرارية والمرنة

ما لم يتم تطوير منتج برمجي وفقًا لمنهجية Waterfall، فإن SDLC سيكون عملية متكررة ومستمرة وسيتم إعادة تشغيله بعد نشر كل تكرار، مع بدء العمل فورًا على التكرار التالي.

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

منهجية رشيقة لتطوير البرمجيات والتطبيقات

في الختام

يمكن لفرق تطوير البرمجيات تكييف دورة حياة تطوير البرمجيات، وهي تقوم بذلك بالفعل، استناداً إلى الفلسفة والمنهجية والإطار الذي تعتمده عند بناء منتج برمجي معين، أو بين المنظمات.

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

لكن كل مشروع لتطوير البرمجيات له دورة حياة، وينبغي أن تكون لديك الآن فهم جيد لدوره في إدارة المشاريع وكأداة تستخدم لتحسين النتائج.

مقالات المدونة المميزة