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