2008-09-13 45 views
83

क्या कोई उपकरण उपलब्ध है जो आपकी परियोजना के लिए कोड मेट्रिक्स (उदाहरण के लिए कोड लाइनों, चक्रवात जटिलता, युग्मन, संयोजन) की गणना करेगा और समय के साथ रुझान दिखाते हुए एक ग्राफ उत्पन्न करेगा?कोड मेट्रिक्स की गणना करें

+0

भाषा पर निर्भर करता है, आप किस भाषा का उपयोग कर रहे हैं? –

उत्तर

65

के लिए NDepend मेरी नवीनतम परियोजना पर मैं SourceMonitor इस्तेमाल किया। कोड मेट्रिक्स विश्लेषण के लिए यह एक अच्छा मुफ्त उपकरण है।

  • एक तेज, एकल स्रोत फ़ाइलों के माध्यम से पास में मैट्रिक्स एकत्र:
    यहाँ SourceMonitor आधिकारिक साइट से एक अंश है।
  • सी ++, सी, सी #, वीबीएनईटी, जावा, डेल्फी, विजुअल बेसिक (वीबी 6) या एचटीएमएल में लिखे गए स्रोत कोड के लिए माप मीट्रिक।
  • सी ++, सी, सी #, वीबीएनईटी, जावा, और डेल्फी के लिए विधि और कार्य स्तर मीट्रिक शामिल है।
  • सॉफ़्टवेयर विकास परियोजनाओं के दौरान तुलना के लिए चेकपॉइंट्स में मीट्रिक बचाता है।
  • टेबल और चार्ट में मीट्रिक प्रदर्शित करता है और प्रिंट करता है।
  • एक्सएमएल कमांड फ़ाइलों का उपयोग कर एक मानक विंडोज जीयूआई या अपनी स्क्रिप्ट के अंदर संचालित करता है।
  • एक्सएमएल या सीएसवी (अल्पविराम से अलग मूल्य) फ़ाइलों के लिए मेट्रिक्स निर्यात करता है अन्य उपकरणों के साथ आगे प्रसंस्करण।

NDepend बगल में नेट जो केवल सबसे अच्छा उपकरण है के लिए, मैं vil सिफारिश कर सकते हैं।

+0

SourceMonitor एक विंडोज़-एकमात्र उपकरण प्रतीत होता है। अन्य ऑपरेटिंग सिस्टम (लिनक्स, बीएसडी, मैक) के लिए कुछ समान है? – Mnementh

+0

मानेमेंट, मैं विंडोज़ देव हूं, मुझे एफओएसएस लोगों के लिए ऐसे किसी भी उपकरण को नहीं पता है। शायद आप शराब एमुलेटर के तहत SourceMonitor चलाने की कोशिश कर सकते हैं? – aku

+2

अब सी ++ के लिए एक एनडेंड-टाइप टूल है, सीपीपीडपेन्स्ड – Goosey

2

आप नेट अंतरिक्ष में हैं, तो डेवलपर एक्सप्रेस 'CodeRush एलओसी, cyclomatic जटिलता और (प्रदान करता है:

के बाद उपकरण प्रवृत्ति विश्लेषण प्रदर्शन कर सकते हैं बल्कि उत्कृष्ट, आईएमएचओ) Maintenance Complexity वास्तविक समय में कोड का विश्लेषण।

(रखरखाव जटिलता लिंक के बारे में क्षमा करें; यह Google के कैश पर जा रहा है। मूल ऑफ़लाइन एटीएम लगता है)।

8

मैं अपने आईडीई के लिए कोड मेट्रिक्स टूल/प्लगइन भी ढूंढ रहा था, लेकिन जहां तक ​​मुझे पता है कि वहां कोई नहीं है (ग्रहण के लिए) जो निर्दिष्ट समय अवधि पर जटिलता का ग्राफ भी दिखाता है। हालांकि, मैं eclipse metrics plugin मिला, इसे संभाल कर सकते हैं:

  • McCabe की cyclomatic जटिलता
  • अपवाही कपलिंग
  • तरीके में सामंजस्य का अभाव विधि
  • में कोड का
  • लाइन्स
  • फील्ड्स
  • की संख्या
  • स्तरों की संख्या
  • स्कोप में स्थानीय लोगों की संख्या
  • पैरामीटर की संख्या
  • वक्तव्य
  • प्रति वर्ग

भारित तरीके और यह का उपयोग करते समय, मैं रेखांकन विकल्प आपको साथ ही मांग कर रहे हैं याद नहीं था की संख्या।
मुझे लगता है कि, यदि आपको समय-समय पर ग्राफिंग को संभालने वाले कोई प्लगइन/टूल नहीं मिलते हैं, तो आपको उस टूल को देखना चाहिए जो आपको सबसे अधिक उपयुक्त बनाता है और आपको आवश्यक सारी जानकारी प्रदान करता है; भले ही दी गई जानकारी केवल आपके प्रोजेक्ट के वर्तमान निर्माण के लिए है।

एक तरफ ध्यान दें के रूप में, ग्रहण मैट्रिक्स export the data to an external file लिए प्लगइन की अनुमति देता है आप (लिंक एक उदाहरण को जाता है), इसलिए यदि आप एक स्रोत नियंत्रण उपकरण का उपयोग करें, और आप !, चाहिए आप हमेशा विशिष्ट के लिए डेटा निर्यात कर सकते फ़ाइल को स्रोत कोड के साथ बनाएं और स्टोर करें, इस तरह आपके पास अभी भी समय पर वापस जाने और अंतरों की जांच करने के लिए एक (मूल) तरीका है।

1

पायथन के लिए, pylint कुछ कोड गुणवत्ता मैट्रिक्स प्रदान कर सकते हैं।

0

PHP फ्रंट पर, मुझे विश्वास है कि उदाहरण के लिए phpUnderControl में phpUnit (यदि मुझे गलत नहीं है) के माध्यम से मीट्रिक शामिल हैं।

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

0

आप कुछ प्रवृत्ति विश्लेषण के बाद कर रहे हैं, यह वास्तव में SLOC परे को मापने के लिए कुछ भी मतलब है?

यहां तक ​​कि अगर तुम सिर्फ अर्द्ध कोलन अनुगामी और गिनती लाइनों की संख्या लौटे लिए एक ग्रेप कर रही है, आप के बाद क्या कर रहे हैं SLOC माप तकनीक में निरंतरता है। इस तरह आज के माप की तुलना पिछले महीने के माप के साथ सार्थक तरीके से की जा सकती है।

मैं वास्तव में नहीं देख सकते हैं McCabe Cyclometric जटिलता की प्रवृत्ति क्या देना होगा? मुझे लगता है कि डेवलपर्स को फीडबैक प्रदान करने के लिए गुणवत्ता के स्नैपशॉट के लिए सीसी का अधिक इस्तेमाल किया जाना चाहिए।

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

एचटीएच।

चियर्स,

रोब

2

Code Analyzer सरल उपकरण जो मैट्रिक्स के इस प्रकार उत्पन्न करता है।

alt text http://www.codeanalyzer.teel.ws/docs/post-analysis-shot.png

+3

जबकि जीयूआई अच्छा लगता है, जेनरेट होने वाली मीट्रिक काफी बेकार लगती है - उदा। "प्रति फ़ाइल व्हाइटस्पेस लाइनें"? – kizzx2

4

को ध्यान में रखना, क्या आप इसका आकलन आप क्या मिलता है। लोक उत्पादकता या प्रभावशीलता के बारे में कुछ भी नहीं कहता है।

कोड की रेखाओं से प्रोग्रामर को रेट करें और आपको कोड की रेखाएं मिलेंगी। एक ही तर्क अन्य मेट्रिक्स के लिए जाता है।

otoh .. http://www.crap4j.org/ एक बहुत रूढ़िवादी और उपयोगी मीट्रिक है। यह कवरेज के संबंध में जटिलता सेट करता है।

+1

टिप्पणियों के आधार पर एक प्रोग्रामर को रेट करें और आपको ... टिप्पणियों की रेखाएं मिलेंगी। – EML

3

उपकरण के संबंध में NDepend यह संहिता की लाइन्स की संख्या, विधि रैंक करने के लिए (लोकप्रियता), cyclomatic जटिलता, तरीके से सामंजस्य का अभाव, प्रतिशत कवरेज (Ncover या VSTS से निकाले गए), गहराई से, 82 अलग अलग कोड मीट्रिक के साथ आता है विरासत की ...

अपने शासन प्रणाली के साथ

, NDepend भी समस्याओं का पता लगाने और technical debt जो एक दिलचस्प कोड मीट्रिक (देव-प्रयास की समस्याओं के लिए प्रति वर्ष बनाम देव-समय की राशि खराब ठीक करने के लिए की राशि है अनुमान कर सकते हैं समस्याओं को unfixed चलो)।

ये सभी मीट्रिक here को हटाए गए हैं।

0

Scitools' Understand में आपके लिए बहुत सी कोड मीट्रिक उत्पन्न करने की क्षमता है। मुझे कोड मेट्रिक्स सुविधाओं के साथ बहुत अधिक अनुभव नहीं है, लेकिन सामान्य रूप से स्थैतिक विश्लेषण सुविधाएं अच्छी थीं और कीमत बहुत ही उचित थी। समर्थन उत्कृष्ट था।

2

एटलसियन फिशई नौकरी के लिए एक और उत्कृष्ट उपकरण है। यह आपके स्रोत नियंत्रण प्रणाली (वर्तमान में सीवीएस, एसवीएन और पर्सफोर्स का समर्थन करता है) के साथ एकीकृत करता है, और इस तरह आपकी सभी फाइलों का विश्लेषण करता है। विश्लेषण हालांकि मूलभूत है, और उत्पाद स्वयं वाणिज्यिक है (लेकिन बहुत ही उचित मूल्य, आईएमओ)।

आप क्रूसिबल नामक इसके लिए ऐड-ऑन भी प्राप्त कर सकते हैं जो सहकर्मी कोड समीक्षाओं को सुविधाजनक बनाता है।

12

Sonar बिल्कुल एक उपकरण है कि आप पर विचार करना चाहिए, विशेष रूप से जावा परियोजनाओं के लिए है। हालांकि यह PHP या सी/सी ++, फ्लेक्स और कोबोल कोड को भी संभालेगा।

alt text http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png

ध्यान दें कि आप http://nemo.sonarsource.org

+0

स्पष्ट रूप से SO मुझे लिंक को ठीक करने नहीं देगा - लिंक होना चाहिए: http://nemo.sonarsource.org –

2

में अपने डेमो साइट का उपयोग करके उपकरण की कोशिश कर सकते विजुअल स्टूडियो .NET के लिए (कम से:

यहाँ एक स्क्रीनशॉट है कि एक परियोजना पर कुछ मीट्रिक दिखाई है कम से कम सी # और वीबी.नेट) मुझे मेट्रिक्स के लिए बेहद उपयोगी होने के लिए मुफ्त StudioTools मिल गया है। यह ReSharper जैसे वाणिज्यिक उपकरणों में कई विशेषताओं को भी जोड़ता है।

0

Project Code Meter एक अंतर विकास इतिहास रिपोर्ट (एक्सेल प्रारूप में) देता है जो एसएलओसी, समय और उत्पादकता प्रतिशत में आपकी कोडिंग प्रगति मीट्रिक दिखाता है (यह समय अनुमान चक्रवात जटिलता और अन्य मीट्रिक पर आधारित है)। फिर Excel में आप आसानी से इच्छित ग्राफ का उत्पादन कर सकते हैं। दृश्य स्टूडियो के लिए http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm

1

मैं सिफारिश करेंगे Code Metrics Viewer Exention:

इस लेख जो बताती है कि यह चरण दर चरण देखें।

यह एक ही बार में समाधान का विश्लेषण करने के भी तुलना करना बहुत आसान है आप प्रगति ;-)

पढ़ें बनाया है, तो अधिक here के बारे में features

0

जावा के लिए आप हमारे उपकरण, QualityGate कि अधिक गणना करता है कोशिश कर सकते हैं 60 स्रोत कोड मीट्रिक से, समय के माध्यम से सभी परिवर्तनों को ट्रैक करता है और स्रोत कोड की रखरखाव के लिए समग्र रेटिंग भी प्रदान करता है।

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