需求分析是使軟件分析員能夠刻畫出軟件的功能屬性和非功能屬性需求及相關的領域需求、指明軟件和其他系統元素的接口。并建立軟件必須滿足的約束。
一般來說需求工程需要獲取的信息內容主要有以下三種。
1)需求
需求是需求獲取的主要對象,也就是系統期望達到的功能和非功能的目標。它主要來源于用戶、客戶、領域專家等相關涉眾,衣獲取中體現為相關人員的問題、期望、觀點、看法和態度等。分析人員應該與各種層次的客戶進行充分的交流和溝通,包括決策領導、使用部門的領導、具體使用人員和系統維護人員等,盡量清楚地理解用戶的問題和要求。
2)問題域描述
在需求獲取的過程中。軟件人員與用戶之間最常見的交流方式就是會議和訪談,由于雙方的知識領域不同,經常會遇到誤解、交流障礙、需求不全和意見沖突等情況。因此,需要借助問題域的描述來解決交流的問題。問題域描述是用來承載和解釋需求的問題域特征,主要是現實環境的業務運行狀況。它可以從用戶等相關人員的業務描述中獲得,也可以從業務運行過程中所產牛的各種數據義核中獲得。
3)環境與約束
軟件需求不僅要描述系統期望達到的功能和非功能的目標,同時也需要描述系統相關的環境相約束。環境與約束屬于一種特殊的問題域特征,限定丁解系統部署的環境和條件。之所以將其單獨列舉出來,是因為它常常在需求獲取中被人們遺漏。它們主要來源于用戶及相關人員的描述和對應用環境的觀察。
無論是需求、問題域描述,還是環境與約束,它們都要和項目前景保持一致。