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