軟件工程(四)需求工程與需求分析

軟件需求的定義

軟件開發的首要任務是確定軟件需求,軟件需求指一個軟件系統必須遵循的條件或具備的能力。這裏的條件和能力可從兩方面理解:一是用戶解決問題或達到目標所需的條件或能力,即系統的外部行爲;二是系統爲滿足合同、規範或其他規定文檔所需具有的條件和能力,即系統的內部特效

軟件需求一般包括三個不同的層次:業務需求、用戶需求和功能需求

第一個層次是業務需求,這是客戶或市場對軟件的高層次目標要求,就是從業務的角度分析項目成功的預期效果。它好比需求過程中的基石,其他需求(如用戶需求和功能需求)都必須與之相符

第二個層次是用戶需求,即從用戶使用角度來描述軟件產品必須完成的任務。通常在用例模型文檔中描述這個層次的需求,從用戶需求還可引申出軟件的質量屬性。用戶需求的重心是如何收集用戶的需求,即確定軟件系統爲用戶提供的功能以及軟件與環境的交互

第三個層次是功能需求,定義軟件開發人員必須實現的軟件功能,以及爲了有效實現這些功能而必須達到的非功能要求、約束條件等,從而使用戶能完成他們的任務,滿足業務需求。功能需求依賴於用戶需求,是用戶需求在系統上的具體反映

軟件需求的特性

軟件需求包括以下六個特性:功能性、可用性、可靠性、性能、可支持性和設計約束

  1. 功能性

    功能性需求是軟件最重要的需求,可分普通功能和全局功能。普通功能泛指軟件完成的一個功能或提供的一個服務。全局功能是適用於軟件所有應用場景的功能

  2. 可用性

    泛指能使最終用戶方便使用軟件的相關需求

  3. 可靠性

    包括與系統可靠性相關的各種指標,主要有正常運行率、平均無故障時間、平均修復時間、精確度、最高錯誤或缺陷率等

  4. 性能

    記錄與系統性能相關的各種指標,其中包括對事務的響應時間、吞吐量、容量、降級模式、資源可利用情況

  5. 可支持性

    定義所有與系統的可支持性或可維護性相關的需求,其中包括編碼標準、命名約定、類庫以及如何對系統進行維護操作和維護實用工具等

  6. 設計約束

    設計約束代表以及批准並必須遵循的設計約定,其中包括軟件開發流程、開發工具、系統構架、編程語言、第三方構件庫、運行平臺和數據庫系統

需求工程的由來

在引入生存週期的概念後,定義需求成爲軟件開發的第一項活動。隨着軟件規模不斷擴大,需求定義與分析在整個軟件開發與維護過程中越來越重要。人們逐漸認識到需求活動不僅限於軟件開發的最初階段,而是貫穿於系統開發的整個生存週期。所謂軟件需求工程是一門分析、記錄並維護軟件需求的學科,它是軟件工程的一個子領域,貫穿於軟件整個生存週期的始終


需求分析與建模

需求分析通常指軟件開發的第一項活動,而該活動目的主要是爲待開發的軟件系統進行需求與定義,並建立一個需求模型。需求分析是迭代過程,直到所編寫的 SRS 真正符合用戶需求爲止

需求分析的步驟

軟件需求分析一般包括如下的四個步驟:需求獲取、需求建模、需求描述(即編寫 SRS)和需求驗證

  1. 需求獲取

    顧名思義,需求獲取就是得到正確的需求信息,常規的需求獲取方法有建立聯合分析小組、用戶訪談與問題分析與確認等。快速原型法也可以用作一種有效的需求分析方法。在分析階段,開發人員利用快速開發工具先建立一個系統原型,然後讓用戶參加評估並提出修改意見,進而逐步、準確地確定軟件系統的外部行爲和特徵

  2. 需求建模

    建立分析模型是需求分析的首要任務,是可視化的說明軟件需求的最好手段。其中占主導地位的需求建模方法有結構化分析建模和麪向對象分析建模兩種,這裏主要介紹面向對象需求模型

    面向對象需求模型由三部分組成:用例模型、補充規約和術語表,其中用例模型又包括用例圖和用例規約。用例圖主要用於顯示軟件系統的功能,它包括用例和參與者兩方面內容,而用例圖下方的用例規約則是對軟件系統中每個功能的具體描述。補充規約用於對全局性功能和可靠性、性能等非功能性需求進行文字性描述;後者則用於描述與系統需求相關的術語的定義。基於用例的面向對象需求建模方法,包括畫用例圖、寫用例規約、描述補充規約和編寫術語表等四步

  3. 軟件需求描述

    編寫軟件需求規格說明書(SRS),必須用統一格式的文檔進行描述,是開發人員在分析階段需要完成的用於描述需求的文檔,包括引言信息描述、功能描述、行爲描述、質量保證、接口描述、其他描述

  4. 需求驗證

    確保需求規格說明書可作爲軟件設計和最終系統驗收的依據


需求管理

無論是貫穿於整個軟件生存週期的需求工程,還是隨需求分析建模而產生的用例模型,在定義需求的時候總伴有許多可變因素。因此,需求應該具有彈性結構,使之能適應可能的變更。一旦其中有某些需求發生變化,就能確定它可能帶來的影響,進而制定出相應的策略

五個特定實踐

獲得對需求的理解
獲取需求承諾
管理需求變更
維護對需求的雙向可追溯性
標識項目工作與需求的不一致性

管理流程

上述的五個特定實踐可歸結爲以下的三項活動,即需求確認、需求跟蹤和需求變更

  1. 需求確認

    包括上述第一、第二兩個特定實踐。由開發方和客戶共同對主要需求文檔 “軟件規格說明書” 進行評審,雙方達成共識後作出書面承諾,使需求文檔具有商業合同效力

  2. 需求跟蹤

    包括上述第四、第五兩個特定實踐。爲了有效地檢驗軟件產品能否滿足所有需求,對項目的需求進行跟蹤管理,確保所有工作成果都符合用戶需求

需求變更控制

需求變更的流程通常按變更申請、變更審批、變更修改、變更關閉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章