क्या शब्द स्थिर और विश्वसनीय विनिमेय हैं?


20

क्या स्थिरता और विश्वसनीयता के बीच अंतर है (कम से कम सॉफ्टवेयर इंजीनियरिंग संदर्भ में) या क्या उनका उपयोग परस्पर किया जा सकता है? यदि नहीं, तो विश्वसनीय के कुछ उदाहरण क्या होंगे लेकिन जरूरी नहीं कि स्थिर प्रणाली, और इसके विपरीत?


3
कोई व्यक्ति किसी प्रणाली को स्थिर लेकिन अविश्वसनीय मान सकता है यदि वह हमेशा ऊपर और चलता रहता है लेकिन रुक-रुक कर गलत परिणाम देता है या कभी-कभी डेटा खो देता है। यह विचार का विषय है कि इन शब्दों का क्या अर्थ है।
जोश

मेरे दिमाग में वे एक ही चीज, स्थिरता ...
अंधेरी

तुम क्यों पूछ रहे हो?
J --Mᴇᴇ

जवाबों:


37

उदाहरण के लिए मान लें कि हमारे पास एक ऐप है, यह पूरी तरह से काम करता है, एक तरफ यह हर 5 मिनट में दुर्घटनाग्रस्त हो जाता है, लेकिन यह बिना डेटा हानि के तुरंत वापस आ जाता है।

मेरे दिमाग में यह विश्वसनीय है, लेकिन स्थिर नहीं है।

मैं इस पर भरोसा कर सकता हूं कि डेटा नहीं खो रहा है और सही तरीके से काम कर रहा है, इसके बावजूद यह स्थिर नहीं है।

वास्तव में, इंटरनेट मूल रूप से यही है। यह स्थिर-कनेक्शन ड्रॉप और पुन: प्रकट होने से बहुत दूर है, पैकेट टकराते हैं और खो जाते हैं, और अन्य सभी प्रकार की अस्थिर चीजें होती हैं। हालांकि, यह बहुत ही आश्चर्यजनक है कि इसमें निहित सभी अस्थिरता कितनी विश्वसनीय है।


2
इयान सोमरविले एक विशिष्ट उद्देश्य के लिए "निर्दिष्ट समय में एक निश्चित समय में विफलता मुक्त संचालन की संभावना" के रूप में विश्वसनीयता को परिभाषित करता है। सॉफ्टवेयर इंजीनियरिंग पुस्तक में। इसलिए हर 5 मिनट में आपका सिस्टम क्रैश हो जाता है इसलिए यह विश्वसनीय नहीं है (आपके मेट्रिक्स पर निर्भर करता है)।
m3th0dman

2
@ m3th0dman, निर्भर करता है कि आप तब विफलता को कैसे परिभाषित करते हैं। कोई डेटा हानि, और 100% डेटा सटीकता मेरी पुस्तकों में विफलता नहीं होगी, भले ही ऐप क्रैश हो गया हो और स्वयं को पुनरारंभ कर रहा हो। मैं इस मुद्दे को ठीक करना चाहता हूं, लेकिन यह उच्च प्राथमिकता नहीं होगी यदि यह 'काम कर रहा है'
CaffGeek

यदि आपका सिस्टम क्रैश हो जाता है, तो स्पष्ट रूप से कहीं न कहीं विफलता थी और इस तरह आपका ऑपरेशन असफल नहीं हुआ (जैसा कि परिभाषा द्वारा सुझाया गया है); इस प्रकार आपका सिस्टम इतना विश्वसनीय नहीं है। चर्चा उपलब्धता, प्रतिक्रिया और पुनः आरंभ समय के बारे में बात करने में विस्तृत हो सकती है।
m3th0dman

मुझे गंभीरता से नहीं लगता कि यह उदाहरण ऐप विश्वसनीय है। विश्वसनीयता और स्थिरता जरूरी दो अलग चीजें नहीं हैं।
मोशे रेवह

@ m3th0dman: एरलैंग कार्यक्रमों को विश्वसनीय माना जाता है, इसलिए नहीं कि वे अचूक होते हैं, बल्कि इसलिए कि उनमें कई समवर्ती प्रक्रियाएं होती हैं (ओएस प्रक्रियाएं नहीं) जो समग्र रूप से कार्यक्रम से समझौता किए बिना विफल हो सकती हैं, जिसे उन गतिविधियों को संभालने के लिए डिज़ाइन किया गया है।
आंद्रे परमेस

24

ये परिभाषाएँ आईएसओ 9126 मानक से आती हैं, जो विशेषताओं और उप विशेषताओं में विभाजित होती हैं: यह तालिका , यह पीडीएफ या विकिपीडिया या लेख

स्थिरता है: किसी दिए गए सिस्टम के परिवर्तन की संवेदनशीलता को दर्शाता है जो कि नकारात्मक प्रभाव है जो सिस्टम परिवर्तनों के कारण हो सकता है।

विश्वसनीयता एक मुख्य विशेषता है जिसमें शामिल हैं:

  • परिपक्वता: यह उप-विशिष्ट चिंताएं सॉफ्टवेयर की विफलता की आवृत्ति है।
  • गलती सहिष्णुता: घटक, या पर्यावरण, विफलता से सामना करने (और पुनर्प्राप्त करने) के लिए सॉफ़्टवेयर की क्षमता।
  • पुनर्प्राप्ति: डेटा और नेटवर्क कनेक्शन सहित पूर्ण ऑपरेशन में एक असफल प्रणाली को वापस लाने की क्षमता।

6

लक्ष्य: दो संख्याओं को जोड़ने के लिए एक कार्यक्रम लिखें

विश्वसनीय लेकिन अस्थिर:

add(a,b):
    if randomInt mod 5 == 0: 
        throw exception
    else
        print a+b

स्थिर लेकिन अविश्वसनीय:

add(a,b):
    if randomInt mod 5 == 0: 
        print a+a
    else
        print a+b

यह परिभाषा गलत है। यह नहीं है कि उद्योग में शर्तों का वास्तव में उपयोग कैसे किया जाता है।
फेडरिको

2

पुस्तकालयों के मूल्यांकन के संदर्भ में, शर्तों का अर्थ पूरी तरह से अलग चीजें हैं।

एक विश्वसनीय पुस्तकालय वह है जो रुक-रुक कर विफलताओं के बिना अपना काम करता है।

एक स्थिर पुस्तकालय वह है जो बहुत अधिक नहीं बदलता है।


मुझे इतने सारे उत्तर देखकर आश्चर्य होता है जो स्थिर व्याख्या करते हैं जैसे "दुर्घटना नहीं करता है"। मेरे लिए पहला अर्थ वास्तव में "कुछ समय के लिए बहुत कुछ नहीं बदला है", यह अब आगे नहीं बढ़ रहा है। अब दुर्घटनाग्रस्त नहीं होने वाली चीज कुछ ऐसी हो सकती है जो इसके साथ आती है लेकिन स्थिरता मुख्य रूप से सॉफ्टवेयर व्यवहार के बारे में नहीं है।
मार्टिन माट

0

सॉफ्टवेयर विकास में स्थिरता और विश्वसनीयता अलग-अलग चीजें हैं, हालांकि वे दोनों बहन-शब्द के रूप में उपयोग की जाती हैं :)

मैं पिछली कुछ टिप्पणियों से सहमत हूं और अपने 2 सेंट जोड़ना चाहूंगा।

विश्वसनीयता वह सीमा है जिस पर एक प्रयोग, परीक्षण या कोई माप प्रक्रिया दोहराए गए परीक्षणों पर समान परिणाम देती है।

स्थिरता विश्वसनीयता (कभी-कभी परीक्षण कहा जाता है, फिर से परीक्षण विश्वसनीयता) समय के साथ उपकरणों को मापने का समझौता है। स्थिरता का निर्धारण करने के लिए, भविष्य की तारीख में एक ही विषय पर एक माप या परीक्षण दोहराया जाता है। स्थिरता की माप देने के लिए प्रारंभिक परीक्षण के साथ परिणामों की तुलना और सहसंबद्ध किया जाता है।

इस विषय पर और संदर्भ दिए गए हैं:


0

मेरे दिमाग में, "विश्वसनीयता" का मतलब है कि आपके पास सिस्टम की सीमा पर समझ है। आप विश्वास के साथ कह सकते हैं कि "हम Xth प्रतिशतक पर प्रतिक्रिया समय X प्रदान करते हैं" (उच्चतर X, बेहतर, स्पष्ट रूप से)।

दूसरी ओर, स्थिरता केवल एक उपलब्धता उपाय है। "यदि आप tio को हमारी सेवा से जोड़ने का प्रयास करते हैं, तो यह कम से कम X% बार होगा"।


0

विश्वसनीय लेकिन स्थिर नहीं :

add(a,b):
    if a == nil ||  b == nil: 
        throw exception
    else
        return (a+b)

स्थिर लेकिन विश्वसनीय नहीं :

add(a,b):
    if a == nil ||  b == nil: 
        return 0
    else
        return (a+b)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.