عملية تطوير البرمجيات
تُحدد عملية تطوير البرمجيات آليةً لتطوير البرمجيات . وهي عادةً ما تُقسّم الجهد الإجمالي إلى خطوات أو عمليات فرعية أصغر تهدف إلى ضمان نتائج عالية الجودة. وقد تصف العملية مُخرجات مُحددة - وهي مُخرجات يجب إنشاؤها وإكمالها. [ 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 (منهجية تطوير الأنظمة).
- ثمانينيات القرن العشرين
- أسلوب تحليل وتصميم الأنظمة الهيكلية (SSADM) منذ عام 1980 فصاعدًا
- تحليل متطلبات المعلومات / منهجية الأنظمة المرنة
- التسعينيات
- تطورت البرمجة الكائنية التوجه (OOP) في أوائل الستينيات وأصبحت نهجًا برمجيًا سائدًا خلال منتصف التسعينيات.
- التطوير السريع للتطبيقات (RAD)، منذ عام 1991
- منهجية تطوير الأنظمة الديناميكية (DSDM)، منذ عام 1994
- سكروم ، منذ عام 1995
- عملية تطوير البرمجيات الجماعية ، منذ عام 1998
- عملية Rational Unified Process (RUP)، التي تتولى شركة IBM صيانتها منذ عام 1998
- البرمجة المتطرفة ، منذ عام 1999
- العقد الأول من القرن الحادي والعشرين
- عملية Agile الموحدة (AUP) التي يديرها سكوت أمبلر منذ عام 2005
- يُلغي نظام التسليم الرشيق المنضبط (DAD) سياسة الاستخدام المقبول (AUP).
- عقد 2010
- إطار العمل الرشيق الموسع (SAFe)
- سكروم واسع النطاق (LeSS)
- ديف أوبس
منذ ظهور منهجية 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 هندسة البرمجيات - النموذج الفوقي لمنهجيات التطوير ، هو نموذج فوقي قائم على أنواع الطاقة لمنهجيات تطوير البرمجيات.
- منهجية الأنظمة اللينة
تُعد منهجية الأنظمة المرنة طريقة عامة لتحسين عمليات الإدارة.
- هندسة الأساليب
هندسة المنهجية هي طريقة عامة لتحسين عمليات نظم المعلومات.
انظر أيضاً
مراجع
- ↑ "اختيار منهج التطوير" (ملف PDF) . مراكز خدمات الرعاية الطبية والخدمات الطبية (CMS)، مكتب خدمات المعلومات . وزارة الصحة والخدمات الإنسانية الأمريكية (HHS). 27 مارس/آذار 2008 [تاريخ الإصدار الأصلي: 17 فبراير/شباط 2005]. مؤرشف من النسخة الأصلية (ملف PDF) في 20 يونيو/حزيران 2012. تم الاطلاع عليه في 27 أكتوبر/تشرين الأول 2008 .
- ↑ سوريانارايانا، جيريش (2015). "عملية تطوير البرمجيات مقابل جودة التصميم: صراع محتدم؟" . مجلة IEEE للبرمجيات . 32 (4): 7-11 . Bibcode : 2015ISoft..32d...7S . doi : 10.1109/MS.2015.87 .
- ↑ "دورة حياة تطوير الأنظمة من" . FOLDOC . تم الاطلاع عليه في 14 يونيو 2013 .
- ↑ "دورة حياة تطوير البرمجيات (SDLC)" (ملف PDF) . softwarelifecyclepros.com . مايو 2012. تم الاطلاع عليه في 26 يونيو 2025 .
- ↑ "نظرة عامة على دورة حياة تطوير البرمجيات: النماذج والمنهجيات" . تم الاطلاع عليه بتاريخ 12 ديسمبر 2021 .
- ↑ آردن، تريفور (1991). تطبيقات تكنولوجيا المعلومات . لندن: بيتمان. ISBN 978-0-273-03470-4.
- ↑ "ما هو سكروم؟" . 24 ديسمبر 2019.
- ↑ رالف، بول (أبريل 2015). "نظرية بناء المعنى والتطور المشترك والتنفيذ في تصميم البرمجيات" . مجلة علوم برمجة الحاسوب . 101 : 21-41 . arXiv : 1302.4061 . doi : 10.1016/j.scico.2014.11.007 . ISSN 0167-6423 . تاريخ الاسترجاع: 6 مايو 2026 .
- ↑ تايلور، جيمس (2004). إدارة مشاريع تكنولوجيا المعلومات . ص 39.
- 1 2 3 جيفري إليوت (2004). تكنولوجيا معلومات الأعمال العالمية: منهج النظم المتكاملة . بيرسون للتعليم. ص 87.
- ↑ بوهم، باري؛ لين، جو آن (2010). "عمليات جديدة لآفاق جديدة: نموذج الالتزام التدريجي" . المؤتمر الدولي الثاني والثلاثون لهندسة البرمجيات، ACM/IEEE، 2010. doi : 10.1145 /1810295.1810450 .
- ↑ "مقدمة بقلم جيسون فريد | حسّن لياقتك البدنية" . basecamp.com . تم الاطلاع عليه بتاريخ 11 سبتمبر 2022 .
- ↑ "هل برنامج Shape Up مجرد نظرية جيدة؟" . مختبر كيوريوس . تم الاطلاع عليه بتاريخ 12 سبتمبر 2022 .
- 1 2 وزارة العدل الأمريكية (2003). إدارة موارد المعلومات الفصل 1. مقدمة.
- ↑ إيفرات، جي دي؛ ماكلويد، آر جونيور (2007). "الفصل 2: دورة حياة تطوير البرمجيات" . اختبار البرمجيات: الاختبار عبر دورة حياة تطوير البرمجيات بأكملها . جون وايلي وأولاده. ص 29-58 . ISBN 9780470146347.
- ↑ أونيلكار، ب. (2016). فن الممارسة الرشيقة: منهج متكامل للمشاريع والمنظمات . مطبعة سي آر سي. ص 56-59 . ISBN 9781439851197.
- ↑ لاند، إس كيه ؛ سميث، دي بي؛ والتز، جيه دبليو (2012). الدعم العملي لتعريف عملية تطوير البرمجيات وفق منهجية لين 6 سيجما: استخدام معايير هندسة البرمجيات الصادرة عن معهد مهندسي الكهرباء والإلكترونيات . جون وايلي وأولاده. ص 341-343 . ISBN 9780470289952.
- ↑ بوست، ج.، وأندرسون، د.، (2006). نظم المعلومات الإدارية: حل مشكلات الأعمال باستخدام تكنولوجيا المعلومات . (الطبعة الرابعة). نيويورك: ماكجرو هيل إروين.
روابط خارجية
- اختيار نهج التطوير مؤرشف في 2 يناير 2019، في Wayback Machine على cms.hhs.gov.
- جيرهارد فيشر، "تكنولوجيا البرمجيات في القرن الحادي والعشرين: من إعادة استخدام البرمجيات إلى تصميم البرمجيات التعاوني"، مؤرشف في 15 سبتمبر 2009، في أرشيف الإنترنت (Wayback Machine )، 2001
- عملية تطوير البرمجيات
- المنهجية
- هندسة البرمجيات
