1. 程式人生 > >非功能需求的6種類型

非功能需求的6種類型

軟體產品的需求可以分為功能性需求和非功能性需求,其中非功能性需求是常常被輕視,甚至被忽視的一個重要方面。其實,軟體產品非功能性定義不僅決定產品的質量,還在很大程度上影響產品的功能需求定義。如果事先缺乏很好的非功能性需求定義,結果往往是使產品在非功能性需求面前捉襟見肘,甚至淹沒功能性需求給使用者帶來的價值。

  所謂非功能性需求,是指軟體產品為滿足使用者業務需求而必須具有且除功能需求以外的特性。下面對其中的某些指標加以說明。

1、功能性

  功能性指與一組功能及其指定的性質有關的一組屬性,這裡的功能是指滿足明確或者隱含的需求的那些功能。具體包括:

  ● 適合性:與規定任務能否提供一組功能,以及這組功能的適合程度有關的軟體屬性,例如面向任務系統中由子功能構成的功能是否合適,表容量是否合適等等。

  ● 準確性:與能否得到正確或者相符的結果或者效果有關的軟體屬性。

  ● 互操作性:與其他指定系統進行互動的能力有關的軟體屬性。

  ● 依從性:使軟體遵循有關的標準約定法規及類似規定的軟體屬性。

  ● 安全性:即與防止對程式技術局的非授權的故意或者意外訪問的能力有關的軟體屬性。如使用者許可權、動態口令、資料庫欄位加密等。

  對於這組非功能需求來說,絕大部分是滿足功能需求的情況,他並不需要採用額外的措施,而安全性是一個例外,它會涉及具體的技術性功能需求。

2、可靠性

  可靠性之與在規定的一段時間和條件下軟體維持其效能水平的能力有關的一組屬性。具體包括:

  ● 成熟性:與有軟體故障引起失效的頻度有關的軟體屬性。

  ● 容錯性:與在軟體故障或違反指定介面的情況下維持規定的效能水平的能力有關的軟體屬性。如離線錄入支援等。

  ● 易恢復性:與在是小發生後重建其效能水平並恢復直接受影響資料的能力,以及為達到此目的所需時間和努力有關的軟體屬性。如表單資料自動儲存等。

  這類非功能需求通常是全域性的,他除了與系統執行環境、平臺選擇、程式碼質量相關之外,還會涉及部分技術性功能需求,他別是容錯性、易恢復性的實現都需要一些具體的功能來支援。

3、易用性

  易用性是與一組規定或者潛在的使用者為使用其軟體所需做的努力和對這樣的使用所作的評價有關的一組屬性。具體包括:

  ● 易理解性:與使用者為人質邏輯概念即其應用範圍所花的努力有關的軟體屬性。

  ● 易學習性:與使用者為學習軟體應用所花的努力有關的軟體屬性。

  ● 易操作性:與使用者為操作和執行控制所花的努力有關的軟體屬性。如帶首字母篩選功能的下拉列表等。

這類非功能需求是與UI設計、聯機幫助系統有著直接關係的,易理解性和易學習性通常和介面導航、聯機幫助有關,課歸納為介面友好性;易操作性則會和介面元素設計有關。也就是說這類屬性會關聯到具體的技術性功能需求。

4、效率

效率是指與在規定的條件下軟體的效能水平與所使用資源量有關的一組屬性。具體如下:

時間特性:與軟體執行器功能時響應和處理時間及吞吐量有關的軟體屬性。如資料快取等。

資源特性:與在軟體執行其功能時所使用的資源數量及其使用時間有關的軟體屬性。如資料壓縮等。

這部分實際上就是通常所說的效能需求,他有一大部分是區域性性的,在每個用力的描述中應該指出;另外它又會引申出一些相關的技術性功能需求,例如資料快取等。

5、維護性

維護性是指與進行指定的修改所需的努力有關的一組屬性。具體包括:

易分析性:與為診斷缺陷或者失效原因及為判定待修改的部分所需努力有關的軟體屬性。如日誌記錄系統等。

易改變性:與進行修改排除錯誤或者適應環境變化所需努力有關的軟體屬性。

穩定性:與修改所造成的未預料結果的風險有關的軟體屬性。

易測試性:與確認已修改軟體所需的努力有關的軟體屬性。

這部分通常是開發團隊最容易投入時間和成本的地方,諸如動態屬性支援、UI介面生成、流程引擎等都是為了提高系統的可維護性,因此它顯然是會引申出相關的技術性功能需求的。

6、可移植性

可移植性是指與軟體可從某一環境轉移到另一環境的能力有關的一組屬性。具體包括:

適應性:與軟體無需採用有別於為該軟體準備的活動和手段就可能適應不同的規定環境有關的軟體屬性。如全球技術支援等。

易安裝性:與在指定的環境下安裝軟體所需努力有關的軟體屬性。如線上更新、安裝包自動生成等。

遵循性:使軟體遵循與可移植性有關的標準或約定的軟體屬性。

可替換性:與軟體在該環境中用來替代指定的其他軟體的機會和努力有關的軟體屬性。

這部分除了需要通過選擇正確的開發工具、平臺來支援外,也會涉及一些技巧性的功能需求,如全球語言支援等。