李晨陽
(中國電子科技集團公司第十研究所 成都 610036)
FPGA軟件靜態(tài)質量度量?
李晨陽
(中國電子科技集團公司第十研究所 成都 610036)
針對FPGA軟件質量依靠商業(yè)工具評價不足現(xiàn)象,通過對軟件代碼靜態(tài)質量度量模型研究,結合FPGA軟件自身特性,提出了FPGA軟件靜態(tài)質量度量新方法,以量化數(shù)據(jù)表示代碼質量水平,給出評價算法和評價流程,并對商業(yè)工具Alint質量評價系統(tǒng)進行了改造,運用于實際案例分析中。測試結果表明,新的度量方法能夠有效地對軟件靜態(tài)質量進行度量,為評價FPGA軟件質量水平提供了一條新的驗證途徑,減少了軟件質量評價中的主觀性。
FPGA軟件;靜態(tài)質量;度量元;規(guī)則集;加權
隨著FPGA在軍事、航空航天等領域越來越廣泛而重要的應用,對FPGA軟件測試受到越來越多的行業(yè)重視和研究。在FPGA軟件生命周期模型中,代碼檢查是測試的第一道門戶,這道門戶檢查質量的好壞不僅對代碼本身質量帶來影響,而且對后續(xù)工作會產(chǎn)生很大影響,后續(xù)各個環(huán)節(jié)出現(xiàn)問題都會反饋回代碼本身,產(chǎn)生反復的迭代工作。目前代碼檢查質量度量通常的做法是采用軟件的代碼質量評價標準,有失公平且過于粗糙化;其次采用第三方驗證廠商提供的驗證工具對代碼質量度量評價系統(tǒng)在實際使用過程中指導意義不大。隨著行業(yè)內(nèi)FPGA軟件測試質量的逐漸重視和強烈要求,也希望有一套科學嚴謹?shù)姆椒ㄈピu價軟件質量。因此,為了真實地反映出FPGA軟件的質量,迫切需要提出一種能夠對FPGA軟件進行質量評價的新方法。正是以此為目的而開展研究,基于FPGA軟件檢查,通過理論分析研究和實際應用相結合,建立FPGA軟件質量度量評價模型,提出度量評價流程、度量元分類、度量元加權系數(shù)計算、度量計算方法、評價規(guī)則和實際運用,最后舉例證明方法的有效性。
一直以來FPGA軟件靜態(tài)質量度量主要是采用軟件的代碼質量度量方法去評價測試結果。國內(nèi)西安電子科技大學邸博士提出了一種以復雜度為導向的FPGA源代碼抽象方法進行質量評估[1],德國Dresden實驗室從IP核的角度提出了一種FP?GA軟件評價方法[2],盡管取得一定研究成果,但普遍性指導意義不強。業(yè)內(nèi)主流驗證工具Alint提供了一個質量評價系統(tǒng),但內(nèi)容劃分簡單,在實際應用過程中指導意義不大。
GJB 16260標準中定義了軟件的外部、內(nèi)部和使用質量的三種質量模型,根據(jù)該規(guī)定,可靠性的依從性度量目的是遵循與產(chǎn)品的可靠性適用的法規(guī)、標準和約定的程度如何,是對要求的依從性已經(jīng)滿足的項數(shù)進行統(tǒng)計,與要求的項數(shù)進行比較[3],那么代碼質量評價計算方式如下。
式中:A為在測試中規(guī)定的可靠性的依從性還未完全實現(xiàn)的項數(shù);B為規(guī)定的可靠性的依從性項總數(shù)。
式(1)表明,A為所發(fā)生的缺陷數(shù),B為所要求的依從數(shù)量。當A越大,則X越小,越接近于0,則表明越差;反之,當A越小,則X越大,越接近于1,則表明越好。使用這種方法來評價FPGA軟件質量,具有簡單直接,但缺少了考慮FPGA軟件度量元差異性帶來的影響,也未反映出FPGA軟件度量元數(shù)量等因素所產(chǎn)生的影響。
新的模型處理方法將避免傳統(tǒng)一刀切的處理方式,通過嚴格設定度量元及其度量元加權系數(shù)計算,建立一套行之有效的計算方法和評價機制。
為了能夠客觀地評價檢查結果的質量,評價流程需要分為“三步走”[4]。第 1步:分析評價違反的度量元組成類型,提取相關加權系數(shù),確定評價度量元的數(shù)量;第2步:按照公式計算出違反的度量元與規(guī)定的度量元比分;第3步:根據(jù)公式和評價規(guī)則,給出評價結果。整個評價流程如圖1所示。
三步走包含了分析、計算和評價三個過程,評價流程中更加注重度量元的分析計算,不同于傳統(tǒng)的FPGA軟件質量度量評價過程,新的流程將對該工具進行改造,并給出最終評價結果。
圖1 FPGA軟件靜態(tài)質量評價流程
FPGA軟件質量的好壞取決于規(guī)則集的制定,不同的規(guī)則集對檢查代碼的質量影響不同。因此,度量元是選取規(guī)則集及其包含的規(guī)則。FPGA軟件包含VHDL和Verilog兩種語言,對應規(guī)則分為VH?DL和Verilog兩種,但通常設計都是采用兩者混合語言使用,因此,度量元將兩者規(guī)則集混合起來統(tǒng)計。
目前,行業(yè)內(nèi)的規(guī)則集主要分為三類,首先是外國的DO-254、STARC、RMM等規(guī)則集,其次是第三方廠商提供,如 Aldec、Mentor、Synopsys、Xilinx、Altera等國外公司,最后是國內(nèi)的一些單位以及個人等整理或者定制的編碼規(guī)則集。具體分類如表1所示。
表1 FPGA軟件規(guī)則集分類
總結分析,F(xiàn)PGA軟件的度量元選取主要涉及到安全性設計、可綜合性設計、基本結構設計、IP核設計和自定義設計等。具體分類情況如表2所示。
表2 FPGA軟件度量元分類
由于FPGA軟件選取度量元的每個成員函數(shù)的準則值對所屬類準則值的影響權重不相同,依據(jù)對質量影響的嚴重程度按照缺陷嚴重性等級的不同而進行不同的加權比,同時每個度量元缺陷發(fā)生的數(shù)量多少也會影響評價效果,加權的計算要和自身規(guī)則的影響程度符合,根據(jù)GJB 2423A的故障統(tǒng)計次數(shù)計算[5],那么式(1)中的缺陷總數(shù) A為
式中:pj為某類缺陷的加權系數(shù);rj為某類缺陷發(fā)生的次數(shù);j為缺陷類型;n為缺陷類型數(shù)。
其中,確定加權系數(shù)的原則,在GJB 2423A中描述,對缺陷進行分類、定級,分析缺陷的原因、潛在的影響及對人員的危害性,對實現(xiàn)功能的影響程度等。根據(jù)影響程度結合文獻[2]和其他相關文獻[6~7],對FPGA軟件度量元進行分類加權,加權情況如表3~6所示。
表3 Ⅰ類規(guī)則度量元加權表
表4 Ⅱ類規(guī)則度量元加權表
表5 Ⅲ類規(guī)則度量元加權表
表6 Ⅳ和Ⅴ類規(guī)則度量元加權表
表3~6分別對FPGA軟件評價標準的度量元在五個類別的基礎上再次細分,評價準則分別包含類別、次數(shù)、權重和分數(shù)。次數(shù)0|1表示分配數(shù)選取是0和1,次數(shù)0…4表示分配數(shù)選取是0~4之間。在本文中,其權重表明度量元在軟件評測中所占的比重,對軟件代碼質量影響大且與其它度量元相差大的則賦予較大的數(shù)值。
其中,安全性規(guī)則主要涉及對設計起著重要作用且影響嚴重程度最高的規(guī)則集,分配比分最高。亞穩(wěn)態(tài)是FPGA軟件中典型的缺陷,是首要查找的缺陷,只要有異步元件存在,亞穩(wěn)態(tài)就無法避免;其次,復位電路是FPGA軟件中最核心的組成部分之一,設計中的任何一個邏輯單元都必須要附加復位邏輯電路,以保證電路能夠從錯誤狀態(tài)中恢復,可靠地工作[8];其他規(guī)則都按照影響程度不同做了不同的加權。盡管加權帶有一定的主觀性,但加權都是在總結實際經(jīng)驗和參考其他文獻的基礎上客觀地反應出每個規(guī)則對FPGA軟件的安全性、設計性、可綜合性和可移植性帶來的影響程度。
依據(jù)表3~6,將式(2)代入式(1),那么最終FP?GA軟件質量度量方法是:
式(3)表明,當隨著缺陷次數(shù)rj、權重 pj和缺陷類型數(shù)n值各自增大時,則評價值X越小,表明質量越壞;反之,當隨著缺陷次數(shù)rj、權重 pj和缺陷類型數(shù)n值各自減小時,則評價值X越大,表明質量越好[9]。
在GJB 5236中有過描述,用于質量需求度量的測量標度可以根據(jù)需求將測量度分為三個級別:達到目標(良好)、最低可接受(合格)和不可接受(不合格),至于在何種程度加以評價標準中沒有給出明確規(guī)定。那么根據(jù)FPGA軟件度量具有歸一化的處理特性,因此定義FPGA軟件質量度量值X評價規(guī)則如下:
當 X>0.8,認為良好;
當0.5<X≤0.8,認為合格;
當 X≤0.5,認為不合格。
代碼質量度量評價問題實際上是一個多目標決策問題,在處理多目標問題時,往往要考慮各目標的相對重要性[10]。最后,代碼質量評價還需求經(jīng)過實際工程驗證,經(jīng)過多次反復證明才是有用,只有這樣,我們才能確保使用的評價方法和實際需求是一致。
以某工程的信號處理和數(shù)據(jù)處理兩類FPGA軟件測試為例,被評的兩類軟件度量元取數(shù)都為66個。測試人員對類1軟件進行了編碼規(guī)則檢查,共發(fā)現(xiàn)缺陷7個(其中致命缺陷0個,嚴重缺陷1個,一般缺陷4個,建議改進2個)。測試人員對類2軟件進行了編碼規(guī)則檢查,共發(fā)現(xiàn)缺陷9個(其中致命缺陷0個,嚴重缺陷0個,一般缺陷5個,建議改進4個)。具體類1和類2違反的規(guī)則情況如表7和表8所示。
表7 類1軟件FPGA軟件度量元分類加權評價
表8 類2軟件FPGA軟件度量元分類加權評價
根據(jù)式(2)和式(3)的計算的比分數(shù)值,結合改造后工具Alint自動分析的結果,類1和類2代碼評價后的結果如下表9所示。
表9 類1和類2代碼的評價結果
從表9中可以看出,被評軟件中軟件類1評分結果為0.78,達到了合格水平,軟件類2評分結果為0.81,達到了良好水平??傮w上看,類1的安全性較差,可綜合性和基本結構設計相對較好,而類2的安全性較好,可綜合性和基本結構設計相對較差。經(jīng)對數(shù)據(jù)做人工分析,從安全性的影響嚴重程度上可以看出評價的結果和新設計的計算準則是基本吻合。
目前FPGA軟件代碼靜態(tài)質量度量中存在手段缺乏,不能有效滿足實際工程需要的問題。針對這些問題,提出了新的代碼靜態(tài)質量度量方法,結合通用的軟件質量模型,分析度量元與加權系數(shù),給出評價方法、評價規(guī)則和評價流程,并對商業(yè)工具Alint做了改造,最后通過實例對方法進行了有效驗證,為FPGA軟件測試的代碼靜態(tài)度量建立了一套有效的評價標準。當然,評價標準需求經(jīng)過實踐不斷驗證和不斷的改良,評價度量元和加權系數(shù)也是需要在實踐中不斷驗證而修改和補充。
[1]邸志雄.HDL代碼質量評估方法關鍵技術研究與電路性能優(yōu)化[D].西安:西安電子科技大學,2013.DI Zhixiong.Research on key techniques and circuit per?formance optimization of HDL code quality assessment method[D].Xi'an:Xi'an Electronic and Science Universi?ty,2013.
[2]Ronny F,Steffen R,Torsten S,et al.Use of HDL code checkers to support the IP entrance check-a requirement analysis[C]//Proceedings of the Euromicro Symposium on Digital System Design,IEEE,2002:364-370.
[3]中國電子技術標準化研究所.軟件工程產(chǎn)品質量:第3部分 內(nèi)部度量:GB/T 16260.3-2006[S].北京:中國標準化出版社,2006:5.China Electronic Technology Standardization Research In?stitute.software engineering product quality:Part 3 Inter?nal metrics:GB/T 16260.3-2006[S].Beijing:China Stan?dardization press,2006:5.
[4]Ali I,Karima M,Alain A.On the Use of Software Quality Standard ISO_IEC9126 in Mobile Environments[C]//20th Asia-Pacific Software Engineering Conference,IEEE,2013:1-8.
[5]中國人民解放軍總裝備部司令部.榴彈發(fā)射器定型試驗規(guī)程:GJB 2423A-2009[S].北京:中國標準化出版社,2009:44.General Armament Department of the people's Liberation Army.Test procedures for setting the grenade launcher:GJB 2423A-2009[S].Beijing:China Standardization press,2009:44.
[6]張雁,林英,王紅菘.面向對象軟件度量的研究[J].計算機與數(shù)字工程,2009,37(3):117-119.ZHANG Yan,LIN Ying,WANG Hongsong.The research object-oriented software metrics[J].Computer and Digital Engineering,2009,37(3):117-119.
[7]中國人民解放軍總裝備部電子信息基礎部.軍用軟件安全性設計指南:GJB/Z 102A-2012[S].北京:總裝備部軍標出版發(fā)行部,2012.General Armament Department of the Chinese people's Liberation Army.Military software security design guide:GJB/Z 102A-2012[S].BeiJing:The General Armament Department military standard publishig department,2012.
[8]吳繼華.設計與驗證Verilog HDL[M].北京:人民郵電出版社出版,2006:77-81.WU Jihua.Design and verification Verilog HDL[M].Bei?jing:People post and Telecommunications Press,2006:77-81.
[9]中國人民解放軍總裝備部電子信息基礎部.軍用軟件質量度量:GJB 5236-2004[S].北京:中國標準化出版社,2004:4-5.General Armament Department of the Chinese people's Liberation Army.Military software quality metrics:GJB 5236-2004[S].Beijing:China Standardization press,2004:4-5.
[10]孫夢,宋曉秋,巢翌.軟件程序代碼質量度量技術研究[J].計算機工程與設計,2016,27(2):325-327.SUN Meng,SONG Xiaoqiu,CHAO Yi.Quality measure?ment technology research in software[J].Computer Engi?neering and Design,2016,27(2):325-327.
Static Quality Measurement of FPGA Software
LI Chenyang
(China Electronic Technology Group Corporation Tenth Research Institute,Chengdu 610036)
Lacking for efficiently evaluating FPGA software quality in use business tool,based on the study of software static quality evaluation models,the characteristic of FPGA software structure,a static quality evaluation method is proposed for software,and the evaluation results are expressed by quantitative data and presented by evaluating arithmeticand evaluating flow,and reform to the business tool Alint quantity evaluation system,then it is used in actual case.Experiment result shows the proposed method can evaluate software static quality efficiently,and indicate a newpath for evaluating the quality level of FPGA software,and then the subjectivity during software evaluation can be reduced.
FPGA software,static quality,metrics,rule set,weight
Class Number TP312
TP312
10.3969/j.issn.1672-9722.2017.12.047
2017年6月5日,
2017年7月24日
李晨陽,男,碩士,工程師,研究方向:FPGA軟件測試、數(shù)字信號處理。