1、根本任務
建立分析模型,創建解決方案。從實踐角度考慮,需求分析是以業務分析爲導向,將用戶零散的需求串聯起來,形成一個體系完整、組織合理、內容清晰的框架(What to do, not how to do)。
1.1需求分析根本任務概述
分解、提煉,並在此過程中消除需求矛盾。
- 分解(自頂向下)
①業務流爲主線的分解策略(目標系統→主體域→業務事件→業務活動→業務步驟)
②程序結構爲主線的分解策略(目標系統→子系統→功能模塊→子模塊→功能點)
③基於場景的分解策略(目標系統→關注點→場景集合→使用場景→任務)
④基於數據的分解策略(目標系統→主題域→主題類→邏輯數據→物理數據)
- 提煉(自底向上)
1.2建立分析模型
目的:通過軟件建模,幫助我們按照實際情況或按照我們的需要的模式對系統進行可視化,提供一種詳細說明系統的結構或者行爲的方法,給出一個指導系統構造的模板。對所有做出的決定實施文檔化。
抽象(Abstraction)
一方面要求人們只關注重要的信息,忽略次要的內容。通過強調本質的特徵,就減少了問題的複雜性(例如學生模型)
另一方面也要求人們將認知保留在適當的層次,屏蔽更深層次的細節,在問題的各元素之間推斷出更廣泛和更普遍的關係,幫助人們尋找解決方案;
分解(Decomposition / Partitioning)
“分而治之” 將單個複雜和難以理解的問題分解成多個相對更容易的子問題,並掌握各子問題之間的聯繫
分解的方案往往還能提供問題的解決思路
投影(Projection)
多視點(Viewpoints)方法
1.3創建解決方案
2、需求分析技術
2.1結構化技術
- 數據建模(E-R圖)
- 過程建模(數據流圖DED、上下文圖、微規格說明、數據字典)
- 行爲建模(狀態轉換圖/矩陣State)
- 過程/數據關係建模(功能實體矩陣)
- 信息工程方法(功能分解圖、過程依賴圖)
2.2面嚮對象的技術
- UML(用例圖、類圖、交互圖、活動圖、對象約束語言、狀態圖)
2.3Wieringa框架
2.4Zachman框架
3、需求分析方法
傳統分析(程序=數據結構+算法)→結構化分析(以數據流動爲中心,以DFD爲核心技術)→面向對象分析(以對象爲中心,以UML爲核心技術)
3.1UML(Unified Modeling Language),OMG認可的工業標準
5、需求分析活動
需求細化(ID、Source、Rational、Priority、Cost、Risk、Volatility)
確定需求優先級(Top-N:N的取值是不受明確限制的,真正受限制的是Top-N個需求的實現代價總和)
需求協商