सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन

सॉफ्टवेयर इंजीनियरिंग में, सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन (एससीएम या एस/डब्ल्यू सीएम) सॉफ्टवेयर में परिवर्तनों को ट्रैक करने और नियंत्रित करने का कार्य है, जो कॉन्फ़िगरेशन प्रबंधन के बड़े क्रॉस-अनुशासनात्मक क्षेत्र का हिस्सा है। एससीएम प्रथाओं में संशोधन नियंत्रण और बेसलाइन (कॉन्फ़िगरेशन प्रबंधन) की स्थापना शामिल है। यदि कुछ गलत होता है, तो एससीएम यह निर्धारित कर सकता है कि परिवर्तन क्या, कब, क्यों और कौन करेगा। यदि कोई कॉन्फ़िगरेशन अच्छी तरह से काम कर रहा है, तो एससीएम यह निर्धारित कर सकता है कि इसे कई होस्टों में कैसे दोहराया जाए।

संक्षिप्त नाम एससीएम को स्रोत कॉन्फ़िगरेशन प्रबंधन प्रक्रिया और सॉफ़्टवेयर परिवर्तन और कॉन्फ़िगरेशन प्रबंधन के रूप में भी विस्तारित किया गया है। हालाँकि, कॉन्फ़िगरेशन को आमतौर पर सिस्टम प्रशासक द्वारा किए गए परिवर्तनों को कवर करने के लिए समझा जाता है।

उद्देश्य
एससीएम के लक्ष्य आम तौर पर हैं:


 * कॉन्फ़िगरेशन पहचान - कॉन्फ़िगरेशन, कॉन्फ़िगरेशन आइटम और बेसलाइन (कॉन्फ़िगरेशन प्रबंधन) की पहचान करना।
 * कॉन्फ़िगरेशन नियंत्रण - परिवर्तन नियंत्रण प्रक्रिया को कार्यान्वित करना। यह आमतौर पर एक परिवर्तन नियंत्रण बोर्ड स्थापित करके प्राप्त किया जाता है जिसका प्राथमिक कार्य किसी भी आधार रेखा के विरुद्ध भेजे गए सभी परिवर्तन अनुरोधों को स्वीकृत या अस्वीकार करना है।
 * कॉन्फ़िगरेशन स्थिति लेखांकन - विकास प्रक्रिया की स्थिति पर सभी आवश्यक जानकारी रिकॉर्ड करना और रिपोर्ट करना।
 * कॉन्फिगरेशन ऑडिटिंग - यह सुनिश्चित करना कि कॉन्फ़िगरेशन में उनके सभी इच्छित भाग शामिल हैं और आवश्यकताओं, वास्तुशिल्प विनिर्देशों और उपयोगकर्ता मैनुअल सहित उनके निर्दिष्ट दस्तावेजों के संबंध में सही हैं।
 * बिल्ड प्रबंधन - बिल्ड के लिए उपयोग की जाने वाली प्रक्रिया और उपकरणों का प्रबंधन।
 * प्रक्रिया प्रबंधन (कंप्यूटिंग) - संगठन की विकास प्रक्रिया का पालन सुनिश्चित करना।
 * पर्यावरण प्रबंधन - सिस्टम को होस्ट करने वाले सॉफ़्टवेयर और हार्डवेयर का प्रबंधन करना।
 * टीम वर्क - प्रक्रिया से संबंधित टीम इंटरैक्शन को सुविधाजनक बनाना।
 * दोष ट्रैकिंग - यह सुनिश्चित करना कि प्रत्येक दोष का स्रोत तक पता लगाया जा सके।

क्लाउड कम्प्यूटिंग और DevOps की शुरूआत के साथ SCM टूल के उद्देश्य कुछ मामलों में विलय हो गए हैं। एससीएम उपकरण स्वयं आभासी उपकरण बन गए हैं जिन्हें आभासी मशीनों के रूप में त्वरित किया जा सकता है और राज्य और संस्करण के साथ सहेजा जा सकता है। उपकरण क्लाउड-आधारित वर्चुअल संसाधनों को मॉडल और प्रबंधित कर सकते हैं, जिनमें वर्चुअल उपकरण, स्टोरेज इकाइयाँ और सॉफ़्टवेयर बंडल शामिल हैं। कलाकारों की भूमिकाएं और जिम्मेदारियां भी विलीन हो गई हैं और डेवलपर्स अब वर्चुअल सर्वर और संबंधित संसाधनों को गतिशील रूप से चालू करने में सक्षम हो गए हैं।

इतिहास
कंप्यूटिंग में सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन (एससीएम) का इतिहास 1950 के दशक की शुरुआत में खोजा जा सकता है, जब मूल रूप से हार्डवेयर विकास और उत्पादन नियंत्रण के लिए सीएम (कॉन्फ़िगरेशन प्रबंधन) को सॉफ़्टवेयर विकास में लागू किया जा रहा था। प्रारंभिक सॉफ़्टवेयर में भौतिक पदचिह्न होते थे, जैसे छिद्रित कार्ड,  छिद्रित टेप  और अन्य मीडिया। पहला सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन एक मैन्युअल ऑपरेशन था। भाषा और जटिलता में प्रगति के साथ, सॉफ्टवेयर इंजीनियरिंग, जिसमें कॉन्फ़िगरेशन प्रबंधन और अन्य तरीके शामिल हैं, शेड्यूल, बजट और गुणवत्ता जैसे मुद्दों के कारण एक प्रमुख चिंता बन गई है। वर्षों से व्यावहारिक पाठों ने प्रक्रियाओं और उपकरणों की परिभाषा और स्थापना का मार्ग प्रशस्त किया है। अंततः, सॉफ़्टवेयर परिवर्तनों को प्रबंधित करने के लिए उपकरण सिस्टम बन गए। उद्योग-व्यापी प्रथाओं को समाधान के रूप में या तो खुले या मालिकाना तरीके से पेश किया गया (जैसे कि संशोधन नियंत्रण प्रणाली)। कंप्यूटर के बढ़ते उपयोग के साथ, ऐसी प्रणालियाँ उभरीं जो आवश्यकताओं के प्रबंधन, डिज़ाइन विकल्प, गुणवत्ता नियंत्रण और बहुत कुछ सहित व्यापक दायरे को संभालती थीं; बाद के उपकरणों ने संगठनों के दिशानिर्देशों का पालन किया, जैसे सॉफ्टवेयर इंजीनियरिंग संस्थान का क्षमता परिपक्वता मॉडल।

यह भी देखें

 * अनुप्रयोग जीवनचक्र प्रबंधन
 * ओपन सोर्स कॉन्फ़िगरेशन प्रबंधन सॉफ़्टवेयर की तुलना
 * संस्करण नियंत्रण सॉफ़्टवेयर की तुलना
 * सतत विन्यास स्वचालन
 * पुनरीक्षण नियंत्रण सॉफ्टवेयर की सूची
 * कोड के रूप में इंफ्रास्ट्रक्चर

अग्रिम पठन

 * Aiello, R. (2010). Configuration Management Best Practices: Practical Methods that Work in the Real World (1st ed.). Addison-Wesley. ISBN 0-321-68586-5.
 * Babich, W.A. (1986). Software Configuration Management, Coordination for Team Productivity. 1st edition. Boston: Addison-Wesley
 * Berczuk, Appleton; (2003). Software Configuration Management Patterns: Effective TeamWork, Practical Integration (1st ed.). Addison-Wesley. ISBN 0-201-74117-2.
 * Bersoff, E.H. (1997). Elements of Software Configuration Management. IEEE Computer Society Press, Los Alamitos, CA, 1-32
 * Dennis, A., Wixom, B.H. & Tegarden, D. (2002). System Analysis & Design: An Object-Oriented Approach with UML. Hoboken, New York: John Wiley & Sons, Inc.
 * Department of Defense, USA (2001). Military Handbook: Configuration management guidance (rev. A) (MIL-HDBK-61A). Retrieved January 5, 2010, from http://www.everyspec.com/MIL-HDBK/MIL-HDBK-0001-0099/MIL-HDBK-61_11531/
 * Futrell, R.T. et al. (2002). Quality Software Project Management. 1st edition. Prentice-Hall.
 * International Organization for Standardization (2003). ISO 10007: Quality management systems – Guidelines for configuration management.
 * Saeki M. (2003). Embedding Metrics into Information Systems Development Methods: An Application of Method Engineering Technique. CAiSE 2003, 374–389.
 * Scott, J.A. & Nisse, D. (2001). Software configuration management. In: Guide to Software Engineering Body of Knowledge. Retrieved January 5, 2010, from http://www.computer.org/portal/web/swebok/htmlformat
 * Paul M. Duvall, Steve Matyas, and Andrew Glover (2007). Continuous Integration: Improving Software Quality and Reducing Risk. (1st ed.). Addison-Wesley Professional. ISBN 0-321-33638-0.
 * Paul M. Duvall, Steve Matyas, and Andrew Glover (2007). Continuous Integration: Improving Software Quality and Reducing Risk. (1st ed.). Addison-Wesley Professional. ISBN 0-321-33638-0.

बाहरी संबंध

 * SCM and ISO 9001 by Robert Bamford and William Deibler, SSQC
 * Use Cases and Implementing Application Lifecycle Management
 * Parallel Development Strategies for Software Configuration Management