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

⚡ स्मार्ट सारांश

सॉफ्टवेयर कॉन्फ़िगरेशन मैनेजमेंट (एससीएम) एक ऐसी प्रक्रिया है जिसका उपयोग सॉफ्टवेयर विकास जीवनचक्र के दौरान दस्तावेज़ों, कोड और अन्य मदों में होने वाले परिवर्तनों को व्यवस्थित रूप से प्रबंधित, संगठित और नियंत्रित करने के लिए किया जाता है। इसका प्राथमिक लक्ष्य उत्पादकता बढ़ाना है, साथ ही सॉफ्टवेयर विकास जीवनचक्र के दौरान होने वाले परिवर्तनों को नियंत्रित करना है।ping गलतियों को न्यूनतम करना।

  • ⚙️ परिभाषा: एससीएम विकास जीवनचक्र के दौरान दस्तावेजों, कोड और संस्थाओं में होने वाले परिवर्तनों को व्यवस्थित रूप से प्रबंधित और नियंत्रित करता है।
  • 🎯 यह क्यों मायने रखता है: यह परिवर्तन की लागत को नियंत्रित करते हुए कई डेवलपर्स, संस्करणों और शाखाओं के बीच समन्वय स्थापित करता है।
  • पांच मुख्य कार्य: कॉन्फ़िगरेशन पहचान, बेसलाइन, परिवर्तन नियंत्रण, स्थिति लेखांकन और ऑडिट।
  • 👥 प्रमुख प्रतिभागी: कॉन्फ़िगरेशन मैनेजर, डेवलपर, ऑडिटर, प्रोजेक्ट मैनेजर और अंतिम उपयोगकर्ता।
  • ???? एससीएम योजना: योजना बनाने में IEEE 828 जैसे मानकों का पालन किया जाता है और इसमें उपकरण, नामकरण और जिम्मेदारियों को परिभाषित किया जाता है।
  • लोकप्रिय उपकरण: गिट, टीम Foundation सर्वर और एंसिबल दोनों ही वर्जन कंट्रोल और ऑटोमेशन को सपोर्ट करते हैं।

सॉफ्टवेयर विन्यास प्रबंधन

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

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

हमें कॉन्फ़िगरेशन प्रबंधन की आवश्यकता क्यों है?

तकनीकी सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन प्रणाली को लागू करने के प्रमुख कारण निम्नलिखित हैं:

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

कॉन्फ़िगरेशन प्रबंधन की आवश्यकता है

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

एससीएम प्रक्रिया में कार्य

  • कॉन्फ़िगरेशन पहचान
  • आधार रेखा
  • नियंत्रण बदलें
  • कॉन्फ़िगरेशन स्थिति लेखा
  • कॉन्फ़िगरेशन ऑडिट और Revसमाचार

कॉन्फ़िगरेशन पहचान

कॉन्फ़िगरेशन पहचान सॉफ़्टवेयर सिस्टम के दायरे को निर्धारित करने की एक विधि है। इस चरण की सहायता से, आप किसी चीज़ को जाने बिना भी उसे प्रबंधित या नियंत्रित कर सकते हैं। इसमें CSCI प्रकार (कंप्यूटर सॉफ़्टवेयर कॉन्फ़िगरेशन आइटम), एक प्रोजेक्ट पहचानकर्ता और संस्करण की जानकारी शामिल होती है।

इस प्रक्रिया के दौरान की गतिविधियाँ:

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

उदाहरण:

login.php नाम की फाइल के बजाय, इसका नाम login_v1.2.php होना चाहिए, जहां v1.2 फाइल के वर्जन नंबर को दर्शाता है।

फ़ोल्डर का नाम रखने के बजाय “Codeइसका नाम “ होना चाहिएCode_D” जहां D का अर्थ है कि कोड का दैनिक बैकअप लिया जाना चाहिए।

आधारभूत

बेसलाइन एक सॉफ्टवेयर कॉन्फ़िगरेशन आइटम का औपचारिक रूप से स्वीकृत संस्करण है। इसे SCM प्रक्रिया के संचालन के दौरान एक विशिष्ट समय पर नामित और तय किया जाता है। इसे केवल औपचारिक परिवर्तन नियंत्रण प्रक्रियाओं के माध्यम से ही बदला जा सकता है।

इस प्रक्रिया के दौरान की गतिविधियाँ:

  • किसी एप्लिकेशन के विभिन्न संस्करणों के निर्माण को सुगम बनाना।
  • इन कार्य उत्पादों के विभिन्न संस्करणों के प्रबंधन के लिए तंत्रों को परिभाषित करना और निर्धारित करना।
  • कार्यात्मक आधार रेखा समीक्षित प्रणाली आवश्यकताओं के अनुरूप है।
  • व्यापक रूप से उपयोग किए जाने वाले आधार रेखाओं में कार्यात्मक, विकासात्मक और उत्पाद आधार रेखाएं शामिल हैं।

सरल शब्दों में, बेसलाइन का अर्थ है रिलीज के लिए तैयार।

नियंत्रण बदलें

परिवर्तन नियंत्रण एक प्रक्रियात्मक विधि है जो कॉन्फ़िगरेशन ऑब्जेक्ट में परिवर्तन करते समय गुणवत्ता और एकरूपता सुनिश्चित करती है। इस चरण में, परिवर्तन अनुरोध सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधक को प्रस्तुत किया जाता है।

इस प्रक्रिया के दौरान की गतिविधियाँ:

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

कॉन्फ़िगरेशन स्थिति लेखा

कॉन्फ़िगरेशन स्थिति लेखांकन tracएससीएम प्रक्रिया के दौरान प्रत्येक रिलीज़ में ks शामिल होता है। इस चरण में शामिल हैं tracप्रत्येक संस्करण में क्या-क्या विशेषताएं हैं और इस संस्करण तक पहुंचने वाले परिवर्तन क्या हैं, यह जानना महत्वपूर्ण है।

इस प्रक्रिया के दौरान की गतिविधियाँ:

  • यह पिछले आधार स्तर में किए गए सभी परिवर्तनों का रिकॉर्ड रखता है ताकि एक नया आधार स्तर प्राप्त किया जा सके।
  • सॉफ्टवेयर कॉन्फ़िगरेशन को परिभाषित करने के लिए सभी मदों की पहचान करें।
  • परिवर्तन अनुरोधों की स्थिति पर नज़र रखें।
  • पिछली बेसलाइन के बाद से हुए सभी परिवर्तनों की पूरी सूची।
  • की अनुमति देता है tracअगले आधारभूत स्तर तक प्रगति का राजा।
  • पिछली रिलीज़/संस्करणों को एक्सपोर्ट करने की अनुमति देता हैtracपरीक्षण के लिए रखा गया।

कॉन्फ़िगरेशन ऑडिट और Revसमाचार

सॉफ़्टवेयर कॉन्फ़िगरेशन ऑडिट यह सत्यापित करता है कि सभी सॉफ़्टवेयर उत्पाद आधारभूत आवश्यकताओं को पूरा करते हैं। यह सुनिश्चित करता है कि जो बनाया गया है वही वितरित किया गया है।

इस प्रक्रिया के दौरान की गतिविधियाँ:

  • कॉन्फ़िगरेशन ऑडिटिंग का संचालन लेखा परीक्षकों द्वारा किया जाता है, जिसमें यह जाँच की जाती है कि परिभाषित प्रक्रियाओं का पालन किया जा रहा है या नहीं, तथा यह सुनिश्चित किया जाता है कि SCM लक्ष्य संतुष्ट हैं।
  • कॉन्फ़िगरेशन नियंत्रण मानकों के अनुपालन को सत्यापित करने, किए गए परिवर्तनों का ऑडिट करने और रिपोर्ट करने के लिए।
  • एससीएम ऑडिट यह भी सुनिश्चित करते हैं कि tracइस प्रक्रिया के दौरान दक्षता बनाए रखी जाती है।
  • यह सुनिश्चित करता है कि बेसलाइन में किए गए परिवर्तन कॉन्फ़िगरेशन स्थिति रिपोर्ट के अनुरूप हों।
  • पूर्णता और संगति का सत्यापन।

एससीएम प्रक्रिया के भागीदार

एससीएम में निम्नलिखित प्रमुख भागीदार हैं:

एससीएम प्रक्रिया के भागीदार

1. कॉन्फ़िगरेशन प्रबंधक

  • कॉन्फ़िगरेशन मैनेजर वह प्रमुख होता है जो कॉन्फ़िगरेशन मदों की पहचान करने के लिए जिम्मेदार होता है।
  • सीएम यह सुनिश्चित करता है कि टीम एससीएम प्रक्रिया का पालन करे।
  • उन्हें परिवर्तन अनुरोधों को स्वीकृत या अस्वीकृत करना होगा।

2। डेवलपर

  • डेवलपर को मानक विकास गतिविधियों या परिवर्तन अनुरोधों के अनुसार कोड में बदलाव करना आवश्यक है। वह कोड के कॉन्फ़िगरेशन को बनाए रखने के लिए जिम्मेदार है।
  • डेवलपर को परिवर्तनों की जांच करनी चाहिए और विवादों को हल करना चाहिए।

3. लेखा परीक्षक

  • लेखा परीक्षक एससीएम लेखापरीक्षा और समीक्षा के लिए जिम्मेदार है।
  • रिलीज की निरंतरता और पूर्णता सुनिश्चित करना आवश्यक है।

4. परियोजना प्रबंधक:

  • यह सुनिश्चित करें कि उत्पाद का विकास एक निश्चित समय सीमा के भीतर हो जाए।
  • विकास की प्रगति पर नजर रखता है और एससीएम प्रक्रिया में आने वाली समस्याओं को पहचानता है।
  • सॉफ्टवेयर सिस्टम की स्थिति के बारे में रिपोर्ट तैयार करें।
  • यह सुनिश्चित करें कि निर्माण, परिवर्तन और परीक्षण के लिए प्रक्रियाओं और नीतियों का पालन किया जाता है।

5। उपयोगकर्ता

अंतिम उपयोगकर्ता को एससीएम (सिस्टम कंट्रोल मैनेजमेंट) की प्रमुख शब्दावली को समझना चाहिए ताकि यह सुनिश्चित हो सके कि उसके पास सॉफ्टवेयर का नवीनतम संस्करण है।

सॉफ्टवेयर विन्यास प्रबंधन योजना

एससीएमपी (सॉफ्टवेयर कॉन्फ़िगरेशन मैनेजमेंट प्लानिंग) प्रक्रिया किसी प्रोजेक्ट के शुरुआती कोडिंग चरणों में ही शुरू हो जाती है। योजना चरण का परिणाम एससीएम योजना होती है, जिसे प्रोजेक्ट के दौरान बढ़ाया या संशोधित किया जा सकता है।

  • एससीएमपी, आईईईई 828 जैसे सार्वजनिक मानक या किसी संगठन-विशिष्ट मानक का पालन कर सकता है।
  • यह प्रबंधित किए जाने वाले दस्तावेज़ों के प्रकार और दस्तावेज़ नामकरण की विधि को परिभाषित करता है। उदाहरण: Test_v1।
  • एससीएमपी उस व्यक्ति को परिभाषित करता है जो संपूर्ण एससीएम प्रक्रिया और बेसलाइन के निर्माण के लिए जिम्मेदार होगा।
  • वर्जन मैनेजमेंट और चेंज कंट्रोल के लिए नीतियों को ठीक करें।
  • एससीएम प्रक्रिया के दौरान उपयोग किए जा सकने वाले उपकरणों को परिभाषित करें।
  • कॉन्फ़िगरेशन जानकारी रिकॉर्ड करने के लिए कॉन्फ़िगरेशन प्रबंधन डेटाबेस.

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

किसी भी परिवर्तन प्रबंधन सॉफ़्टवेयर में निम्नलिखित 3 प्रमुख विशेषताएं होनी चाहिए:

समवर्ती प्रबंधन:

जब दो या दो से अधिक कार्य एक ही समय में चल रहे होते हैं, तो इसे समवर्ती संचालन कहा जाता है। एससीएम के संदर्भ में समवर्तीता का अर्थ है कि एक ही फ़ाइल को एक ही समय में कई व्यक्तियों द्वारा संपादित किया जा रहा है।

यदि SCM उपकरणों के साथ समवर्तीता को सही ढंग से प्रबंधित नहीं किया जाता है, तो इससे कई गंभीर समस्याएं उत्पन्न हो सकती हैं।

संस्करण नियंत्रण:

एससीएम एक आर्काइविंग विधि का उपयोग करता है या फ़ाइल में किए गए प्रत्येक परिवर्तन को सहेजता है। आर्काइविंग या सेव सुविधा की मदद से, किसी भी समस्या की स्थिति में पिछले संस्करण पर वापस जाना संभव है।

Syncआधुनिकीकरण:

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

निम्नलिखित लोकप्रिय उपकरण हैं:

1. गिट: Git एक मुफ़्त और ओपन सोर्स टूल है जो वर्जन कंट्रोल में मदद करता है। इसे सभी तरह के प्रोजेक्ट को तेज़ी और कुशलता से संभालने के लिए डिज़ाइन किया गया है।

डाउनलोड लिंक: https://git-scm.com/

2। टीम Foundation सर्वर: टीम Foundation यह उपकरणों और प्रौद्योगिकियों का एक समूह है जो टीम को उत्पाद निर्माण के लिए सहयोग और समन्वय करने में सक्षम बनाता है।

डाउनलोड लिंक: https://azure.microsoft.com/en-us/services/devops/server/

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

डाउनलोड लिंक: https://www.ansible.com/

अक्सर पूछे जाने वाले प्रश्न

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

एससीएम नियंत्रण और tracसॉफ्टवेयर कॉन्फ़िगरेशन आइटम में बदलाव किए जाते हैं। डेवऑप्स एक व्यापक संस्कृति और प्रथाओं का समूह है जो निरंतर डिलीवरी के लिए विकास और संचालन को एकीकृत करता है। एससीएम उपकरण और बेसलाइन अक्सर उस स्वचालन का समर्थन करते हैं जिस पर डेवऑप्स पाइपलाइन निर्भर करती हैं।

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

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

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

इस पोस्ट को संक्षेप में इस प्रकार लिखें: