1. 程式人生 > >淺談軟件需求分析

淺談軟件需求分析

忘記 自己的 語義 現實 關系 align 概念 實現 img

淺談軟件需求分析

一、什麽是需求分析?

通俗的講,對用戶的意圖不斷揭示和驗叛的過程,要對經過系統可行性分析所確定的系統目標做更為詳細的描述。

假如你是個建築工程師,有個客戶找你建一個雞窩,這個時候要需要與客戶溝通,來確定客戶到底想要一個什麽樣子的雞窩。我們應該註意三點:

1、準確的理解和描述客戶需要的功能。

客戶說,我的雞窩要三層的,帶電梯,飲水池,廁所,飲水池要自動判斷水位供水,電梯要可以同時乘坐10只雞….客戶滔滔不絕的講了一大堆,你也都非常忠實的按照自己的理解再一一的向客戶描述一遍,以便於確認客戶的需求是否正確。

2、幫助客戶挖掘需求。

等客戶把自己的需求說完了,你發現客戶沒有說雞的臥室,於是,你向客戶提議說:“你看,這雞的臥室要什麽樣子的?”,客戶連連的拍著腦門說,我差點給忘記了,雞們啊喜歡晚上在一起聊天,所以呢,需要一個長而大的臥室,但一定要舒適。

3、分析客戶需求的可行性。

客戶臨走時又說,最近啊,黃鼠狼很多,我這個雞窩啊,一樓就不用蓋了,直接蓋二樓和三樓吧!以免晚上遭遇黃鼠狼的攻擊。你這麽一分析,客戶這要求,按照目前的技術可沒法建啊,於是,你向客戶提議,一樓采用堅固架子來支撐二三樓的建築。

二、需求分析困難在哪兒?

有幾種原因使需求分析變得困難:

(1)客戶說不清楚需求;

有些客戶對需求只有朦朧的感覺,當然說不清楚具體的需求。

有些客戶心裏非常清楚想要什麽,但卻說不明白。

如果客戶本身就懂軟件開發,能把需求說得清清楚楚,這樣的需求分析將會非常輕松、愉快。如果客戶全不懂軟件,但信任軟件開發方,這事也好辦。分析人員可以引導客戶,先闡述常規的需求,再由客戶否定不需要的,最終確定客戶真正的需求。最怕的就是“不懂裝懂”或者“半懂充內行”的客戶,他們會提出不切實際的需求。

(2)需求自身經常變動;

盡可能地分析清楚哪些是穩定的需求,哪些是易變的需求。以便在進行系統設計時,將軟件的核心建築在穩定的需求上。

在合同中或需求書中一定要確定清楚“做什麽”和“不做什麽”。

(3)分析人員或客戶理解有誤。

需求分析人員不可能都是全才。客戶表達的需求,不同的分析人員可能有不同的理解。如果理解錯了,可能會導致開發浪費時間和精力。所以分析人員寫好需求說明書後,最好要請客戶方的驗證。有條件的設計原型來論證需求。

三、需求分析的分類:

需求分析一般可分為功能需求、非功能需求和領域需求

1、功能需求

功能需求主要說明了系統實際應做到什麽。這是用戶最直觀也是最主要的需求,如系統的輸入輸出、系統能完成的功能以及其它相關處理等;

2、非功能需求

非功能需求又稱“約束”,它主要從各個角度對系統起約束和限制作用。如響應時間、存儲效率、報表的規格和界面的樣式等

3、領域需求

領域需求的來源不是用戶,而是系統應用的領域,其主要反映了該領域的基本問題。

四、如何進行需求分析?

進行需求分析不象情人之間的浪漫做法——“讓我摸摸你的頭發,感覺它是什麽顏色。”我們需要了解需求分析的渠道和過程。

技術分享圖片

需求分析的過程:

技術分享圖片

(1)可行性研究

它指明現有的軟件、硬件技術能否實現用戶對系統的要求,從業務角度來決定系統開發是否可行以及在預算範圍內能否開發出來。可行性研究的結果是清楚的回答:該系統是否值得開發?

(2)需求導出和分析

這是一個通過對現有系統分析、與潛在客戶討論、進行任務分析等導出系統需求的過程,也可能需要開發一個或多個不同的系統原型,以幫助分析員了解所要描述的系統。

(3)需求描述

需求描述就是把在分析活動中收集的信息通過分析整理之後以文檔的形式確定下來。該文檔中有兩類需求:用戶需求是從客戶和最終用戶角度對系統需求的抽象描述;系統需求是對系統要提供的功能的詳盡描述。

(4)需求有效性驗證

主要是通過評審、驗證等一系列活動來找出需求文檔中的錯漏並加以改正。

(5)需求管理

需求管理需求管理是一種系統化方法,可用於獲取、組織和記錄系統需求並使用戶和開發方在系統變更需求上始終保持一致。

五、需求分析的方法

1、功能分析方法

功能分析法功能分解法以系統提供的功能為中心來組織系統。首先定義各種功能, 然後把功能分解為子功能, 同時定義功能之間的接口。數據結構是根據功能/子功能的需要設計的。 其基本策略是以分析員的經驗為依據, 確定新系統所期望的處理步驟或子步驟, 然後, 將問題空間映射到功能和子功能上。

2、數據流方法

數據流法也叫結構化分析, 其基本策略是研究問題域中數據如何流動以及在各個環節上進行何種處理, 從而發現數據流和加工。 問題域被映射為由數據流、加工以及文件、端點等成份構成的數據流圖(DFD) , 並用數據字典對數據流和加工進行詳細說明。這種方法的關鍵是動態跟蹤數據流動。

3、信息建模方法

信息建模法的核心概念是實體和關系, 主要工具是語義數據模型(實體關系圖) , 其基本策略是找出現實世界的對象, 然後用屬性來描述對象, 增添對象與對象之間的關系, 定義父類與子類, 用父類型/子類型提煉屬性的共性, 用關聯對象關系作細化的描述, 最後進行規範化處理。 其實質是將問題空間直接映射成模型中的對象。

淺談軟件需求分析