सुधार बनाम प्रतिस्पर्धा [लूट]


17

"कोड कम्प्लीट 2" पढ़ना गुणवत्ता आवश्यकताओं में मुझे यह मिला:

प्रतिस्पर्धी विशेषताओं के बीच स्वीकार्य व्यापार-बंद निर्दिष्ट हैं - उदाहरण के लिए, मजबूती और शुद्धता के बीच?

(यह ऊपर आवश्यकताओं की गुणवत्ता की जांच करने के लिए एक बड़ी चेकबॉक्स सूची का एक बिंदु है)

इसलिए, मुझे वेब, अकादमिक पुस्तकों आदि में रोबस्टनेस और करेक्शन की बहुत सारी परिभाषाएँ मिलीं।

जैसे:

"ऑब्जेक्ट ओरिएंटेड सॉफ्टवेयर कंस्ट्रक्शन, द्वितीय संस्करण, बर्ट्रेंड मेयर, प्रेंटिस-हॉल, 1997" पुस्तक में:

  • सुधार: वह डिग्री जिसके लिए कोई प्रणाली अपने विनिर्देश, डिजाइन और कार्यान्वयन में [दोष] से मुक्त है।
  • रोबस्टनेस: वह डिग्री जिसके लिए कोई सिस्टम अमान्य इनपुट या तनावपूर्ण पर्यावरणीय परिस्थितियों की उपस्थिति में कार्य करना जारी रखता है।

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

मेरा सवाल है: प्रतियोगिता में ये दो विशेषताएं क्यों हैं ?


11
विभिन्न पुस्तकें इन शर्तों को अलग परिभाषा देती हैं। (आमतौर पर, सामान्य प्रोग्रामर के लिए लिखी गई किताबें अकादमिक प्रकाशनों की समान परिभाषाओं का उपयोग नहीं करती हैं।) शायद आप इस बात पर एक नज़र डाल सकते हैं कि यह पुस्तक उन्हें कैसे परिभाषित करती है, यदि कभी। (कभी-कभी इन शब्दों का उपयोग बिना किसी परिभाषा के पुस्तकों द्वारा किया जाता है।)
मार्व

मैं "मजबूत" के अलावा "मजबूत" की किसी भी परिभाषा के बारे में पता नहीं है "सभी प्रकार के अनपेक्षित आदानों को इनायत से संभालता है" (कार्यात्मक रूप से आवश्यक इनपुट के अतिरिक्त)।
काज

मैंने अपने प्रश्न को यथासंभव स्पष्ट करने का प्रयास किया है ताकि इसे फिर से खोला जा सके।
overcomer

जवाबों:


36

ऐसी कई स्थितियाँ हैं जिनमें ये दोनों संघर्ष में हो सकते हैं। उदाहरण के लिए, भारीपन में भारी भार के तहत लचीलापन शामिल हो सकता है। यदि किसी अनुरोध पर अनुमानित (यानी, गलत) प्रतिक्रिया को एक सटीक (सही) प्रतिक्रिया की तुलना में बहुत तेजी से गणना की जा सकती है, तो यह जानना महत्वपूर्ण है कि क्या सिस्टम को अनुमानित परिणाम देना चाहिए, या पूरी तरह से वितरित करने में विफल होना चाहिए।


17

जैसा आपने कहा, ये दो उदाहरण हैं। वास्तव में, उस प्रकार के सभी गैर-कार्यात्मक अनुरोध एक-दूसरे के साथ संभावित रूप से संघर्ष कर सकते हैं। "बिल्डिंग इवोल्यूशनरी आर्किटेक्चर्स" पुस्तक में इन "-उपयोगिताओं" की लगभग एक तालिका है (जैसा कि उन्हें अक्सर कहा जाता है)।

यह सॉफ्टवेयर वास्तुकारों के लिए इनमें से किसी दो के बीच संभावित संघर्ष पर विचार करने के लिए एक अभ्यास की तरह है। आप मूल रूप से यह तय कर सकते हैं कि इनमें से कौन सी आपकी परियोजनाओं के लिए महत्वपूर्ण हैं, फिर इन संघर्षों पर नज़र रखें।

अपने सटीक उदाहरण पर वापस जाने के लिए और robustnessविकिपीडिया में शब्द की परिभाषा पर एक नज़र डालें :

कंप्यूटर विज्ञान में, मजबूती, निष्पादन [1] [2] के दौरान त्रुटियों से निपटने और गलत इनपुट से निपटने के लिए कंप्यूटर प्रणाली की क्षमता है।

जैसा कि आप परिभाषा से देख सकते हैं, मजबूती में त्रुटियां शामिल हैं । दूसरी ओर, आप शुद्धता चाहते हैं, जिसका मूल अर्थ त्रुटियों की अनुपस्थिति है।

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

इसे अपनी पुस्तक में चारों ओर लाने के लिए: अब स्वीकार्य व्यापार बंद क्या है ? मान लीजिए कि आप एक वैज्ञानिक अनुप्रयोग लिखते हैं जिसमें उपयोगकर्ता परिमाण सहित एक वोल्टेज राशि का इनपुट कर सकता है। तो सही इनपुट कुछ "10 केवी" या "200 एमवी" जैसे होंगे। स्वीकार्य ट्रेड-ऑफ में "10kV", "10kVolt", या यहां तक ​​कि सिर्फ "10" जैसे इनपुट की अनुमति देना शामिल हो सकता है और शुद्धता मानचित्र के लिए इन्हें वैध वोल्टेज मान के लिए। ध्यान दें कि यह अभी भी एक व्यापार-बंद है और "सर्वश्रेष्ठ-दोनों-दुनिया" की चीज नहीं है। अपर-केस बनाम लोअर-केस पर विचार करें: "10 केवी" और "10 केवी" ठीक हो सकता है, लेकिन "10 एमवी" और "10 एमवी" नहीं हो सकता है। शुद्धता संदिग्ध हो जाती है क्योंकि आप सुनिश्चित नहीं हैं कि यह अब मिली या मेगा है,


5

एक व्यावहारिक उदाहरण XHTML बनाम HTML है

  • ब्राउज़र (सख्त मोड में) एक्सएचटीएमएल को अस्वीकार कर देता है जिसमें वाक्यविन्यास त्रुटियां हैं। यह सुनिश्चित करता है कि उपयोगकर्ता को गलत परिणाम प्रदर्शित नहीं होते हैं, और त्रुटियों को खोजने में सहायता करता है।
  • ब्राउजर HTML कोड को जारी रखने का प्रयास करता है, भले ही इसमें बहुत स्पष्ट समस्याएं हों। यह अक्सर उपयोगकर्ता को पृष्ठ को देखने की सुविधा देता है, भले ही सामग्री थोड़ी मंगाई गई हो।

इस प्रकार एक्सएचटीएमएल का उद्देश्य शुद्धता के लिए है, जबकि एचटीएमएल का उद्देश्य मजबूती के लिए है। वर्तमान में HTML अधिक लोकप्रिय है, लेकिन दोनों पक्षों के अच्छे तर्क हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.