如何進行軟體需求分析

2021-03-31 08:56:28 字數 1713 閱讀 5620

如何進行軟體需求分析

1.概念

需求的定義包括從使用者角度(系統的外部行為),以及從開發者角度(一些內部特性)來闡述需求。

關鍵的問題是一定要編寫需求文件。我曾經目睹過乙個專案中途更換了所有的開發者,客戶被迫與新的需求分析者坐到一起。系統的分析人員說:「我們想與你談談你的需求。」客戶的第一反應便是:「我已經將我的要求都告訴你們前任了,現在我要的就是給我編乙個系統」。而實際上,需求並未編寫成文件,因此新的分析人員不得不從頭做起。所以如果只有一堆郵件、會談記錄或一些零碎的未整理的對話,你就確信你已明白使用者的需求,那完全是自欺欺人。

需求的另外一種定義認為需求是「使用者所需要的並能觸發乙個程式或系統開發工作的說明」。有些需求分析專家拓展了這個概念:「從系統外部能發現系統所具有的滿足於使用者的特點、功能及屬性等」。這些定義強調的是產品是什麼樣的,而並非產品是怎樣設計、構造的。而下面的定義則從使用者需要進一步轉移到了系統特性:

需求是指明必須實現什麼的規格說明。它描述了系統的行為、特性或屬性,是在開發過程中對系統的約束。

從上面這些不同形式的定義不難發現:並沒有乙個清晰、毫無二義性的「需求」術語存在,真正的「需求」實際上在人們的腦海中,這個人們主要是指客戶,但一般情況下,使用者並不能描述自己的需要,只就需要系統分析人員根據使用者的自己語言的描述整理出相關的需要再進一步和客戶核對。系統分析員和客戶需要確保所有專案風險承擔者在描述需求的那些名詞的理解上務必達成共識。

任何文件形式的需求(例如如下將要描述的需求規格說明書)僅是乙個模型,一種描述。

2.需求分析的任務

開發軟體系統最為困難的部分就是準確說明開發什麼。最為困難的概念性工作便是編寫出詳細技術需求,這包括所有面向使用者、面向機器和其它軟體系統的介面。同時這也是一旦做錯,將最終會給系統帶來極大損害的部分,並且以後再對它進行修改也極為困難。

目前,國內產品的龐雜,一家企業可能有幾個系統並立執行,它們之間介面是系統開發人員最頭痛的問題。

對於商業終端使用者應用程式,企業資訊系統和軟體作為乙個大系統的一部分的產品是顯而易見的。但是對於我們開發人員來說,並沒有編寫出客戶認可的需求文件,我們如何知道專案於何時結束?而如果我們不知道什麼對客戶來說是重要的,那我們又如何能使客戶感到滿意呢?

然而,即便並非出於商業目的的軟體需求也是必須的。例如庫、元件和工具這些供開發小組內部使用的軟體。當然你可能偶爾勿需文件說明就能與其他人意見較為一致,但更常見的是出現重複返工這種不可避免的後果,而重新編制**的代價遠遠超過重寫乙份需求文件的代價,這些血的教訓正在國內的軟體開發者身上發生。

近來,我遇到乙個開發小組開發包括**編輯器在內的一套內部使用的計算機輔助軟體。不幸的是,當他們開發完這個工具後,發現這個工具不能列印出源**檔案,使用者當然希望有這個功能。結果這個小組只好手工抄寫源**文件以供**檢查。這說明那怕需求明確無誤並構思準確,如果我們沒有編寫文件,軟體達不到期望目標也只能是咎由自取了。

相反的情況,我曾見乙個要整合到「錯誤跟蹤系統」中的簡單介面寫了一頁需求說明。而作業系統系統管理員在為處理指令碼時發現簡單的一張需求清單竟是如此有用。他們依據需求對系統進行測試時,此系統不僅非常清晰地實現了所有必需功能,而且未發現任何錯誤。

事實上,需求文件在開發過程中一直起指導作用。

3.需求分析過程

可把整個軟體需求工程研究領域劃分為需求開發和需求管理兩部分更合適,如圖4-1所示:

作者小傳:

曹偉,南京易點網路軟體公司技術總監。從erp的系統開發,對整體系統有較強的認識慾望,現正在實施企業級軟體系統構架,實施乙個國際化企業電子化的解決方案。

如何進行軟體需求分析

概念 需求的定義包括從使用者角度 系統的外部行為 以及從 開發者角度 一些內部特性 來闡述需求。關鍵的問題是一定要編寫需求文件。我曾經目睹過乙個專案中途更換了所有的 開發者,客戶被迫與新的需求分析者坐到一起。系統的分析人員說 我們想與你談談你的需求。客戶的第一反應便是 我已經將我的要求都告訴你們前任...

軟體測試如何進行需求分析

需求的分類 業務需求 反應了客戶對系統,產品的高層次的目標要求,在專案檢視和範圍文件中予以說明。功能需求 定義了開發人員必須實現的軟體功能,使得使用者能夠完成他們的任務,從而滿足了業務需求。使用者需求 文件描述了使用者使用產品必須要完成的任務,在使用者說明書明確體現。eg 業務需求 企業內部要有自己...

如何進行業務需求分析

首先,我們應該明確進行需求分析的目的。我認為,進行業務需求分析的直接目的就是為了進行資訊系統的開發,所謂的需求,就是資訊系統建設的需求。如果乙個業務不需要資訊系統就能有效開展,就不需要進行需求分析,直接開展業務就行。進行需求分析,是為開發資訊系統服務。是為了讓系統開發者明白,需要開發乙個怎樣的資訊系...