摘要:ISO 5055是首個直接從軟件內部結構方面衡量軟件質量(如安全性和可靠性)的ISO標準。該標準基於統計安全性、可靠性、可維護性和性能效率方面的軟件缺陷來衡量軟件的結構質量。
本文分享自華爲雲社區《自動源代碼質量度量(ISO/IEC 5055)》,原文做者:Uncle_Tom 。segmentfault
ISO 5055是首個直接從軟件內部結構方面衡量軟件質量(如安全性和可靠性)的ISO標準。該標準基於統計安全性、可靠性、可維護性和性能效率方面的軟件缺陷來衡量軟件的結構質量。基於ISO 5055,開發人員可以在關鍵缺陷致使操做問題以前發現並消除這些缺陷; 工具檢查的供應商可以明確軟件質量的檢查方向;爲管理層提供了明確指標,以明確軟件應用程序給業務帶來的風險。安全
1. 系統和軟件質量要求和評估(ISO/IEC 25000)
ISO/IEC 25000系列標準,也稱爲SQuaRE(系統和軟件質量要求和評估),包含評估軟件產品質量的框架。 ISO/IEC 25000系列主要包含如下幾個部分:網絡
- ISO/IEC 2500n — 質量管理(Quality Management Division): 定義了由SQuaRE系列標準中的全部其餘標準引用的所有公共模型、術語和定義。在針對特定應用狀況使用適當標準方面的引用路徑和高級的實用建議有助於全部類型的用戶。這一分部還提供了用於負責管理軟件產品需求和評價的支持功能的要求和指南。
- ISO/IEC 2501n — 質量模式(Quality Model Division): 給出一個包括軟件內部質量、 軟件外部質量和軟件使用質量的特性的詳細質量模型。此外, 內部和外部的軟件質量特性被分解細化成一些子特性,而且還提供了使用該質量模型的實用指南。
- ISO/IEC 2502n — 質量測量(Quality Measurement Division): 包括軟件產品質量測量參考模型、質量測量的數學定義及其應用的實用指南。給出了應用於軟件內部質量、軟件外部質量和使用質量的測量。定義並給出了構成後續測量基礎的質量測量元素。
- ISO/IEC 2503n — 質量需求(Quality Requirements Division): 幫助用戶規定質量要求。這些質量要求可用在要開發的軟件產品的質量需求抽取過程當中或用做評價過程的輸入。需求定義過程可映射到ISO/IEC 15288 中定義的技術過程。
- ISO/IEC 2504n — 質量評估(Quality Evaluation Division): 給出了不管由評價方、需方仍是由開發方執行的軟件產品評價的要求、建議和指南。還給出了做爲評價模塊的測量文檔編制支持。
- ISO/IEC 25050 到 ISO/IEC 25099 保留用於 SQuaRE 擴展的國際標準和/或技術報告。
- ISO/IEC 25000標準系列之間的關係
![image.png image.png](http://static.javashuo.com/static/loading.gif)
1.1. 系統和軟件質量模型(ISO/IEC 25010)
在軟件質量模型的ISO/IEC 25010中定義了:使用質量模型和產品質量模型。這兩個模型定義的特徵與全部軟件產品和計算機系統有關。這些特性和子特性爲指定,測量和評估系統和軟件產品質量提供了一致的術語。它們還提供了一組質量特性,能夠將其與規定的質量要求進行比較,以確保完整性。
模型的範圍不包括純粹的功能屬性,但確實包括功能適用性。儘管產品質量模型的範圍旨在於軟件和計算機系統,可是許多特徵也與更普遍的系統和服務有關。架構
1.1.1. 使用質量模型
使用質量模型由五個特徵(其中一些特徵進一步細分爲子特徵)組成,這些特徵與在特定用途下使用產品時的交互結果有關。該系統模型適用於完整的人機系統,包括正在使用的計算機系統和正在使用的軟件產品。
併發
1.1.2. 產品質量模型
產品質量模型由八個特性(進一步細分爲子特性)組成,這些特性與軟件的靜態屬性和計算機系統的動態屬性有關。該模型適用於計算機系統和軟件產品。框架
- 功能適應性(functional suitability):軟件所實現的功能達到其設計規範和知足用戶需求的程度,強調正確性、完備性、適合性等。
- 效率(efficiency):在指定條件下,軟件對操做所表現出的時間特性(如響應速度)以及實現某種功能有效利用計算機資源(包括內存大小、CPU佔用時間等)的程度,局部資源佔用高一般是性能瓶頸存在;系統可承受的併發用戶數、鏈接數量等,須要考慮系統的可伸縮性。
- 兼容性(compatibility),涉及共存和互操做性,共存要求軟件能給與系統平臺、子系統、第三方軟件等兼容,同時針對國際化和本地化進行了合適的處理。 互操做性要求系統功能之間的有效對接,涉及API和文件格式等。
- 易用性(usability):對於一個軟件,用戶學習、操做、準備輸入和理解輸出所做努力的程度,如安裝簡單方便、容易使用、界面友好,並能適用於不一樣特色的用戶,包括對殘疾人、有缺陷的人能提供產品使用的有效途徑或手段(便可達性)。
- 可靠性(reliability):在規定的時間和條件下,軟件所能維持其正常的功能操做、性能水平的程度/機率,如成熟性越高,可靠性就越高;用MTTF (mean time to failure,平均失效前時間) 或MTBF(mean time Between failures,平均故障間隔時間)來衡量可靠性。
- 安全性(security),要求其數據傳輸和存儲等方面能確保其安全,包括對用戶身份的認證、對數據進行加密和完整性校驗,全部關鍵性的操做都有記錄(log),可以審查不一樣用戶角色所作的操做。它涉及保密性、完整性、抗抵賴性、可覈查性、真實性。
- 可維護性(maintainability):當一個軟件投入運行應用後,需求發生變化、環境改變或軟件發生錯誤時,進行相應修改所作努力的程度。它涉及模塊化、複用性、易分析性、易修改性、易測試性等
- 可移植性(portability)軟件從一個計算機系統或環境移植到另外一個系統或環境的容易程度,或者是一個系統和外部條件共同工做的容易程度。它涉及適應性、易安裝性、易替換性。
![image.png image.png](http://static.javashuo.com/static/loading.gif)
1.1.3. 質量模型的應用範圍
質量模型的應用範圍包括與軟件和軟件密集型計算機系統的購置,需求,開發,使用,評估,支持,維護,質量保證和控制以及審覈相關的各個方面,從而支持對軟件和軟件密集型計算機系統的規範和評估。例如,開發人員,獲取者,質量保證和控制人員以及獨立評估人員(尤爲是負責指定和評估軟件產品質量的人員)可使用這些模型。使用質量模型可從產品開發過程當中受益的活動包括:模塊化
- 肯定軟件和系統要求;
- 驗證需求定義的全面性;
- 肯定軟件和系統設計目標;
- 肯定軟件和系統測試目標;
- 肯定質量控制標準,做爲質量保證的一部分;
- 識別軟件產品和/或軟件密集型計算機系統的接受標準;
- 肯定質量特徵的度量以支持這些活動。
1.2. 系統和軟件產品質量的度量(ISO/IEC 25023)
ISO/IEC 25023描述瞭如何應用ISO/IEC 25010中定義的軟件質量模型的8個特徵來衡量軟件產品的質量。但在ISO/IEC 25023中定義的措施主要是在行爲級別而不是源代碼中特定質量問題的級別上測量質量。工具
爲了補充ISO/IEC 25023中的度量級別,因而有了ISO 5055。性能
2. 自動源代碼質量度量(ISO/IEC 5055)
軟件產品的質量可能致使產品產生不可接受的運營風險或過分成本。所以在源代碼級別創建質量檢測措施的標準是很是重要的,但目前的ISO/IEC 25000系列標準中,用於控制軟件產品質量的源代碼級別只提供一小部分措施。 這就促成了ISO/IEC 5055的標準制定,經過這個標準來檢測和統計違反源代碼中的良好架構和編碼實踐的違規行爲,以便能對軟件產品質量作出評估。
學習
同時ISO/IEC 5055中更新這些措施的主要目標是將其適用於嵌入式軟件,這對於愈來愈多的嵌入式設備和物聯網尤爲重要。傳統上在IT應用中實現的功能如今被移動到嵌入式芯片。因爲已發現本文檔中指定的措施中包含的弱點可適用於全部形式的軟件,所以嵌入式軟件未在本規範中單獨處理。
![image.png image.png](http://static.javashuo.com/static/loading.gif)
ISO 5050提供了一套工程規則,經過影響業務的的四個關鍵因素:安全性、可靠性、可維護性、性能效率,用以評估軟件系統的內部結構。這些因素確保了產品成爲值得信賴、可靠和可擴展性的軟件系統。金融機構、政府、電信、製造商、系統集成商和其餘人能夠利用ISO 5055來避免軟件產品形成的服務中斷、聲譽損害或過分的IT成本。他們還可使用它來客觀地向監管機構、董事會或利益相關者展現關鍵系統的結構情況。
ISO 5055規則容許經過軟件分析平臺自動檢測嚴重的結構缺陷。
![image.png image.png](http://static.javashuo.com/static/loading.gif)
ISO/IEC 5055 參照了CISQ Quality Measures (2020)的質量評估標準,並已在CWE 4.2版本中引入了CWE的缺陷枚舉中,並建立了CWE-1305 Quality Measures (2020)。有關CWE-1305缺陷視圖可參考前期的《話說CWE 4.2的新視圖》, 以及《話說CWE 4.3的新視圖 - 數據保護檢查》中有關CISQ的另外一個數據保護視圖CWE-1340 CISQ Data Protection Measures。
![image.png image.png](http://static.javashuo.com/static/loading.gif)
注:部分圖片引自北京2021/04/22日的「CISQ網絡研討會:ISO 5055自動化代碼質量評估國際標準」中Bill Curtis 博士主題演講的ppt。
3. 總結
- ISO/IEC 5055對ISO/IEC 25000 在軟件質量從源碼角度檢測和評估軟件質量提供了補充;
- ISO/IEC 5055爲軟件架構、源碼質量的自動檢測提供了規範化的檢查方向和依據;
- ISO/IEC 5055爲細化了靜態檢測工具在保障源碼質量個過程當中具體的檢查內容和須要發現的缺陷;
- ISO/IEC 5055爲開發人員可以在關鍵缺陷致使操做問題以前發現並消除這些缺陷;
- ISO/IEC 5055還爲管理層提供了明確指標,以明確軟件應用程序給業務帶來的風險。
4. 參考
- 系統和軟件質量要求和評估(ISO/IEC 25000)
- 系統和軟件質量模型(ISO/IEC 25010)
- 系統和軟件產品質量的度量(ISO/IEC 25023)
- 自動源代碼質量度量(ISO/IEC 5055)
- CISQ 代碼質量標準
- Common Weakness Enumeration(CWE)
點擊關注,第一時間瞭解華爲雲新鮮技術~