概念速記-簡潔版(上)
1. 需求工程導論
軟件的模擬特性:在這些導致需求問題的原因當中一個最為重要的原因是:未能很好地理解和掌握“應用”型軟件的模擬特性以及由此而產生的一系列影響和要求。
軟件的模擬特性來源於其知識載體的特性:軟件在運行中表現出來的特性、行為應該和應用的現實情況保持一致。這樣,人們通過觀察軟件的表現就可以得出相應現實問題的答案,即軟件“模擬”了現實。
需求工程的概念:
簡單來說需求工程是所有需求處理活動的總和,它收集信息、分析問題、整合觀點、記錄求並驗證其正確性,最終反映軟件被應用后與其環境互動形成的期望效應。
從細節來看,可以定義如下:需求工程是軟件工程的一個分支它關注軟件系統所應實現現實世界目標、軟件系統的功能和軟件系統應當遵守的約束,同時也關注以上因素和准確的軟件行為規格說明之間的聯系,關注以上因素與其隨時間或跨產品族而演化之后的相關因素之間的聯系。
需求工程的基本活動:
需求的定義
1.用戶為了解決問題或達到某些目標所需要的條件或能力;
2.系統或系統部件為了滿足合同、標准、規范或其他正式文檔所規定的要求而需要具備的條件或能力;
3.對1或2中的一個條件或一種能力的一種文檔化表述。
結論:(重要)需求是以用戶為中心的,是與問題相聯系的;需求要被清晰、明確地寫在文檔上。
需求的層次性:
問題域特性:有自己的運行規律,而且這些規律不會因解系統的引入而發生改變。
優秀需求的特性:完備性,正確性,可行性,必要性,無歧義,可驗證。
IEEE軟件需求的分類:功能需求,性能需求,質量屬性(可靠性,可用性,安全性,可維護性,可移植性,易用性),對外接口,約束。
涉眾基線:比較容易發現的涉眾。
需求工程產生的文檔:項目前景與范圍文檔,用戶需求文檔,需求規格說明。
需求工程的根本任務:建立分析模型,創建解決方案。
2. 需求獲取
常見困難:背景立場,表述能力,認知困境,越俎代庖,缺乏用戶參與。
前景:前景描述了產品的作用以及 終的功能,它將所有涉眾都統一到一個方向上。
范圍:范圍指出當前項目是要解決產品長遠規划中的哪一部分,范圍聲明它為項目划定了需求的界線。
目標分析能處理問題、目標、特色、角色、任務等因素的依賴關系。
目標之間的關系(鏈接):
NFR方法分析非功能需求:NFR方法是一個以目標模型為基礎,同時包含獲取,與其他需求模型的整合及分析,規格化,驗證等其他需求開發活動的工作框架。
活動圖:
涉眾交互網絡圖:
涉眾識別的方法:
先膨脹后收縮:涉眾群體簡單,易出現遺漏。
檢查列表:全面系統,無明確細化方法。
涉眾網絡:復雜情況,正確完備復雜。
Power/Interest分布圖適用於:優先級評估、風險評估。
硬數據采樣:
樣本大小SS=0.25*(確定性因子/可接受的錯誤)²
樣本大小SS=p*(1-P)(確定性因子/可接受的錯誤)² //p:差異樣本比例
期望的確定性 |
確定性因子 |
95% |
1.960 |
90% |
1.645 |
80% |
1.281 |
常見模型驅動方法:面向目標的方法,基於場景的方法,基於用例的方法。
用例是靜態結構化文本。用例:對相關場景集合的敘述性文本描述。
用例之間的關系:包含、擴展、泛化。
實例場景又稱為具體場景;抽象場景又稱為類型場景。
需求獲取方法之面談
面談優點:簡單,低成本,建立友好關系,提高涉眾熱情
面談缺點:耗時,地理位置,要求交流能力,模糊表述
面談問題:程序性提示、元問題,避免雙筒問題、誘導性問題
需求獲取方法之原型
分類:(使用方式):演示原型、嚴格意義上的原型、試驗原型、缺陷分布原型、引示系統原型
(開發方法):演化式原型,拋棄式原型(探索式原型,實驗式原型)
適用情況:不確定性,對未來知識了解有限而無法確定某些行為或事件后果
缺點:成本高
原型的需求內容:外觀,角色和實現
原型方法獲取需求的基本過程:確定原型需求,原型開發,原型評估,原型修正
故事版原型分類:主動故事版原型,被動故事版原型,交互故事版原型
演示原型用於:項目啟動階段
實驗式開發方法考察重要的系統的質量屬性。