मैं विश्वविद्यालय में अपने सॉफ्टवेयर गुणवत्ता आश्वासन पाठ्यक्रम में चक्रवात जटिलता का अध्ययन कर रहा हूं और मुझे यह समझने में कठिनाई हो रही है कि जब आपके पास भविष्यवाणी कथन या नोड में परिसर की स्थिति होती है तो यह कैसे काम करता है। मैं cyclomatic जटिलता, प्राथमिक जिनमें से मेरी कक्षा में मेरे प्रयोग किया जाता है की कई परिभाषाएं है इस जैसे एक कार्यक्रम ग्राफ के लिएकंपाउंड स्थितियों और शॉर्ट सर्किटिंग के साथ चक्रवात जटिलता
V(G) = # of predicate nodes (with outdegree = 2) + 1
तो देखा है हम दोनों में से एक cyclomatic जटिलता होगा:
V(G) = 2
मैं भी
V(G) = # edges - # nodes + 2
के रूप में दिया cyclomatic जटिलता की परिभाषा को देखा है
जो ऊपर दिए गए ग्राफ के लिए भी काम करता है। हालांकि, हम predicate नोड्स के लिए परिसर की स्थिति है। और हम स्वत: शॉर्ट सर्किटिंग के लिए स्थापित एक भाषा और प्रणाली पर विचार करते हैं, ऐसा लगता है कि बाईं ओर दिए गए ग्राफ को ग्राफ़ में विस्तारित करना होगा। यदि यह नीचे जैसा मामला है, तो क्या साइक्लोमैटिक जटिलता 3 हो जाती है, भले ही वास्तविक स्रोत कोड में, हमारे पास केवल एक ही कथन हो या फिर भी यह V (G) = 2 हो?।
यह भ्रमित है क्योंकि साइक्लोमैटिक जटिलता की अधिकांश परिभाषाएं भविष्यवाणी नोड्स के बारे में बात कर रही हैं, और जैसा कि मैं भविष्यवाणी करता हूं कि उनमें कई शॉर्ट-सर्किट स्थितियां हो सकती हैं। यदि ऐसा नहीं होता है, तो ऐसा लगता है कि प्रदर्शन में वृद्धि करते समय शॉर्ट-सर्किटिंग व्यवहार वास्तव में साइक्लोमैटिक जटिलता को उठाता है। यदि स्रोत कोड दिया गया है, तो क्या सभी शर्तों को चक्रवात जटिलता की गणना करने से पहले बाईं ओर दिए गए ग्राफ जैसे अपने नोड्स में विभाजित किया जाना चाहिए?