軟體工程(四)——需求建模
阿新 • • 發佈:2018-11-23
筆者正在學習《軟體工程-實踐者的研究方法》這本書,記錄下一些讀書筆記,共勉!
1.需求分析
在技術層面上,軟體工程開始於一系列的建模工作,最終生成待開發軟體的需求規格說明和設計表示,指明軟體和其他系統元素的介面,規定軟體必須滿足的約束。需求建模動作產生以下一種或多種模型型別:
- 場景模型:出自各種系統“參與者”觀點的需求;
- 資料模型:描述問題資訊域的模型;
- 面向類的模型:表示面向物件類(屬性和操作)的模型,其方式為通過類的協作獲得系統需求;
- 面向流程的模型:表示系統的功能元素並且當功能元素在系統中執行時怎樣進行資料變換的模型;
- 行為模型:描述如何將軟體行為看作是外部“事件”後續的模型。
1.1總體目標和原理
在整個需求建模過程中個,軟體工程師主要的關注點在“做什麼”,而不是“怎麼做”方面,包括:在特定環境下發生哪些使用者互動?系統處理什麼物件?系統必須執行什麼功能?系統展示什麼行為?定義什麼介面?有什麼約束?
需求模型必須實現三個目標:①描述客戶需要什麼;②為軟體設計奠定基礎;③定義在軟體完成後可以被確認的一組需求。需求模型在系統級描述和軟體設計之間建立了橋樑,系統描述給出了在軟體、硬體、資料、人員和其他系統元素共同作用下的整個系統或商業功能,而軟體設計給出了軟體的應用程式結構、使用者介面以及構件級的結構。
1.2分析的經驗原則
建立需求模型時有以下的經驗原則:
- 模型應關注在問題域或者業務域內可見的需求,抽象的級別應該高一些,不要試圖解釋系統如何工作;
- 需求模型的每個元素都能增加對軟體需求的整體理解,並提供對資訊域、功能和系統行為的深入理解;
- 關於基礎結構和其他非功能的模型應推延到設計階段再考慮;
- 最小化整個系統內的關聯;
- 確認需求模型為所有利益相關者都帶來價值;
- 儘可能保持模型簡潔。
1.3域分析
域分析是識別、分析和詳細說明某個特定應用領域的公共需求,特別是那些在該應用領域內被某個專案重複使用的需求。