تاريخ إدارة تكوين البرامج

يمكن تتبع تاريخ إدارة تكوين البرمجيات (SCM) إلى خمسينيات القرن الماضي، عندما طُبقت إدارة التكوين (CM)، التي كانت تُستخدم في الأصل لتطوير الأجهزة ومراقبة الإنتاج، على تطوير البرمجيات. كانت البرمجيات المبكرة تُخزن على وسائط مادية، مثل البطاقات والأشرطة وغيرها. وكانت إدارة تكوين البرمجيات الأولى عملية يدوية. مع تطور اللغات وزيادة التعقيد، أصبحت هندسة البرمجيات ، التي تشمل إدارة التكوين وغيرها من الأساليب، ذات أهمية بالغة نظرًا لقضايا مثل الجدول الزمني والميزانية والجودة. أدت الدروس العملية المستفادة على مر السنين إلى تعريف وإنشاء إجراءات وأدوات. وفي نهاية المطاف، أصبحت هذه الأدوات أنظمة لإدارة تغييرات البرمجيات. [ 1 ] طُرحت ممارسات على مستوى الصناعة كحلول، إما بطريقة مفتوحة أو احتكارية (مثل نظام التحكم في المراجعات ). مع تزايد استخدام الحواسيب، ظهرت أنظمة تُغطي نطاقًا أوسع، بما في ذلك إدارة المتطلبات ، وبدائل التصميم، ومراقبة الجودة، وغير ذلك؛ واتبعت الأدوات اللاحقة إرشادات منظمات، مثل نموذج نضج القدرات لمعهد هندسة البرمجيات .

الجدول الزمني

  • أوائل الستينيات أو حتى أواخر الخمسينيات: تحديث مركز السيطرة على الأمراض وتحديث IBM IEB_UPDATE. [ 2 ]
  • أواخر الستينيات وحتى السبعينيات: أصدرت شركة Applied Data Research برنامج The Librarian الذي يوفر بديلاً لحفظ البرامج على بطاقات مثقبة لسوق الحواسيب المركزية من IBM . [ 3 ]
  • أواخر الستينيات وأوائل السبعينيات: قدم البروفيسور ليون بريسور في جامعة كاليفورنيا، سانتا باربرا، أطروحة حول التحكم في التغيير والتكوين. جاء هذا المفهوم استجابةً لعقد كان يعمل عليه مع شركة مقاولات دفاعية تصنع محركات طائرات للبحرية الأمريكية .
  • أوائل سبعينيات القرن العشرين: يونكسmake .
  • بحلول عام 1970، أصبح تحديث مركز السيطرة على الأمراض منتجًا متطورًا.
  • حوالي عام 1972: ورقة بحثية من مختبرات بيل تصف الخوارزمية الأصلية diff.
  • 1972، مع ورقة بحثية في IEEE عام 1975: نظام التحكم في شفرة المصدر، SCCS ، مارك روشكيند، مختبرات بيل. تمت برمجته في الأصل بلغة SNOBOL لنظام التشغيل OS/360 ؛ ثم أعيدت كتابته لاحقًا بلغة C لنظام Unix (استخدم diff لمقارنة الملفات).
  • في سبعينيات القرن العشرين: قدمت شركة Pansophic Systems التي تتخذ من مدينة ليسل بولاية إلينوي مقراً لها، نظام PANVALET، الذي كان نظاماً مبكراً للتحكم في شفرة المصدر لسوق الحواسيب المركزية. [ 4 ]
  • 1975: تطور عمل البروفيسور بريسور في النهاية إلى منتج متاح تجارياً يسمى التحكم في التغيير والتكوين (CCC) والذي تم بيعه من قبل شركة SoftTool.
  • نظام التحكم في المراجعة ( RCS ، والتر تيشي).
  • أوائل الثمانينيات: patch(حوالي عام 1985، لاري وول ).
  • 1984: مساعد عسكري
  • 1986: نظام الإصدارات المتزامنة ( CVS ).
  • 2000: بدأ التخريب بواسطة CollabNet .
  • أوائل العقد الأول من القرن الحادي والعشرين: أصبحت أنظمة التحكم في الإصدارات الموزعة مثل BitKeeper و GNU arch قابلة للتطبيق.

خلفية

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

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

لقد أدى استخدام أدوات مختلفة بالفعل إلى ظهور توجهات متباينة للغاية.

تطور

الجيل الأول

يُعدّ كلٌّ من SCCS (الذي صدر لأول مرة عام 1973) وDSEE (الذي يُعتبر سلفًا لبرنامج Atria ClearCase )، والذي وُصف عام 1984، [ 6 ] أداتين برمجيتين بارزتين أخريين لأنظمة التحكم في الإصدارات. وتُعتبر هذه الأدوات، إلى جانب نظام التحكم في المراجعات (RCS)، عمومًا الجيل الأول من أنظمة التحكم في الإصدارات كأدوات برمجية مؤتمتة. [ 7 ]

الجيل الثاني

بعد الجيل الأول من أنظمة التحكم في الإصدارات ، يمكن اعتبار أدوات مثل CVS و Subversion ، التي تتميز بمستودع مركزي محلي، بمثابة الجيل الثاني من أنظمة التحكم في الإصدارات. وقد طُوّر نظام CVS (نظام الإصدارات المتزامنة) على بنية RCS، مما حسّن من قابلية توسع الأداة للمجموعات الكبيرة، ولاحقًا PRCS [ 8 ] ، وهي أداة أبسط تشبه CVS وتستخدم أيضًا ملفات مشابهة لملفات RCS، ولكنها تُحسّن ضغط التغييرات باستخدام Xdelta .

بحلول عام 2006 تقريبًا، اعتُبر نظام Subversion الأداة الأكثر شيوعًا واستخدامًا في مجال أنظمة التحكم في الإصدارات من هذا الجيل، وقد سدّ نقاط ضعف مهمة في نظام CVS. لاحقًا، طُوّر نظام SVK بهدف توفير ميزة المساهمة عن بُعد، لكن أساس تصميمه ظل مشابهًا لأسلافه. [ 7 ]

الجيل الثالث

مع تحسن الاتصال بالإنترنت وانتشار تطوير البرمجيات الموزعة جغرافيًا، ظهرت أدوات لا تعتمد على مستودع مركزي مشترك للمشروع. تتيح هذه الأدوات للمستخدمين الاحتفاظ بمستودعات مستقلة (أو نسخ فرعية ) للمشروع، والتواصل بشأن التعديلات عبر مجموعات التغييرات . ومن أمثلة أنظمة التحكم في الإصدارات من الجيل الثالث: BitKeeper و Git و Monotone و darcs و Mercurial و bzr . [ 7 ]

انظر أيضاً

  • التحكم في المراجعات – إدارة إصدارات شفرة المصدر أو البيانات. صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه. 

مراجع

  1. "1988 "دليل لفهم إدارة التكوين في الأنظمة الموثوقة" النظام الوطني لأمن الحاسوب (عبر جوجل )
  2. "قديم: الأسئلة الشائعة حول إدارة التكوين" .
  3. غوتز، مارتن (3 مايو 2002). "مقابلة مع مارتن غوتز" (مقابلة). أجراها جيفري ر. يوست. واشنطن العاصمة: معهد تشارلز باباج، جامعة مينيسوتا. الصفحات 5-7 . تاريخ الاطلاع: 26 مايو 2023 . 
  4. مقابلة تاريخية شفهية مع جوزيف بيسكوبو ، معهد تشارلز باباج ، جامعة مينيسوتا. أسس بيسكوبو شركة بانسوفيك سيستمز عام 1969 وقادها حتى تقاعده عام 1987. تتناول المقابلة تطوير برنامج بانفاليت والاستحواذ على شركة إيزيتريف.
  5. جيه كيه باكلي (1982). إدارة تكوين البرمجيات . ماكميلان. ISBN 0-333-30719-4.
  6. ليبلانغ، ديفيد ب.؛ تشيس، روبرت ب. (مايو 1984). "هندسة البرمجيات بمساعدة الحاسوب في بيئة محطة عمل موزعة" . إشعارات ACM SIGPLAN . 19 (5): 104-112 . doi : 10.1145/390011.808255 .
  7. 1 2 3 ريموند، إريك. "فهم أنظمة التحكم في الإصدارات (مسودة)" . www.catb.org . تم الاطلاع عليه بتاريخ 13 فبراير 2017 .
  8. ماكدونالد، جوشوا ب (9 مايو 2004). "نظام التحكم في مراجعة المشروع PRCS" . تم الاسترجاع في 29 أكتوبر 2021 .