非功能性需求

在系統工程及需求工程中,非功能性需求()是指依一些條件判斷系統運作情形或其特性,而不是針對系統特定行為的需求。和非功能性需求相對的是功能需求,後者會定義系統特定的行為或功能。非功能性需求也可以視為為了滿足客戶業務需求而需要符合,但又不在功能性需求以内的特性。

一般會在系統設計中詳細列出實現功能需求的計劃,而會在系统架构中詳細列出實現非功能性需求的計劃。一般而言,功能需求會定義系統的行為,而非功能性需求會定義系統的特性。

非功能性需求一般會稱為系統的「品質」,有時也會稱為「限制」、「品質屬性」、「品質目標」、「品質服務需求」或「非行為性的需求」。有許多非功能性需求的英文都是以「ility」結尾,例如穩定性(stability)及可移植性(portability),因此非功能性需求有時也稱為「ilities」。

非功能性需求可以分為以下的二類:

執行品質(Execution qualities),可以在系統運作時觀察到的品質,例如保安性及易用性等。

發展品質(Evolution qualities),和軟體系統結構及開發過程有關的品質,例如軟體可測試性、可維護性、可擴展性、可伸縮性(scalability)等。

舉例
一個系統要顯示資料庫中記錄条目的數量,這個是功能需求,但如何更新顯示条目數的資料就是非功能性需求。若需要即時更新顯示資料,系統架構需允許系統在資料条目數量變化後,經過一小段可接受的時間後就要更新顯示資料。足夠的網路頻寬可能就是非功能性需求中的一部份。

以下是一些非功能性需求的例子:

  • 無障礙
  • 審計和控制
  • 可用性(參考服務級別協議)
  • 備份
  • 目前容量及預估容量
  • 認證
  • 相容性
  • 組態管理
  • 部署
  • 文件
  • 灾难恢复
  • 效率(特定負載下消耗的資源)
  • 有效性(工作量及其性能表現間的關係)
  • 情感因素
  • 環境保護
  • 履約保證
  • 弱點
  • 可扩展性(Extensibility,增加機能)
  • 故障管理
  • 故障容許度(容错性)
  • 法律性或授權許可問題或避免專利侵權
  • 互操作性
  • 可維護性
  • 可修改性(Modifiability)
  • 网络拓扑
  • 开放源代码

*

  • 性能
  • 系統平台相容性
  • 隱私權
  • 軟體可移植性
  • 品质(例如已發現的故障、已交付的的故障、故障排除效力)
  • 復原或可復原性(例如平均修復時間MTTR)
  • 可靠度(例如平均故障間隔MTBF)
  • 報表

*

  • 資源限制(處理器、速度、金錢、硬碟容量、網路頻寬等)
  • 反應時間
  • 強健性
  • 可伸縮性(Scalability,水平或垂直的)
  • 保安
  • 軟體、工具、標準等的相容

*
*

  • 軟體可測試性
  • 易用性

相關條目
*ISO/IEC 9126
*需求分析
*功能需求
*易用性
*URPS
*架構重要需求

參考資料

评论 (0)

  • 还没有评论,来抢沙发吧。