軟體專案需求開發過程實踐之軟體需求說明書

肖永威發表於2015-03-07

        軟體需求說明書為誰而編寫?把這個問題搞清楚是非常有意義的。

        先講個故事。

        在軟體專案開始時,需求及架構設計人員把需求和架構方案講給開發人員聽,開發人員還在設計“他那輛車”,沒有聽明白?需求及架構設計人員接著寫出一些列文件後,開發人員還在設計稍作調整“他那輛車”,溝通出現了問題了嗎?專案完成後,最後結果仍是開發人員所設計的,已經變形的“他那輛車”。

        問題的源頭當然在需求,需求人員又如何把需求調研結果無損的分享給“相關人員”呢?其他原因,例如專案團隊學習等不在本文中分析了。


        首先,我們先回顧軟體工程中的需求分類和需求層次。

        需求的分類

  • 軟體需求就是系統必須完成的事,以及必須具備的品質。具體來說,軟體需求包括功能需求、非功能需求和設計約束三個方面的內容;
  • 業務需求是指反映組織機構或客戶對系統、產品高層次的目標要求,通常問題定義本身就是業務需求;
  • 使用者需求是指描述使用者使用產品必須要完成什麼任務、怎麼完成的需求,通常是在問題定義的基礎上進行使用者訪談、調查,對使用者使用的場景進行整理,然後建立的從使用者角度的需求;
  • 系統需求是從系統的角色來說明軟體的需求,它包括了用特性說明的功能需求,質量屬性及其他非功能需求,還有設計約束。

        需求的層次

        需求包括三個不同的層次:業務需求、使用者需求和功能需求,也包括非功能需求。


        在需求調研、需求分析、編寫需求說明書時,上述需求分類和層面都應涉及,否則,將缺項,讓人無法瞭解全面。如下表1“業務流程需求”為例所示,使用者層次及角色至少分為8個層面,他們的需求及視角很多都不同。

        

                                                                                                               表1

        在需求調研中,表1中,很難訪談到領導層,其他各層也很難面面俱到,而寫出來的需求說明書,這些人也看不到,或者說也不可能看,就是專案團隊中的開發人員也很少看。這樣,軟體界的需求故事不停的上演。

        

                                                                                                                             圖1

        如何解決這些問題呢?

        首先,必須寫需求說明書,而且寫成相關各個使用者層次都能看到各自關注內容,滿足現有業務需求,並高於現有的業務,也就是業務建模。只有這樣,需求變更才恢復到本來的面貌,而不是理解偏差出現的變更。

        下面列表是早期寫的需求說明書目錄內容擷取,需求內容非常的多。例如:使用者有很多待建流程,如果逐一展開寫到文件中,先不說寫的工作量,還有誰看呀!

        

        調整思維後,需求說明書目錄截圖發生較大的變化,不是以往點、面的模式描述需求,而是立體模型方式描述需求,需求建模。而需求建模需要需求開發人員能力很多,例如屬於這個方案業務專家或者管理方案的專家。

        

        需求分析真的需要豐富的經驗,領域專家。企業管理方面呢?是不是需要企業老總呢?企業管理專家又是誰?誰能指點流程能力、執行力、效率、效益……。所以,從各個視角關注流程是非常必要的,而且,要體現這些,需要在需求說明書中編寫。

        軟體需求說明書參考模版如下列表所示。

        

        總之,軟體需求僅按使用者需求直譯方式去理解並開發,哪將是惡夢的剛剛開始。真正的需要是去偽求真的,真的需求不可能是由普通使用者(業務介面人)能全部提供的,層次不夠,覆蓋面不夠,真的來源於業務領域知識、國家政策法規、企業規章制度,以及社會及其資訊化發展方向。例如參考我早先的部落格《資訊化建設適應當前改革的思考——簡化流程與資訊透明》,關注社會及企業發展的視角。把這些內容都體現到需求說明書中,就方便各層領導閱讀了,也提供普通員工和開發人員的認識層次了。通過次需求說明書,開發人員知道並理解做什麼,減少,最好防止“一千個人心中有一千個哈姆雷特”的情況發生。

        專案經驗之談分享,精力有限,難免有誤,僅供參考,歡迎討論、再補充完善。

參考:

百度百科.“軟體需求

使用雲技術升級改造現有應用系統的思考 2013.11 肖永威

面向集團客戶的雲端計算運營平臺概述——之雲端計算運營平臺方案(一) 2013.12 肖永威

相關文章