1. 程式人生 > >需求分析中的問題總結

需求分析中的問題總結

閱讀完林銳《軟體工程與專案管理解析》中關於需求分析章節,弄明白了以前自己做需求的時候很多問題,這些問題的存在讓我覺得需求分析這個階段就像是攔路虎,很壓抑。

1、需求階段不明

需求分析到底包含幾個階段呢?這是我一直很不理解的地方。為了弄清楚這個問題,還是得先弄明白需求的本質是什麼。

”寬泛的講,需求來源於使用者的一些‘需要’,這些‘需要’被分析、確認後形成完整的文件,該文件詳細的說明了產品‘必須或應當’做什麼。“

由此可見,”需求“就是使用者的需要,這一階段的任務就是要搞清楚使用者的需要。文件這些都是輔助手段,而且是必要的。

明白了這個道理,那如何才能做到?

整個需求工程分為:需求開發和需求管理兩部分,各部分又有幾個階段:

需求開發:

            需求調查——〉得到《使用者需求說明書》

            需求分析——〉使用”問答分析法“或“建模分析法”對各種需求資訊進行分析,消除錯誤、刻畫細節。

            需求定義——〉根據以上的結果,定義準確無誤的產品續期,產生《產品需求規格說明書》。

需求管理:需求確認——〉需求跟蹤——〉需求變更控制

《使用者需求說明書》與《產品需求規格說明書》的主要區別與聯絡:

(1)前者主要採用自然語言(和應用域術語)來表達使用者需求,其內容相對於後者而言比較粗略,不夠詳細;

(2)後者是前者的細化,更多地採用計算機語言和圖形符號來刻畫需求,產品需求是軟體系統設計的直接依據;

(3)兩者之間可能並不存在一一對映關係,因為軟體開發商會根據產品發展戰略、企業當前狀況適當的調整產品需求,例如使用者需求可能被分配到軟體的數個版本中,軟體開發人員應當依據《產品需求規格說明書》來開發當前產品。

兩者的模板都包含了產品的功能性需求,內容為:

功能類別 功能名稱、標誌符 描述
FeatureA FunctionA.1
...
FeatureB FunctionB.1
...
FeatureC FunctionC.1
...

也都包含了非功能性的需求:

需求類別 需求名稱、識別符號 描述
使用者介面需求
軟硬體需求
質量需求


從模板上來看,後者多了對前者的功能的喜歡,每個功能點都寫明瞭:

名稱、識別符號
優先順序
功能描述
資料及解析
輸入、輸出、操作系列等
其他說明
參考示例

自己之前做的工作就是真是太粗糙了,需求調查往往就是大家聊聊,記錄一下他們的想法,然後再自己想想怎麼實現,也沒有評審,就這樣就定了,開發。太兒戲了。。。難怪總是不能達到對方的要求。沒有一個完整的方法論做支撐,管理一片混亂,難怪老是要吃苦果。。。。

我應該如何做?

在做需求調查的時候,根據一定的模板,記錄下使用者的原始需求;

按照一定的格式整理成《使用者需求說明書》;

對每個功能進行細化,得到《產品需求規格說明書》。

因為面對的是內部使用者,且對開發一竅不通,往往使用者今天提了個想法,明天就問做完了沒有,想想實在很吐血。也是由於自己對這方面的思路不清晰,導致很被動,需要改變這種做法了,不管使用者如何,這個過程自己一定要遵守,按照一定的規則辦事,這樣才能把這件事做好,否則到時候就變得不可收拾。其實這個過程不僅是對我這邊的訓練,也是對使用者那邊的訓練。

需求評審這個過程不能省略,雖然不用籤合同,但是讓大家都對將要開發的功能都有全盤的認識,這個很有必要。

2、需求相關的知識不足

1)需求跟蹤,以前一直沒搞清楚,這個是幹嗎用的,網上也沒有得到特別明確的答案。這個工作目前來說是空白的。

需求跟蹤的目的是建立與維護”需求——設計——程式設計——測試“之間的一致性,簡單的來說,可以有個excel表,記錄下面的資訊:

需求規格說明書(版本日期)        設計文件(版本,日期)           程式碼(版本,日期)                測試用例(版本,日期)

這樣,對於每個需求的功能都能找到後續的對應制品,這就可以跟蹤了。那麼只要檢查一下產品規格需求說明書裡的各個需求,是否都實現了,就知道功能需求是否都完成了。

2)需求分析方法

結構化分析方法,我只是關注了”資料流圖”,實際上,整個方法涉及的部分確實有:

實體-關係圖     〈——〉            資料字典      〈——〉                 資料流圖

                                                                ^

                                                                 |

                                                                 v

                                                        狀態-變遷圖

同時由於我沒有《使用者需求說明書》和《產品需求規格說明書》的概念,把東西都混淆在一起進行表達了,感覺很混亂。

3)時間分配問題

由於專案小,往往要負責需求,設計,開發,由於對需求的重視不足,在這方面的付出不夠,也就做的夠爛。書上也說了,要能給企業帶來利益。這也就是我的專案的價值。那麼只有開發出來的產品,對公司業務部門有節省成本、提高效率、擴充套件市場,才能叫做有價值。如果一味的閉門造車,或者對使用者的需求僅僅是做了粗略記錄,卻沒有深刻分析,然後把時間都投入到開發上,這樣,會帶來很嚴重的後果:需求不對路,開發出來的東西使用者不滿意,或者根本不是使用者要的,白乾了。其實技術不是唯一(指的是這種應用型的)的,滿足使用者需求的技術才是最好的。總之,一定要認識到需求的重要性,花功夫去做細它。