範文齋

位置:首頁 > 行業範文 > 工程

軟件需求調研方案設計

工程2.69W

軟件需求作爲軟件項目工作的重要依據,對軟件項目的成敗起着至關重要的作用。以下是小編整理的軟件需求調研方案設計,歡迎閱讀。

軟件需求調研方案設計

軟件需求分析是一個項目的開端,也是項目實施最重要的關鍵點。據有關的機構分析結果表明,我們設計的軟件產品存在不完整性、不正確性等問題80%以上是需求分析錯誤所導致的,而且由於需求分析錯誤造成根本性的功能問題尤爲突出。因此,一個項目的成功軟件需求分析是關鍵的一步。

A.軟件需求分析人員組織

軟件需求分析其根本性問題是理解用戶功能需求,由此軟件需求分析實際上是與客戶間交流過程完成的目標。要求我們組織適當的參與人員進行交流活動。

需求分析是一個綜合團隊的工作,是在需求分析理論的指導下,對用戶需要進行漸進方式逐步深化;通過不斷變化方式形成具體約束;努力實現需求功能目標形成特色效果的商業化產品。需求分析是一個商業行爲,完全是一個商業化操作,要求有商業、技術等結合的團隊共同合作,解決需求和設計的同步,設計符合需求。

項目涉及內容,項目大小都需要我們考慮參加軟件需求分析工作團退的人數,配置合理的參與人員。一般我們必須有商務活動人員,項目管理人員,設計技術人員等參加,而且要求組織人員必須明確負責範圍,以及明確工作目標,保證實施的有效性。

B.具體開展需求分析工作,建議採用以下步驟形成軟件需求:確定項目目標及範圍→獲取用戶需求→分析用戶需求→編寫需求文檔→評審需求文檔→管理需求。

第一步:明確需要分析的工作目標,同時確定調研對象,最好能指定本次項目的接口人。

明確軟件需求分析的主要實現目標包括如下內容:

1)對實現軟件的功能做全面的描述,幫助用戶判斷實現功能的正確性、一致性和完整性,促使用戶在軟件設計啓動之前周密地、全面地思考軟件需求;

2)瞭解和描述軟件實現所需的全部信息,爲軟件設計、確認和驗證提供一個基準;

3)爲軟件管理人員進行軟件成本計價和編制軟件開發計劃書提供依據;

第二步:獲取用戶需求。這是該階段的一個最重要的任務。對用戶進行訪談和調研。交流的方式可以是會議、電話、電子郵件、小組討論、模擬演示等不同形式。具體說來可分爲三個階段:

1.“訪談”階段

這一階段是和具體用戶方的領導層、業務層人員的訪談式溝通,主要目的是從宏觀上把握用戶的具體需求方向和趨勢,瞭解現有的組織架構、業務流程、硬件環境、軟件環境、現有的運行系統等等具體情況、客觀的信息。建立起良好的溝通渠道和方式。針對具體的職能部門以及成員單位。

實現手段:訪談、調查表格

輸出成果:調查報告、業務流程報告

2.“誘導”階段

這一階段是在承建方已經瞭解了具體用戶方的組織架構、業務流程、硬件環境、軟件環境、現有的運行系統等等具體實際、客觀的信息基礎上,結合現有的硬件、軟件實現方案,做出簡單的用戶流程頁面,同時結合以往的項目經驗對用戶採用誘導式、啓發式的調研方法和手段,和用戶一起探討業務流程設計的合理性、準確性、便易性、習慣性。用戶可以操作簡單演示的DEMO,來感受一下整個業務流程的設計合理性、準確性等等問題,及時地提出改進意見和方法。

實現手段:拜訪(誘導)、原型演示

輸出成果:調研分析報告、原型反饋報告、業務流程報告

3.“確認”階段

這一階段是在上述兩個階段成果的基礎上,進行具體的流程細化、數據項的確認階段,這個階段承建方必須提供原型系統和明確的業務流程報告、數據項表,並能清晰地向用戶描述系統的業務流設計目標。用戶方可以通過審查業務流程報告、數據項表以及操作承建方提供的DEMO系統,來提出反饋意見,並對已經可接受的報告、文檔簽字確認。

實現手段:拜訪(回顧、確認),提交業務流程報告、數據項表;原型演示系統

輸出成果:需求分析報告、數據項、業務流程報告、原型系統反饋意見(後三者可以統一歸入需求分析報告中,提交用戶方、監理方進行確認和存檔)

整體來講,需求分析的三個階段是需求調研中不可忽視一個重要的部分,三個階段或者說三步法的實施和採用,對用戶和承建方都同樣提供了項目成功的保證。當然在系統建設的過程中,特別在採用迭代法的開發模式時,需求分析的工作需一直進行下去,而在後期的需求改進中,工作則基本集中在後兩個階段中。

第三步:分析用戶需求。

需求分析人員對收集到的用戶需求做進一步的分析和整理。下面是幾條常見的準則:

1.對於用戶提出的每個需求都要知道“爲什麼”,並判斷用戶提出的需求是否有充足的理由;

2.將那種以“如何實現”的表述方式轉換爲“實現什麼”的方式,因爲需求分析階段關注的目標是“做什麼”,而不是“怎麼做”;

3.分析由用戶需求衍生出的隱含需求,並識別用戶沒有明確提出來的隱含需求(有可能是實現用戶需求的前提條件),這一點往往容易忽略掉,經常因爲對隱含需求考慮得不夠充分而引起需求變更。

需求分析的具體內容可以歸納爲六個方面:軟件的功能需求,軟件與硬件或其他外部系統接口,軟件的非功能性需求,軟件的反向需求,軟件設計和實現上的限制,閱讀支持信息。

軟件需求分析應儘量提供軟件實現功能需求的全部信息,使得軟件設計人員和軟件測試人員不再需要需求方的接觸。這就要求軟件需求分析內容應正確、完整、一致和可驗證。此外,爲保證軟件設計質量,便於軟件功能的休整和驗證,軟件需求表達無岔意性,具有可追蹤性和可修改性。

1.軟件的功能需求。

軟件的功能需求是整個需求分析最主要、最關鍵和最複雜的部分,它描述軟件的各種可能的條件下,對所有可能輸入的數據信息,應完成那些具體功能,產生什麼樣的輸出。描述軟件功能需求是應注意下面幾點:

1)功能需求的完整性和一致性

對功能的描述應包含與功能相關的信息,並應具有內在的一致性(即各種描述之間不矛盾、不衝突)。應注意以下幾點:

(1)給出觸發功能的各種條件(如:控制流、運行狀態、運行模式等);

(2)定義各種可能性條件下的所有可能的輸入(包括合法的輸入空間和非法的輸入空間);

(3)給出各種功能間可能的相互關係(如各個功能間的控制流、數據流、信息流,功能運行關係:順序、重複、選擇、併發、同步);

(4)給出功能性的主要級別(如:基本功能、可由設計者選擇逐步實現的功能、可由設計者改變實現的功能等);

(5)儘可能不使用“待定”這樣的.詞。所有含有待定內容的需求都不是完整的文件,如果出現待定的部分,必須進行待定部分內容說明,落實負責人員、落實實施日期。

2)功能描述的無岔意性和可追蹤性

需求功能描述的無岔意性、可追蹤性和規範化:

(1)功能描述必須清晰地描述出怎樣輸入到怎樣輸出,並且輸入、輸出描述應對應有數據流描述、控制流描述圖,這些描述必須與其它地方描述一致;

(2)可以用語言、方程式、決策表、矩陣或圖等對功能的描述。如果選用語言描述必須使用結構化的語言,描述前必須說明該步驟(或子功能)的執行是順序,選擇,重複,還是併發,然後說明步驟邏輯。整個描述必須單入單出。

(3)描述時,每一個功能名稱和參照編號必須唯一,且不要將多個功能混在一起進行描述,這樣便於功能的追蹤和修改。

(4) 功能描述應注意需求說明和程序設計的區別。需求設計僅僅是軟件的功能設計,它給出軟件運行的的外部功能描述,以及爲了實現這一外部功能必須做哪些事情(採用和種數據結構,定義多個模塊,接口間的接口等)是設計階段的事情,功能描述不應涉及到那些細節問題,以避免給軟件設計帶來不必要的約束。

2.軟件與硬件或其他外部系統接口。

軟件與硬件或其它外部系統接口包括下述內容:

(1)人機接口:說明輸入、輸出的內容、屏幕安排、格式等要求;

(2)硬件接口:說明端口號,指令集,輸入輸出信號的內容與數據類型,初始化信號源,傳輸通道號和信號處理方式。

(3)軟件接口:說明軟件的名稱、助記符、規格說明、版本號和來源;

(4)通訊接口:指定通訊接口和通訊協議等描述。

3.軟件的非功能性要求。

軟件非功能性需求是指軟件性能指標,容限等功能以外的需求。一般指下述內容:

(1)時間需求:輸入、輸出頻率,輸入、輸出響應時間,各種功能恢復時間等;

(2)處理容限、精度、採樣參數的分辨率,誤差處理等;

(3)可靠性的MTBF要求,可維護性、安全性要求等。(對可能的不正常的輸入給以正常響應是可靠性的重要內容,這屬於功能性需求。)

4.軟件反向需求

軟件的反向需求描述軟件在那些情況下不能做什麼。這一條是隨軟件實際要求而定。有兩類情形需要採用反向需求的形式。第一種情況:某些用戶需求適宜採用反向形式說明,如數據安全性要求屬於這類形式。第二種情況:對一些可靠性和安全性要求較高的軟件,有些必須描述軟件不能做些什麼。如控制點火時序,我們必須交代清楚在那些情況下不能點火,否則會造成故障。

5.軟件設計和實現上的限制

軟件設計和實現上的限制主要指對軟件設計者的限制。如軟件運行環境的限制(選擇計算機類型,使用配置,操作系統的限制等)、設計工具的限制(使用語言、執行的標準)和保密要求等。

6.閱讀支持信息

這部分內容是爲了更好的幫助我們理解用戶需求,也是爲了使需求便於修改和追蹤。其本身並不是對需求的描述,但它影響到需求分析的可讀性,也屬於需求分析的一個重要部分。一般目錄、需求背景信息、內容索引、交叉引用表、註釋等均屬於這個部分的內容。

再看軟件需求分析常用工具

我們根據用戶需求,通過反覆討論、分析,最終明確一個唯一性的用戶需求,這個結果其實就是我們的軟件需求分析報告。一般我們採用Word、PowerPoint、Visio、ProntPage、Excel等Office工具,同時可能採用一些開發工具,如VC或BC等,同樣也會使用一些圖形工具,如Potoshop、調色板等畫圖工具。

使用各種工具表達軟件需求分析,其具體表達手段可以分爲:

1.效果圖描述。主要是用戶UI界面的描述反映用戶需求功能;

2.邏輯圖描述。根據用戶需求功能,使用抽象化理論,以及需求分析理論,對用戶需求功能進行全面的分析,建立功能性邏輯關係圖,流程邏輯關係圖等;

3.關係圖表描述。主要是對信息關係、數據庫表格、接口函數等描述;

4.工程數學描述。分析用戶需求,分析用戶需求信息,運用工程數學進行算法推導,進行合理化需求分析推導;

5.甘地圖描述。主要是軟件項目工作安排,開發週期預估;

6.其它方法描述。保證完整性合理性的有效描述。

第四步:編寫需求文檔。

根據我們多年的經驗總結,針對特定項目我們的需求文檔都有固定模板,經過前面的需求調研、需求分析過程所得到的結果,基本上按照用戶組織結構、功能模塊分佈情況,經過文檔格式、內容的整合與優化,即可形成我們需求調研分析的成果文件“需求規格說明書”,其將做爲我們下一步系統開發的主要輸入文件之一。

第五步:評審需求文檔。

軟件需求分析評審是爲了檢查我們進行軟件需求分析工作,保證軟件需求分析工作正確性、完整性、有效性、合理性、可確認性、可實施性,完全保證用戶所需求的功能,評審內容的主要載體就是“需求規格說明書”。

1.組織結構與責任管理

我們對組織結構與責任管理的評估主要有:參與人員任務和責任界面的明確;安排計劃按時完成狀況;相互間的協調能力狀況。

2.滿足用戶需求的功能

我們進行需求分析的目的是完整、準確地描述用戶的需求,跟蹤用戶需求的變化,將用戶的需求準確地反映到系統的分析和設計中,並使系統的分析、設計和用戶的需求保持一致。

需求分析的特點是需求的完整性、一致性和可追溯性。完整性:是準確、全面的描述用戶的需求。一致性:是通過分析整理,剔除用戶需求矛盾的方面,規範用戶需求。可追溯性:有兩個方面的含義,整理和規範的需求,其一,需要不斷的和用戶進一步交流,保持和用戶最新的需求一致。其二,和系統分析(設計)保持一致。

因此在需求分析之前我們必須建立需求分析技術層面的基本框架,從技術上保證需求分析的要求,在此基礎上我們進行的需求分析才能滿足項目對需求分析的要求。

3.保證可實施性

我們必須以用戶軟件需求爲依據,以求實的態度詳細的、準確的、完整的編寫軟件需求分析,避免空想世界,空中樓閣的想法;避免無邏輯性、無核心的描述;避免無量化思維,無實際空間概念。

4.需求分析評價指標

主要有這麼幾個指標:功能性、完整性、正確性、邏輯性、表現性、合理性,可實施性等。

5.工作週期

評價人員投入,以及費用支出的合理性問題。正確制定工作週期,保證軟件項目的順利完成。

6.需求不確定更改與可確認保證

可確認需求功能是實現用戶需求的基本保證,如果不可確認的、不確定更改存在,將會阻礙軟件實現,或者軟件設計存在着不完整性缺陷,或者存在着不可實施性問題,我們必須區分是功能性障礙問題,還是未來性問題。如果不能夠明確是未來性問題,則必須調整功能需求,化解不確定更改的問題。因此,判斷不確定性更改是一個非常重要的問題

第六步:管理需求-將存在於項目的整個生命週期內。

需求管理就是IT項目中的範圍管理,需求管理是整個IT項目的源頭,IT項目的估算,計劃,後續的跟蹤控制,驗證和確認等各項工作都是跟需求密切相關的。因此爲了保證項目的進度,質量和成本的目標的順利實現,保證項目計劃的嚴肅性和可執行性;爲了保證軟件系統最終開發的產品正是客戶期望的產品,必須要做好需求管理工作。

需求管理工作應該是需求全生命週期的管理,從用戶原始需求的提出,到最終形成軟件產品後用戶對需求實現情況的驗證以形成閉環流程。因此我們需要跟蹤和了解到需求狀態的演變過程。大型的項目軟件生命週期模型較爲複雜,一個需求的實現會經過用戶需求,軟件需求,總體設計,詳細設計,開發和單元測試,集成測試,系統測試和驗收測試多個環節,在這個過程中需要建立需求追蹤以確認需求和中間階段產生的工作產品的一致性。另外變更管理是需求管理的另外一個重點,需求在經過評審確認後需要基線並受到控制,當出現需求變更的時候必須進行相應的需求影響分析以確認對需求變更的處理方式,當變更工作量影響較大的時候還需要調整並重新基線項目計劃。

對於整個需求調研,分析和需求開發,評審確認的過程也需要進行管理。在這個過程中的一個重點就是對需求輸出的文檔需要得到用戶,項目組設計開發人員的共同確認和承諾。