軟件工程標準詞彙表中對“需求”的定義:
- 用戶爲了解決問題或實現目標所需具備的條件或能力;
- 系統或系統組件爲達到合同、標準、規範或其他正式文檔中所規定的要求而需要具備的條件或能力;
- 對前兩項中的條件或能力的文檔化表述。
統一軟件開發過程(Rational Unified Process,RUP)中對“需求”的定義:描述了系統必須滿足的情況或提供的能力,由客戶直接提出,也可以出自合同、標準、規範或其他正式文檔。
經濟學中對“需求”的定義:指人們在慾望驅動下的一種有條件的、可行的、最優的選擇,這種選擇使慾望達到有限的最大滿足。
其實無論是軟件行業對“需求”的定義,還是經濟學中的抽象定義,都可以將“需求”理解成“軟件能爲用戶做什麼或者解決什麼問題”。
需求採集
需求採集的目的是獲取用戶的原始需求,爲需求分析工作提供基礎,其工作成果是《軟件用戶需求說明書》。需求採集一般由熟悉用戶所從事工作的資深人員進行,需求採集人員需要了解用戶希望軟件系統在哪些方面爲其提供幫助、解決哪些問題。
在進行需求採集前,需求採集人員需要做一些準備工作,比如瞭解軟件系統服務的行業情況、用戶所處的組織結構,準備相關業務資料,列出需要詢問的問題。
需求分析
需求分析是對採集到的原始需求進行分析、整理、辨別和歸納,最終形成系統的、明確的軟件需求,其工作成果是《軟件需求規格說明書》。
需求採集和需求分析並不是明確劃分先後順序的兩個階段性工作,而是近乎同時進行的。在需求工作開始階段,主要是需求採集工作,而需求分析工作佔據的比例偏少,但是隨着需求採集到的原始需求越來越多,需求分析工作也越來越多。
需求建模
創建RQM
新建RQM操作流程:
圖2中第一行是需求文檔視圖窗口的操作工具欄,下文簡稱工具欄,第二行是表頭行1,下面各行是內容行。
編輯RQM
編輯需求模型主要包括添加需求、編輯需求屬性、添加子需求、提高或降低需求層級、刪除需求、修改顯示列、創建用戶、創建用戶組、創建術語庫以及創建業務規則功能。
1.添加一級需求
- 單擊工具欄的第二個按鈕[Insert an Object]
- 單擊需求文檔視圖窗的空白區
- 按 Ctrl+I 組合鍵
新添加的需求具有默認的需求ID、需求描述和需求代碼。
2.編輯需求屬性
- 直接在需求文檔窗口的編輯區域編輯主要屬性
- 雙擊需要編輯的需求行打開編輯需求屬性窗口
- 選中需要編輯的需求行單擊工具欄的第一個按鈕[Properties]打開編輯需求屬性窗口
- 選中需要編輯的需求行按 Alt+Enter 組合鍵打開編輯需求屬性窗口
從圖3中可以看出,編輯需求屬性窗口包括的選項卡包括:
- General:通用信息,用於設置需求的一般信息
- Parent:需求的父需求名稱,如果需求爲一級需求,則顯示需求模型的名稱
- Title ID:需求ID,需求的層級編號,自動生成,不可編輯
- Title:需求名稱
- Code:需求代碼,一般使用英文、數字加符號表示,與後期的具體設計有關
- Description:需求描述,可以用工具輔助完成富文本
- Keywords:需求關鍵詞
- Detail:詳細信息,用於設置需求的優先級和風險等級等信息
- Comment:需求的簡要說明
- Stereotype:語義的擴展說明
- Type:需求類型,包括Undefined(未定義)、Design(設計)、Functional(功能)和Technical(技術)4種需求類型
- Status:需求狀態,包括Draft(草稿)、Defined(已定義)、Verified(已校驗)、To be reviewed(待評審)和Approved(已評審)5種狀態
- Priority:需求優先級,每0.5一個刻度,從1到5,數值越大,表示需求優先級越高
- Selected:表示需求是否包含在工程中,選中表示包含,否則表示不包含
- Risk:需求風險級別,包括Undefined(未定義)、Low(低)、Medium(中)和High(高)4種
- Verification:需求測試級別,包括Undefined(未定義)、Automate Testing(自動測試)、Demonstration(演示)、Manual Testing(手工測試)和Mixed(混合測試)5種
- Traceability Links:追蹤鏈接,設置該需求鏈接的設計對象和外部文件,以便爲當前需求提供更詳細的依據和參考
- User Allocations:用戶或用戶組分配,設置當前需求指定的某個用戶或用戶組
- 單擊按鈕[Add Object]選擇要設置的用戶或用戶組
- 修改Type列值設置用戶所需完成的工作,包括Undefined(未定義)、Development(開發)、Documentation(文檔)、Design(設計)和Quality(質量)5種
- Related Glossary Terms:關聯的術語庫,用於設置當前需求的專用術語
- Notes:需求描述,設置當前需求的文字或公式化描述,與General中的Description同步
3.添加子需求
- 選中某個需求後,單擊工具欄上的按鈕[Insert an Sub-Object]按鈕
- 選中某個需求後,按 Ctrl+Shift+I 組合鍵
可使用父需求的打開、關閉按鈕打開或者關閉子需求,其他同添加一級需求。
4.提高或降低需求層級
通過工具欄上的按鈕[Promote]或[Demote]將需求層級提高或降低一級,對應的組合鍵爲 Ctrl+’+’ 和 Ctrl+’-’。
5.刪除需求
通過工具欄上的按鈕[Delete]或按Delete鍵刪除選中的需求,若被刪除需求下有子需求,則子需求會被關聯刪除。
6.修改顯示列
若想修改需求文檔視圖編輯區域的顯示列,可單擊工具欄的按鈕[Customize Columns and Filter]或者按 Ctrl+U 組合鍵,彈出顯示列設置窗口進行勾選。
7.創建用戶
首先要明確的是這裏提到的“用戶”是指與需求有關的人員,即需求分析師、系統分析師、開發人員和測試人員等,而不是提出需求的客戶。
在菜單欄選擇Model→Users菜單項,打開用戶管理窗口,如圖6所示,在用戶列表區域之際添加用戶,或者單擊按鈕[Add a row]添加用戶。
8.創建用戶組
用戶組是指對用戶按特性進行分類,將相同特性的用戶組成用戶組。
創建方式類同創建用戶,在菜單欄選擇Model→Groups菜單項,打開用戶組管理窗口。不同的是,在用戶組屬性窗口的Group User選項卡界面可以設置當前用戶組的用戶。
9.創建術語庫
術語用於表示某一專業的特殊概念,例如電力行業中的杆塔、餐飲行業中的團購等,術語庫是術語的集合。
創建方式類同創建用戶,在菜單欄選擇Model→Glossary Terms菜單項,打開術語庫管理窗口。
10.創建業務規則
業務規則(Business Rules)是滿足業務需求的一些規則、約束,可以將客戶的要求、內部準則和規範等作爲業務規則,如組織編碼、分類代碼的規則等。
在菜單欄選擇Model→Extensions菜單項,打開擴展模型定義管理窗口,並添加一條“業務規則”的定義。
啓用業務規則的操作:
此時菜單欄Model下可看到多出Business Rules選擇項,選擇該選擇項可以打開業務規則管理窗口,編輯所需的業務規則2。
管理RQM
1.設置模型選項
在菜單欄選擇Tools→Model Options菜單項,打開模型選項設置對話框,如圖9所示。
Model Settings節點
該節點設置模型的基本屬性:
- Name/Code case sensitive:設置模型中對象名稱和代碼是否區分大小寫,選中表示區分,否則表示不區分
- External Shortcut Properties:
翻譯爲外部快捷方式屬性,暫時未發現用途,瞭解後回來更正
Requirements Fonts節點
該節點用於設置模型字體:
- Text:設置需求文本和各個標題級別
- Font:設置字體
- Font Style:設置字形
- Size:設置字號
- Color:設置文字顏色
- Effects:設置文字效果,Strikeout表示刪除線,Underline表示下劃線
Naming Convention節點
該節點設置命名約定,也可對 不同類別 分別設置:
- Display:設置顯示內容,Name表示設置模型圖形中對象的名稱,Code表示設置模型圖形中對象的代碼,Enable name/code conversions表示對象名稱和對象代碼可相互轉換
- Name/Code:設置模型對象名稱/對象代碼的命名約定。
- Naming:指定名稱模板,可以通過按鈕[…]設置名稱模板
- Maximum length:設置最大長度
- Character case:設置大小寫約定
- Uppercase:全部字符大寫
- Lowercase:全部字符小寫
- Mixed case:混合使用
- Title case:首字母大寫
- UpperCamelCase:大駝峯拼寫法
- LowerCamelCase:小駝峯拼寫法
- Valid characters:設定有效字符,選中All valid表示全部有效,不選中可以自行維護
- Invalid:設定無效字符,選中No accents表示沒有強調
- Default character:設定默認字符
- Name To Code/Code To Name:設置模型對象名稱到代碼/模型對象代碼到名稱的轉換約定
2.設置RQM屬性
在菜單欄選擇Model→Model Properties菜單項,打開模型屬性設置窗口,如圖10所示。
General選項卡
定義需求的通用信息:
- Name:需求模型名稱
- Code:需求模型代碼
- Comment:需求模型註釋信息
- File name:需求模型路徑,未保存之前,此項顯示爲空
- Author:文檔作者
- Version:文檔版本
- Default view:默認的需求文檔視圖
- Keywords:關鍵字
Detail選項卡
定義完成項目需求的工作量,單位可設置爲天或小時,可保留一位小數
Traceability Links選項卡
設置RQM連接的設計對象和外部文件,以幫助用戶更好地理解需求
Notes選項卡
設置需求描述,支持富文本編輯
- Description:表示需求屬性的文字描述
- Annotation:表示需求屬性的公式化描述
3.導出需求模型
在菜單欄選擇Report→Reports菜單項,打開報表列表對話框,單擊對話框中按鈕[New Report],打開新建報表對話框,如圖11所示。
- Report name:報表名稱
- Language:報表語言
- Report template:報表模板
- Use legacy Report Editor:使用傳統的編輯器
單擊按鈕[OK]確認後,打開報表屬性設置窗口,如圖12所示,左側爲所有可選的報表導出項,右側爲已選擇的報表導出項,導出項的格式可以自行修改,然後單擊主窗體工具欄的RTF圖標按鈕[Generates report in RTF format],將需求模型導出爲RTF文檔。