關于軟件質量模型,業界已經有很多成熟的模型定義,比較常見的質量模型有 McCall 模型、Boehm 模型、FURPS 模型、Dromey 模型和 ISO9126 模型。
- Jim McCall 軟件質量模型(1977 年)
- Barry W. Boehm 軟件質量模型(1978 年)
- FURPS/FURPS+ 軟件質量模型
- R. Geoff Dromey 軟件質量模型
- ISO/IEC 9126 軟件質量模型(1993 年)
- ISO/IEC 25010 軟件質量模型(2011 年)
Jim McCall 軟件質量模型(1977 年)
Jim McCall 的軟件質量模型,也被稱為 GE 模型(General Electrics Model)。其最初起源于美國空軍,主要面向的是系統開發人員和系統開發過程。McCall 試圖通過一系列的軟件質量屬性指標來彌補開發人員與最終用戶之間的溝壑。
McCall 質量模型使用 3 中視角來定義和識別軟件產品的質量:
- Product revision (ability to change).
- Product transition (adaptability to new environments).
- Product operations (basic operational characteristics).
McCall 模型通過層級的要素、標準和指標來詳述這 3 個視角定義(產品修改、產品轉移、產品運行)。
- 11 Factors (To specify):描述軟件的外部視角,也就是客戶或使用者的視角。
- 23 Criterias (To build):描述軟件的內部視角,也就是開發人員的視角。
- Metrics (To control):定義衡量指標和方法
下圖中,左側為 11 個質量要素,右側為 23 個質量標準。
Barry W. Boehm 軟件質量模型(1978 年)
Boehm 軟件質量模型試圖通過一系列的屬性的指標來量化軟件質量。Boehm 的質量模型包含了 McCall 模型中沒有的硬件屬性。Boehm 模型也類似于 McCall 的質量模型,采用層級的質量模型結構,包括高層屬性、中層屬性和原始屬性。
高層屬性主要關注 3 個問題:
- As-is utility
- Maintainability
- Portability
中層屬性包含了 7 個質量要素:
- Portability (General utility characteristics)
- Reliability (As-is utility characteristics)
- Efficiency (As-is utility characteristics)
- Usability (As-is utility characteristics, Human Engineering)
- Testability (Maintainability characteristics)
- Understandability (Maintainability characteristics)
- Flexibility (Maintainability characteristics, Modifiability)
可以看出,Boehm 模型和 McCall 模型有些相似,區別在于 McCall 模型主要關注于高層屬性("As-is utility")的精確度量上,而 Boehm 模型則基于更廣泛的屬性,并且對可維護性做了更多的關注。
FURPS/FURPS+ 軟件質量模型
FURPS 模型最初由 Robert Grady 提出,后來由 Rational Software 進行擴展至 FURPS+。
FURPS 模型包括:
- Functionality
- Usability
- Reliability
- Performance
- Supportability
FURPS 包括兩種不同的類型:功能性和非功能性。
R. Geoff Dromey 軟件質量模型
Dromey 軟件質量模型由 3 個主要元素組成:
- Product properties that influence quality
- High level quality attributes
- Means of linking the product properties with the quality attributes.
構建該質量模型包括以下 5 個步驟:
- Chose a set of high-level quality attributes necessary for the evaluation.
- List components/modules in your system.
- Identify quality-carrying properties for the components/modules (qualities of the component that have the most
- impact on the product properties from the list above).
- Determine how each property effects the quality attributes.
- Evaluate the model and identify weaknesses.
ISO/IEC 9126 軟件質量模型(1993 年)
ISO/IEC 9126: Software Product Evaluation: Quality Characteristics and Guidelines for their Use-standard
ISO/IEC 9126 模型是建立在 McCall 和 Boehm 模型之上的,同時加入了功能性要求,還包括識別軟件產品的內部和外部質量屬性。
軟件的 6 個質量特征:
- 功能性(Functionality):當軟件在指定條件下使用時,軟件產品提供滿足明確和隱含需要的功能的能力;
- 可靠性(Reliability):在指定條件下使用時,軟件產品維持規定的性能級別的能力;
- 易用性(Usability):在指定條件下使用時,軟件產品被理解、學習、使用和吸引用戶的能力;
- 效率(Efficiency):在規定條件下,相對于所用資源的數量,軟件產品可提供適當性能的能力;
- 可維護性(Maintainability):軟件產品可被修改的能力。修改可能包括糾正、改進或軟件對環境、需求和功能規約變化的適應程度;
- 可移植性(Portability):軟件產品從一種環境遷移到另一種環境的能力。
ISO/IEC 9126-1 內部和外部質量特征:
ISO/IEC 9126-1 中的非技術因素:
下面是 ISO/IEC 9126 模型與 McCall 模型 和 Boehm 模型的對比:
ISO/IEC 25010 軟件質量模型(2011 年)
ISO/IEC 9126-1:2001 已被 ISO/IEC 25010:2011 代替并廢止。
上圖闡明了 ISO/IEC 25000 SQuaRE 系列標準的組織,其組成部分均稱為分部。 SQuaRE 系列國際標準內的分部有:
- ISO/IEC 2500n 質量管理分部。構成這個分部的那些標準定義了由SQuaRE系列標準中的所有其他標準引用的全部公共模型、術語和定義。在針對特定應用情況使用適當標準方面的引用路徑和高級的實用建議有助于所有類型的用戶。這一分部還提供了用于負責管理軟件產品需求和評價的支持功能的要求和指南。
- ISO/IEC 2501n 質量模型分部。構成這個分部的標準給出一個包括軟件內部質量、 軟件外部質量和軟件使用質量的特性的詳細質量模型。此外, 內部和外部的軟件質量特性被分解細化成一些子特性,并且還提供了使用該質量模型的實用指南。
- ISO/IEC 2502n 質量測量分部。構成這個分部的標準包括軟件產品質量測量參考模型、質量測量的數學定義及其應用的實用指南。給出了應用于軟件內部質量、軟件外部質量和使用質量的測量。定義并給出了構成后續測量基礎的質量測量元素。
- ISO/IEC 2503n 質量要求分部。構成這個分部的標準幫助用戶規定質量要求。這些質量要求可用在要開發的軟件產品的質量需求抽取過程中或用作評價過程的輸入。需求定義過程可映射到ISO/IEC 15288 中定義的技術過程。
- ISO/IEC 2504n 質量評價分部。構成這個分部的標準給出了無論由評價方、需方還是由開發方執行的軟件產品評價的要求、建議和指南。還給出了作為評價模塊的測量文檔編制支持。
- ISO/IEC 25050 到 ISO/IEC 25099 保留用于 SQuaRE 擴展的國際標準和/或技術報告。
軟件質量模型包含 8 個特征,并且被進一步分解為可以度量的內部和外部多個子特征。
ISO/IEC 25010 中新增了軟件使用質量,其包含 5 個特征,并進一步被劃分為可以被度量的多個子特征。
- 使用質量:在特定的使用周境中,軟件產品使得特定用戶能達到有效性、生產率、安全性和滿意度的特定目標的能力。
質量模型與目標系統的關系:
質量的生命周期:
博文作者注:以上資料內容全部來自互聯網搜索。
文章列表