← नवीनतम पेपर
💻 computer science

An Event-Driven Tool for Context-Aware Code Smell Detection Using SmellDSL

यह शोध पत्र स्मेलहंटर (SmellHunter) प्रस्तुत करता है, जो एक इवेंट-ड्रिवन, कॉन्टेक्स्ट-अवेयर टूल है जो कोड स्मेल्स का पता लगाने और इकलिप्स (Eclipse) वातावरण के भीतर सूचित रिफैक्टरिंग निर्णयों के लिए स्थान-आधारित अंतर्दृष्टि प्रदान करने हेतु एक डोमेन-विशिष्ट भाषा (SmellDSL) के माध्यम से स्टैटिक कोड मेट्रिक्स को प्रोजेक्ट और टीम मेटाडेटा के साथ एकीकृत करता है।

मूल लेखक: Matheus dos Santos Viegas, Adrian Gabriel Keller dos Santos, Kleinner Farias, Robson Keemps da Silva

प्रकाशित 2026-05-21
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Matheus dos Santos Viegas, Adrian Gabriel Keller dos Santos, Kleinner Farias, Robson Keemps da Silva

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

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

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

SmellHunter एक नया, स्मार्ट टूल है जिसे इसे ठीक करने के लिए डिज़ाइन किया गया है। यह कैसे काम करता है, इसके लिए सरल उपमाओं का उपयोग किया गया है:

1. कस्टम नियम पुस्तिका (SmellDSL)

एक कठोर, एक ही आकार के नियम वाली नियम पुस्तिका के बजाय, SmellHunter टीमों को अपनी खुद की कस्टम नियम पुस्तिकाएं लिखने की अनुमति देता है, जिसे SmellDSL नामक एक विशेष भाषा का उपयोग करके बनाया जाता है।

  • उपमा: कल्पना कीजिए कि आर्किटेक्ट्स की एक टीम यह तय करती है कि उनके विशिष्ट भवन निर्माण प्रोजेक्ट के लिए, 50 खिड़कियों वाला कमरा होना ठीक है, लेकिन एक ऐसा दरवाज़ा जो दीवार में खुलता हो, वह एक आपदा है। SmellHunter उन्हें इन विशिष्ट नियमों को लिखने की अनुमति देता है। यह केवल सामान्य "गड़बड़ी" की तलाश नहीं करता; यह उस विशिष्ट गड़बड़ी की तलाश करता है जिसकी इस विशेष टीम को परवाह है।

2. "इवेंट-ड्रिवन" (घटना-आधारित) वितरण प्रणाली

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

  • उपमा: जैसे ही कोई डेवलपर अपने कोड की जाँच करने के लिए अनुरोध भेजता है, यह एक स्मार्ट कन्वेयर बेल्ट (जिसे Smel Bus कहा जाता है) में एक पैकेज छोड़ने जैसा है।
    • स्टेशन 1 (वैलिडेशन): एक रोबोट जाँचता है कि क्या पैकेज सही ढंग से सील किया गया है और पता असली है।
    • स्टेशन 2 (इंटरप्रिटेशन): दूसरा रोबोट कस्टम नियम पुस्तिका को पढ़ता है और कोड की उसके विरुद्ध जाँच करता है।
    • स्टेशन 3 (स्टोरेज): तीसरा रोबोट परिणामों को क्लाउड डेटाबेस में फाइल करता है।
  • क्योंकि ये स्टेशन स्वतंत्र और एसिंक्रोनस (अतुल्यकालिक) रूप से काम करते हैं, इसलिए डेवलपर को इंतज़ार नहीं करना पड़ता। वे अपना भारी काम बैकग्राउंड में होने देते हुए अपना काम जारी रख सकते हैं।

3. संदर्भ जोड़ना: "कहाँ" और "कौन"

यह सबसे अनूठा हिस्सा है। पुराने उपकरण सिर्फ इतना कहते हैं, "यहाँ एक स्मेल है।" SmellHunter कहता है, "यहाँ एक स्मेल है, इस विशिष्ट शहर में, इस विशिष्ट प्रोजेक्ट में, और इस विशिष्ट टीम द्वारा संभाला जा रहा है।"

  • उपमा: पुस्तकालय के मानचित्र की कल्पना करें। केवल "गड़बड़ किताब" अंकित करने के बजाय, SmellHunter अंकित करता है " न्यूयॉर्क ब्रांच में, टीम अल्फा द्वारा लिखित, सर्दियों की भीड़ के दौरान एक गड़बड़ किताब।"
  • इससे टीमों को यह समझने में मदद मिलती है, "ओह, गड़बड़ किताबें केवल सर्दियों के दौरान न्यूयॉर्क ब्रांच में ही हो रही हैं।" वे फिर उस विशिष्ट स्थान पर एक विशेषज्ञ ("Smell Hunter") भेज सकते हैं ताकि मूल कारण को ठीक किया जा सके, बजाय इसके कि वे पूरी दुनिया की हर किताब को ठीक करने की कोशिश करें।

4. डैशबोर्ड और मोबाइल ऐप

यह टूल डेवलपर्स के कंप्यूटरों (एक Eclipse प्लगइन के माध्यम से) और उनके फोन (एक मोबाइल ऐप के माध्यम से) से जुड़ता है।

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

यह क्यों मायने रखता है?

पेपर का दावा है कि SmellHunter स्थिर, सार्वभौमिक नियमों से गतिशील, टीम-विशिष्ट संदर्भ की ओर बढ़कर खेल बदल देता है।

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

संक्षेप में, SmellHunter एक संदर्भ-जागरूक, इवेंट-ड्रिवन जासूस है जो सॉफ्टवेयर टीमों को उनके विशिष्ट डिज़ाइन दोषों को खोजने और ठीक करने में मदद करता है, बिना उनके दैनिक काम को रोके, और मार्ग दिखाने के लिए कस्टम नियमों और वास्तविक दुनिया के स्थान डेटा का उपयोग करता है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →