5

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

V(G) = # of predicate nodes (with outdegree = 2) + 1 

तो देखा है हम दोनों में से एक cyclomatic जटिलता होगा:

V(G) = 2 

Program graph with cyclomatic complexity of two

मैं भी

V(G) = # edges - # nodes + 2 
के रूप में दिया cyclomatic जटिलता की परिभाषा को देखा है

जो ऊपर दिए गए ग्राफ के लिए भी काम करता है। हालांकि, हम predicate नोड्स के लिए परिसर की स्थिति है। और हम स्वत: शॉर्ट सर्किटिंग के लिए स्थापित एक भाषा और प्रणाली पर विचार करते हैं, ऐसा लगता है कि बाईं ओर दिए गए ग्राफ को ग्राफ़ में विस्तारित करना होगा। यदि यह नीचे जैसा मामला है, तो क्या साइक्लोमैटिक जटिलता 3 हो जाती है, भले ही वास्तविक स्रोत कोड में, हमारे पास केवल एक ही कथन हो या फिर भी यह V (G) = 2 हो?

यह भ्रमित है क्योंकि साइक्लोमैटिक जटिलता की अधिकांश परिभाषाएं भविष्यवाणी नोड्स के बारे में बात कर रही हैं, और जैसा कि मैं भविष्यवाणी करता हूं कि उनमें कई शॉर्ट-सर्किट स्थितियां हो सकती हैं। यदि ऐसा नहीं होता है, तो ऐसा लगता है कि प्रदर्शन में वृद्धि करते समय शॉर्ट-सर्किटिंग व्यवहार वास्तव में साइक्लोमैटिक जटिलता को उठाता है। यदि स्रोत कोड दिया गया है, तो क्या सभी शर्तों को चक्रवात जटिलता की गणना करने से पहले बाईं ओर दिए गए ग्राफ जैसे अपने नोड्स में विभाजित किया जाना चाहिए? Program graph expanded to show short circuiting behavior

उत्तर

2

सी में (सी ++, जावा, सी #) "& &" ऑपरेटर क्योंकि यह शॉर्ट सर्किट के मूल्यांकन का उपयोग करने के लिए निर्धारित किया है जटिलता को एक कहते हैं। इस मामले में cyclomatic जटिलता होगा 3.

देखें http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235/chapter4.htm

"बूलियन ऑपरेटरों जटिलता को या तो एक या कुछ भी नहीं जोड़ने के लिए, वे शॉर्ट सर्किट मूल्यांकन अर्थ विज्ञान है जो इस पर निर्भर है कि दुष्प्रभाव के सशर्त निष्पादन के लिए नेतृत्व कर सकते हैं । "

चित्रा 4-4 ने स्रोत कोड और एक संबंधित प्रवाह ग्राफ को एनोटेट किया है जो दर्शाता है कि जटिलता कैसे निर्धारित की जाती है।

यह भी देखें Cyclomatic complexity of IF((A>B) AND (C>D)) and IF((A>B) OR (C>D))

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