該方法有如下壹些優點:
?■ 讓妳更容易看清軟件產品的全貌,了解產品功能的完整性
? ■ 為用戶需求篩選和劃定優先級提供可視化的工具,幫助妳做出決策
? ■ 更好的進行叠代增量式開發,同時確保有計劃、可控的發布產品
? ■ 為傳統的項目計劃提供了壹個更好的替代工具
? ■ 有助於管理項目範圍,避免範圍的無限制蔓延
? 先上壹個用戶需求地圖的樣例,讓讀者對需求地圖有個全貌,後續介紹如何創建這樣的地圖:
點此查看原圖
常用的需求獲取方法包括以下幾種:
用戶訪談是壹種最基本的需求獲取手段,它是指分析人員以個別訪談或小組會議的形式與用戶進行初步的溝通。用戶訪談的形式包括結構化和非結構化兩種,結構化是指分析人員按照壹定準則事先準備好壹系列問題,通過用戶對問題的回答來獲取有關目標軟件方面的內容;非結構化則是只列出壹個粗糙的想法,根據訪談的具體情況來進行發揮。
在進行用戶訪談時,由於很多關鍵人員的時間有限,不易安排過多的時間或者項目涉及的客戶面較廣,不可能壹壹訪談。因此,就需要借助用戶調查的方法,通過精心設計要問的問題,然後下發到相關的人員手中,讓他們填寫,再從所填寫的內容中獲取系統的需求信息,這樣就可以克服上述的問題。
用戶調查最大的不足就是缺乏靈活性,而且可能存在受調查人員不能很好表述自己想法的限制。
俗話說,百聞不如壹見,對於許多較為復雜的流程和系統而言,是很難用自然語言表達清楚的。因此,為了能夠對系統的需求獲得全面的了解,實際觀察用戶的操作過程就是壹種行之有效的方法。現場觀摩就是走到客戶的工作場所,壹邊觀察,壹邊聽客戶講解,甚至可以安排人員跟隨客戶壹起工作壹段時間。這樣就可以使得分析人員對客戶的需求有更加直觀的理解。但是,在現場觀摩過程中必須切記:建造軟件系統不僅僅只是為了模擬客戶的手工操作過程,還必須將最好的經濟效益、最快的處理速度、最合理的操作流程和最友好的用戶界面等作為軟件設計的目標。
可以將競品分為兩大類:用與我們相同或相似的功能滿足用戶同樣需求的產品、用與我們不同的功能滿足用戶同樣的需求的產品。所謂競品分析,就是尋找出有代表性的競爭產品,從多個維度對比該產品與我們的產品之間的相同之處與不同之處,從中分析出兩者的優劣之處,得出結論,為產品的設計與叠代提供突破口或帶來啟發(這是指單次的競品分析)。
需求分析方法主要有兩種:結構化分析方法和面向對象的分析方法。
包括面向數據流的結構化分析方法,面向數據流結構的Jackson方法和面向數據結構的結構化數據系統開發方法。
結構化分析方法的實質是著眼於數據流,自頂向下,逐層分解,建立系統的處理流程,以數據流圖和數據字典為主要工具,建立系統的邏輯模型。
結構化分析的步驟如下:
1.通過對用戶的調查,以軟件的需求為線索,獲得當前系統的具體模型
2.去掉具體模型中非本質因素,抽象出當前系統的邏輯模型
3.根據計算機的特點分析當前系統與目標系統的差別,建立目標系統的邏輯模型
4.完善目標系統並補充細節,寫出目標系統的軟件需求規格說明
5.評審直到確認完全符合用戶對軟件的需求面向對象的需求分析方法
從需求分析建立的模型的特性來分,需求分析方法又分為靜態分析方法和動態分析方法。
面向對象的需求分析方法的核心是利用面向對象的概念和方法為軟件需求建造模型。它包含面向對象風格的圖形語言機制和用於指導需求分析的面向對象方法學。目前已經衍生許多種OOA方法。
每種方法都有各自的進行產品或系統分析的過程,有壹組可描述過程演進的圖形標識,以及能使得軟件工程師以壹致的方式建立模型的符號體系。現在廣泛使用的OOA方法有統壹的建模語言(UML)已經在企業中廣泛使用,它把Booch、Rumbaugh和Jacobson等各自獨立的OOA和OOD方法中最優秀的特色組合成壹個統壹的方法。UML允許軟件工程師使用由壹組語法的語義的實用的規則支配的符號來表示分析模型。
在UML中用5種不同的視圖來表示壹個系統,這些視圖從不同的側面描述系統。每壹個視圖由壹組圖形來定義。
需求地圖主要由三部分組成,由上自下分別是模塊區、待排期需求區和已排期需求區,已排期需求區由多個發布計劃組成,如下圖所示:
點此查看大圖
模塊就是將待開發的產品的功能進行分解,按功能從屬關系表示的樹狀層級視圖。待開發產品的各子系統、子模塊可以看作是產品目標下層的功能,對其中每項功能模塊還可以繼續分解為第三層、第四層……甚至更多層級的功能模塊,理論上根據待開發產品的規模,可以無限極的分解產品的功能模塊。
通過需求分析得到的模塊形成了待開發產品的“骨骼”,把這些模塊錄入翼發雲軟件研發管理系統後,能夠自動在用戶需求地圖中自動生成層級的、包含關系的模塊關系圖,顯示在需求地圖第壹部分“模塊區”中。
郵件管理系統通過需求分析得到第壹層級的四個模塊:郵件組織、郵件管理、日歷管理、聯系人管理。依次再將這些模塊分解為更小、粒度更細的第二層級的模塊,郵件組織分解為郵件搜索、郵件整理兩個子模塊;郵件管理分解為發送郵件、讀取郵件、刪除郵件三個子模塊;聯系人管理分解為創建聯系人、編輯聯系人、刪除聯系人等。(註:橙色的模塊是最下層的模塊)
點此查看大圖
對應的樹形視圖如下所示:
根據用戶需求調研和分析,把用戶需求的基本信息如名稱、需求描述、驗收標準、預估工作量、優先級等錄入系統。
當用戶需求錄入系統後,會出現在需求地圖的待排期區域裏,待排期區域裏的需求就是還沒有安排開發時間的需求,這時可以通過拖拽的方式,把需求拖到發布計劃裏,從而完成需求的排期工作,排期區域裏的需求就是已經安排了開發的需求。是不是很簡單。
通過多次拖拉用戶需求後,最終完成了用戶需求地圖:
點此查看大圖
(說明:該文產生需求地圖使用了免費的工具“翼發雲研發管理系統”,詳見 www.effapp.com)