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

कार्यात्मक आवश्यकता क्या है?
सॉफ्टवेयर इंजीनियरिंग में, कार्यात्मक आवश्यकता सिस्टम या उसके घटक को परिभाषित करता है। यह उन कार्यों का वर्णन करता है जिन्हें सॉफ़्टवेयर को करना चाहिए। एक फ़ंक्शन इनपुट, उसका व्यवहार और आउटपुट के अलावा कुछ नहीं है। यह एक गणना, डेटा हेरफेर, व्यावसायिक प्रक्रिया, उपयोगकर्ता इंटरैक्शन या कोई अन्य विशिष्ट कार्यक्षमता हो सकती है जो परिभाषित करती है कि सिस्टम क्या कार्य करने की संभावना रखता है।
कार्यकारी आवश्यकताएं सॉफ्टवेयर इंजीनियरिंग में सिस्टम के इच्छित व्यवहार को पकड़ने में आपकी मदद करते हैं। यह व्यवहार फ़ंक्शन, सेवाओं या कार्यों के रूप में व्यक्त किया जा सकता है या सिस्टम को कौन सा प्रदर्शन करना आवश्यक है।
गैर-कार्यात्मक आवश्यकता क्या है?
A गैर-कार्यात्मक आवश्यकता किसी सॉफ्टवेयर सिस्टम की गुणवत्ता विशेषता को परिभाषित करता है। वे किसी सिस्टम के विशिष्ट संचालन का न्याय करने के लिए उपयोग किए जाने वाले मानकों के एक सेट का प्रतिनिधित्व करते हैं। उदाहरण के लिए, वेबसाइट कितनी तेजी से लोड होती है?
संपूर्ण सॉफ़्टवेयर सिस्टम की उपयोगिता और प्रभावशीलता सुनिश्चित करने के लिए एक गैर-कार्यात्मक आवश्यकता आवश्यक है। गैर-कार्यात्मक आवश्यकताओं को पूरा करने में विफल होने के परिणामस्वरूप सिस्टम उपयोगकर्ता की ज़रूरतों को पूरा करने में विफल हो सकता है।
गैर-कार्यात्मक आवश्यकताएँ आपको विभिन्न एजाइल बैकलॉग में सिस्टम के डिज़ाइन पर बाधाएँ या प्रतिबंध लगाने की अनुमति देती हैं। उदाहरण के लिए, जब एक साथ उपयोगकर्ताओं की संख्या 3 से अधिक हो तो साइट को 10000 सेकंड में लोड होना चाहिए। Descriptगैर-कार्यात्मक आवश्यकताओं की पूर्ति कार्यात्मक आवश्यकता जितनी ही महत्वपूर्ण है।
कार्यात्मक आवश्यकताओं का उदाहरण
सॉफ्टवेयर इंजीनियरिंग में कार्यात्मक आवश्यकता के कुछ उदाहरण यहां दिए गए हैं:
- यह सॉफ्टवेयर स्वचालित रूप से ग्राहकों को एबीसी संपर्क प्रबंधन प्रणाली के तहत सत्यापित करता है
- बिक्री प्रणाली को उपयोगकर्ताओं को ग्राहकों की बिक्री रिकॉर्ड करने की अनुमति देनी चाहिए
- एप्लिकेशन में सभी विंडोज़ का पृष्ठभूमि रंग नीला होगा और इसका हेक्साडेसिमल RGB रंग मान 0x0000FF होगा।
- केवल प्रबंधकीय स्तर के कर्मचारियों को ही राजस्व डेटा देखने का अधिकार है।
- सॉफ्टवेयर सिस्टम को बैंकिंग एपीआई के साथ एकीकृत किया जाना चाहिए
- सॉफ्टवेयर सिस्टम को पास होना चाहिए धारा 508 पहुँच की आवश्यकता.
गैर-कार्यात्मक आवश्यकताओं के उदाहरण
सॉफ्टवेयर इंजीनियरिंग में गैर-कार्यात्मक आवश्यकता के कुछ उदाहरण यहां दिए गए हैं:
- उपयोगकर्ताओं को पहले सफल लॉगिन के तुरंत बाद आरंभिक रूप से निर्दिष्ट लॉगिन पासवर्ड बदलना चाहिए। इसके अलावा, आरंभिक पासवर्ड का कभी भी दोबारा उपयोग नहीं किया जाना चाहिए।
- कर्मचारियों को कभी भी अपनी वेतन जानकारी अपडेट करने की अनुमति नहीं दी जाती। इस तरह के प्रयास की सूचना सुरक्षा प्रशासक को दी जानी चाहिए।
- उपयोगकर्ता द्वारा डेटा के किसी आइटम तक पहुंचने का प्रत्येक असफल प्रयास ऑडिट ट्रेल पर दर्ज किया जाएगा।
- एक वेबसाइट को 20 मिलियन उपयोगकर्ताओं को संभालने में सक्षम होना चाहिए, जिससे उसका प्रदर्शन प्रभावित न हो।
- सॉफ्टवेयर पोर्टेबल होना चाहिए। ताकि एक ऑपरेटिंग सिस्टम से दूसरे ऑपरेटिंग सिस्टम पर जाने में कोई परेशानी न हो।
- सूचना की गोपनीयता, प्रतिबंधित प्रौद्योगिकियों के निर्यात, बौद्धिक संपदा अधिकार आदि का ऑडिट किया जाना चाहिए।
कार्यात्मक और गैर-कार्यात्मक आवश्यकताओं के बीच अंतर
सॉफ्टवेयर इंजीनियरिंग में कार्यात्मक और गैर-कार्यात्मक आवश्यकताओं के बीच मुख्य अंतर नीचे दिया गया है:
पैरामीटर्स | कार्यात्मक आवश्यकता | गैर-कार्यात्मक आवश्यकता |
---|---|---|
क्या यह है | क्रिया | गुण |
आवश्यकता | यह अनिवार्य है | यह गैर-अनिवार्य है |
कैप्चरिंग प्रकार | इसे उपयोग के मामले में शामिल किया गया है। | इसे एक गुणवत्ता विशेषता के रूप में ग्रहण किया गया है। |
अंतिम परिणाम | उत्पाद फ़ीचर | उत्पाद के गुण |
कैप्चरिंग | कैप्चर करना आसान | पकड़ना कठिन |
उद्देश्य | आपको सॉफ्टवेयर की कार्यक्षमता सत्यापित करने में सहायता करता है। | सॉफ्टवेयर के प्रदर्शन को सत्यापित करने में आपकी सहायता करता है। |
फोकस का क्षेत्र | उपयोगकर्ता की आवश्यकता पर ध्यान दें | उपयोगकर्ता की अपेक्षा पर ध्यान केंद्रित करता है। |
दस्तावेज़ीकरण | उत्पाद क्या करता है इसका वर्णन करें | उत्पाद कैसे काम करता है इसका वर्णन करता है |
परीक्षण का प्रकार | कार्यात्मक परीक्षण जैसे सिस्टम, एकीकरण, एंड टू एंड, एपीआई परीक्षण, आदि | गैर-कार्यात्मक परीक्षण जैसे प्रदर्शन, तनाव, प्रयोज्यता, सुरक्षा परीक्षण, आदि |
परीक्षा निष्पादन | परीक्षण निष्पादन गैर-कार्यात्मक परीक्षण से पहले किया जाता है। | कार्यात्मक परीक्षण के बाद |
उत्पाद जानकारी | उत्पाद सुविधाएँ | उत्पाद गुण |
कार्यात्मक आवश्यकता के लाभ
यहां, एक विशिष्ट कार्यात्मक आवश्यकता दस्तावेज़ बनाने के पक्ष/लाभ दिए गए हैं-
- यह आपको यह जांचने में मदद करता है कि क्या एप्लीकेशन उस एप्लीकेशन की कार्यात्मक आवश्यकता में उल्लिखित सभी कार्यात्मकताएं प्रदान कर रहा है या नहीं
- कार्यात्मक आवश्यकता दस्तावेज़ आपको किसी सिस्टम या उसके किसी उप-सिस्टम की कार्यक्षमता को परिभाषित करने में मदद करता है।
- आवश्यकता विश्लेषण के साथ-साथ कार्यात्मक आवश्यकताएँ लापता आवश्यकताओं की पहचान करने में मदद करती हैं। वे अपेक्षित सिस्टम सेवा और व्यवहार को स्पष्ट रूप से परिभाषित करने में मदद करते हैं।
- कार्यात्मक आवश्यकता एकत्रीकरण चरण में पकड़ी गई त्रुटियों को ठीक करना सबसे सस्ता है।
- आसान परियोजना प्रबंधन के लिए उपयोगकर्ता के लक्ष्यों, कार्यों या गतिविधियों का समर्थन करें
- कार्यात्मक आवश्यकता को उपयोग केस फॉर्म या उपयोगकर्ता कहानी में व्यक्त किया जा सकता है क्योंकि वे बाह्य रूप से दृश्यमान कार्यात्मक व्यवहार प्रदर्शित करते हैं।
गैर-कार्यात्मक आवश्यकता के लाभ
गैर-कार्यात्मक परीक्षण के लाभ/लाभ सॉफ्टवेयर इंजीनियरिंग यह है:
- गैर-कार्यात्मक आवश्यकताएं यह सुनिश्चित करती हैं कि सॉफ्टवेयर सिस्टम कानूनी और अनुपालन नियमों का पालन करे।
- वे सॉफ्टवेयर सिस्टम की विश्वसनीयता, उपलब्धता और प्रदर्शन सुनिश्चित करते हैं
- वे अच्छे उपयोगकर्ता अनुभव और सॉफ्टवेयर के संचालन में आसानी सुनिश्चित करते हैं।
- वे सॉफ्टवेयर सिस्टम की सुरक्षा नीति तैयार करने में मदद करते हैं।