تطوير البرمجيات مفتوحة المصدر
تطوير البرمجيات مفتوحة المصدر ( OSSD ) هو عملية تطوير البرمجيات مفتوحة المصدر ، أو برمجيات مشابهة متاحة شفرتها المصدرية للعموم، من خلال مشروع برمجيات مفتوحة المصدر . تُتاح هذه البرمجيات مع شفرتها المصدرية بموجب ترخيص مفتوح المصدر، مما يسمح بدراستها وتعديلها وتحسين تصميمها. من أمثلة البرمجيات مفتوحة المصدر الشائعة: موزيلا فايرفوكس ، وجوجل كروميوم ، وأندرويد ، وليبر أوفيس ، ومشغل الوسائط VLC .
تاريخ
في عام ١٩٩٧، ألّف إريك س. ريموند كتاب "الكاتدرائية والبازار" . [ ١ ] في هذا الكتاب، يُفرّق ريموند بين نوعين من تطوير البرمجيات . الأول هو التطوير التقليدي مغلق المصدر . هذا النوع من أساليب التطوير، بحسب ريموند، يُشبه بناء كاتدرائية؛ تخطيط مركزي، تنظيم مُحكم، وعملية واحدة من البداية إلى النهاية. أما الثاني فهو التطوير التدريجي مفتوح المصدر، والذي يُشبه "بازارًا صاخبًا مليئًا بأجندات ومناهج مُختلفة، لا يُمكن أن يظهر منه نظام مُتماسك ومستقر إلا من خلال سلسلة من المعجزات". يُشير هذا التشبيه الأخير إلى النقاش الدائر في عملية تطوير البرمجيات مفتوحة المصدر.
بحسب بار وفوجل، تكمن الاختلافات بين أسلوبي التطوير عمومًا في كيفية التعامل مع تقارير الأخطاء وطلبات الميزات (وإنشائها) ، والقيود التي يعمل في ظلها المبرمجون. [ 2 ] في تطوير البرمجيات المغلقة المصدر، يقضي المبرمجون وقتًا طويلًا في التعامل مع تقارير الأخطاء وإنشائها، فضلًا عن معالجة طلبات الميزات. ويُخصص هذا الوقت لوضع خطط التطوير المستقبلية وتحديد أولوياتها. يؤدي هذا إلى انشغال جزء من فريق التطوير بهذه المشكلات بدلًا من التركيز على التطوير الفعلي. كما أن فرق التطوير في المشاريع المغلقة المصدر غالبًا ما تعمل في ظل قيود إدارية (مثل المواعيد النهائية والميزانيات، إلخ) تتعارض مع الجوانب التقنية للبرنامج. أما في تطوير البرمجيات مفتوحة المصدر، فتُحل هذه المشكلات من خلال إشراك مستخدمي البرنامج في عملية التطوير، أو حتى السماح لهم ببناء النظام بأنفسهم.
نموذج

يمكن تقسيم تطوير البرمجيات مفتوحة المصدر إلى عدة مراحل. المراحل المحددة هنا مستمدة من دراسة شارما وآخرون [ 3 ] . يظهر على اليمين مخطط يوضح بنية البيانات والعمليات في تطوير البرمجيات مفتوحة المصدر. في هذا المخطط، تظهر مراحل تطوير البرمجيات مفتوحة المصدر، بالإضافة إلى عناصر البيانات المقابلة. وقد تم إعداد هذا المخطط باستخدام تقنيات النمذجة الفوقية ونمذجة العمليات الفوقية .
بدء مشروع مفتوح المصدر
هناك عدة طرق يمكن من خلالها بدء العمل على مشروع مفتوح المصدر:
- الشخص الذي يشعر بالحاجة إلى مشروع ما يعلن نيته تطوير مشروع ما علنًا.
- يقوم مطور يعمل على قاعدة بيانات محدودة ولكنها تعمل، بإصدارها للجمهور كأول إصدار من برنامج مفتوح المصدر.
- يتم نشر الشفرة المصدرية لمشروع ناضج للجمهور.
- يمكن لأي طرف خارجي مهتم أن يقوم بنسخ مشروع مفتوح المصدر راسخ .
لاحظ إريك ريموند في مقالته "الكاتدرائية والبازار" أن الإعلان عن نية مشروع ما عادة ما يكون أقل جودة من طرح مشروع عملي للجمهور.
من الأخطاء الشائعة البدء بمشروع جديد بينما يكون المساهمة في مشروع قائم مماثل أكثر فعالية ( متلازمة معاهد الصحة الوطنية ) . لبدء مشروع ناجح، من المهم جدًا دراسة ما هو موجود بالفعل. تبدأ العملية بالاختيار بين تبني مشروع قائم أو بدء مشروع جديد. في حال بدء مشروع جديد، تنتقل العملية إلى مرحلة التأسيس. أما في حال تبني مشروع قائم، فتنتقل العملية مباشرةً إلى مرحلة التنفيذ.
أنواع المشاريع مفتوحة المصدر
توجد أنواع عديدة من المشاريع مفتوحة المصدر. أولًا، هناك البرامج والمكتبات البرمجية الشائعة، والتي تتكون من أجزاء مستقلة من التعليمات البرمجية. قد يعتمد بعضها على مشاريع أخرى مفتوحة المصدر. تخدم هذه المشاريع غرضًا محددًا وتلبي حاجة معينة. من أمثلة هذا النوع من المشاريع نواة لينكس ، ومتصفح فايرفوكس، وحزمة ليبر أوفيس المكتبية.
التوزيعات نوع آخر من مشاريع البرمجيات مفتوحة المصدر. وهي عبارة عن مجموعات من البرامج المنشورة من مصدر واحد بهدف مشترك. وأبرز مثال على "التوزيعة" هو نظام التشغيل. فهناك العديد من توزيعات لينكس (مثل ديبيان ، وفيدورا كور ، وماندريفا ، وسلاكوير ، وأوبونتو، وغيرها) التي تتضمن نواة لينكس إلى جانب العديد من مكونات واجهة المستخدم. وهناك توزيعات أخرى، مثل ActivePerl ، وهي لغة برمجة بيرل لأنظمة تشغيل مختلفة، وتوزيعات Cygwin لبرامج مفتوحة المصدر لنظام مايكروسوفت ويندوز .
تُحافظ مشاريع أخرى مفتوحة المصدر، مثل مشتقات BSD ، على شفرة المصدر لنظام تشغيل كامل، بما في ذلك النواة وجميع مكوناتها الأساسية، ضمن نظام تحكم واحد في الإصدارات ؛ حيث يتم تطوير النظام بأكمله كفريق واحد. وتتكامل أدوات هذه المشاريع التطويرية لأنظمة التشغيل بشكل وثيق، أكثر من الأنظمة الأخرى القائمة على التوزيعات.
وأخيرًا، هناك مشروع الكتاب أو الوثيقة المستقلة. عادةً لا تُضمّن هذه العناصر ضمن حزمة برامج مفتوحة المصدر. يستضيف مشروع توثيق لينكس العديد من هذه المشاريع التي توثّق جوانب مختلفة من نظام تشغيل لينكس. وهناك أمثلة أخرى كثيرة على هذا النوع من المشاريع مفتوحة المصدر.
طُرق
يصعب إدارة مشروع مفتوح المصدر باتباع أساليب تطوير البرمجيات التقليدية، كنموذج الشلال ، لأن هذه الأساليب لا تسمح بالرجوع إلى مرحلة سابقة. في تطوير البرمجيات مفتوحة المصدر، نادرًا ما تُجمع المتطلبات قبل بدء المشروع، بل تُبنى على الإصدارات الأولية للمنتج البرمجي، كما يوضح روبنز. [ 4 ] إلى جانب المتطلبات، غالبًا ما يُستقطب متطوعون للمساعدة في تطوير المنتج البرمجي بناءً على الإصدارات الأولية. يُعدّ هذا التأثير الشبكي أساسيًا، وفقًا لأبراهامسون وآخرين: "إذا حظي النموذج الأولي المُقدّم باهتمام كافٍ، فسيبدأ تدريجيًا في جذب المزيد من المطورين". مع ذلك، يُشير أبراهامسون وآخرون أيضًا إلى أن مجتمع البرمجيات مفتوحة المصدر قاسٍ للغاية، تمامًا كعالم البرمجيات مغلقة المصدر: "إذا وجدتَ عملاءً، ستنجو، ولكن بدونهم، ستفشل". [ 5 ]
يجادل فوجيتا [ 6 ] بأن "النمذجة السريعة، والتطوير التدريجي والتطوري، ودورة الحياة الحلزونية، والتطوير السريع للتطبيقات، ومؤخرًا البرمجة المتطرفة وعملية تطوير البرمجيات الرشيقة، يمكن تطبيقها على حد سواء على البرمجيات الاحتكارية والمفتوحة المصدر". كما يشير إلى البرمجة المتطرفة كطريقة مفيدة للغاية لتطوير البرمجيات مفتوحة المصدر. وبشكل عام، فإن جميع أساليب البرمجة الرشيقة قابلة للتطبيق على تطوير البرمجيات مفتوحة المصدر، نظرًا لطبيعتها التكرارية والتراكمية. وهناك أساليب رشيقة أخرى مفيدة بنفس القدر لتطوير البرمجيات مفتوحة المصدر ومغلقة المصدر: فمثلاً، يُعد تطوير البرمجيات بسرعة الإنترنت مناسبًا لتطوير البرمجيات مفتوحة المصدر نظرًا لمبدأ التطوير الموزع الذي يتبناه. يستخدم تطوير البرمجيات بسرعة الإنترنت فرقًا موزعة جغرافيًا للعمل على مدار الساعة. هذه الطريقة، التي تتبناها في الغالب الشركات الكبيرة المغلقة المصدر (لأنها الوحيدة التي تملك مراكز تطوير في مناطق زمنية مختلفة)، تعمل بكفاءة مماثلة في المشاريع مفتوحة المصدر لأن البرمجيات التي يطورها عدد كبير من المتطوعين من الطبيعي أن يكون مطوروها منتشرين في جميع المناطق الزمنية.
أدوات
قنوات الاتصال
لا يعمل جميع مطوري ومستخدمي مشروع مفتوح المصدر بالضرورة في مكان واحد، لذا فهم بحاجة إلى وسائل اتصال إلكترونية. يُعد البريد الإلكتروني من أكثر وسائل الاتصال شيوعًا بين مطوري ومستخدمي المشاريع مفتوحة المصدر. غالبًا ما تُستخدم قوائم البريد الإلكتروني لضمان وصول الرسائل إلى جميع الأطراف المعنية في آنٍ واحد، مما يضمن إمكانية ردّ أحد الأعضاء على الأقل. وللتواصل الفوري، تستخدم العديد من المشاريع بروتوكولات المراسلة الفورية مثل IRC . وقد أصبحت منتديات الإنترنت مؤخرًا وسيلة شائعة للمستخدمين للحصول على المساعدة في حل المشكلات التي يواجهونها عند استخدام منتج مفتوح المصدر. كما شاع استخدام مواقع ويكي كوسيلة اتصال بين المطورين والمستخدمين. [ 7 ]
أنظمة التحكم في الإصدارات
في تطوير البرمجيات مفتوحة المصدر، يتوزع المشاركون، وهم في الغالب متطوعون، على مناطق جغرافية مختلفة، لذلك هناك حاجة إلى أدوات لمساعدة المشاركين على التعاون في تطوير شفرة المصدر.
في أوائل العقد الأول من الألفية الثانية، كان نظام الإصدارات المتزامنة (CVS) مثالًا بارزًا على أدوات التعاون في كتابة شفرة المصدر المستخدمة في مشاريع البرمجيات مفتوحة المصدر. يُساعد CVS في إدارة ملفات المشروع وشفراته عندما يعمل عليه عدة أشخاص في الوقت نفسه. يسمح CVS لعدة أشخاص بالعمل على الملف نفسه في آنٍ واحد، وذلك بنقل الملف إلى مجلدات المستخدمين ثم دمج الملفات عند انتهاء المستخدمين من العمل. كما يُتيح CVS استرجاع إصدار سابق من الملف بسهولة. في منتصف العقد الأول من الألفية الثانية، تم إنشاء نظام التحكم في الإصدارات Subversion (SVN) ليحل محل CVS، وهو يكتسب رواجًا سريعًا كنظام للتحكم في إصدارات مشاريع البرمجيات مفتوحة المصدر. [ 7 ]
تستخدم العديد من مشاريع المصادر المفتوحة الآن أنظمة التحكم في الإصدارات الموزعة ، والتي تتميز بقابلية توسع أفضل من المستودعات المركزية مثل SVN وCVS. ومن الأمثلة الشائعة على ذلك git ، المستخدم في نواة لينكس ، [ 8 ] و Mercurial ، المستخدم في لغة برمجة بايثون . [ 9 ]
أدوات تتبع الأخطاء وقوائم المهام
تتطلب معظم المشاريع واسعة النطاق نظامًا لتتبع الأخطاء لمتابعة حالة المشكلات المختلفة في تطوير المشروع.
أدوات الاختبار والتصحيح
نظراً لأن مشاريع البرمجيات مفتوحة المصدر تخضع لعمليات دمج متكررة، تُستخدم أدوات تساعد على أتمتة الاختبارات أثناء دمج الأنظمة . ومن أمثلة هذه الأدوات Tinderbox، الذي يمكّن المشاركين في مشروع البرمجيات مفتوحة المصدر من اكتشاف الأخطاء أثناء دمج الأنظمة. يُشغّل Tinderbox عملية بناء مستمرة ويُعلم المستخدمين بأجزاء شفرة المصدر التي بها مشاكل، وعلى أي منصة (منصات) تظهر هذه المشاكل. [ 7 ]
المصحح هو برنامج حاسوبي يُستخدم لتصحيح أخطاء البرامج الأخرى (وأحيانًا لاختبارها أو تحسينها). يُعدّ مصحح أخطاء جنو (GDB) مثالًا على مصححات الأخطاء المستخدمة في تطوير البرمجيات مفتوحة المصدر. يوفر هذا المصحح إمكانية التصحيح عن بُعد، مما يجعله مناسبًا بشكل خاص لتطوير البرمجيات مفتوحة المصدر.
أداة كشف تسرب الذاكرة أو مصحح أخطاء الذاكرة هي أداة برمجية تُستخدم لاكتشاف تسربات الذاكرة وتجاوزات سعة المخزن المؤقت . تسرب الذاكرة هو نوع من استهلاك الذاكرة غير الضروري من قِبل برنامج حاسوبي، حيث يفشل البرنامج في تحرير الذاكرة التي لم يعد بحاجة إليها. من أمثلة أدوات كشف تسرب الذاكرة التي تستخدمها موزيلا أدوات XPCOM لكشف تسرب الذاكرة. أما أدوات التحقق فتُستخدم للتأكد من توافق أجزاء التعليمات البرمجية مع الصيغة المحددة. ومن أمثلة أدوات التحقق أداة Splint .
إدارة الحزم
نظام إدارة الحزم هو مجموعة من الأدوات لأتمتة عملية تثبيت حزم البرامج وترقيتها وتكوينها وإزالتها من جهاز الكمبيوتر. يُعدّ كلٌّ من مدير حزم Red Hat (RPM) لملفات .rpm وأداة التغليف المتقدمة (APT) لملفات .deb من أنظمة إدارة الحزم المستخدمة في العديد من توزيعات لينكس.
الترويج لمشروع
أدلة البرامج وسجلات الإصدارات:
- دليل البرامج الحرة
مقالات:
- أخبار لينكس الأسبوعية
- IBM developerWorks
انظر أيضاً
مراجع
- ↑ ريموند، إي إس (1999). الكاتدرائية والبازار . أورايلي. تم الاسترجاع من http://www.catb.org/~esr/writings/cathedral-bazaar/ .
- ↑ بار، م. وفوجل، ك. (2003). تطوير البرمجيات مفتوحة المصدر باستخدام نظام التحكم في الإصدارات ، الطبعة الثالثة. دار باراجليف للنشر. ( ISBN) 1-932111-81-6)
- ↑ شارما، س.، سوغوماران، ف.، وراجاغوبالان، ب. (2002). إطار عمل لإنشاء مجتمعات برمجيات هجينة مفتوحة المصدر . مجلة نظم المعلومات 12 (1)، 7-25.
- ↑ روبنز، جيه إي (2003). تبني ممارسات هندسة البرمجيات مفتوحة المصدر (OSSE) من خلال تبني أدوات OSSE . فهم السوق: وجهات نظر حول البرمجيات مفتوحة المصدر والبرمجيات الحرة، خريف 2003.
- ↑ أبراهامسون، ب، سالو، أ. ووارستا، ج. (2002). أساليب تطوير البرمجيات الرشيقة: مراجعة وتحليل . منشورات VTT.
- ↑ فوجيتا، ألفونسو (2003). "البرمجيات مفتوحة المصدر - تقييم". مجلة الأنظمة والبرمجيات . 66 (1): 77-90 . doi : 10.1016/S0164-1212(02)00065-1 .
- 1 2 3 "تيم بيرنرز لي على الإنترنت في الخامسة والعشرين: الماضي والحاضر والمستقبل" . مجلة وايرد البريطانية .
- ↑ "عظمة جيت - مؤسسة لينكس" . www.linuxfoundation.org . تاريخ الاسترجاع: 25 أغسطس 2023 .
- ↑ "PEP 385 – الانتقال من Subversion إلى Mercurial | peps.python.org" . مقترحات تحسين بايثون (PEPs) . تم الاطلاع عليه بتاريخ 8 يناير 2026 .
للمزيد من القراءة
- كافانا، بول (2004). البرمجيات مفتوحة المصدر: التنفيذ والإدارة . تطوير البرمجيات. أمستردام، بوسطن: دار النشر الرقمية إلسيفير. ISBN 978-1-55558-320-0.
- فيلر، جوزيف، محرر. (2005). وجهات نظر حول البرمجيات الحرة والمفتوحة المصدر . كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN 978-0-262-06246-6.
- كوخ، ستيفان، محرر. (2005). تطوير البرمجيات الحرة والمفتوحة المصدر . هيرشي، بنسلفانيا: دار نشر آيديا جروب. رقم ISBN 978-1-59140-370-8.
- فوغل، كارل (2005). إنتاج برمجيات مفتوحة المصدر: كيفية إدارة مشروع برمجيات حرة ناجح ( الطبعة الأولى). بكين؛ سيباستوبول، كاليفورنيا: أورايلي. ISBN 978-0-596-00759-1. OCLC 62322583 .
- موير، سكوت ب. (2005). البرمجيات مفتوحة المصدر . مكتبة هاي تك. مارك ليجوت. برادفورد: دار إميرالد للنشر المحدودة. ISBN 978-1-84544-877-6.
- فيلر، جوزيف (2007). تطوير البرمجيات مفتوحة المصدر، واعتمادها، والابتكار فيها: اجتماع المجموعة العاملة 2.13 التابعة للاتحاد الدولي لمعالجة المعلومات (IFIP) حول البرمجيات مفتوحة المصدر، 11-14 يونيو 2007، ليمريك، أيرلندا . سلسلة IFIP للتقدم في تكنولوجيا المعلومات والاتصالات. بريان فيتزجيرالد، والت سكاتشي، ألبرتو سيليتي. نيويورك، نيويورك: سبرينغر. ISBN 978-0-387-72485-0.
- سو، سليمان ك.؛ ستاميلوس، يوانيس ج.؛ سامولاداس، يوانيس م.، محرران. (2008). الممارسات الناشئة للبرمجيات الحرة والمفتوحة المصدر . هيرشي: دار نشر IGI. رقم ISBN 978-1-59904-210-7. OCLC 84838909 .
- فوغل، كارل (2009). إنتاج برمجيات مفتوحة المصدر: كيفية إدارة مشروع برمجيات حرة ناجح . سيباستوبول: أورايلي ميديا، إنك. ISBN 978-0-596-00759-1.
- إنجارد، نيكول سي. (2010). برمجيات مفتوحة المصدر عملية للمكتبات . سلسلة تشاندوس للمتخصصين في المعلومات. أكسفورد: دار نشر تشاندوس. ISBN 978-1-84334-585-5.
- تاكر، ألين ب.؛ موريللي، رالف؛ دي سيلفا، تشاميندرا (2012). تطوير البرمجيات: منهج المصادر المفتوحة . سلسلة ابتكارات تشابمان آند هول/سي آر سي في هندسة البرمجيات وتطوير البرمجيات. بوكا راتون: تشابمان آند هول/سي آر سي. ISBN 978-1-4398-1290-7.
- هاف، جوردون (2021). كيف التهمت البرمجيات مفتوحة المصدر: فهم حركة المصادر المفتوحة وأكثر من ذلك بكثير ( الطبعة الثانية). بيركلي، كاليفورنيا: Apress LP ISBN 978-1-4842-6799-8.
روابط خارجية
- برامج مجانية ومفتوحة المصدر
