軟件需求的3個層次
作為技術人員,我們以往更多的關注的是技術,但是在做個多年后,發現做正確的事比正確的做事更重要,而軟件中需求的好壞就很大程度決定了你這個 軟件是否正確,需求確定后不管你如何實現,功能給客戶直接帶來的價值遠遠比技術直接帶來的價值要高。但是需求帶來的問題一直是各個軟件公司項目失敗的首要 原因,因此需求是很復雜的,我們希望能在不斷地學習和實踐中不斷地理清需求、提高需求分析能力。
軟件需求包括3個不同的層次:
【業務需求】
描述組織或客戶的高層次目標,通常問題定義本身就是業務需求。這種目標通常體現在兩個方面:
問題:解決企業/組織運作過程中遇到的問題,如物資供應脫節、用戶投訴量大、客戶流失率高等。
機會:抓住外部環境變化所帶來的機會,以便為企業帶來新的發展,例如電子商務、網上銀行等。
業務需求就是系統目標,它必須是業務導向的、指導軟件開發的 高層需求。這類需求通常來自與高層,例如項目投資人、購買產品的客戶、實際用戶的管理者、市場營銷部門或產品策劃部門。業務需求從總體上描述了為什么要開 發系統(why),組織希望達到什么目標。一般使用前景和范圍(vision and scope)文檔來記錄業務需求,這份文檔有時也被稱作項目輪廓圖或市場需求(project charter 或 market requirement)文檔。組織愿景是一個組織對將使用的軟件系統所要達成的目標的預期期望。比如“希望實施CRM后公司的客戶滿意度達到80%以 上”就是一條組織愿景。
【用戶需求】
用戶需求是指描述用戶使用產品必須要完成什 么任務,怎么完成需求,通常是在問題定義的基礎上進行用戶訪談、調查,對用戶使用的場景進行整理,從而建立從用戶角度的需求。用戶需求必須能夠體現軟件系 統將給用戶帶來的業務價值,或用戶要求系統必須能完成的任務,也就是說用戶需求描述了用戶能使用系統來做些什么(what),這個層次的需求是非常重要 的。
作為需求捕獲階段的主要產物,主要具備以下特點:
零散:用戶會提出不同角度、不同層面、不同粒度的需求,而且常常是一句話形式提出的,如通過電話、短信等非正式方式提出的需求。
存在矛盾:由于用戶處于企業/組織的不同層面,因此難免會出現盲人摸象的現象,而導致需求的片面性。
因此,我們還需要對原始需求進行分析和整理,從而得出更加精確地需求說明。用例、用戶故事、特性等都是表達用戶需求的有效途徑。
【軟件需求】
由于用戶需求具有零散、矛盾的特點,因此需求分析人員還需要對其進行分析、提煉、整理,從而生成指導開發的、更準確的軟件需求,軟件需求是需求分析與建模的產物。
軟件需求是需求的主體,它描述的是開發人員如何設計具體的解決方案來實現這些需求(how),其數量往往比用戶需求高一個數量級。這些需求記錄在軟件需 求規格說明(Software Requirments Specification)中。SRS 完整地描述了軟件系統的預期特性。SRS我們一般把它當作文檔,其實,SRS還可以是包含需求信息的數據庫或電子表格;或者是存儲在商業需求管理工 具中的信息;而對于小型項目,甚至可能是一疊索引卡片。開發、測試、質量保證、項目管理和其他相關的項目功能都要用到SRS。
posted on 2012-07-04 09:47 順其自然EVO 閱讀(374) 評論(0) 編輯 收藏 所屬分類: requirement and analysis