2009-04-10 8 views
8

bathtub curve
बेशक सॉफ्टवेयर नहीं पहनता है, लेकिन कुछ दशकों पहले इसे आम तौर पर माना जाता था कि देर से आवेदन के जीवन-चक्र कोड रखरखाव में यह ठीक से अधिक बग पेश करता है।क्या बाथटब वक्र आधुनिक सॉफ्टवेयर पर लागू होता है?

लेकिन बाथटब वक्र आधुनिक सॉफ्टवेयर इंजीनियरिंग के तरीकों के साथ विकसित आधुनिक सॉफ्टवेयर लागू होता है?

उत्तर

8

संक्षिप्त उत्तर "हाँ" है। लंबा जवाब यह है कि असफलता के काम में निरंतरता की कमी के कारण बाथटब वितरण बहुत अच्छा मॉडल नहीं है। उदाहरण के लिए कहें कि 42 का इनपुट मान विभाजित-शून्य-शून्य त्रुटि का कारण बनता है; तो उन असफलताओं का वितरण इनपुट में 42 मानों का वितरण होगा। यह हार्डवेयर की तरह नहीं है, जैसा कि आप कहते हैं: समय के साथ सॉफ़्टवेयर विफल नहीं होता है, यह गलत होने पर विफल रहता है।

अब, यह हो सकता है कि आप शब्दों यहां का दुरुपयोग कर रहे हैं: यदि आप एक दोष मतलब मेरे बल्कि एक विफलता से। विफलता गलत व्यवहार की एक घटना है; एक दोष कार्यान्वयन में एक दोष है, एक "बग"।

सॉफ़्टवेयर में दोषों की उपस्थिति में बाथटब जैसी वितरण होती है, लेकिन यह वास्तव में आपकी तस्वीर के रूप में कहीं भी साफ नहीं है: बग को जल्दी और टेंपर बंद देखा जाता है, फिर पैच और नई रिलीज पर स्पाइक , एक सामान्य ऊपर की प्रवृत्ति सॉफ्टवेयर के जीवन में आगे बढ़ने के साथ। यहां तक ​​कि सावधानीपूर्वक परिभाषा भी लेती है, हालांकि, आप वास्तव में प्रति यूनिट समय में देखे गए दोषों के बारे में बात कर रहे हैं।

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

यह दिखाने के लिए सभ्य अध्ययन हुए हैं कि एक्सपी/टीडीडी के परिणामस्वरूप कम दोष दर होती है, लेकिन अगर दोष/इकाई समय वितरण एक अलग आकार है तो मुझे आश्चर्य होगा।

+0

शानदार प्रतिक्रिया! –

0

वास्तव में, अधिकांश बग सॉफ़्टवेयर की प्रारंभिक तैनाती के दौरान पाए जाते हैं। उसके बाद आमतौर पर बग का धीरे-धीरे सेट होता है, जो ज्यादातर कोड या संशोधनों में संशोधन के कारण होता है। शुरुआती कोड रिलीज की तरह कुछ भी नहीं। जिन डेवलपर्स ने मूल उत्पाद बनाया है, वे समाप्त हो जाते हैं, और उन्नयन समाप्त हो जाते हैं, फिर भी बग पीसने के लिए आते हैं।

0

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

1

बाथटब वक्र वास्तव में हार्डवेयर विफलताओं का एक वर्णनकर्ता है (और उस पर एक अच्छा, सॉफ्टवेयर नहीं)।

हालांकि, सॉफ्टवेयर के साथ कुछ ऐसा ही चल रहा है।आम तौर पर अधिकांश सॉफ्टवेयर उत्पादन में बोलते हुए, जटिलता बनाने की हमारी क्षमता ने इसे संभालने की हमारी क्षमता को थोड़ा आगे बढ़ाया है --- i.o.w. काम पर पीटर प्रिंसिपल का कुछ प्रकार है जहां सॉफ़्टवेयर सिस्टम (सामूहिक रूप से) जटिलता में बढ़ते हैं जब तक वे अप्रबंधनीय नहीं हो जाते हैं, और फिर वहां रहते हैं। तो आज जब हम 1 99 0 के दशक की कुछ व्यवस्थित समस्याओं को संभालने में काफी बेहतर हैं, तो हम 00 के बाद की प्रणालीगत समस्याओं को संभालने में काफी बेहतर नहीं हैं। ऐसे जीवन है।

मुझे नहीं लगता कि यह बाथटब की तरह दिखता है, हालांकि।

0

मुझे लगता है कि इसमें से बहुत से इस बात पर निर्भर करता है कि यह कितनी अच्छी तरह से बनाए रखा जाता है। मेरे पास एक बड़ा जीयूआई एप्लीकेशन है जहां मैं व्यावहारिक रूप से एकमात्र प्रोग्रामर हूं जो इसे बनाए रखता है, और इसकी दोष आवृत्ति वर्षों में लगातार कम हो गई है, और मुझे उम्मीद है कि यह भविष्य में किसी भी समय आगे बढ़ने की उम्मीद नहीं है।

हालांकि, क्या मैंने जूनियर प्रोग्रामर को बनाए रखने दिया था, मैं वैसे ही महसूस नहीं करता, क्योंकि एक 'पर्याप्त पर्याप्त' फिक्स कोड करने के लिए एक अच्छा प्रलोभन है और सही 'ठीक' नहीं है। मैं उसे पूरी तरह से दोष नहीं दे सकता, शायद उसके पास उस कोड का ज्ञान नहीं है जिसे मूल प्रोग्रामर ने किया था।

बाथटब के दाहिने तरफ के बारे में, यदि आप ऑपरेटिंग सिस्टम जैसे बाहरी कारकों पर विचार करते हैं, तो कुछ सहसंबंध हो सकते हैं, क्योंकि मेरे पास कुछ ऐप्स हैं जो विंडोज के नए संस्करण तोड़ते हैं, आमतौर पर किसी भी गलती के माध्यम से एप्लिकेशन। लेकिन यह अपेक्षाकृत छोटी संख्या है।

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