Persyaratan yang Anda tulis tidak memiliki karakteristik persyaratan yang baik . Secara khusus, itu tidak kohesif, itu bukan atom, dan itu tidak ambigu. Karena kurangnya karakteristik ini, itu juga tidak mudah diverifikasi.
Persyaratan awal Anda adalah:
Nama file yang diunduh mungkin mengandung karakter non-ASCII dan pemrosesan ini tidak akan membuat aplikasi mogok
Saya akan merekomendasikan menghapus "... dan pemrosesan ini tidak akan merusak aplikasi". Jika Anda memiliki persyaratan bahwa perangkat lunak perlu melakukan sesuatu, saya pikir tidak apa-apa untuk membuat asumsi bahwa itu harus dilakukan tanpa menabrak perangkat lunak.
Ini mengubah persyaratan menjadi:
Nama file yang diunduh mungkin berisi karakter non-ASCII
Sekarang, Anda memiliki persyaratan kohesif dan atom. Namun, saya tidak yakin itu tidak ambigu. Dalam pertanyaan Anda, Anda menyebutkan sejumlah format berbeda. Ada beberapa opsi.
Beberapa akan merekomendasikan persyaratan terpisah dan unik untuk setiap pengkodean nama file yang harus didukung. Ini akan lebih baik mendukung persyaratan kohesif, atomik, dapat dilacak, tidak ambigu, dan dapat diverifikasi. Ini juga akan membuatnya lebih mudah untuk menentukan pentingnya setiap persyaratan - mungkin dukungan untuk beberapa pengkodean lebih penting atau dibutuhkan lebih cepat.
Orang lain mungkin merekomendasikan tabel format yang didukung dan persyaratan ini akan ditautkan ke tabel. Itu akan kurang lengkap (Anda memiliki kalimat tekstual dan tabel untuk dipelihara), tetapi mereka akan berada di dokumen atau database yang sama. Namun, jika Anda akan melakukan penautan di alat manajemen persyaratan, mereka dapat dihubungkan bersama sehingga perubahan satu akan menyoroti persyaratan tertaut. Ini juga akan memungkinkan teks mengalir ke paket perangkat lunak lain apa adanya, tetapi dengan tabel berbeda untuk pengkodean yang berbeda.
Namun, bagaimana Anda mendokumentasikan persyaratan tergantung pada kebutuhan spesifik Anda.