
一個非常常見的現象就是軟件需求文獻通常是消極的并做了一個不正確的假設,就是假設用戶可以百分之百有效地識別需求。這是一個非常危險的假設,用戶識別的需求從來都不是完整的,并且經常是錯誤的。如果網站制作軟件項目想要成功,需求必須通過一種非常專業的方式進行收集和分析,而軟件工程就是一個必須知道該如何去做好這些的專業。軟件工程師們有責任堅持使用合適的需求分析方法.這些方法包括遺留應用的數據挖掘、聯合應用設計(JAD)、質且功能展開(QFD)、原必分析及需求審查。對需求分析有幫助的方法,還有讓用戶參加到開發團隊中(對于敏捷開發而言),使用用例也是一種推薦的方法。
軟件產品的用戶并不是軟件工程師,因此我們不能期望他們知道如何用最佳方式來表述和分析需求。所以,我們需要確保以專業水準所做的軟件需求收集和分析結果移交到軟件開發團隊。在2009年,幾乎一半左右的軟件應用都是對遺留應用進行改造,這些遺留應用有些已經使用了超過25年。不幸的是,這些遺留應用極少有可用的軟件說明書或需求文檔。
由于遺留應用缺乏對特性和功能進行描述的資料,一種新的需求分析方法出現了。這種新的方法從對遺留應用的數據挖掘人手,從而提煉出其中的業務規則和邏輯。由于這種方法的出現,數據挖掘也可以用來評估軟件的功能點和代碼語句的規模。