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

Beyond Strict Rules: Assessing the Effectiveness of Large Language Models for Code Smell Detection

यह शोध पत्र 30 जावा परियोजनाओं में नौ कोड स्मल्स (code smells) का पता लगाने में चार लार्ज लैंग्वेज मॉडल्स की प्रभावशीलता का मूल्यांकन करता है, जिससे यह पता चलता है कि जबकि वे संरचनात्मक रूप से सरल स्मल्स को पहचानने में उत्कृष्ट हैं, एलएलएम (LLMs) को स्टैटिक एनालिसिस टूल्स के साथ संयोजित करने वाली एक हाइब्रिड रणनीति अधिकांश स्मल्स के लिए बेहतर प्रदर्शन प्रदान करती है, हालांकि इष्टतम दृष्टिकोण अंततः इस पर निर्भर करता है कि प्रिसिजन (precision) को प्राथमिकता दी जा रही है या रिकॉल (recall) को।

मूल लेखक: Saymon Souza, Amanda Santana, Eduardo Figueiredo, Igor Muzetti, João Eduardo Montandon, Lionel Briand

प्रकाशित 2026-06-01
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Saymon Souza, Amanda Santana, Eduardo Figueiredo, Igor Muzetti, João Eduardo Montandon, Lionel Briand

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

मुख्य विचार: कोड में "बुरी आदतों" को ढूँढना

कल्पना कीजिए कि किताबों का एक विशाल पुस्तकालय (सॉफ्टवेयर कोड) है। समय के साथ, कुछ किताबें अस्त-व्यस्त हो जाती हैं। उनके अध्याय बहुत लंबे हो सकते हैं, पन्ने एक ही कहानी को बार-बार दोहरा सकते हैं, या पात्र दूसरों के काम पर बहुत अधिक निर्भर हो सकते हैं। सॉफ्टवेयर इंजीनियरिंग में, इन अस्त-व्यस्त पैटर्न को कोड स्मेल (Code Smells) कहा जाता है। ये ऐसे बग्स नहीं हैं जो प्रोग्राम को क्रैश कर दें, बल्कि ये "बुरी आदतों" की तरह हैं जो बाद में कोड को ठीक करना, अपडेट करना या समझना कठिन बना देते हैं।

वर्षों से, हम इन्हें खोजने के लिए स्टैटिक एनालिसिस टूल्स (Static Analysis Tools) (आइए इन्हें "नियमों की किताबें" कहें) का उपयोग करते आए हैं। नियम की किताबें सख्त होती हैं; वे एक चेकलिस्ट का पालन करती हैं। यदि किसी मेथड (method) में 50 से अधिक लाइनें हैं, तो नियम की किताब कहती है, "यह एक लॉन्ग मेथड (Long Method) है!" यह तेज़ है, लेकिन यह थोड़ा मूर्ख भी हो सकता है। यह एक बिल्कुल सही लंबे मेथड को केवल इसलिए फ्लैग कर सकता है क्योंकि वह लंबा है, या एक छोटे लेकिन खराब दिखने वाले मेथड को मिस कर सकता है जो निर्दोष लगता है।

हाल ही में, लार्ज लैंग्वेज मॉडल्स (LLMs) (आइए इन्हें "स्मार्ट इंटर्न" कहें) प्रसिद्ध हुए हैं। ये एआई (AI) सिस्टम हैं जो कोड को लगभग एक इंसान की तरह पढ़ और समझ सकते हैं। बड़ा सवाल जो यह पेपर पूछता है, वह यह है: क्या ये स्मार्ट इंटर्न, सख्त नियमों की किताबों की तुलना में बुरी आदतों को बेहतर तरीके से खोज सकते हैं?

प्रयोग: 30 लाइब्रेरीज़ के साथ एक टेस्ट

यह पता लगाने के लिए, शोधकर्ताओं ने एक बड़ा "टेस्ट" तैयार किया।

  1. मेन्यू: उन्होंने 30 लोकप्रिय जावा (Java) सॉफ्टवेयर प्रोजेक्ट्स चुने (जैसे 30 अलग-अलग प्रकार के रेस्टोरेंट चुनना)।
  2. मेन्यू आइटम्स: उन्होंने 9 विशिष्ट प्रकार की बुरी आदतों (Code Smells) की तलाश की, जैसे कि:
    • लॉन्ग मेथड (Long Method): एक फंक्शन जो बहुत अधिक करने की कोशिश करता है।
    • लार्ज क्लास (Large Class): एक फाइल जो बहुत अधिक जिम्मेदारियों से भरी हुई है।
    • फीचर एनवी (Feature Envy): एक फंक्शन जो अपने स्वयं के डेटा के बजाय किसी और के डेटा पर काम करने में अधिक समय बिताता है।
  3. जज (Judges): उन्होंने केवल एआई को अनुमान लगाने के लिए नहीं छोड़ा। उन्होंने 76 मानव डेवलपर्स (अच्छी ट्रेनिंग प्राप्त छात्र) से 268 कोड स्निपेट्स का मैन्युअल निरीक्षण करने और यह तय करने के लिए कहा: "क्या यह वास्तव में एक बुरी आदत है, या यह ठीक है?" इसने "ग्राउंड ट्रुथ" (Ground Truth) (आधिकारिक उत्तर कुंजी) बनाया।
  4. प्रतियोगी: उन्होंने 4 अलग-अलग स्मार्ट इंटर्न (DeepSeek-R1, GPT-5 mini, Llama-3.3, और Qwen2.5-Code) को नियमों की किताबों (JDeodorant और PMD जैसे पारंपरिक टूल्स) के खिलाफ खड़ा किया।

परिणाम: कौन जीता?

परिणामों का मिश्रण था—"इंटर्न अद्भुत हैं" और "नियमों की किताबों की भी अपनी जगह है।"

1. आसान चीजें: इंटर्न चमकते हैं

उन स्मल्स के लिए जिन्हें गिनना या मापना आसान है, स्मार्ट इंटर्न शानदार थे।

  • उपमा: यदि बुरी आदत यह है कि "यह किताब 500 पन्नों की है," तो इंटर्न पन्नों को गिनने में नियम की किताब जितना ही सक्षम हैं, लेकिन वे संदर्भ (context) को बेहतर समझते हैं।
  • विजेता: लॉन्ग मेथड (Long Method) और लार्ज क्लास (Large Class) जैसे स्मल्स के लिए, एआई मॉडल बहुत मजबूत प्रदर्शन करते हैं, जो अक्सर सख्त टूल्स की बराबरी करते हैं या उनसे बेहतर होते हैं।

2. पेचीदा चीजें: यह इंटर्न पर निर्भर करता है

उन स्मल्स के लिए जिनमें यह समझने की आवश्यकता होती है कि कोड एक निश्चित तरीके से क्यों लिखा गया है, परिणाम मिले-जुले रहे।

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

3. सबसे कठिन चीजें: दोनों संघर्ष करते हैं

सबसे व्यक्तिपरक (subjective) स्मल्स के लिए, जैसे रिफ्यूज्ड बेक्वेस्ट (Refused Bequest) (एक चाइल्ड क्लास जो अपने पैरेंट के नियमों को अनदेखा करती है) या शॉटगन सर्जरी (Shotgun Surgery) (एक छोटा सा बदलाव जो हर जगह चीज़ों को तोड़ देता है), नियम की किताबें और स्मार्ट इंटर्न दोनों ही संघर्ष करते हैं।

  • उपमा: ये एक ग्रुप चैट में सूक्ष्म सामाजिक अजीब व्यवहार (social awkwardness) की तरह हैं। यह परिभाषित करना कठिन है कि यह समस्या कब बनती है। यहाँ तक कि सबसे स्मार्ट एआई और सबसे सख्त नियम की किताब दोनों को ही इन पर सहमत होने में कठिनाई हुई।

गुप्त हथियार: "वोटिंग कमेटी"

शोधकर्ताओं ने एक चालाक ट्रिक आजमाई। केवल एक एआई या केवल एक नियम की किताब को पूछने के बजाय, उन्होंने सभी (सभी 4 एआई + 2 नियम की किताबें) से हर कोड के टुकड़े पर वोट देने को कहा। यदि 6 में से कम से कम 3 ने कहा, "यह एक स्मेल है," तो उन्होंने इसे एक स्मेल माना।

  • परिणाम: यह "कमेटी" दृष्टिकोण सब कुछ खोजने में सबसे अच्छा (High Recall) था। इसने लगभग सभी बुरी आदतों को पकड़ लिया, यहाँ तक कि पेचीदा वाली भी।
  • चुनौती: क्योंकि यह बुरी आदतों को पकड़ने के लिए बहुत उत्सुक था, इसने कुछ साफ कोड को भी "स्मली" (गलत पहचान/False Positives) के रूप में चिह्नित किया।
  • सबक: यदि आप चाहते हैं कि आप कोई भी समस्या मिस न करें, तो कमेटी का उपयोग करें। यदि आप गलत अलार्म के साथ अपनी टीम को परेशान करने से बचना चाहते हैं, तो उस विशिष्ट कार्य के लिए सबसे अच्छे विशेषज्ञ को चुनें।

निचोड़ (The Bottom Line)

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

संक्षेप में, स्मार्ट इंटर्न मदद करने के लिए तैयार हैं, लेकिन वे सबसे अच्छा तब काम करते हैं जब आपको पता हो कि किस काम के लिए किस इंटर्न को पूछना है, या जब आप उन्हें पुराने नियमों की किताबों के साथ मिलकर काम करने दें।

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

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

Digest आज़माएँ →