2010-02-07 9 views
5

ऐसे कई टूल हैं जिनका उपयोग हम मॉड्यूल, स्रोत कोड फ़ाइलों, कक्षाओं या कार्यों आदि के बीच निर्भरताओं को दिखाने के लिए कर सकते हैं लेकिन चर के बीच निर्भरताओं का विश्लेषण करने के लिए कोई उपकरण नहीं लगता है। चर के एक निर्भरता ग्राफ को देखते हुए कोड को समझने और पुन: सक्रिय करने के लिए सहायक होगा।क्या कोई ऐसा उपकरण है जो सी # प्रोग्राम में चर के बीच निर्भरताओं का विश्लेषण कर सकता है?

उदाहरण के लिए, यदि चर ख केवल चर ग के मान की गणना के लिए प्रयोग किया जाता है इस प्रकार है:

b = a; 
.... 
c = b + 2; 

हो सकता है कि हम चर ख को दूर कर सकता है कोड अधिक पठनीय बनाने के लिए:

.... 
c = a + 2; 

अगर कोड बहुत जटिल है या बहुत खराब गंध है तो इस प्रकार का रिफ्रैक्टरी कठिन हो सकता है।

क्या कोई ऐसा उपकरण है जो सी # या अन्य प्रोग्रामिंग भाषाओं में चर के बीच निर्भरताओं का विश्लेषण कर सकता है?

+1

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

+0

एरिक लिपर्ट: "चर" के अधिक प्रकार का विश्लेषण किया जा सकता है, कोड का रिफ्रैक्टरी काम आसान होगा। मैंने पाया कि आमतौर पर कई जटिल निर्भरताएं होती हैं जब मैंने विरासत कोड को दोबारा करने की कोशिश की। – askalee

उत्तर

1

Resharper सी # कोड का विश्लेषण करने के लिए एक अच्छा उपकरण है। कम से कम यह आपको अप्रयुक्त चर और चर दिखाएगा कि आप मान असाइन करते हैं लेकिन कभी भी उपयोग नहीं करते हैं।

यदि आप अपने कोड के गंभीर रिफैक्टरिंग पर विचार करते हैं, तो आप यूनिट परीक्षण लिख सकते हैं ताकि आप यह सुनिश्चित कर सकें कि आप कुछ तोड़ नहीं सकते हैं।

1

माइक्रोसॉफ्ट रिसर्च में Phoenix Project ने कुछ सुंदर रोचक टूल सक्षम किए हैं। मैंने देखा एक डेमो डेटा-निर्भरताओं को हाइलाइट करता है। तो आप अपने उदाहरण में 'सी' पर होवर कर सकते हैं, और उस गणना में योगदान देने वाले सभी अभिव्यक्तियों को हाइलाइज्ड किया जाएगा। यह पूरी तरह से विकसित डेवलपर टूल की तुलना में फीनिक्स का एक डेमो था, लेकिन यह देखने के लिए बहुत अच्छा था कि यह किया जा सकता है। फीनिक्स free download है, इसलिए आप देख सकते हैं कि किस प्रकार के नमूना ऐप्स शामिल हैं।

0

DMS Software Reengineering Toolkit डेटा प्रवाह विश्लेषण (नियंत्रण और) कैसे करता है इस पर चर्चा देखें। यह अनिवार्य रूप से सूचना प्रवाह के क्लासिक कंपाइलर विश्लेषण है, जिसमें डीफ-यूज चेन कहा जाता है। उपयोग-श्रृंखला दिखाती है कि कार्यक्रम के अन्य हिस्सों द्वारा मूल्य (एक विशिष्ट असाइनमेंट) का उपभोग कैसे किया जाता है।

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

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

Grammatech सी और एडीए के लिए इस तरह के कार्यक्रम स्लाइसर बना देता है, मुझे लगता है।

संबंधित मुद्दे

 संबंधित मुद्दे