999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件代碼質量檢測實踐

2019-09-10 07:31:45羅來財
現代信息科技 2019年23期

摘? 要:隨著軟件系統規模的增加,軟件代碼質量越來越難以控制,需要借助有效的軟件工程方法和工具來應對新的挑戰。本文指出軟件代碼質量的主要問題是代碼風格統一問題、C語言編碼安全問題、GCC編譯告警監控問題,然后根據CMMI的軟件質量過程和ISO的軟件質量模型對各類規則進行梳理,并編寫相應的腳本程序靜態檢測代碼質量,最后對檢測數據進行統計分析并以Web形式輸出報表。

關鍵詞:代碼質量;質量模型;代碼風格;編碼安全

中圖分類號:TP311.1? ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)23-0083-03

Software Code Quality Inspection Practice

LUO Laicai

(Ruijie Networks Co.,Ltd.,Fuzhou? 350002,China)

Abstract:With the increase of software system scale,the quality of software code are more and more difficult to control,effective software engineering methods and tools are needed to meet new challenges. This paper points out that the main problems of code quality are code style unification,C language coding security,GCC compilation alarm monitoring. Then,according to the software quality process of CMMI and the software quality model of ISO,all kinds of rules are sorted out and corresponding script programs are written to statically check the code quality. Finally,the test data is analyzed and the report is output in the form of Web.

Keywords:software quality;quality model;code style;coding security

1? 代碼質量存在的主要問題

在軟件開發過程中,軟件源代碼質量是相對難以評測的要素。盡管行業的標準組織出臺了很多相關規范,有些甚至提供了用來度量軟件質量的工具,但實施成本過高,比較難落地。典型的瀑布開發模型,從需求分析到架構設計,再到詳細設計,然后構造編碼,最后測試集成維護,軟件質量問題貫穿整個開發過程。代碼質量是軟件質量的一種內部表現,主要包括功能的適合性、可維護性等。具體到軟件開發過程,代碼質量問題主要分為代碼風格統一問題、編程語言的安全問題、編譯工具告警開關以及告警消除的監控問題。

開發團隊中不同的人有不同的代碼風格偏好,雖然沒有絕對的對錯,但是有一條原則需要遵守:少數服從多數。執行企業發布的編碼標準規范保持代碼風格統一是改善代碼可維護性的一個重要方面。C語言以其靈活的類型轉換和貼近底層機器實現、目標代碼效率高的特性成為嵌入式軟件領域最流行的編程語言。隨著系統復雜度的不斷提高,編碼中的一些小瑕疵往往會引發嚴重的安全問題。SEI基于長期的C語言標準相關技術報告的研究總結了一套被普遍接受的CERT安全編碼標準規則。為了使CERT安全編碼規則落地,在軟件開發的過程中,在編譯工程環境里集成安全編碼的靜態分析工具是有必要的。GCC的告警種類很多,針對軟件開發項目采用不同的編譯器或者不同的編譯器版本建立統一的告警等級狀態并生成直觀的報告信息是有必要的。

2? 行業相關技術規范

2.1? CMMI的軟件質量過程

能力成熟度模型集成(CMMI)中包含了代碼質量改善相關的過程流程。

CMMI的過程與產品質量保證(PPQA)過程域指出,過程與產品質量保證嵌入在項目整個生命期,向項目員工與各層次的管理人員提供對過程與相關工作產品適當的可視化及反饋,由此支持高質量產品交付。這里強調的內容是,已經計劃的過程得到實施,通過實施過程的有序開展確保交付產品的質量。另外,產品規定的需求是否得到滿足由單獨的驗證過程域(VER)進行保障。PPQA的啟示是,需要在軟件開發的過程中分階段實時反饋質量狀況。

CMMI的量化項目管理(QPM)屬于成熟度4級過程域,其中包括選擇將用于量化管理的度量項,使用統計與其

他量化技術來監督所選子過程的性能。統計與其他量化管理技術用于預測過程的性能可以用于多個層面,從對單個子過程的關注到對跨越生命周期階段、項目以及支持職能的分析。QPM的啟示是,需要在軟件開發的過程中采集量化數據評估預測質量狀況。

2.2? ISO的軟件質量模型

ISO關于產品質量的定義是:軟件產品滿足規定的和隱含的需求的能力有關的特征或者特征集合。由此可以看出,特征是軟件質量狀況的反映,軟件屬性可以做評價準則,定量化的度量軟件屬性可以知道軟件質量的優劣。ISO/IEC 250nn系列技術標準描述了軟件系統質量需求和評估方法,包含的系統軟件質量模型的8個一級質量特征類型:功能適合性、運行效率、兼容性、易用性、可靠性、安全性、可維護性、可移植性。

為了能夠在產品(軟件系統)發布前對產品質量做出比較準確的判斷,需要建立質量模型并根據質量模型進行度量評估。軟件質量包括內部質量(過程質量)和外部質量(使用質量)兩個方面,軟件內部質量中重要的組成部分是源代碼質量,包括代碼風格統一、編碼安全規則和編譯告警消除等。

3? 代碼質量檢測實踐

3.1? 嵌入式開發的編碼過程

編碼過程是軟件開發過程的一個重要方面,在嵌入式軟件開發領域,絕大部分代碼還是需要程序員手工編碼、編譯、單元測試、提交代碼庫、集成編譯、集成測試。通常的編碼過程包括:

(1)編碼人員計算機本地環境:根據設計編碼、在工程環境里編譯、單元測試調試;

(2)企業的代碼集成服務器環境:代碼版本管理、集成編譯、集成測試調試。

基于軟件領域中越早修復問題成本越低的原理,軟件代碼質量檢測的實施應該盡量在計算機本地環境開發階段進行,但是某些全局性問題必須在服務器環境開發階段才可以實施,比如整個系統范圍的代碼重復率評測。

3.2? 代碼質量檢測

靜態代碼檢查主要的作用是提高軟件的功能適合性和可維護性。其中功能適合性的提高通過實施C語言的CERT安全編碼標準規則檢查來達成;其中可維護性的提高通過實施企業編碼標準的檢查來達成。另外,GCC編譯器編譯告警開關的檢查(消除告警)和代碼重復率評測,也對功能適合性和可維護性有很大幫助。代碼質量檢測的一種有效的方式是把代碼質量規則檢查過程內嵌到編碼過程中,讓軟件編碼人員在日常的開發活動中就消除質量隱患。代碼質量檢測的系統模型如圖1所示。

圖1系統模型中描繪了靜態代碼檢查的主要過程,在編碼人員的本地環境編譯工程環境里嵌入腳本程序檢查編碼風格、編碼安全、編譯告警開關;在企業的編譯服務器進行集成編譯時重復檢查編碼風格、編碼安全、編譯告警開關,另外還要評測代碼重復率。

其中編碼風格企業標準檢查,主要的目的是落實企業的編碼標準,統一編碼風格,提高代碼的可維護性。一份編碼標準通常包含幾十條至幾百條具體的規則,比如函數類的規則:

FUNC-1:一個函數的代碼規模應控制在120行(不含空白與注釋在內)以內,不符合本條需特別給出說明;

其中CERT規則檢查,主要是以CERT規則為基礎減少因為C語言的指針等功能引入的編碼問題。CERT的C語言編碼安全規范列舉了幾百條具體規則,比如預處理類的規則:

PRE30-C:不要通過連接創建通用字符名稱。雖然C語言支持通用字符名稱,但是如果匹配通用字符名稱的序列由符號連接(比如##)生成將產生未定義行為。

GCC編譯告警開關檢查,主要監控不同的GCC版本環境下的告警開關和告警消除情況。以GCC 8.1為例,可配置開關的有220多條規則,可以歸到Wall和Wextra等類型。高質量的軟件代碼需要消除所有的編譯告警。代碼重復率評測是在整個項目分支范圍內根據局部代碼邏輯相似度排查代碼片段的重復情況。通過代碼重復率的評測和控制,可以減少需要維護的代碼量,使軟件模塊具有高內聚低耦合特性。

代碼分支的質量數據經過統計分析后以Web方式呈現,可以分類展示結果數據,包括編碼標準、GCC告警、CERT安全。每一類的結果數據又分為綜合統計數據和各個組件包明細數據。有了這些統計數據,軟件項目管理人員就可以很方便地看出當前的代碼質量狀況,進一步采取措施改善代碼質量。

4? 結? 論

本文通過軟件代碼質量檢測的分析與實踐,為代碼軟件質量的提高找到一種有效并且容易實施的方法過程。軟件系統規模和復雜性的增加不可避免,同時,軟件開發效率的提高和開發方法過程的增強也是大勢所趨。本文論述的根據CMMI的軟件質量過程和ISO的軟件質量模型進行代碼質量檢測實踐,可以通過較少的資源投入獲取較好的軟件代碼質量,是一種科學有效的軟件工程方法。

參考文獻:

[1] 孫洋,袁玉宇.ISO/IEC 25010質量模型標準現狀 [J].信息技術與標準化,2008(11):33-36.

[2] SEACORD R C .CERT? C Coding Standard,Second Edition,The:98 Rules for Developing Safe,Reliable,and Secure Systems,2nd Edition [M].Addison-Wesley Professional,2014.

[3] SEACORD R C .C和C++安全編碼(英文版)(第2版) [M].北京:機械工業出版社,2013.

作者簡介:羅來財(1981.11-),男,漢族,江西玉山人,本科,中級職稱,主要研究方向:軟件開發和軟件工程相關技術。

主站蜘蛛池模板: 日韩 欧美 小说 综合网 另类| 国产精品无码AV中文| 日韩精品一区二区三区大桥未久| 久久毛片网| 色悠久久综合| 69国产精品视频免费| 国产福利在线观看精品| 中文字幕一区二区人妻电影| 免费观看国产小粉嫩喷水| 免费国产无遮挡又黄又爽| 成人午夜福利视频| 亚洲香蕉伊综合在人在线| 亚洲精品国产综合99| 日韩毛片在线视频| 97亚洲色综久久精品| 欧美色香蕉| 91在线精品麻豆欧美在线| 国产精品福利导航| 国产精品免费久久久久影院无码| 91免费国产高清观看| 日韩精品欧美国产在线| 青青草一区| 在线欧美一区| 中文字幕天无码久久精品视频免费| 国产在线拍偷自揄拍精品| 国产18在线播放| 国产精品污视频| 国产大全韩国亚洲一区二区三区| 婷婷丁香在线观看| 国产精品亚洲一区二区三区z| 在线免费亚洲无码视频| 日本不卡在线视频| 波多野一区| 波多野结衣第一页| 国产精品视频999| 国产精品视频系列专区| 国产亚洲现在一区二区中文| 婷婷亚洲最大| 岛国精品一区免费视频在线观看| 成人在线不卡| 国产精品区网红主播在线观看| 亚亚洲乱码一二三四区| 在线一级毛片| 最新国产午夜精品视频成人| 国产精品xxx| 亚洲综合九九| 欧美精品亚洲精品日韩专区va| 99视频全部免费| 亚洲一道AV无码午夜福利| 在线观看国产黄色| 啦啦啦网站在线观看a毛片| 99热国产这里只有精品无卡顿"| 亚洲欧美自拍一区| 国产激情在线视频| 日韩欧美国产区| 91偷拍一区| 欧美一区福利| 亚洲Av激情网五月天| 亚洲激情区| 福利视频99| 欧美成人区| 在线观看亚洲成人| 麻豆精品在线| 成·人免费午夜无码视频在线观看 | 91麻豆国产视频| 五月天香蕉视频国产亚| 五月天天天色| AV无码一区二区三区四区| 欧美日韩导航| 国产精品美人久久久久久AV| 99热这里只有精品免费| 精品人妻系列无码专区久久| 亚洲自拍另类| 一级黄色网站在线免费看| 日本亚洲欧美在线| 无码内射在线| 精品精品国产高清A毛片| 国产毛片高清一级国语| 女人毛片a级大学毛片免费 | 大陆精大陆国产国语精品1024 | 青青操视频免费观看| 久久综合一个色综合网|