यहाँ stan4j से कुछ जटिलता मेट्रिक्स हैं ।
एक ग्रहण वर्ग संरचना उपकरण का विश्लेषण करती है।
मुझे यह टूल और मेट्रिक्स पसंद हैं। मैं मीट्रिक को सांख्यिकी, संकेतक, चेतावनी संदेशों के रूप में मानता हूं। कुछ तरीकों या कुछ वर्गों के कारण कुछ समय के लिए वास्तव में कुछ जटिल तर्क ने उन्हें जटिल बना दिया है, जो कुछ किया जाएगा वह उन पर नजर रखेगा, उन्हें देखने के लिए समीक्षा करेगा कि क्या सामान्य रूप से होने के कारण उन्हें रिफ्लेक्टर करने या ध्यान से समीक्षा करने की आवश्यकता है। वे त्रुटि प्रवण हैं। इसके अलावा मैं सोर्स कोड सीखने के लिए इसे विश्लेषण टूल के रूप में उपयोग करता हूं, क्योंकि मुझे जटिल से सरल सीखना पसंद है। आमतौर पर इसमें कुछ अन्य मैट्रिक्स जैसे रॉबर्ट सी। मार्टिन मेट्रिक्स, चिदंबर और केमेरर मेट्रिक्स, काउंट मेट्रिक्स शामिल हैं, लेकिन मुझे यह सबसे अच्छा लगता है।
जटिलता मेट्रिक्स
चक्रवाती जटिलता मेट्रिक्स
साइक्लोमैटिक कॉम्प्लेक्सिटी (CC)
एक विधि का साइक्लोमैटिक कॉम्प्लेक्सिटी एक के द्वारा बढ़ाए गए विधि के नियंत्रण प्रवाह ग्राफ में निर्णय बिंदुओं की संख्या है। निर्णय बिंदुओं पर / के लिए / जब / बयान, मामले / पकड़ खंड और इसी तरह के स्रोत कोड तत्व होते हैं, जहां नियंत्रण प्रवाह सिर्फ रैखिक नहीं होता है। एकल (स्रोत कोड) विवरण द्वारा प्रस्तुत (बाइट कोड) निर्णय बिंदुओं की संख्या, बूलियन अभिव्यक्तियों की जटिलता के आधार पर भिन्न हो सकती है। किसी विधि का साइक्लोमैटिक जटिलता मूल्य जितना अधिक होता है, विधि के नियंत्रण प्रवाह ग्राफ की सभी शाखाओं का परीक्षण करने के लिए उतने अधिक परीक्षण मामलों की आवश्यकता होती है।
औसत साइक्लोमैटिक कॉम्प्लेक्सिटी
किसी एप्लिकेशन, लाइब्रेरी, पैकेज ट्री या पैकेज के सभी तरीकों पर साइक्लोमैटिक कॉम्प्लेक्सिटी मीट्रिक का औसत मूल्य।
मोटी मेट्रिक्स
का फैट मेट्रिक की एक उपयुक्त निर्भरता ग्राफ में किनारों की संख्या है। निर्भरता ग्राफ प्रकार मीट्रिक संस्करण और चुने हुए कलाकृतियों पर निर्भर करता है:
फैट
एक अनुप्रयोग, पुस्तकालय या पैकेज ट्री का फैट मीट्रिक, इसके उप-निर्भरता ग्राफ की बढ़त गणना है। इस ग्राफ में पैकेज ट्री पदानुक्रम में सभी कलाकृतियों के बच्चे हैं, जिसमें पत्ती पैकेज भी शामिल हैं। (कंपोज़ व्यू में उपयुक्त ग्राफ देखने के लिए, स्ट्रक्चर एक्सप्लोरर के फ्लैट पैकेज टॉगल को अक्षम करना होगा। यदि चुने हुए आर्टवर्क एक लाइब्रेरी है, तो शो लाइब्रेरी टॉगल को सक्षम करना होगा, अन्यथा इसे अक्षम करना होगा।)
एक पैकेज का फैट मीट्रिक, इसकी इकाई निर्भरता ग्राफ की बढ़त गणना है। इस ग्राफ में पैकेज के सभी शीर्ष स्तर के वर्ग हैं।
एक वर्ग का फैट मीट्रिक उसके सदस्य ग्राफ की बढ़त गणना है। इस ग्राफ में कक्षा के सभी क्षेत्र, विधियां और सदस्य वर्ग शामिल हैं। (यह ग्राफ और फैट वैल्यू केवल तभी उपलब्ध होती है जब कोड विश्लेषण क्लास के नहीं, बल्कि विस्तार सदस्य के स्तर के साथ किया गया था।)
लाइब्रेरी डिपेंडेंसीज़ के लिए फैट (फैट - लाइब्रेरीज़)
किसी ऐप्लीकेशन की मीट्रिक डिपेंडेंसीज़ के लिए फैट उसके लाइब्रेरी डिपेंडेंसी ग्राफ की एज काउंट है। इस ग्राफ में एप्लिकेशन के सभी पुस्तकालय शामिल हैं। (संरचना दृश्य में उपयुक्त ग्राफ देखने के लिए, संरचना एक्सप्लोरर के शो लाइब्रेरी टॉगल को सक्षम करना होगा।)
फ्लैट पैकेज निर्भरता के लिए वसा (वसा - संकुल)
फ्लैट पैकेज निर्भरता के लिए वसा एक आवेदन के मीट्रिक मीट्रिक इसके फ्लैट पैकेज निर्भरता ग्राफ के किनारे की गिनती है। इस ग्राफ में एप्लिकेशन के सभी पैकेज हैं। (संरचना दृश्य में उपयुक्त ग्राफ देखने के लिए, स्ट्रक्चर एक्सप्लोरर के फ्लैट पैकेज टॉगल को सक्षम करना होगा और शो लाइब्रेरी टॉगल को अक्षम करना होगा।)
किसी लाइब्रेरी के फ़्लैट पैकेज डिपेंडेंसी मेट्रिक का फैट उसके फ़्लैट पैकेज डिपेंडेंसी ग्राफ की बढ़त की गिनती है। इस ग्राफ़ में लाइब्रेरी के सभी पैकेज हैं। (संरचना दृश्य में उपयुक्त ग्राफ देखने के लिए, स्ट्रक्चर एक्सप्लोरर के फ्लैट पैकेज और शो लाइब्रेरी टॉगल को सक्षम करना होगा।)
टॉप लेवल क्लास डिपेंडेंसीज के लिए फैट (फैट - यूनिट्स)
किसी लेवल या लाइब्रेरी के टॉप लेवल क्लास डिपेंडेंसी मेट्रिक के लिए फैट उसकी यूनिट डिपेंडेंसी ग्राफ की एज काउंट है। इस ग्राफ में एप्लिकेशन या लाइब्रेरी के सभी शीर्ष स्तर के वर्ग शामिल हैं। (उचित अनुप्रयोगों के लिए यह कल्पना करने के लिए बहुत बड़ा है और इस प्रकार संरचना दृश्य में प्रदर्शित नहीं किया जा सकता है। यूनिट निर्भरता ग्राफ केवल संकुल के लिए प्रदर्शित किया जा सकता है।)
the number of StyleCop warnings + 10 * the number of FxCop warnings + 2 to the power of the number of disabled warning types
। उस मीट्रिक का मान जितना संभव हो उतना कम होने के बाद ही, क्या किसी मानव के लिए कोड की समीक्षा शुरू करना उचित है (मेरी राय में)। संक्षेप में: सरलीकृत फ़ार्मुलों के बजाय परिष्कृत उपकरण कोड गुणवत्ता में सुधार करने में मदद कर सकते हैं। यह संभवत: ऑफ-टॉपिक है।