需求分析就是分析軟件用戶的需求是什么。如果投入大量的人力,物力,財力,時間,做出的軟件卻沒有人要,那么所有的投入都是徒勞的,浪費的。所有的人力、物力、財力都浪費了。這是一筆巨大的損失。
例如,用戶需要一個用在 linux上的軟件,但是你在軟件開發前期忽略了軟件的運行環境,忘了向用戶詢問這個問題,然后理所當然的認為是開發是建立在 windows系統上的軟件,當你千辛萬苦地開發完成向用戶提交時才發現出了問題,那時候你是慘了,恨不得找塊豆腐一頭撞死。而現實中並不是找塊豆腐撞死這么簡單了,你的團隊以及你的公司都將遭到極大的損失。這是我們非常不想看到的結果。
而需求分析之所以重要,就因為他具有決策性,方向性,策略性的作用,他在軟件開發的過程中具有舉足輕重的地位。所以我們需要需求分析。
對軟件通常有以下需求:
功能需求:
指定系統必須提供的服務;
性能需求:
指定系統必須滿足的定時約束或容量約束,通常包括速度、信息量速率、主存容量、磁盤容量、安全性等方面的需求;
可靠性和可用性需求:
指定系統的可靠性,可用性量化了用戶可以使用系統的程度;
出錯處理需求:
說明系統對環境錯誤應該怎么響應;
接口需求:
描述應用系統與它的環境通信的格式;
逆向需求:
說明軟件系統不應該做什么;
將來可能提出的要求:
應該明確列出那些雖然不屬於當前系統開發范疇,但是據分析將來很可能會提出來的要求