軟件產品質量模型將一個軟件產品需要滿足的質量划分為六大屬性(功能性、可靠性、易用性、效率、可維護性和可移植性),每類屬性又細分出了很多“子屬性”,如下圖所示。

軟件產品質量模型對產品設計時需要考慮的地方進行了高度概括。一個高質量的產品,一定是一個在質量六屬性上都設計得很出色的產品;如果一個產品的設計在質量六屬性上存在缺失,這個產品的質量一定不會太高。下面就6個特性和27個子特性一一說明:
一、功能性:是指軟件產品在指定條件下使用時,提供滿足明確和隱含要求的功能的能力。
1、適合性:軟件產品為特定的任務和用戶目標提供一組合適功能的能力
2、准確性:軟件產品提供具有所需精度的正確或相符的結果及效果的能力
3、互操作性:軟件產品與一個或多個特征、系統相互配合的能力
4、安全性:軟件產品保護信息和數據的能力,以保證未受權的用戶或系統不能閱讀和修改這些信息與數據,而合法用戶或系統不會被拒絕訪問
5、功能順從性:軟件產品符合和該功能相關的標准、規范、規則或特定的能力(如對於一款計算器,計算規則要和數學中相關規則保持一致)
二、可靠性:是指在特定條件下使用時,軟件產品維持規定的性能級別能力。
下面三個層層遞進的句子,可以幫助我們來理解用戶可靠性方面的要求:
第一層:設備最好不要出故障;
第二層:設備出現故障了不要影響主要的功能和業務;
第三層:如果影響了主要功能和業務,系統可以盡快定位並恢復。
4個子屬性如下:
1、成熟性:軟件產品為避免因軟件故障而導致失效的能力
2、容錯性:軟件產品在軟件發生故障或者違反指定接口的情況下,維持規定的性能級別的能力
3、可恢復性:軟件產品在失效發生的情況下,重建規定的性能級別並恢復直接影響的數據的能力
4、可靠性順從性:軟件產品遵循與可靠性相關的標准、約定或規定的能力(如對於通信類產品,系統的故障率不能高干多少、故障恢復時間不能長於多少等)
三、易用性:是指用戶在指定條件下使用軟件產品時,產品被用戶理解、學習、使用和吸引用戶的能力。簡單10個字:易懂、易學、易用、漂亮好看。
1、易理解性:軟件產品使用戶能理解軟件是否適合以及如何能將軟件用於特定的任務和使用環境的能力
2、易學性:軟件產品使用戶能學習其應用的能力
3、易操作性:軟件產品使用戶能夠操作的控制它的能力
4、吸引性:軟件產品吸引用戶的能力
5、易用性的依從性:軟件產品遵循與易用性相關的標准、約定、風格指南或法規的能力(如對Windows的計算器來說,在界面設計上模仿實體計算器是易用性依從性的一個體現)
四、效率:是指在規定條件下,相對於所用資源的數量,軟件產品可提供適當的性能的能力。通常,效率就是我們常說的產品性能。
1、時間特性:在規定條件下,軟件產品執行其功能時,提供適當的響應和處理時間以及流量(吞吐量)的能力
2、資源利用率:在規定條件下,軟件產品執行其功能時,使用合適數量和類別的資源的能力
3、效率依從性:軟件產品遵循與效率相關的標准或約定的能力(如對系統資源的占有率又不能高於多少)
五、可維持性:是指產品可被修改的能力。這里的修改是指糾正、改進軟件產品和軟件產品對環境、功能規格變化的適應性
1、可分析性:軟件產品診斷軟件中的缺陷、失效原因或識別待修改部分的能力
2、可修改性:軟件產品能夠被修改的能力
3、穩定性:軟件產品不會因為修改而造成意外結果的能力
4、可測試性:軟件產品已修改的部分能夠被確認修復的能力
5、可維護性的依從性:軟件產品遵循與維護相關的標准或約定的能力(如軟件出現故障時會彈出“XXX遇到問題要關閉”之類的提示)
六、可移植性:是指軟件產品從一種環境遷移到另外一種環境的能力。這里的環境,可以理解為硬件、軟件或組織等不同的環境。
1、適應性:軟件產品無須采用額外的活動或手段就可適應不同指定環境的能力
2、可安裝性:軟件產品在指定環境中被安裝的能力
3、共存性:軟件產品在公共環境中同與分享公共資源的其他獨立件共存的能力
4、易替換性:軟件產品在同樣的環境下,替換另一個相同用途的指定軟件產品的能力
5、可移植性的依從性:軟件產品遵循與可移植性相關的標准或約定的能力(如產品不是針對某款特定的操作系統開發的,需要支持Windows所有操作系統)
