Yazdığınız gereklilik iyi bir gereksinimin özelliklerine sahip değil . Özellikle, yapışkan değildir, atomik değildir ve açık değildir. Bu özelliklerin eksikliği nedeniyle, aynı zamanda kolayca doğrulanamaz.
İlk eyalet gereksiniminiz:
İndirilen dosya adı ASCII olmayan karakterler içerebilir ve bunun işlenmesi, uygulamanın çökmesine neden olmaz
"... ve bunun işlenmesi uygulama çökmez" kaldırılmasını öneriyoruz. Bir yazılım parçasının bir şey yapması gerektiğine dair bir gereksiniminiz varsa, yazılımı çökmeden yapması gerektiğini varsaymanın doğru olduğunu düşünüyorum.
Bu gereksinimi şuna dönüştürür:
İndirilen dosya adı ASCII olmayan karakterler içerebilir
Şimdi, uyumlu ve atomik bir gereksiniminiz var. Ancak, bunun açık olduğundan emin değilim. Sorunuzda bir dizi farklı formattan bahsediyorsunuz. Birkaç seçenek var.
Bazıları, desteklenmesi gereken her dosya adı kodlaması için ayrı ve benzersiz bir gereksinim önerir. Bu en iyi şekilde uyumlu, atomik, izlenebilir, açık ve doğrulanabilir gereksinimleri destekleyecektir. Ayrıca her gereksinimin önemini belirtmeyi kolaylaştırabilir - belki de bazı kodlamalar için destek daha önemlidir veya daha erken ihtiyaç duyulur.
Diğerleri desteklenen biçimlerden oluşan bir tablo önerebilir ve bu gereksinim bir tabloya bağlanır. Daha az eksiksiz olurdu (metinsel bir cümleniz ve korunacak bir tablonuz var), ancak aynı belge veya veritabanında olacaklardı. Ancak, bir gereksinim yönetimi aracında bağlantı gerçekleştirecekseniz, bunlara yapılan değişiklikler bağlantılı gereksinimi vurgulayacak şekilde birbirine bağlanabilir. Ayrıca, metnin diğer yazılım paketlerine olduğu gibi, ancak farklı kodlamalar için farklı bir tabloyla akmasına izin verir.
Gereksinimleri nasıl belgelediğiniz özel gereksinimlerinize bağlıdır.