सॉफ्टवेयर की गुणवत्ता निर्धारित करने के लिए हाल्टेड जटिलता उपायों के आवेदन में कोई काम है?


14

1977 में, मॉरिस हॉवर्ड हैल्स्टेड ने सॉफ्टवेयर सिस्टम के लिए अपने जटिलता उपायों को पेश किया , जिसमें प्रोग्राम शब्दावली, प्रोग्राम लंबाई, वॉल्यूम, कठिनाई, प्रयास और एक मॉड्यूल में बग की अनुमानित संख्या के माप शामिल थे। विकिपीडिया के अनुसार, कठिनाई को पढ़ने या लिखने के दौरान कार्यक्रम को समझने में कठिनाई से संबंधित है और प्रयास का अनुवाद उस समय में किया जा सकता है जब किसी एप्लिकेशन को कोड करने में समय लगता है जहां = (प्रयास / 18) सेकंड।

जब तक डेटा और गणना सॉफ्टवेयर विकास के कुछ पहलू से संबंधित नहीं होती तब तक एक माप बेकार है। हालाँकि, मुझे ऐसा कोई काम नहीं मिला है, जिसमें कहा गया हो कि एक निश्चित मूल्य की कठिनाई या उच्चतर दोषों में सांख्यिकीय रूप से महत्वपूर्ण वृद्धि या कोड को पढ़ने के लिए कठिनाई और समय के बीच संबंध है (एन की कठिनाई में औसतन एम घंटे की औसत आय होती है। कोड आधार को समझना) या गुणवत्ता के निर्धारण में उपयोगी होने के बाद समय की गणना करने में सक्षम होने के किसी भी विश्लेषण (विशेष रूप से लिखने के लिए समय से पहले ही माप के रूप में दर्ज किया जाना चाहिए था)। मुझे विशेष रूप से हैल्स्टीड बग अनुमान (जो विकिपीडिया पर उल्लिखित नहीं है) में दिलचस्पी है - एक आवेदन में कीड़े की संख्या का अनुमान वॉल्यूम / ३००० या एफर्ट ^ (२/३) / ३००० से लगाया जा सकता है।

मैं दो चीजों की तलाश में हूं:

  • क्या किसी ने सॉफ्टवेयर की गुणवत्ता का आकलन करने के लिए एक वास्तविक दुनिया के आवेदन में हेलस्टेड के सॉफ्टवेयर जटिलता उपायों का उपयोग किया है? यदि हां, तो आपने उन्हें कैसे लागू किया और क्या वे एक उपयोगी, वैध और / या विश्वसनीय माप निकला?
  • क्या सॉफ़्टवेयर गुणवत्ता पर लागू होने पर हैल्स्टेड जटिलता उपायों की वैधता (या अमान्यता) पर चर्चा करने वाले सर्वेक्षण, विश्लेषण, या केस अध्ययन के रूप में कोई अकादमिक शोध है?
  • क्या वॉल्यूम, कठिनाई, प्रयास, समय, और कीड़े के Halstead मैट्रिक्स के समान कुछ गणना करने के लिए सोर्स लाइन्स ऑफ़ कोड (SLOC) के उपयोग को प्रदर्शित करने वाले सर्वेक्षण, विश्लेषण, या केस स्टडी के रूप में कोई अकादमिक शोध है? मुझे संदेह होगा कि वॉल्यूम सिर्फ एक SLOC गिनती के अनुरूप हो सकता है और कठिनाई चक्रवाती जटिलता (और संभवतः अन्य उपायों) के अनुरूप हो सकती है। मुझे यह भी अच्छी तरह पता है कि एसएलओसी में प्रयास, उत्पादकता या समय को मापना संभावित रूप से भ्रामक है।

आपको पिछले 15 वर्षों में परिणाम खोजने में कुछ परेशानी होने वाली है, क्योंकि हाल्टेड के मेट्रिक्स का काम 30-40 साल पहले की तरह किया गया था, और एसएलओसी के साथ मजबूत सहसंबंध लगभग तुरंत खोजा गया था। (यह मेमोरी से है, यूटी ऑस्टिन सीए 1977 में एक नए पीएचडी संकाय के उम्मीदवार द्वारा की गई बातचीत से)
जॉन आर। स्ट्रॉहम

उसके लिए धन्यवाद। मैं प्रश्न को अपडेट करूंगा और अपने खोज प्रयास बेटे के पुराने कागजात को फिर से लिखूंगा।
थॉमस ओवेन्स

जवाबों:


5

माइक्रोसॉफ्ट रिसर्च ने इस क्षेत्र में कुछ काम किया है। इस पृष्ठ को देखें: http://research.microsoft.com/en-us/people/nachin/ । हालांकि विशेष रूप से हैल्स्टीड पर आधारित नहीं है, नाची और उनकी टीम ने हालस्टड, साइक्लोमैटिक जटिलता, कोड मंथन और अन्य उपायों का उपयोग करके कुछ जांच की है, जो कोड के क्षेत्रों में परिवर्तन करने के लिए सापेक्ष जोखिम और नाजुकता का आकलन करने के लिए हैं। संगठनात्मक प्रभावशीलता भी एक बड़ी भूमिका कैसे निभाती है, इस बारे में एक दिलचस्प पेपर है लेकिन यह विषय से हटकर है। :)


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

मैकबेबे की साइक्लोमैटिक जटिलता को वास्तविक कोड पर, कच्चे एसएलओसी के साथ बहुत दृढ़ता से सहसंबद्ध दिखाया गया है, इस बात के लिए कि इसे गणना करने में कोई वृद्धिशील मूल्य नहीं है।
जॉन आर। स्ट्रोहम

0

ऐसे बहुत से अध्ययन हैं। Google आपका FRIEND है।

हैलस्टेड के मेट्रिक्स पक्ष से बाहर हो गए, जब यह प्रदर्शित किया गया कि उन सभी को कच्चे एसएलओसी (कोड की स्रोत लाइनों) के साथ दृढ़ता से सहसंबद्ध किया गया था। उस बिंदु पर, एसएलओसी को मापना और उसके साथ किया जाना आसान हो जाता है।

यहां Google पुस्तकें का परिणाम है ।


1
इस प्रश्न को पूछने से पहले मैं Googling रहा हूं और अभी तक किसी भी प्रकाशित पत्र या अन्य सम्मानित स्रोतों को ढूंढना बाकी है। इसके अलावा, मैं यह देखने में विफल हूं कि एसएलओसी से संबंधित मीट्रिक कैसे खराब हो सकता है। एसएलओसी / समय उत्पादकता का एक खराब माप है, लेकिन अन्य एसएलओसी-आधारित मैट्रिक्स को आमतौर पर वैध माना जाता है, एक उदाहरण दोष / एसएलओसी है।
थॉमस ओवेन्स

1
@ थोमस: ऐसा नहीं है कि हैलस्टेड के मैट्रिक्स SLOC से "संबंधित" हैं, यह है कि वे दृढ़ता से सहसंबद्ध हैं। सांख्यिकी 102. यह कहते हुए कि Y और X दृढ़ता से सहसंबद्ध हैं इसका अर्थ है कि सभी डेटासेटों के लिए Y / X का अनुपात अनिवार्य रूप से स्थिर है। जब ऐसा होता है, तो वाई को मापने का कोई मतलब नहीं है अगर एक्स को मापना आसान है, क्योंकि वाई वास्तव में आपको कुछ भी नहीं बता रहा है जो आप पहले से एक्स से नहीं जानते हैं।
जॉन आर। स्ट्रॉहम

यह समझ आता है। Halstead के मेट्रिक्स विशिष्ट और कुल ऑपरेटरों और ऑपरेंड की संख्या पर आधारित होते हैं। यह सामान्य ज्ञान है कि एक लंबे कार्यक्रम में कुल ऑपरेटर / ऑपरेंड होंगे और अधिक होने की संभावना अधिक ऑपरेटर / ऑपरेंड होंगे। परिचालकों / परिचालकों के बजाय SLOC का उपयोग करके वॉल्यूम और कठिनाई के मेट्रिक्स प्राप्त किए जा सकते हैं। हालाँकि, यह एफर्ट, टाइम और बग्स मेट्रिक्स की वैधता, एप्लिकेशन और अर्थ (या अर्थ की कमी) को संबोधित नहीं करता है। ऑपरेटरों / परिचालकों के बजाय SLOC के साथ गणना करने पर भी, क्या ये मैट्रिक्स सिस्टम के बारे में कुछ भी सार्थक कहते हैं?
थॉमस ओवेन्स

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

@ThomasOwens: शायद नहीं। यदि प्रयास, समय, और कीड़े सभी SLOC के साथ दृढ़ता से सहसंबद्ध हैं, तो यह आपको बताता है कि किसी दिए गए आकार के सभी कार्यक्रमों में एक ही समय और प्रयास होते हैं और एक ही संख्या में बग होते हैं। पहले दो SLOC- आधारित आकलन (जैसे COCOMO) पर आधारित हैं, और यह कहते हैं कि पानी गीला है। तीसरा वास्तव में आपकी मदद नहीं करता है।
बजे जॉन आर। स्ट्रॉह्म

0

Halstead वॉल्यूम को SLOC के साथ सहसंबद्ध किया गया है, लेकिन यह दिलचस्प और सीमित है। बुनियादी आँकड़े: रैखिक सहसंबंध सकर्मक नहीं है। X का संबंध Y से है, Y का Z से संबंध नहीं है M से X का संबंध Z से है।


जब X और Y केवल सहसंबंधित होते हैं, और Y और Z केवल सहसंबद्ध होते हैं, हां, पहले दो सहसंबंधों में अपेक्षाकृत उच्च शोर स्तर के कारण, X और Z आवश्यक रूप से सहसंबद्ध नहीं होते हैं। जब एक्स और वाई दृढ़ता से सहसंबद्ध होते हैं, और वाई और जेड दृढ़ता से सहसंबद्ध होते हैं, तो बहुत कम, बहुत कम शोर शामिल होता है, और यह किसी भी मामले में अत्यधिक संभावित हो जाता है कि एक्स और जेड को सहसंबद्ध पाया जाएगा।
जॉन आर। स्ट्रॉहैम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.