Software configuration management
Software configuration management (SCM), a.k.a. software change and configuration management (SCCM),[1] is the software engineering practice of tracking and controlling changes to a software system. It is part of the larger cross-disciplinary field of configuration management (CM).[2] SCM includes version control and the establishment of baselines.
Goals
The goals of SCM include:[3]
- Configuration identification - Identifying configurations, configuration items and baselines.
- Configuration control - Implementing a controlled change process. This is usually achieved by setting up a change control board whose primary function is to approve or reject all change requests that are sent against any baseline.
- Configuration status accounting - Recording and reporting all the necessary information on the status of the development process.
- Configuration auditing - Ensuring that configurations contain all their intended parts and are sound with respect to their specifying documents, including requirements, architectural specifications and user manuals.
- Build management - Managing the process and tools used for builds.
- Process management - Ensuring adherence to the organization's development process.
- Environment management - Managing the software and hardware that host the system.
- Teamwork - Facilitate team interactions related to the process.
- Defect tracking - Making sure every defect has traceability back to the source.
With the introduction of cloud computing and DevOps the purposes of SCM tools have become merged in some cases. The SCM tools themselves have become virtual appliances that can be instantiated as virtual machines and saved with state and version. The tools can model and manage cloud-based virtual resources, including virtual appliances, storage units, and software bundles. The roles and responsibilities of the actors have become merged as well with developers now being able to dynamically instantiate virtual servers and related resources.[4]
History
يمكن تتبع تاريخ إدارة تكوين البرمجيات (SCM) إلى خمسينيات القرن الماضي، عندما طُبقت إدارة التكوين (CM)، التي كانت تُستخدم في الأصل لتطوير الأجهزة ومراقبة الإنتاج، على تطوير البرمجيات. كانت البرمجيات المبكرة تُخزن على وسائط مادية، مثل البطاقات والأشرطة وغيرها. وكانت إدارة تكوين البرمجيات الأولى عملية يدوية. مع تطور اللغات وزيادة التعقيد، أصبحت هندسة البرمجيات ، التي تشمل إدارة التكوين وغيرها من الأساليب، ذات أهمية بالغة نظرًا لقضايا مثل الجدول الزمني والميزانية والجودة. أدت الدروس العملية المستفادة على مر السنين إلى تعريف وإنشاء إجراءات وأدوات. وفي نهاية المطاف، أصبحت هذه الأدوات أنظمة لإدارة تغييرات البرمجيات. [ 5 ] طُرحت ممارسات على مستوى الصناعة كحلول، إما بطريقة مفتوحة أو احتكارية (مثل نظام التحكم في المراجعات ). مع تزايد استخدام الحواسيب، ظهرت أنظمة تُغطي نطاقًا أوسع، بما في ذلك إدارة المتطلبات ، وبدائل التصميم، ومراقبة الجودة، وغير ذلك؛ واتبعت الأدوات اللاحقة إرشادات منظمات، مثل نموذج نضج القدرات لمعهد هندسة البرمجيات .
أمثلة
- أنسيبل – منصة برمجية مفتوحة المصدر لتكوين وإدارة أجهزة الكمبيوتر عن بُعد
- برنامج إدارة التكوين CFEngine
- Chef – أداة إدارة التكوين، صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه
- LCFG – نظام إدارة تكوين الحاسوب
- NixOS – توزيعة لينكس
- شركة أوبن ميك للبرمجيات - شركة ديف أوبس
- قضاعة
- ببت – برنامج إدارة التكوين مفتوح المصدر
- برنامج إدارة التكوين Salt
- ريكس - برنامج مفتوح المصدر
انظر أيضاً
- إدارة دورة حياة التطبيقات – إدارة منتجات برامج الحاسوب طوال دورات تطويرها
- مقارنة برامج إدارة التكوين مفتوحة المصدر
- مقارنة برامج التحكم في الإصدارات
- أتمتة التكوين المستمر – أتمتة نشر وتكوين البرامج لمراكز البيانات
- قائمة برامج التحكم في الإصدارات
- البنية التحتية كبرنامج – أسلوب إدارة مراكز البيانات
مراجع
- ↑ أبحاث غارتنر وفورستر
- ↑ روجر س. بريسمان (2009). هندسة البرمجيات: منهج عملي ( الطبعة الدولية السابعة). نيويورك: ماكجرو هيل.
- ↑ "معيار IEEE لإدارة التكوين في هندسة النظم والبرمجيات" . IEEE Std 828-2012 (مراجعة لمعيار IEEE Std 828-2005) . doi : 10.1109/ieeestd.2012.6170935 . تاريخ الاسترجاع : 26-05-2026 .
- ↑ آميس، أ؛ بيدل، س؛ بان، ت.م؛ زو، ب.إكس (5 يونيو 2012). "تطوير تطبيقات سحابية باستخدام أدوات Rational" . IBM DeveloperWorks . IBM.
- ↑ "1988 "دليل لفهم إدارة التكوين في الأنظمة الموثوقة" النظام الوطني لأمن الحاسوب (عبر جوجل )
للمزيد من القراءة
- 828-2012 معيار IEEE لإدارة التكوين في هندسة الأنظمة والبرمجيات . 2012. doi : 10.1109/IEEESTD.2012.6170935 . ISBN 978-0-7381-7232-3.
- أيلو، ر. (2010). أفضل ممارسات إدارة التكوين: أساليب عملية فعّالة في الواقع (الطبعة الأولى). أديسون-ويسلي. ISBN 0-321-68586-5.
- بابيتش، دبليو إيه (1986). إدارة تكوين البرمجيات، التنسيق لزيادة إنتاجية الفريق . الطبعة الأولى. بوسطن: أديسون-ويسلي
- بيركزوك، أبلتون؛ (2003). أنماط إدارة تكوين البرمجيات: العمل الجماعي الفعال، التكامل العملي (الطبعة الأولى). أديسون-ويسلي. ISBN 0-201-74117-2.
- بيرسوف، إي إتش (1997). عناصر إدارة تكوين البرمجيات. مطبعة جمعية مهندسي الكهرباء والإلكترونيات، لوس ألاميتوس، كاليفورنيا، 1-32
- دينيس، أ.، ويكسوم، ب.هـ.، وتيغاردن، د. (2002). تحليل وتصميم النظم: منهج كائني التوجه باستخدام لغة النمذجة الموحدة (UML). هوبوكين، نيويورك: جون وايلي وأولاده.
- وزارة الدفاع الأمريكية (2001). الدليل العسكري: إرشادات إدارة التكوين (مراجعة أ) (MIL-HDBK-61A) . تم الاطلاع عليه بتاريخ 5 يناير 2010، من الرابط التالي: http://www.everyspec.com/MIL-HDBK/MIL-HDBK-0001-0099/MIL-HDBK-61_11531/
- فوتريل، آر تي وآخرون (2002). إدارة مشاريع البرمجيات عالية الجودة. الطبعة الأولى. برنتيس هول.
- المنظمة الدولية للتوحيد القياسي (2003). ISO 10007: أنظمة إدارة الجودة - إرشادات لإدارة التكوين .
- سايكي م. (2003). دمج المقاييس في أساليب تطوير نظم المعلومات: تطبيق لتقنية هندسة الأساليب. CAiSE 2003، 374-389.
- سكوت، جيه إيه ونيس، دي. (2001). إدارة تكوين البرمجيات. في: دليل مجموعة معارف هندسة البرمجيات . تم الاسترجاع في 5 يناير 2010، من http://www.computer.org/portal/web/swebok/htmlformat
- بول إم. دوفال، وستيف ماتياس، وأندرو غلوفر (2007). التكامل المستمر: تحسين جودة البرمجيات وتقليل المخاطر . (الطبعة الأولى). أديسون-ويسلي بروفيشنال. ISBN 0-321-33638-0.
روابط خارجية
- إدارة التكوين
- هندسة البرمجيات
- معايير IEEE
- أنواع الأدوات المستخدمة في تطوير البرمجيات
