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