需求、需求工程与需求工程师 — 3. 需求工程的构成
需求的概念有了,但是如何系統地、高效地獲取需求?獲取需求的流程是什么、有哪些步驟、每個步驟對應的方法、標準是什么?等,解決這些問題就需要建立一套標準的需求獲取方法。需求工程就是用來解決上述問題的方法,它是軟件工程的三個核心工程(需求工程、設計工程、開發過程)中的第一部,需求工程的成果是其后設計工程的輸入。需求工程是支持系統化的需求建模過程,為軟件需求模型提供了標準的定義和約束條件,使得需求工程師和開發工程師對需求信息的理解是一致的。
1. 需求工程的構成
用軟件工程的三個核心部分搭建一個框架,其中需求工程的內容可以按照橫軸和縱軸分為兩個維度展示,如圖1所示。
圖1 軟件工程與需求工程的構成
1)工程分解 — 橫軸
在圖1中給出了需求工程在軟件工程中的位置、需求工程的內容構成,并按照流程的方式表達了需求工程的四個主要階段和順序關系,四個階段分別為:調研準備、需求調研、需求分析、需求管理,其中需求調研和需求分析是需求工程中的重點,是獲取需求的主要工作階段。
2)工作分解 — 縱軸
在需求工程中每個階段內完成了不同的工作,縱軸給出了需求工程每個階段中的主要工作構成,如調研準備階段的主要工作分為:組織計劃、背景問卷、標準環境等。
下面分別對橫軸和縱軸的內容進行說明。
2. 調研準備
調研準備,是需求工程的第一個階段,重點給出了需求工程在進入正式的調研前需要做哪些準備,這些準備對后面的調研、分析和資料管理都有著非常重要的指導作用。
1)組織計劃
□進行需求工程前要先建立需求調研組,確定調研資源、分工等
□由調研組對后續的調研工作進行策劃、路線、方法等
□根據調研內容、工期、資源等制定調研計劃,包括里程碑計劃、執行計劃(月計劃、周計劃、人計劃、板塊計劃、周例會)、資料交付時間、成果評審時間等。
2)背景問卷
□背景資料:收集項目相關的背景資料,包括:客戶企業構成、業務領域、IT現狀、對信息化的期望等。資料的來源有企業網站、資料、銷售人員的溝通等。
□問卷調研:預先采用問卷的方式進行“預調研”,初步收集用戶信息,為正式進入調研時掌握主動打下基礎,問卷可以讓用戶預先有一個心理準備,要調研什么內容、怎么調研等,同時預調研的資料可以支持做策劃和計劃。
3)標準環境
□建立標準,包括:與客戶統一主要的用語(用語字典)、調研標準流程、需求記錄模板、交付資料類型、階段評審時間和內容等。
□布置調研環境,包括辦公室、交流場所、調研用具(包括投影儀、白板、彩筆)
□召開項目啟動會時間,會上要確定的內容,包括:客戶與調研雙方要遵守的紀律、規則、計劃、可能出現的風險和應對方法等,這是非常重要保障措施。
3. 需求調研
需求調研,是需求工程的核心階段之一,這個階段的主要工作是收集、記錄客戶對信息化的需求,重點是在對原始需求的“記錄”,而不對原始需求進行“分析或設計”,此時應該避免因為分析與設計融入了需求工程師個人的見解,需求調研階段的資料一定要保持其第一手資料的“原始性”(使用需求模板是為了使記錄內容標準化、格式化)。收集和記錄的主要形式有以下三種。
圖2 需求調研的三種記錄形式
1)現狀構成(圖形記錄形式),圖2(a)
做好需求調研工作的第一件事,就是要理解客戶業務現狀,采用架構圖的方式表達業務現狀是最佳的的方法。現狀構成圖不僅是客戶現狀的記錄,而且也是后續進行業務架構、優化、改進的重要參考物。沒有此圖,后續在設計時就不知道以什么為參考對象進行業務的優化了。
■注:
需求調研的目的不僅僅要獲取軟件的“業務功能”,而且還必須要獲得“業務邏輯”,這兩者是軟件設計和開發必不可少的依據,而業務邏輯主要依靠架構圖的方式獲取的。
2)訪談記錄(文字記錄形式),圖2(b)**
不能用圖形表達的需求要用文字記錄,用文字記錄有兩種主要形式:事前問卷、當面訪談。
(1)事前問卷
對一些用戶基本情況的了解可以提前編制一個起著誘導、啟發作用的問卷,將相關的問題提出來,用填寫、或是選擇的方式讓未來的調研對象先做個回答,這樣可以高效快速地掌握一些簡單、基礎的需求。
(2)當面訪談
這個部分的內容最多、工作量也是最大的,包括了客戶對信息化的明確需求、不明確的問題、對未來的期望等,比如:
□決策層面的需求:理念、目的、商機等;
□管理層面的需求:優化、效率、效益等;
□執行層面的需求:功能、措施、規則等;
以及各層共有的問題,如:企業運營中的難度、痛點等。
3)既存表單(表格記錄形式),圖2(c)
既存表單,是客戶在導入信息系統前正式使用的、并且需要轉化為用系統處理的各類資料。包括:各類憑證單據、統計報表、分析資料等。它們的存在形式可以是:電子表單、紙質表單。
這是后續設計業務功能的重要參考物。這些資料提供了如下的信息(不限于此)
□業務功能、系統界面的參考;
□數據定義、數據邏輯、數據規則(計算公式);
□業務流程上節點對應的實體;等
4. 需求分析
需求分析,是對收集到的原始需求進行細致的分析、研判,準確地理解客戶的目標、業務等對信息化的需求,最終將這些需求轉換為準確的功能需求定義。需求分析就是確定系統必須要做什么的過程。需求分析階段是分析系統在功能上需要“實現什么”,而不考慮如何去“實現”。
需求分析完成后,給出【需求規格說明書】,這個資料的用途有兩個:回答客戶的需求、作為后續設計的輸入。
□對客戶:確定了系統需要開發/交付的全部內容,是雙方簽訂/驗收合同的依據;
□對設計:是規劃系統范圍、目標、原則等的依據,是具體設計的指導;
需求分析的結果,不但影響著需要實際開發的功能數量,而且也直接影響著軟件項目的開發成本、甚至是對軟件商技術的能力要求等。
對需求調研收集到的資料理解基礎之上,進行了抽提、歸類、梳理,同時根據分析補全了調研時的斷點,并且采用比較規范的方式進行了表述,重要的是:需求工程師通過對目標需求、業務需求等高端需求的分析加入了個人的理解、以及對企業信息化提升有價值的意見,所以需求分析的結果與原始記錄之間會發生不同,需求工程師的理解代表了軟件開發團隊的理解,并以此為基礎向客戶進行確認、最終稿就形成了向下一個設計環節的輸入資料。
所以說,需求工程師的能力會最終影響到信息系統的內容、技術、成本和周期等
圖3 需求調研成果與需求分析的三個分層的關系
需求分析階段的主要就是要給出具體的軟件“功能需求”。需求調研階段獲得了三種調研記錄,如圖3(a)所示,將這些原始需求的內容按照提出者、目的的不同分為三層,如圖3(b)所示。其中
□目標需求:提出了系統的構建方向、目標,比較抽象,需要轉換為對應的業務需求;
□業務需求;提出了系統要支持的業務內容,是從業務上相互理解的基礎;
□功能需求:提出了系統要實現的功能內容,是從功能上相互理解的基礎;
目標需求和業務需求要想落實到系統中都要轉換為功能需求。
5. 需求管理
主要是配置的管理工作。由于需求工程中的需求管理部分(包括:記錄標準、記錄模板、需求確認、需求跟蹤、變更控制、版本更新等)是對分析與設計成果的管理和維護。
前述三篇博文說明了什么是需求、需求工程,下面就要對需求工作的擔當者所需要的能力給予說明。
■ 本博文系列下一篇:需求、需求工程與需求工程師 — 4. 咨詢的能力要求
詳細的需求工程說明請參見《大話軟件工程—需求分析與軟件設計》一書。
總結
以上是生活随笔為你收集整理的需求、需求工程与需求工程师 — 3. 需求工程的构成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yaml文件用法
- 下一篇: Cannot resolve symbo