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

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

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

उद्देश्य
एससीएम के लक्ष्य सामान्यतः निम्नलिखित हैं:


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

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

इतिहास
कंप्यूटिंग में सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन (एससीएम) का इतिहास 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