عملية تطوير البرمجيات

تُحدد عملية تطوير البرمجيات آليةً لتطوير البرمجيات . وهي عادةً ما تُقسّم الجهد الإجمالي إلى خطوات أو عمليات فرعية أصغر تهدف إلى ضمان نتائج عالية الجودة. وقد تصف العملية مُخرجات مُحددة - وهي مُخرجات يجب إنشاؤها وإكمالها. [ 1 ]

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

ترتبط عملية تطوير البرمجيات وجودة البرمجيات ارتباطًا وثيقًا؛ وقد لوحظت بعض الجوانب والآثار غير المتوقعة في الممارسة العملية. [ 2 ]

المنهجية

تُحدد دورة حياة تطوير البرمجيات (SDLC) تعريف المنهجية، إذ يجب أن تتناول المنهجية مراحل دورة حياة تطوير البرمجيات. عمومًا، تُصمم المنهجية لإنتاج نظام عالي الجودة يلبي أو يتجاوز التوقعات (المتطلبات) ويُسلّم في الوقت المحدد وفي حدود الميزانية، حتى وإن كانت أنظمة الحاسوب معقدة وتتضمن مكونات متباينة. [ 3 ] وقد طُورت منهجيات متنوعة، منها المنهجية الشلالية ، والمنهجية الحلزونية ، والمنهجية الرشيقة ، ومنهجية النماذج الأولية السريعة ، والمنهجية التزايدية ، ومنهجية التزامن والاستقرار. [ 4 ]

يُعدّ أحد الفروقات الرئيسية بين المنهجيات هو مدى تسلسل مراحلها أو تكرارها. تركز المنهجيات الرشيقة، مثل XP و Scrum ، على عمليات بسيطة تسمح بإجراء تغييرات سريعة. [ 5 ] بينما تركز المنهجيات التكرارية ، مثل Rational Unified Process ومنهجية تطوير الأنظمة الديناميكية ، على تثبيت نطاق المشروع وتوسيع المنتجات أو تحسينها بشكل تكراري. أما النماذج التسلسلية أو نماذج التصميم المسبق الشامل (BDUF)، مثل نموذج الشلال، فتركز على التخطيط الكامل والصحيح لتوجيه المشاريع الكبيرة والحد من المخاطر لتحقيق نتائج ناجحة وقابلة للتنبؤ. [ 6 ] ويستند التطوير غير المتماثل إلى نطاق المشروع والتكرارات التكيفية. ففي Scrum، [ 7 ] على سبيل المثال، يمكن القول إن قصة المستخدم الواحدة تمر بجميع مراحل دورة حياة تطوير البرمجيات (SDLC) خلال دورة تطوير مدتها أسبوعان. في المقابل، في منهجية الشلال، تُترجم كل متطلبات العمل إلى أوصاف للميزات/الوظائف، والتي تُنفذ جميعها عادةً على مدى أشهر أو أكثر. [ 8 ]

يمكن أن يشمل المشروع دورة حياة المشروع (PLC) ودورة حياة تطوير الأنظمة (SDLC)، واللتان تصفان أنشطة مختلفة. ووفقًا لتايلور (2004)، "تشمل دورة حياة المشروع جميع أنشطة المشروع ، بينما تركز دورة حياة تطوير الأنظمة على تحقيق متطلبات المنتج ". [ 9 ]

تاريخ

يُستخدم مصطلح دورة حياة تطوير البرمجيات (SDLC) غالبًا كاختصار لمنهجية دورة حياة تطوير البرمجيات . كما يستخدم البعض مصطلحي دورة حياة تطوير البرمجيات التقليدية (SDLC) ومنهجية الشلال للإشارة إلى منهجية الشلال.

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

تم ابتكار منهجيات أخرى لاحقاً:

سبعينيات القرن العشرين
  • البرمجة الهيكلية منذ عام 1969
  • Cap Gemini SDM ، وهي في الأصل من PANDATA، نُشرت أول ترجمة إنجليزية لها عام 1974. SDM اختصار لـ System Development Methodology (منهجية تطوير الأنظمة).
ثمانينيات القرن العشرين
التسعينيات
العقد الأول من القرن الحادي والعشرين
عقد 2010

منذ ظهور منهجية DSDM في عام 1994، أصبحت جميع المنهجيات المدرجة أعلاه باستثناء RUP منهجيات رشيقة - ومع ذلك، لا تزال العديد من المنظمات، وخاصة الحكومات، تستخدم عمليات ما قبل الرشاقة (غالبًا ما تكون منهجية الشلال أو ما شابهها).

أمثلة

فيما يلي منهجيات بارزة مرتبة إلى حد ما حسب شعبيتها.

رشيق

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

شلال

نموذج الشلال هو نهج تطوير تسلسلي، حيث يتدفق التطوير في اتجاه واحد (مثل الشلال) عبر مراحل دورة حياة تطوير البرمجيات.

حلزوني

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

تدريجي

تجمع طرق متنوعة بين المنهجيات الخطية والتكرارية ، بهدف أساسي هو تقليل المخاطر الكامنة في المشروع عن طريق تقسيم المشروع إلى أجزاء أصغر وتوفير سهولة أكبر في التغيير أثناء عملية التطوير. [ 11 ]

النموذج الأولي

إن عملية تصميم النماذج الأولية للبرمجيات تتعلق بإنشاء نماذج أولية، أي نسخ غير مكتملة من برنامج البرمجيات الذي يتم تطويره.

سريع

تطوير التطبيقات السريع (RAD) منهجية تُفضّل التطوير التكراري والبناء السريع للنماذج الأولية بدلاً من التخطيط المسبق المطوّل. يتداخل "تخطيط" البرمجيات المطورة باستخدام RAD مع كتابة البرمجيات نفسها. يسمح غياب التخطيط المسبق المكثف عمومًا بكتابة البرمجيات بسرعة أكبر، ويُسهّل تغيير المتطلبات.

استعد للتألق

Shape Up هو منهجية لتطوير البرمجيات قدمتها Basecamp في عام 2018. وهي عبارة عن مجموعة من المبادئ والتقنيات التي طورتها Basecamp داخليًا للتغلب على مشكلة المشاريع التي تستمر لفترة طويلة دون نهاية واضحة. تستهدف هذه المنهجية بشكل أساسي فرق العمل عن بُعد. لا تتضمن Shape Up تقدير الوقت أو تتبع السرعة، أو قوائم المهام المتراكمة، أو دورات التطوير السريعة، على عكس منهجيات Waterfall و Agile و Scrum . بدلاً من ذلك، يتم استبدال هذه المفاهيم بمفاهيم أخرى مثل الرغبة في التطوير، والمراهنة، والدورات. اعتبارًا من عام 2022، بالإضافة إلى Basecamp، من بين المؤسسات البارزة التي تبنت Shape Up كل من UserVoice وBlock. [ 12 ] [ 13 ]

فوضى

يحتوي نموذج الفوضى على قاعدة رئيسية واحدة: حل المشكلة الأكثر أهمية أولاً.

التمويل التدريجي

منهجية التمويل التدريجي - نهج تكراري.

خفيف الوزن

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

تحليل وتصميم الأنظمة الهيكلية

أسلوب تحليل وتصميم الأنظمة الهيكلية - نسخة محددة من أسلوب الشلال.

البرمجة البطيئة

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

نموذج V

نموذج V (تطوير البرمجيات) - امتداد لنموذج الشلال.

عملية موحدة

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

مقارنة

يصف نموذج الشلال مراحل دورة حياة تطوير البرمجيات (SDLC) بحيث تبني كل مرحلة على نتائج المرحلة السابقة. [ 14 ] [ 15 ] [ 16 ] [ 17 ] لا يتطلب كل مشروع أن تكون المراحل متسلسلة. ففي المشاريع البسيطة نسبيًا، يمكن دمج المراحل أو تداخلها. [ 14 ] فيما يلي وصف ومقارنة لمنهجيات بديلة لنموذج الشلال. [ 18 ]

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

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

نماذج العمليات الوصفية

بعض نماذج العمليات عبارة عن أوصاف مجردة لتقييم ومقارنة وتحسين العملية المحددة التي تتبناها المنظمة.

ISO/IEC 12207

ISO/IEC 12207 هو المعيار الدولي الذي يصف طريقة اختيار وتنفيذ ومراقبة دورة حياة البرمجيات.

تكامل نموذج نضج القدرات

يُعدّ نموذج تكامل نضج القدرات (CMMI) أحد النماذج الرائدة، وهو قائم على أفضل الممارسات. تُقيّم التقييمات المستقلة المؤسسات بناءً على مدى التزامها بالعمليات المحددة، وليس على جودة تلك العمليات أو البرمجيات المُنتجة. وقد حلّ نموذج CMMI محلّ نموذج نضج القدرات (CMM) .

ISO 9000

يصف معيار ISO 9000 معايير عملية تصنيع منتج منظمة رسميًا، بالإضافة إلى أساليب إدارة ومراقبة التقدم المحرز. ورغم أن هذا المعيار وُضع في الأصل لقطاع التصنيع، فقد طُبّق أيضًا على تطوير البرمجيات. ومثل نموذج نضج القدرات المتكامل (CMMI)، فإن الحصول على شهادة ISO 9000 لا يضمن جودة المنتج النهائي، بل يضمن فقط اتباع عمليات تجارية رسمية.

ISO/IEC 15504

معيار ISO/IEC 15504 لتكنولوجيا المعلومات - تقييم العمليات ، المعروف أيضًا باسم تحديد قدرة تحسين عمليات البرمجيات (SPICE)، هو إطار عمل لتقييم عمليات البرمجيات. يهدف هذا المعيار إلى وضع نموذج واضح لمقارنة العمليات. يُستخدم SPICE بشكل مشابه لنموذج CMMI، حيث يُنمذج العمليات لإدارة عملية تطوير البرمجيات والتحكم بها وتوجيهها ومراقبتها. يُستخدم هذا النموذج لقياس ما تقوم به مؤسسة التطوير أو فريق المشروع فعليًا أثناء عملية تطوير البرمجيات. تُحلل هذه المعلومات لتحديد نقاط الضعف ودفع عجلة التحسين، كما تُحدد نقاط القوة التي يمكن الاستمرار في استخدامها أو دمجها في الممارسات الشائعة لتلك المؤسسة أو الفريق.

ISO/IEC 24744

ISO/IEC 24744 هندسة البرمجيات - النموذج الفوقي لمنهجيات التطوير ، هو نموذج فوقي قائم على أنواع الطاقة لمنهجيات تطوير البرمجيات.

منهجية الأنظمة اللينة

تُعد منهجية الأنظمة المرنة طريقة عامة لتحسين عمليات الإدارة.

هندسة الأساليب

هندسة المنهجية هي طريقة عامة لتحسين عمليات نظم المعلومات.

انظر أيضاً

مراجع

  1. "اختيار منهج التطوير" (ملف PDF) . مراكز خدمات الرعاية الطبية والخدمات الطبية (CMS)، مكتب خدمات المعلومات . وزارة الصحة والخدمات الإنسانية الأمريكية (HHS). 27 مارس/آذار 2008 [تاريخ الإصدار الأصلي: 17 فبراير/شباط 2005]. مؤرشف من النسخة الأصلية (ملف PDF) في 20 يونيو/حزيران 2012. تم الاطلاع عليه في 27 أكتوبر/تشرين الأول 2008 .
  2. سوريانارايانا، جيريش (2015). "عملية تطوير البرمجيات مقابل جودة التصميم: صراع محتدم؟" . مجلة IEEE للبرمجيات . 32 (4): 7-11 . Bibcode : 2015ISoft..32d...7S . doi : 10.1109/MS.2015.87 .
  3. "دورة حياة تطوير الأنظمة من" . FOLDOC . تم الاطلاع عليه في 14 يونيو 2013 .
  4. "دورة حياة تطوير البرمجيات (SDLC)" (ملف PDF) . softwarelifecyclepros.com . مايو 2012. تم الاطلاع عليه في 26 يونيو 2025 .
  5. "نظرة عامة على دورة حياة تطوير البرمجيات: النماذج والمنهجيات" . تم الاطلاع عليه بتاريخ 12 ديسمبر 2021 .
  6. آردن، تريفور (1991). تطبيقات تكنولوجيا المعلومات . لندن: بيتمان. ISBN 978-0-273-03470-4.
  7. "ما هو سكروم؟" . 24 ديسمبر 2019.
  8. رالف، بول (أبريل 2015). "نظرية بناء المعنى والتطور المشترك والتنفيذ في تصميم البرمجيات" . مجلة علوم برمجة الحاسوب . 101 : 21-41 . arXiv : 1302.4061 . doi : 10.1016/j.scico.2014.11.007 . ISSN 0167-6423 . تاريخ الاسترجاع: 6 مايو 2026 . 
  9. تايلور، جيمس (2004). إدارة مشاريع تكنولوجيا المعلومات . ص 39. 
  10. 1 2 3 جيفري إليوت (2004). تكنولوجيا معلومات الأعمال العالمية: منهج النظم المتكاملة . بيرسون للتعليم. ص 87. 
  11. بوهم، باري؛ لين، جو آن (2010). "عمليات جديدة لآفاق جديدة: نموذج الالتزام التدريجي" . المؤتمر الدولي الثاني والثلاثون لهندسة البرمجيات، ACM/IEEE، 2010. doi : 10.1145 /1810295.1810450 .
  12. "مقدمة بقلم جيسون فريد | حسّن لياقتك البدنية" . basecamp.com . تم الاطلاع عليه بتاريخ 11 سبتمبر 2022 .
  13. "هل برنامج Shape Up مجرد نظرية جيدة؟" . مختبر كيوريوس . تم الاطلاع عليه بتاريخ 12 سبتمبر 2022 .
  14. 1 2 وزارة العدل الأمريكية (2003). إدارة موارد المعلومات الفصل 1. مقدمة.
  15. إيفرات، جي دي؛ ماكلويد، آر جونيور (2007). "الفصل 2: ​​دورة حياة تطوير البرمجيات" . اختبار البرمجيات: الاختبار عبر دورة حياة تطوير البرمجيات بأكملها . جون وايلي وأولاده. ص 29-58 . ISBN  9780470146347.
  16. أونيلكار، ب. (2016). فن الممارسة الرشيقة: منهج متكامل للمشاريع والمنظمات . مطبعة سي آر سي. ص 56-59 . ISBN  9781439851197.
  17. لاند، إس كيه ؛ سميث، دي بي؛ والتز، جيه دبليو (2012). الدعم العملي لتعريف عملية تطوير البرمجيات وفق منهجية لين 6 سيجما: استخدام معايير هندسة البرمجيات الصادرة عن معهد مهندسي الكهرباء والإلكترونيات . جون وايلي وأولاده. ص 341-343 . ISBN  9780470289952.
  18. بوست، ج.، وأندرسون، د.، (2006). نظم المعلومات الإدارية: حل مشكلات الأعمال باستخدام تكنولوجيا المعلومات . (الطبعة الرابعة). نيويورك: ماكجرو هيل إروين.