用戶培訓:也要對用戶進行需求工程知識的培訓,讓他們明白需求的重要性,知道如何準確地描述需求以及需求的風險。
開發者培訓:開發者要對用戶的應用領域有基本的了解,了解客戶的業務活動、術語、產品目標等需求,包括業務需求、用戶需求、功能需求和非功能需求。在開發需求之前,我們需要明確需求開發的流程並形成文檔,包括:需求開發的步驟,每個步驟如何實現,如何處理突發情況,如何規劃開發資源等。
需求獲取包括以下方法和技巧:
項目範圍的確定:在需求開發的前期,要獲取用戶的業務需求,明確項目範圍,讓各利益相關方對項目有壹個共同的認識。
用戶確定:確定用戶群和分類,詳細描述用戶群,包括產品使用頻率、使用功能、優先級別、熟練程度等。為每個用戶組確定用戶的發言人。對於大型項目,首先需要確定中心客戶群。中心客戶群的需求具有高層次的優先級和需要首先實現的核心功能。
用例確定:與用戶代表溝通,了解他們需要完成的任務,並獲得用例模型。同時,根據用例導出功能需求。用例描述應該使用標準模板。
系統事件和響應:業務事件可能觸發用例。系統事件包括系統內部的事件、從外部接收的信息和數據,或者壹個突發任務。
如何獲取:召開需求討論會,觀察用戶工作過程,采用問答式對話,采用誘導式需求誘導等等。檢查和改進:問題報告和補充需求建議。需求分析是獲取用戶需求後的壹個粗略的過程,需要經過推敲和打磨,才能讓各利益相關方準確理解需求。在分析過程中,需要先對需求進行檢查,確保需求的正確性和完整性,然後將高層需求分解為具體細節,創建開發原型,完成從需求獲取人員到開發人員的轉變。
畫關聯圖:關聯圖決定了系統與外界的相互作用。劃分了系統的範圍和邊界,構建了系統的對外接口。
原型開發:對於敏捷方法,建議完成壹個接口的原型和壹個初步的系統實現。通過原型,所有的涉眾可以對開發的項目有壹個初步的印象,同時,它可以提供壹個需求測試。
需求的優先級:通過分析確定產品的功能,根據優先級確定用例及個別需求的優先級,以及所有功能和需求包含在哪個版本中。在項目開發過程中,根據實際情況調整需求的優先級別。
需求建模:圖形分析模型在描述需求方面更加抽象。主要可以用UML建模分析。
創建數據字典:建立系統中使用的數據項和結構的定義。數據字典可以使參與項目開發的每個人使用統壹的定義。
子系統:建立系統的架構,同時將需求分發到各個子系統和模塊。SRS應該是作為利益相關者對系統的統壹理解。
采用SRS模板:定義壹個標準模板。