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

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

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

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


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

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

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