1. 程式人生 > >如何做軟體需求分析(個人工作經驗總結)

如何做軟體需求分析(個人工作經驗總結)

前言:

需求對於我們IT人來講是一個再熟悉不過的名詞了,如何在專案開發週期做需求,那就是各有各的道了,下面是我對軟體開發過程中對做需求的理解和總結。希望能給大家帶來一點不同的感官。

1什麼是需求,需求分析在整個開發週期的作用。

          對於需求概念來講就是功能+質量+約束。在整個開發週期中,需求是整個開發的基礎。需求分析成功,則軟體風險就減少了一半。

    這麼一講,還是蠻空洞的,對於我們來講如何進行需求分析,它的流程是什麼,每步流程的標準又是什麼呢?

     本人在需求操作中,主要分為三個階段。

     第一階段 確定專案的大背景。第二階段 專案本階段的核心需求定義和確定,第三階段 專案詳細需求分析。

2 在需求過程中的三個里程碑

2.1 第一階段 確定專案的大背景

確定專案的大背景,就是充分的瞭解專案的領域,客戶對專案的期望值。其次,對於企業專案來講,在確定專案目標後,還要進一步的瞭解客戶的企業框架。當前專案在企業框架中位置,第三方介面定義等等。

在考慮到完成業務上的預景後,接下來就是專案實現技術實現方案,選擇實現專案的技術框架(通常包含 開發平臺,第三方元件,硬體環境,測試環境,部署環境等)

第一階段的配置項 為

《企業建設方案》

2.2 第二階段 專案本階段的核心需求定義和確定

    在確定了需求的大背景下,下一步,我們需要做的內容就是確定專案的核心功能,關鍵的質量,和相關的約束。在這邊我要著重向大家說明一下溫昱老師的二維需求表。

     表的格式為

功能

質量

約束

業務及需求

使用者級需求

開發級需求

功能:

軟體功能又分關鍵功能,次要功能等。在第二階段,我們要做的就是分辨並整理關鍵功能,和次要功能。根據專案的規劃,找出當前需要實現的關鍵功能,與此同時,對於高風險,技術風險大的功能,或者關鍵功能中相互衝突的功能進行前期取捨。(當然啦,在取捨和確定具體的功能範圍,還是要和客戶之間相互溝通的)

      最後要補充一點的,就是確定關鍵功能這個過程是不停遞迴的一個過程。

質量:

一般質量分類包含 效能,安全性,可靠性,易用性,可擴充套件,可維護,可移植等。

     在需求分析中,和關鍵功能一樣,要根據專案的願景,進行關鍵質量的篩選。

在某種情況下軟體的質量之間還是有衝突,魚和熊掌不可兼得的情況,如 可維護性和效能是一對對立的兩兄弟。我們還需要對這樣的關鍵質量進行必要的取捨。在作出這樣的取捨,依據的標準就來源於我們需求的第一階段的工作。

約束:

軟體的約束分好多的角度,

業務級約束:舉例:專案的組織結構和人員資訊來源於企業人事系統

使用者級約束:舉例:使用客戶用一部分是殘障人事等,其包含了藏語使用者等

開發級約束:舉例:開發人員的技術水平等。

在調研並完成這樣的二維需求表後,及時的和客戶溝通,確定關鍵功能,關鍵質量和約束等。對二維需求表中的內容進行取捨和確定。 

在第二階段出的配置項

    二維需求表

2.3 第三階段  專案詳細需求分析

  在第二階段的基礎上,我們就可以對專案核心功能進行資料流需求調研分析,業務邏輯分析。並在這基礎上編寫使用者用例 ,資料流轉圖業務邏輯圖

   在完成了以上業務核心功能的詳細調研分析後,將全部用例和其他內容組合在一起,制定《專案需求規格說明書》。

在第三階段出的配置項

   《專案需求規格說明書》。