需求工程定義
找出、分析、文檔化并且檢查需求的過程被稱為需求工程
需求的兩個描述層次
- 用戶需求,指高層的抽象需求。使用自然語言、圖形描述需求。
- 系統需求,指底層的詳細需求。使用系統需求文檔(有時被稱為功能規格說明)應該精確定義要實現的需求。
功能性需求:描述系統應該做什么。What
非功能性需求:描述系統應該做得怎么樣。How
非功能性需求
- 產品需求:這類需求刻畫或約束軟件的運行時行為。如性能需求、存儲需求、可靠性需求等。
- 組織需求:這類需求來自客戶和開發方組織的政策和規程的一類寬泛的系統需求。如要求開發所使用的編程語言、開發環境、過程標準,系統運行環境等。
- 外部需求:這類需求源自系統及其開發過程以外的因素。如監管需求、法律需求、道德需求等。
FURPUS+(重中之重)
FURPS是一種識別軟件質量屬性的模型
- 其中 F 功能部份對應功能需求,
- 另外4項 URPS 則是軟件系統中重要的4項非功能性需求,有時會特別用URPS來表示此4項產品非功能性需求。
- FURPS后面的 + 可以用來強調各種不同的屬性(組織非功能性需求、外部非功能性需求)
FURPS可分為以下五項:(重中之重)
- Functional(功能性):功能;
- Usability(可用性):易于使用、人性化因素、幫助、文檔;
- Reliability(可靠性):魯棒性、安全性、故障頻率、可恢復性、可預測性;
- Performance(性能):速度、規模、響應時間、吞吐量、準確性、有效性、計算資源利用率;
- Supportability(可支持性):可移植性、適應性、可維護性、國際化、可配置性
需求抽取技術
需求抽取和分析過程
- 需求發現和理解
- 需求分類和組織
- 需求優先級排序和協商
- 需求文檔化
需求抽取方法
- 訪談法
- 觀察法
- 體驗法
- 單據分析法
- 報表分析法
- 問卷調查法
- 調研會法
- 競品調研法
用例
用例是一種使用圖形化模型和結構化文本描述用戶與系統間交互的方式
用例與用例之間的關系
- 擴展:一個用例被定義為基礎用例的發展
- 包含:包含其他用例的行為,減少用例之間的冗余
- 繼承:一個用例被泛化成多個用例
需求確認
需求確認要檢查的內容:
- 正確性
- 一致性
- 完整性
- 現實性
- 可驗證性
需求確認可采用的技術:
- 需求評審
- 原型化
- 測試用例生成。需求應該是可測試的