विरोधी प्रतिरूप

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

चूँकि, 1998 की पुस्तक विरोधी प्रतिरूप ने इस विचार को लोकप्रिय बनाया था और सॉफ्टवेयर वास्तुकला और योजना प्रबंधन को सम्मलित करने के लिए सॉफ्टवेयर डिजाइन किया था। अन्य लेखकों ने पर्यावरण, संगठनात्मक, सांस्कृतिक विरोधी प्रतिरूप को सम्मलित करने के लिए इसे और आगे बढ़ाया था।

परिभाषा
डिज़ाइन प्रतिरूप के लेखकों के अनुसार, विरोधी प्रतिरूप में दो प्रमुख तत्व होते है जो इसे एक बुरे अभ्यास या बुरे विचार से अलग करते है:


 * 1) विरोधी प्रतिरूप सामान्यतः उपयोग की जाने वाली प्रक्रिया, संरचना का प्रतिरूप होता है, जो प्रारंभ में किसी समस्या के लिए उचित और प्रभावी प्रतिक्रिया प्रतीत होने के अतिरिक्त, अच्छे परिणामों की तुलना में अधिक बुरे परिणाम देता है।
 * 2) उस समस्या का एक और समाधान उपस्थित होता है जिसे विरोधी प्रतिरूप संबोधित करने का प्रयास करता है। यह समाधान प्रलेखित होता है, दोहराने योग्य होता है, और जहां विरोधी प्रतिरूप नहीं होता है वहां भी प्रभावी सिद्ध होता है।

सामान्यतः जो उपयोग किया जाता है उसके लिए एक मार्गदर्शिका प्रतिरूप के समान "तीन में से एक नियम" होता है: एक विरोधी प्रतिरूप होने के लिए इसे कम से कम तीन बार घटित होना होता है।

उपयोग
किसी समस्या स्थान का विश्लेषण करने और विशेषज्ञ ज्ञान प्राप्त करने के लिए विरोधी प्रतिरूप का दस्तावेजीकरण एक प्रभावी विधि हो सकती है।

जबकि कुछ विरोधी प्रतिरूप विवरण केवल प्रतिरूप के प्रतिकूल परिणामों का दस्तावेजीकरण करते है, अच्छा विरोधी प्रतिरूप दस्तावेज़ीकरण विरोधी प्रतिरूप को सुधारने का एक विकल्प या साधन भी प्रदान करता है।

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

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

यह शब्द ब्रायन फूटे और जोसेफ योडर के 1997 के पेपर में लोकप्रिय हुआ था, जो इस शब्द को परिभाषित करता है:

फूटे और योडर ने इस प्रकार की वास्तुकला के लिए 'मिट्टी की बड़ी गेंद' शब्द के प्रवर्तक के रूप में ब्रायन मैरिक को श्रेय दिया है।

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

यह भी देखें

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

अग्रिम पठन

 * Later re-printed in:
 * Later re-printed in:

बाहरी संबंध

 * Anti-pattern at WikiWikiWeb