जब भी मैं सॉफ़्टवेयर दोषों के साथ किसी प्रकार के कोड-आधारित मीट्रिक को संबद्ध करने के प्रयासों के बारे में सुनता हूं, तो सबसे पहली बात जो मैं सोचता हूं, वह मैककेबे की चक्रीय जटिलता है । विभिन्न अध्ययनों में पाया गया है कि एक उच्च चक्रवाती जटिलता और दोषों की संख्या के बीच संबंध है। हालांकि, अन्य अध्ययन जो समान आकार (कोड की लाइनों के संदर्भ में) के साथ मॉड्यूल को देखते थे, उन्होंने पाया कि सहसंबंध नहीं हो सकता है।
मेरे लिए, एक मॉड्यूल और साइक्लोमैटिक जटिलता में लाइनों की संख्या संभव दोषों के अच्छे संकेतक के रूप में काम कर सकती है, या शायद एक बड़ी संभावना है कि मॉड्यूल में संशोधन किए जाने पर दोषों को इंजेक्ट किया जाएगा। उच्च चक्रवाती जटिलता के साथ एक मॉड्यूल (विशेष रूप से वर्ग या विधि स्तर पर) को समझना मुश्किल है क्योंकि कोड के माध्यम से बड़ी संख्या में स्वतंत्र पथ होते हैं। बड़ी संख्या में लाइनों के साथ एक मॉड्यूल (फिर से, विशेष रूप से कक्षा या विधि के स्तर पर) भी समझना मुश्किल है क्योंकि लाइनों में वृद्धि का मतलब है कि अधिक चीजें हो रही हैं। कई स्थिर विश्लेषण उपकरण हैं जो निर्दिष्ट नियमों और साइक्लोमैटिक जटिलता के खिलाफ कोड के दोनों स्रोत लाइनों की गणना करने का समर्थन करते हैं, ऐसा लगता है कि उन्हें कैप्चर करना कम लटका हुआ फल हथियाना होगा।
हेल्सटेड जटिलता उपायों भी दिलचस्प हो सकता है। दुर्भाग्य से, उनकी वैधता पर कुछ हद तक बहस होती है, इसलिए मैं उन पर भरोसा नहीं करना चाहता। हाल्टड के उपायों में से एक प्रयास या मात्रा (कुल ऑपरेटरों और ऑपरेंड के संदर्भ में कार्यक्रम की लंबाई और अलग-अलग ऑपरेटरों और ऑपरेटरों के संदर्भ में कार्यक्रम की शब्दावली के बीच संबंध) के आधार पर दोषों का एक अनुमान है।
सीके मेट्रिक्स के रूप में जाना जाने वाला मैट्रिक्स का एक समूह भी है। इस मैट्रिक्स सूट की पहली परिभाषा चिदंबर और केमेरर द्वारा ए मेट्रिक्स सूट फॉर ऑब्जेक्ट ओरिएंटेड डिज़ाइन नामक एक पेपर में दिखाई देती है। वे प्रति कक्षा भारित विधियों, वंशानुक्रम वृक्ष की गहराई, बच्चों की संख्या, ऑब्जेक्ट कक्षाओं के बीच युग्मन, एक कक्षा के लिए प्रतिक्रिया और तरीकों में सामंजस्य की कमी को परिभाषित करते हैं। उनका पेपर कम्प्यूटेशनल तरीके और साथ ही साथ हर एक का विश्लेषण करने का विवरण प्रदान करता है।
इन मेट्रिक्स का विश्लेषण करने वाले अकादमिक साहित्य के संदर्भ में, आपको ऑब्जेक्ट-ओरिएंटेड डिज़ाइन कॉम्प्लेक्सिटी के लिए सीके मेट्रिक्स के अनुभवजन्य विश्लेषण में रुचि हो सकती है: सॉफ्टवेयर दोषों के लिए निहितार्थ, रमानाथ सुब्रमण्यम और एमएस कृष्णा द्वारा लिखित। उन्होंने छह सीके मेट्रिक्स में से तीन का विश्लेषण किया (प्रति वर्ग भारित तरीके, वस्तु वर्ग के बीच युग्मन, और वंशानुक्रम वृक्ष की गहराई)। कागज के माध्यम से, यह प्रतीत होता है कि उन्होंने पाया कि ये संभावित वैध मैट्रिक्स हैं, लेकिन सावधानी के साथ व्याख्या की जानी चाहिए क्योंकि "सुधार" से अन्य परिवर्तन हो सकते हैं जो दोषों की अधिक संभावना भी पैदा कर सकते हैं।
यमिंग झोउ और हरेटन लेउंग द्वारा लिखित उच्च और निम्न गंभीरता दोषों के पूर्वानुमान के लिए ऑब्जेक्ट-ओरिएंटेड डिज़ाइन मेट्रिक्स का अनुभवजन्य विश्लेषण, सीके मेट्रिक्स की भी जांच करते हैं। उनका दृष्टिकोण यह निर्धारित करना था कि क्या वे इन मैट्रिक्स के आधार पर दोषों की भविष्यवाणी कर सकते हैं। उन्होंने पाया कि सीके मेट्रिक्स के कई, वंशानुक्रम के पेड़ की गहराई और बच्चों की संख्या को छोड़कर) का अनुमान लगाने वाले क्षेत्रों में सांख्यिकीय महत्व का कुछ स्तर था जहां दोष स्थित हो सकते हैं।
यदि आपके पास आईईईई सदस्यता है, तो मैं अधिक शैक्षणिक प्रकाशनों के लिए आईईईई लेनदेन में खोज करने की सिफारिश करूंगा और कुछ और वास्तविक दुनिया और लागू रिपोर्टों के लिए आईईईई सॉफ्टवेयर । एसीएम के पास अपने डिजिटल पुस्तकालय में प्रासंगिक प्रकाशन भी हो सकते हैं ।