Sorun, derleyici veya tarayıcı yazmak gibi yaygın bir sorunsa, gereksinimler hemen hemen dil standartları, hedef işletim sistemleri ve hedef donanım vb. Şeklinde verilir.
Bir metin editörü olma hedefini mükemmel bir şekilde yerine getirmenin yanı sıra, birçok şey için GNU Emacs gibi şeyler için, gereksinimleri genişletmek için büyük kapsam nedeniyle mantıklı olduğunu düşünüyorum. Sohbetler, e-postalar, haber grupları, kod düzenleme, sürüm kontrolü akla geliyor. Emacspeak üzerinde çalışan bir araştırma bilimcisi var. Tarayıcılar ve uzantılara izin veren diğer şeyler için de benzer şeyler söylenebilir.
Yazılım yalnızca açık kaynaklı olmayan yazılımlarda kullanılabilen bir işlevi yakalarsa, gereksinim hemen hemen tekrar verilir.
DÜZENLE:
Açık kaynaklı yazılım bakıma devam ettiğinde ve daha az orijinal gereksinim karşılanmadığında, gereksinimlerin çoğu hatalardan gelebilir, çok çekirdekli CPU'lar ve istismar edildiğinde daha iyi performans sunan diğer donanımlar gibi yeni platformlara uyum sağlaması gerekir.
GNU Hurd gibi tamamen araştırmaya dayalı bir projede, gereksinimlerin araştırma sonuçlarından ve belgelerden geldiğini düşünüyorum.
Sonuç olarak,
başlangıçta, ortak sorunları çözmeye çalışan yazılım gereksinimleri standart belgelerden gelebilir
diğer mevcut yazılımlara yetişen yazılımlar için, gereksinimlerin mevcut yazılımın özellik setinin tamamını veya çoğunu ve geliştiricilerin / kullanıcıların sahip oldukları ilginç buldukları diğer bazı özellikleri üretmesi muhtemeldir.
araştırma projeleri, makaleler ve diğer yayınlar için
bakımdayken, hatalar, daha yeni ortamlara uyum sağlaması gereklilikler