2010-03-02 15 views
7

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

कोई सुझाव बहुत अच्छा होगा! धन्यवाद!

+0

बहुत सारे! आपकी सहायताके लिए धन्यवाद! – Ryan

+0

यह कुछ हद तक असंबंधित है, लेकिन यूएमएल उपकरण छाता आपके कोड के यूएमएल आरेख उत्पन्न करेगा। उस समय मेरे लिए यह सहायक होगा। – Ryan

+0

बस हाल ही की टिप्पणी के कारण इसे देखा लेकिन भविष्य के संदर्भ के लिए आप संरचना 101 देख सकते हैं। –

उत्तर

5

आप JDepend देख सकते हैं। यह विशेष रूप से उस समस्या को हल करने के लिए विकसित किया गया था जिसका आप सामना कर रहे हैं।

परामर्शदाता के रूप में कार्य करना मेरे लिए एक विशाल विरासत कोड आधार पर फेंकना बहुत आम है। आमतौर पर कोड की आधार और सभी निर्भरताओं पर मेरा असर पाने की कोशिश करने के लिए मैं पहली चीज JDepend चलाता हूं।

शुभकामनाएं।

+1

JDepend केवल संकुलों के बीच निर्भरता प्रदान करता है, कक्षाओं और विधियों के लिए नहीं –

-1

अपाचे Ivy

+0

आइवी खराब निर्भरता प्रबंधक नहीं है लेकिन यह अपने प्रश्न का उत्तर नहीं देता है कि वह ऐसा कुछ ढूंढ रहा है जो उसकी मौजूदा परियोजना निर्भरताओं का विश्लेषण करेगा। – Matt

1

Doxygen पर एक नज़र, मदद कर सकते हैं विशेष रूप से कक्षाओं और तरीकों के बीच निर्भरता की चित्रमय प्रतिनिधित्व के साथ है।

1

यह एक सही उत्तर नहीं है, लेकिन यह त्वरित जांच के लिए उपयोगी हो सकता है। यदि आप अपने विकास के लिए ग्रहण का उपयोग कर रहे हैं, तो आप उसका नाम चुनकर और Ctrl-Alt-H दबाकर विधि के लिए कॉल ग्राफ़ देख सकते हैं (या राइट-क्लिक करें और "ओपन कॉल पदानुक्रम" चुनें)। आप उस दृश्य का उपयोग कर सकते हैं जो देखने के लिए खुलता है कि विधि क्या कॉल करती है, और विधि द्वारा किन तरीकों को बुलाया जाता है।

+0

इससे वास्तव में बहुत मदद मिलती है। धन्यवाद! – Ryan

1

जावा के लिए कई अच्छे विश्लेषक हैं। मैं अब तक पीएमडी के साथ खेल रहा हूं और इसके साथ सभ्य भाग्य प्राप्त कर चुका हूं।

1

आप FindBugs को भी आजमा सकते हैं। इन और कई अन्य मुद्दों के साथ बहुत मदद करता है।

1

आपके सिस्टम के आकार के आधार पर इसके लिए कई टूल उपलब्ध हैं। उनमें से दादाजी सभी एक संरचना उत्पाद 1011 है।

http://structure101.com

मैं कुछ बड़े परियोजनाओं पर इस का उपयोग किया है - यह जटिल है, लेकिन आसानी से सबसे सभी उपकरण मैं जानता हूँ कि के व्यापक। यह एक विशाल वास्तुकला ग्राफ कर सकता है, और आपको कुछ जटिल सामानों को उलझाने देता है। इसमें एक बहन उत्पाद है जिसे reStructure101 कहा जाता है जहां आप परिदृश्यों को कर सकते हैं।

एक अच्छा प्रतिद्वंद्वी Stan4j है। यह कहीं भी पूर्ण नहीं है, लेकिन कुछ सामान बेहतर है, विशेष रूप से वर्ग स्तर पर निर्भरता संदर्भ दिखा रहा है।

http://www.stan4j.com

(मैं दोनों उत्पादों के मालिक हैं, लेकिन साथ या तो कोई वाणिज्यिक संबद्धता है)

जटिल निर्भरता को देखते हुए यह विशेष रूप से परियोजना स्तर पर का एक और तरीका है, एक निर्भरता संरचना मैट्रिक्स (डीएसएम) है।S101 एक डीएसएम कर सकता है, Lattix अधिक समर्थन हासिल है - यह स्प्रिंग और हाइबरनेट निर्भरता संभाल कर सकते हैं:

http://lattix.com/

(मैं का उपयोग नहीं किया गया है lattix - वे भी इसे कठिन यह मूल्यांकन करने के लिए जो विचित्र है, क्योंकि बनाने के लिए, मैं कुछ बहुत बड़ा सिस्टम)

पर काम अपने सॉफ्टवेयर काफी छोटा है, और आप साधारण क्लास स्तर में अधिक रुचि रखते हैं, तो Architexa की तरह कुछ मदद मिल सकती है आप संरचना को बेहतर समझते हैं:

http://www.architexa.com/

अंत में, यदि आप अपना खुद का रोल करना चाहते हैं, तो आप आसानी से एएसएम के साथ ऐसा कर सकते हैं। यह बहुत आसान है, लेकिन चालाक है - (nify निर्भरता मैट्रिक्स के लिए पृष्ठ नीचे देखें)

यहाँ यह के लिए स्रोत है

http://asm.ow2.org/doc/tutorial-asm-2.0.html : यह भी एक निर्भरता मैट्रिक्स उपकरण जो पैकेज स्तर पर पटरियों शामिल हैं। यह बाइटकोड बंद करता है। http://cvs.forge.objectweb.org/cgi-bin/viewcvs.cgi/asm/asm/examples/dependencies/src/org/objectweb/asm/depend/

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