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