2010-01-24 27 views
5

डिज़ाइनिंग सॉफ़्टवेयर के संदर्भ में "असंगतता" और "अपूर्णता" का वास्तव में क्या अर्थ है?सॉफ्टवेयर इंजीनियरिंग शब्दावली - "असंगतता" और "अपूर्णता" का वास्तव में क्या अर्थ है

उदा। - विनिर्देशों का निर्माण

सॉफ्टवेयर इंजीनियरिंग के औपचारिक तरीकों का उपयोग विनिर्देशों के निर्माण के दौरान ऑब्जेक्ट ओरिएंटेड डिजाइन जैसे अन्य कम औपचारिक तरीकों से कम "असंगत" और "अधूरा" कहा जाता है।

+4

वे बहुत सी चीजों का मतलब कर सकते हैं। क्या आप उपयोग के उदाहरण प्रदान कर सकते हैं जिन्हें आप अस्पष्ट पाते हैं? – jfawcett

+0

उनका मतलब यह नहीं है कि –

+0

@jfawcett मैंने एक उदाहरण जोड़ा है – Julian

उत्तर

3

असंगतता और अपूर्णता दोनों औपचारिक तर्क से मूल रूप से शब्द हैं, जहां उनका उपयोग तार्किक प्रणालियों का वर्णन करने के लिए किया जाता है।

पूर्ण परिभाषाओं सटीक सन्दर्भ पर निर्भर करती है, लेकिन inconsistency सामान्य रूप से की तरह "कुछ एक्स के लिए, आप दोनों एक्स और! एक्स साबित कर सकते हैं" कुछ का मतलब है, और incompleteness की तरह "कुछ एक्स के लिए, आप साबित नहीं कर सकते एक्स कुछ का मतलब और आप साबित नहीं कर सकते! एक्स "।

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

1

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

एल्गोरिदम में, पूर्णता की धारणा एल्गोरिदम की समाधान को संदर्भित करने की क्षमता को संदर्भित करती है यदि कोई मौजूद है, और यदि नहीं, तो रिपोर्ट नहीं है कि कोई समाधान संभव नहीं है।

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

सॉफ़्टवेयर परीक्षण में, पूर्णता के लिए कॉल ग्राफ़ (सॉफ़्टवेयर आइटम के बीच) और नियंत्रण ग्राफ (प्रत्येक सॉफ़्टवेयर आइटम के अंदर) के कार्यात्मक सत्यापन के लक्ष्य के लिए है। पूर्णता की अवधारणा ज्ञान आधार सिद्धांत में पाई जाती है।

आप इस तरह की परिभाषाओं के साथ आगे बढ़ सकते हैं ... शायद सवाल कम अस्पष्ट बना सकते हैं?

और अगर मैं एक बुरा दिन था, मैं करना चाहेंगे "अपूर्णता प्रमेयों Goedels", के रूप में यह निश्चित विषय पर हो सकता है;)

4

सवाल शीर्षक सॉफ्टवेयर eng इंगित करता है। लेकिन शरीर सॉफ्टवेयर डिजाइन निर्दिष्ट करता है। ये दो शब्द समकक्ष नहीं हैं।

विसंगति और अपूर्णता के संबंध में, ऐसे कई क्षेत्र हैं जिनमें ये लागू होते हैं। एक एल्गोरिथ्म हो सकता है -

    कोड क्या यह नहीं अच्छी तरह से गठित या वाक्य रचना, पूरा तो compilable नहीं, व्याख्या करता है के
  • , निष्पादन योग्य
  • कार्यान्वयन के
  • :

    अधूरापन: बस उनमें से कुछ नाम हैं अधूरा, हैंडलिंग नहीं संभव मामलों ठीक से

  • कार्यक्षमता की
  • - एक सॉफ्टवेयर सभी सुविधाओं एक टीम में एक ग्राहक द्वारा आदेश दिया या योजना बनाई शामिल नहीं है

इनकॉन sistency

    सम्मेलनों के
  • और कोडिंग शैली कार्यान्वयन पर डिजाइन की
  • - काम करता है, वर्गों और एल्गोरिदम असंगत तरह से डिजाइन के इंटरफेस (अर्थातवेक्टर के लिए क्रमबद्ध करें वेक्टर को पारित करने की अपेक्षा करता है, सूची के लिए सॉर्ट दो इटरेटर्स स्वीकार करता है)
  • इंटरैक्शन के संदर्भ में उपयोगकर्ता इंटरफ़ेस के डिज़ाइन के लिए - एक संवाद उपयोगकर्ता को स्वीकार करने के लिए ENTER दबाया जाता है लेकिन किसी अन्य संवाद पर ठीक बटन प्रदर्शित होता है कार्रवाई
  • ग्राफिकल यूजर इंटरफेस के रूप और अनुभव के रूप में - विभिन्न खिड़कियों के पास पूरी तरह अलग दिखता है; या कमांड लाइन इंटरफेस - .नेट फ्रेमवर्क जीपीएल पर :-)
कल्पना दृश्य स्टूडियो उत्पाद BSD पर लाइसेंस प्राप्त है, लेकिन - एक ही विकल्प -v मूल्य के रूप में दिया जाता है, लेकिन जैसा कि --v = एक और एक मूल्य लाइसेंस की
  • +1

    अच्छी तरह से एसई और एसडी पर देखा गया। इस शब्द लागू होने वाले सभी अलग-अलग तरीकों को दिखाने के लिए –

    +0

    +1। यद्यपि स्पष्टता के लिए: जबकि सॉफ्टवेयर डिजाइन सॉफ्टवेयर Eng के बराबर नहीं है; यह इसका एक सबसेट है। – LWoodyiii

    +0

    @LWoodyiii धन्यवाद! हां वास्तव में, आप सही हैं। – mloskot

    0

    वे बहुत सी बातें मतलब हो सकता है, मैं बस यहाँ कुछ उदाहरण फेंक देंगे:

    असंगति:

    • एक अमूर्त वर्ग है कि कई वर्गों द्वारा लेकिन असंगत/परस्पर विरोधी कार्यान्वयन
    • साथ विरासत में मिला था बीत रहा है
    • कई समान कार्यान्वयन/मॉडल

    अपूर्णता पर विभिन्न डिजाइन पैटर्न का उपयोग करना:

    • नहीं समग्र अपवाद संचालन होने, केवल स्पष्ट लोगों
    • नहीं उपयोगकर्ता के लिए आवश्यक कार्य के संपूर्ण दायरे को कवर कार्यान्वित कर रहे हैं/सुविधाओं

    सूचियां आगे बढ़ती हैं ...

    0

    संदर्भ के आधार पर यह संभव है, Formal Methods कार्यक्रमों की शुद्धता साबित करने के लिए गणितीय तकनीकों का जिक्र कर रहा है। उस संदर्भ में, गणितीय सबूत का उपयोग यह सुनिश्चित करेगा कि विनिर्देश असंगत नहीं हैं (कोई तार्किक विरोधाभास नहीं) या incomplete (विनिर्देश की वैधता का औपचारिक प्रमाण है)।

    0

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

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

    1

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