一、需求工程
需求工程分為需求開發和需求管理。
需求開發:需求獲取,需求分析,需求定義、需求驗證。
需求管理:變更控制、版本控制、需求跟蹤,需求狀態跟蹤。(對需求基線的管理)
1.1需求獲取
質量功能部署QFD:將用戶要求轉化成軟件需求的技術
系統非功能性需求:
需求獲取方式:
聯合需求計劃JRP:開調查會
1.2需求分析
1.2.1 SA 結構式需求分析
1.2.2 面向對象OOA分析、UML
基本概念:類分為實體類,控制類(動詞名稱類,銜接其他類進行用例類控制),邊界類(接口,流動的類)。
UML-統一建模語言組成:
構造塊。分為事物(結構事物-靜態部分,行為事物-動作,分組事物,注釋事物)、關系、圖。
UML需求建立模型:
用例模型。用例圖。
分析模型。類圖。
部署圖。軟硬件直接映射,部署后的圖。
包圖。軟件體系結構圖。
用例圖。系統和外部參與者的交互,強調需求。
定時圖 強調時實際時間。
通信圖/ 協作圖 強調的是對象之間的組織結構。
順序圖(序列圖)。一種交互圖,強調對象之間消息的發送順序,同時顯示對象之間的交互。有時間線。
活動圖。活動之間的進程交互,可表現并發,強調對象間的控制流程。有比較科學的表達形式:泳道式活動圖。
狀態圖。狀態的變遷,強調事件導致的對象行為。
基于UML的需求分析過程大致可分為以下步驟:
①利用用例及用例圖表示需求。從業務需求描述出發獲取執行者和場景;對場景進行匯總、分類、抽象,形成用例;確定執行者與用例、用例與用例圖之間的關系,生成用例圖。
②利用包圖和類圖表示總體框架結構。根據領域知識、業務需求描述和既往經驗設計目標軟件系統的頂層架構;從業務需求描述中提取“關鍵概念”,形成領域概念模型;從概念模型和用例出發,研究系統中主要的類之間的關系,生成類圖。
面向對象設計的基本任務,把面向對象分析模型轉換為面向對象設計模型。
面向對象的分析模型主要由頂層架構圖、用例與用例圖、領域概念模型構成。
設計模型則包含以包圖表示的軟件體系結構圖、以交互圖表示的用例實現圖、完整精確的類圖、針對復雜對象的狀態圖和描述流程化處理過程的活動圖等。
1.3需求定義
嚴格定義法和原型法。
1.4需求驗證
需求評審和需求測試。
2、需求管理
需求管理:變更控制、版本控制、需求跟蹤,需求狀態跟蹤。
變更控制。申請,評估,決策,實施,驗證,溝通存檔。流程:提出問題,問題分析和變更描述,變更分析和成本計算,變更實現。
版本控制。
需求跟蹤。需求進行跟蹤,跟進。正向跟蹤和反向跟蹤。用戶原始需求到軟件需求到下游工作產品。
需求狀態跟蹤。
系統建模:結構化建模方法、信息化工程建模方法(數據庫建模方法)、面向對象建模方法
程序流程圖PFD
用一些圖框表示各種操作,它獨立于任何一種程序設計語言,比較直觀、清晰,易于學習掌握。流程圖中只能包括5種基本控制結構:順序型、選擇型、WHILE循環型(當型循環)、UNTIL循環型(直到型循環)和多分支選擇型。
IPO圖
輸入、輸出與功能模塊、文件及系統外部項都需要通過數據字典來描述\
N-S圖
分別是順序型、選擇型、WHILE循環型(當型循環)、UNTIL循環型(直到型循環)和多分支選擇型,任何一個N-S圖都是這5種基本控制結構相互組合與嵌套的結果。在N-S圖中,過程的作用域明確;它沒有箭頭,不能隨意轉移控制;而且容易表示嵌套關系和層次關系;并具有強烈的結構化特征。但是當問題很復雜時,N-S圖可能很大。
問題分析圖(Problem Analysis Diagram,PAD) 又一種描述詳細設計的工具。PAD也包含5種基本控制結構,并允許遞歸使用。
過程設計語言PDL
結構化語言或偽代碼,以便在開發人員之間比較精確地進行交流。
判定樹
用來表示邏輯判斷問題的一種常用的圖形工具,它用樹來表達不同條件下的不同處理流程