कार्यात्मक और गैर-कार्यात्मक आवश्यकता के बीच अंतर क्या है? [बन्द है]


283

सॉफ्टवेयर सिस्टम को डिजाइन करने के संदर्भ में कार्यात्मक और गैर-कार्यात्मक आवश्यकताओं के बीच अंतर क्या है ?

प्रत्येक मामले के लिए उदाहरण दें।



@TravisJ फिर, चलो टैग पर सवाल तब तक रखें जब तक हम टैग जलने के पहले चरण के साथ नहीं हो जाते।
टायलरएच

जवाबों:


525

एक कार्यात्मक आवश्यकता यह बताती है कि सॉफ्टवेयर सिस्टम को क्या करना चाहिए, जबकि गैर-कार्यात्मक आवश्यकताएं इस बात पर बाधा डालती हैं कि सिस्टम ऐसा कैसे करेगा।

मुझे विस्तार से बताएं

एक कार्यात्मक आवश्यकता का एक उदाहरण होगा:

  • जब भी कोई निश्चित शर्त पूरी होती है (जैसे एक ऑर्डर रखा जाता है, ग्राहक साइन अप करता है, आदि) एक सिस्टम को एक ईमेल भेजना होगा।

सिस्टम के लिए संबंधित गैर-कार्यात्मक आवश्यकता हो सकती है:

  • ईमेल को इस तरह की गतिविधि से 12 घंटे से अधिक की विलंबता के साथ भेजा जाना चाहिए।

कार्यात्मक आवश्यकता सिस्टम के व्यवहार का वर्णन कर रही है क्योंकि यह सिस्टम की कार्यक्षमता से संबंधित है। गैर-कार्यात्मक आवश्यकता प्रणाली के प्रदर्शन की विशेषता को विस्तृत करती है।

आमतौर पर गैर-कार्यात्मक आवश्यकताएं इस तरह के क्षेत्रों में आती हैं:

  • सरल उपयोग
  • क्षमता, वर्तमान और पूर्वानुमान
  • अनुपालन
  • प्रलेखन
  • आपदा बहाली
  • दक्षता
  • प्रभावशीलता
  • तानाना
  • दोष सहिष्णुता
  • इंटरोऑपरेबिलिटी
  • रख-रखाव
  • एकांत
  • पोर्टेबिलिटी
  • गुणवत्ता
  • विश्वसनीयता
  • लचीलाता
  • जवाब देने का समय
  • मजबूती
  • अनुमापकता
  • सुरक्षा
  • स्थिरता
  • supportability
  • testability

गैर-कार्यात्मक आवश्यकताओं के लिए विकिपीडिया के प्रवेश पर एक अधिक संपूर्ण सूची उपलब्ध है ।

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


मैं निश्चित रूप से आपकी प्रतिष्ठा और व्यावसायिक कार्य इतिहास (जो मैंने इसे लिखने से पहले देखा था) को देखते हुए आप के लिए स्थगित कर दूंगा: क्या आपके गैर-कार्यात्मक आवश्यकता के उदाहरण को व्यवहार नहीं माना जा सकता है? या आपकी बात इस तथ्य से अधिक है कि गैर-कार्यात्मक आवश्यकताएं व्यवहार के आसपास की बाधाओं का वर्णन करती हैं?
थॉमस

1
मेरे प्रश्न को थोड़ा स्पष्ट करने के लिए (और यह जवाबदेह नहीं हो सकता है): क्या व्यवहार का गठन करने की सीमा को बेहतर ढंग से स्पष्ट करने का एक तरीका है?
थॉमस

ईमेल सिस्टम का अच्छा उदाहरण देने के लिए प्लस 1। :)
अहिष्टम

33

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

गैर-कार्यात्मक आवश्यकता सीधे सिस्टम की आवश्यकता को आगे नहीं बढ़ाती है बल्कि यह प्रयोज्यता से संबंधित है (किसी तरह से) उदाहरण के लिए बैंकिंग एप्लिकेशन के लिए एक प्रमुख गैर-कार्यात्मक आवश्यकता उपलब्ध होगी आवेदन 24/7 उपलब्ध होना चाहिए जिसमें कोई डाउनटाइम नहीं है अगर संभव हो तो।


27

कार्यकारी आवश्यकताएं

  1. कार्यात्मक आवश्यकताएं एक फ़ंक्शन को निर्दिष्ट करती हैं जो एक सिस्टम या सिस्टम घटक प्रदर्शन करने में सक्षम होना चाहिए। इसे विभिन्न तरीकों से प्रलेखित किया जा सकता है। सबसे आम लोगों को दस्तावेजों में लिखित विवरण हैं, और मामलों का उपयोग करते हैं।

  2. उपयोग के मामले पाठीय संलयन सूचियों के साथ-साथ आरेख हो सकते हैं, जो उपयोगकर्ता के कार्यों का वर्णन करते हैं। प्रत्येक उपयोग मामला एक या अधिक कार्यात्मक आवश्यकताओं के माध्यम से व्यवहार परिदृश्यों को दिखाता है। अक्सर, हालांकि, एक विश्लेषक उपयोग मामलों के एक सेट को हटाकर शुरू करेगा, जिसमें से विश्लेषक उन कार्यात्मक आवश्यकताओं को प्राप्त कर सकता है जिन्हें प्रत्येक उपयोग मामले को निष्पादित करने के लिए उपयोगकर्ता को अनुमति देने के लिए लागू किया जाना चाहिए।

  3. कार्यात्मक आवश्यकताओं को एक प्रणाली को पूरा करना है । हो सकता है

    • गणना
    • तकनीकी जानकारी
    • डेटा मेनिपुलेशन
    • डाटा प्रासेसिंग
    • अन्य विशिष्ट कार्यक्षमता
  4. एक विशिष्ट कार्यात्मक आवश्यकता में एक अद्वितीय नाम और संख्या, एक संक्षिप्त सारांश और एक तर्क शामिल होगा। इस जानकारी का उपयोग पाठक को यह समझने में मदद करने के लिए किया जाता है कि आवश्यकता क्यों है, और सिस्टम के विकास के माध्यम से आवश्यकता को ट्रैक करने के लिए।

गैर-कार्यात्मक आवश्यकताएं

LBushkin पहले से ही गैर-कार्यात्मक आवश्यकताओं के बारे में अधिक बता चुका है। मैं और जोड़ दूंगा।

  1. गैर-कार्यात्मक आवश्यकताएं कार्यात्मक आवश्यकताओं की तुलना में कोई अन्य आवश्यकता हैं। यह ऐसी आवश्यकताएं हैं जो मानदंडों को निर्दिष्ट करती हैं जिनका उपयोग विशिष्ट व्यवहारों के बजाय एक प्रणाली के संचालन का न्याय करने के लिए किया जा सकता है

  2. गैर-कार्यात्मक आवश्यकताएं "सिस्टम होगा" के रूप में हैं, सिस्टम की एक समग्र संपत्ति एक विशेष पहलू के रूप में एक संपूर्ण या एक विशिष्ट फ़ंक्शन नहीं है। सिस्टम के समग्र गुण आमतौर पर इस अंतर को चिह्नित करते हैं कि विकास परियोजना सफल हुई है या विफल।

  3. गैर-कार्यात्मक आवश्यकताएं - दो मुख्य श्रेणियों में विभाजित की जा सकती हैं:

    • निष्पादन के गुण , जैसे कि सुरक्षा और प्रयोज्य, जो कि चलाने के समय में अवलोकन योग्य हैं।
    • इवोल्यूशन गुण , जैसे परीक्षण क्षमता, रखरखाव, एक्स्टेंसिबिलिटी और स्केलेबिलिटी, जो सॉफ्टवेयर सिस्टम की स्थिर संरचना में सन्निहित हैं।
  4. गैर-कार्यात्मक आवश्यकताएं उत्पाद के विकास, विकास प्रक्रिया पर प्रतिबंध लगाती हैं, और बाहरी बाधाओं को निर्दिष्ट करती हैं जो उत्पाद को पूरा करना चाहिए।
  5. आईईईई-कक्षा 830 - 1993 सूचियों 13 गैर कार्यात्मक आवश्यकताओं एक सॉफ्टवेयर आवश्यकताओं दस्तावेज़ में शामिल किया जाना।
  1. प्रदर्शन संबंधी जरूरतें
  2. इंटरफ़ेस आवश्यकताओं
  3. काम करने के लिए जरूरी चीजें
  4. संसाधन की आवश्यकताएं
  5. सत्यापन की आवश्यकताएं
  6. स्वीकृति आवश्यकताओं
  7. प्रलेखन की आवश्यकता
  8. सुरक्षा आवश्यकताओं
  9. पोर्टेबिलिटी की आवश्यकताएं
  10. गुणवत्ता की आवश्यकताएं
  11. विश्वसनीयता आवश्यकताओं
  12. स्थिरता की आवश्यकताएं
  13. सुरक्षा आवश्यकता

एक आवश्यकता को कार्यात्मक के रूप में व्यक्त किया जाता है या नहीं, गैर-कार्यात्मक आवश्यकता निर्भर कर सकती है:

  • आवश्यकताओं के दस्तावेज में शामिल किए जाने वाले विवरण के स्तर पर
  • विश्वास की डिग्री जो एक सिस्टम ग्राहक और एक सिस्टम डेवलपर के बीच मौजूद है।

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

संदर्भ:

  1. कार्यात्मक आवश्यकता
  2. गैर-कार्यात्मक आवश्यकता
  3. मात्रा और आवश्यकता का पता लगाने की क्षमता

1
अच्छी तरह से समझाया। धन्यवाद!
अर्सलान रामय

1
अच्छे संदर्भों के साथ अच्छा जवाब। मैं केवल और अधिक अद्यतन मानक जोड़ना चाहता हूं, क्योंकि IEEE 830-1993 को सुपरसीड किया गया था। सबसे हालिया मानक ISO / IEC / IEEE 29148: 2018 "सिस्टम और सॉफ्टवेयर इंजीनियरिंग - जीवन चक्र प्रक्रियाएं - आवश्यकताएँ इंजीनियरिंग" ( iso.org/standard/72089.html )
लॉगऑफ़

8

कार्यात्मक आवश्यकताएं वे हैं जो सिस्टम की तकनीकी कार्यक्षमता से संबंधित हैं।

गैर-कार्यात्मक आवश्यकता एक ऐसी आवश्यकता है जो मानदंडों को निर्दिष्ट करती है जिसका उपयोग विशिष्ट व्यवहारों के बजाय विशेष परिस्थितियों में एक प्रणाली के संचालन का न्याय करने के लिए किया जा सकता है।

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

पीक आवर्स में सिस्टम के प्रदर्शन के रूप में, डीबी से डेटा प्राप्त करने के लिए सिस्टम के लिए समय लगता है, उपयोगकर्ता डेटा की सुरक्षा, सिस्टम की क्षमता को संभालने के लिए यदि बड़ी संख्या में उपयोगकर्ता लॉगिन गैर कार्यात्मक आवश्यकताओं के तहत आते हैं।


बहुत बढ़िया जवाब।
इफ्तेखार

3

फंक्शनल रिक्वायरमेंट्स सिस्टम द्वारा की जाने वाली गतिविधियों की आवश्यकता होती है

  • व्यवसाय उन कार्यों का उपयोग करता है जो उपयोगकर्ता करते हैं
  • यदि आप पेरोल सिस्टम आवश्यक कार्यों को विकसित कर रहे हैं तो उदाहरणों का उपयोग करें
  • इलेक्ट्रॉनिक फंड ट्रांसफर जनरेट करें
  • गणना कमीशन राशि
  • पेरोल करों की गणना करें
  • आईआरएस को कर कटौती की रिपोर्ट करें

2

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

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