Therac -25!
थेरैक -25 परियोजना के डेवलपर्स यूआई और एक चिकित्सीय XRAY मशीन में इंटरफ़ेस से संबंधित समस्या के बीच के समय के बारे में बहुत आश्वस्त थे।
उन्हें नहीं होना चाहिए था।
आप इस प्रसिद्ध जीवन और मृत्यु सॉफ़्टवेयर आपदा के बारे में अधिक जान सकते हैं:
http://www.youtube.com/watch?v=izGSOsAGIVQ
या
http://en.wikipedia.org/wiki/Therac-25
आपका एप्लिकेशन चिकित्सा उपकरणों की तुलना में विफलता के प्रति बहुत कम संवेदनशील हो सकता है। एक उपयोगी विधि जोखिम की घटना के घटित होने के उत्पाद के रूप में दर जोखिम है और सभी इकाइयों के लिए उत्पाद के जीवन पर होने वाली लागत का उत्पादन किया जा सकता है।
यदि आपने अपना कोड अंतिम (और ऐसा लगता है कि आपके पास है) का निर्माण करने के लिए चुना है, तो आपको मूर के कानून पर विचार करना चाहिए जो हर कुछ वर्षों में कई शून्य को आसानी से बंद कर सकता है क्योंकि आपके सिस्टम के अंदर या बाहर के कंप्यूटर तेज हो जाते हैं। यदि आप हजारों प्रतियां शिप करते हैं, तो अधिक शून्य बंद करें। यदि उपयोगकर्ता इस ऑपरेशन को दैनिक (या मासिक) वर्षों तक करते हैं, तो कुछ और दूर करें। यदि यह उपयोग किया जाता है जहां Google फाइबर उपलब्ध है, तो क्या है? यदि UI कचरा मध्य GUI ऑपरेशन एकत्र करता है, तो क्या यह दौड़ को प्रभावित करता है? क्या आप अपने GUI के पीछे एक Open Source या Windows लाइब्रेरी का उपयोग कर रहे हैं? क्या अपडेट वहाँ समय को प्रभावित कर सकते हैं?
सेमाफोर, लॉक, म्यूटेक्स, बैरियर सिंक्रोनाइज़ेशन, थ्रेड्स के बीच गतिविधियों को सिंक्रोनाइज़ करने के तरीकों में से हैं। संभावित रूप से यदि आप उनका उपयोग नहीं कर रहे हैं, तो एक अन्य व्यक्ति जो आपके कार्यक्रम को बनाए रखता है और फिर थ्रेड्स के बीच संबंधों के बारे में बहुत जल्दी मान्यताओं को स्थानांतरित कर सकता है और दौड़ की स्थिति के बारे में गणना अमान्य हो सकती है।
मेरा सुझाव है कि आप स्पष्ट रूप से सिंक्रनाइज़ करें क्योंकि जब आप कभी भी इसे एक समस्या बनाते हुए नहीं देख सकते हैं, तो ग्राहक हो सकता है। इसके अलावा, यहां तक कि अगर आपकी दौड़ की स्थिति कभी नहीं होती है, तो क्या होगा यदि आपको या आपके संगठन को आपके कोड की रक्षा के लिए अदालत में बुलाया जाए (जैसा कि टोयोटा कुछ साल पहले प्रियस से संबंधित था)। जितना अधिक आपकी कार्यप्रणाली पूरी होगी, उतना ही बेहतर होगा। यह कहना अच्छा हो सकता है कि "हम इस असंभावित मामले के खिलाफ इस तरह की रक्षा करते हैं ..." कहने की तुलना में, "हमें पता है कि हमारा कोड विफल हो जाएगा, लेकिन हमने इस समीकरण को यह दिखाने के लिए लिखा था कि यह हमारे जीवनकाल में नहीं होगा। संभवतः। "
ऐसा लगता है कि संभावना गणना किसी और से आती है। क्या वे आपका कोड जानते हैं और क्या आप उन्हें यह जानना चाहते हैं कि कोई त्रुटि नहीं थी? अगर मैंने किसी चीज़ के लिए 99.99997% विश्वसनीयता की गणना की है, तो मैं अपने कॉलेज के आँकड़ों की कक्षाओं के बारे में भी सोच सकता हूँ और याद रखूँगा कि मुझे हमेशा 100% नहीं मिला, और अपने व्यक्तिगत विश्वसनीयता के अनुमानों पर कुछ प्रतिशत वापस मिला।