, ,
(1.國網(wǎng)河北省電力公司,石家莊 050021; 2.南京南瑞集團(tuán)公司,南京 210000)
電壓頻率控制的實現(xiàn)常受線路阻抗的影響,難以達(dá)成有無功率的分配,且電壓幅值與頻率測量精度密切相關(guān)[1],因此設(shè)計大量電壓頻率控制軟件對電壓頻率加以控制。隨著電壓頻率控制軟件大小呈指數(shù)增加,其關(guān)聯(lián)缺陷問題逐漸引起人們的重視[2]。在軟件開發(fā)中,對電壓頻控中抗強(qiáng)干擾軟件的關(guān)聯(lián)缺陷進(jìn)行檢測是一個不可忽略的環(huán)節(jié),它關(guān)系到電壓頻控軟件能否穩(wěn)定運行[3]。當(dāng)前的軟件缺陷檢測技術(shù)能夠有效保障電壓頻控軟件的強(qiáng)抗干擾性,但在檢測過程中,因軟件太大導(dǎo)致檢測精度較低。因此,提出一種電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù),在保證強(qiáng)抗干擾性的同時,提高軟件關(guān)聯(lián)缺陷的監(jiān)測精度。
要研究一種電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù),需先對軟件關(guān)聯(lián)缺陷檢測原理進(jìn)行分析。給出電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測原理如圖1所示。
圖1 軟件關(guān)聯(lián)缺陷檢測原理圖
將電壓頻控中抗強(qiáng)干擾軟件的二進(jìn)制代碼輸入關(guān)聯(lián)缺陷檢測,根據(jù)電壓頻控中抗強(qiáng)干擾軟件的二進(jìn)制代碼匯編成對應(yīng)的程序[4]。在該程序的基礎(chǔ)上分析電壓頻控中抗強(qiáng)干擾軟件的控制流、數(shù)據(jù)流和函數(shù)調(diào)用關(guān)系。得到分析結(jié)果進(jìn)行電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷模型的構(gòu)建,產(chǎn)生電壓頻控中抗強(qiáng)干擾軟件的缺陷結(jié)果,并得到軟件的缺陷報告。
經(jīng)過以上分析,利用軟件關(guān)聯(lián)缺陷檢測原理能夠完成電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)的研究,使改進(jìn)的檢測技術(shù)具有一定的合理性和可行性。
依據(jù)軟件關(guān)聯(lián)缺陷檢測原理,對電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)進(jìn)行設(shè)計。充分分析致使傳統(tǒng)檢測技術(shù)檢測精度低的原因,得出,傳統(tǒng)檢測技術(shù)未考慮關(guān)聯(lián)缺陷的類別問題,使龐大的軟件無法得到準(zhǔn)確檢測,因此,改進(jìn)的電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù),首先針對軟件的關(guān)聯(lián)缺陷進(jìn)行分類,以提高檢測精度。具體過程描述如下:
統(tǒng)計模式識別算法是用來選擇電壓頻控中抗強(qiáng)干擾軟件的原始數(shù)據(jù)并進(jìn)行軟件原始數(shù)據(jù)處理的樣本集,電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)采用判別函數(shù)對待測的軟件樣本進(jìn)行識別,根據(jù)軟件關(guān)聯(lián)缺陷類型的不同進(jìn)行識別分類。統(tǒng)計模式識別方法分為訓(xùn)練樣本和識別兩個階段[5],電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)的軟件樣本識別框圖如圖2所示。
圖2 關(guān)聯(lián)缺陷檢測技術(shù)軟件樣本識別框圖
電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)的訓(xùn)練軟件樣本階段根據(jù)軟件的關(guān)聯(lián)缺陷特征完成關(guān)聯(lián)缺陷的劃分,使軟件關(guān)聯(lián)缺陷存在較好的區(qū)分線,并根據(jù)已知的關(guān)聯(lián)缺陷類型制定判別規(guī)則,確保樣本分析判別結(jié)果準(zhǔn)確;分類階段的主要目的是根據(jù)訓(xùn)練階段的判別規(guī)則和缺陷特征進(jìn)行比較,將軟件關(guān)聯(lián)缺陷歸類模式,并進(jìn)行關(guān)聯(lián)缺陷的分類。
本文采用貝葉斯分類器對提取的軟件關(guān)聯(lián)缺陷進(jìn)行分類[6],貝葉斯分類器建立在三點假設(shè)之上。
1)已知軟件關(guān)聯(lián)缺陷概率的分配;
2)確定軟件關(guān)聯(lián)缺陷的類別;
3)得到的軟件關(guān)聯(lián)缺陷存在特征值和特征向量。
設(shè)x代表的是軟件關(guān)聯(lián)缺陷特征值,w代表屬于某缺陷的概率其中i=1,2,3。Lij表示誤差,代表屬于wi類的缺陷被分類器分類到wj。對關(guān)聯(lián)缺陷特征值x進(jìn)行判斷時,貝葉斯分類器將x分類到三種關(guān)聯(lián)缺陷中的一個,其出現(xiàn)誤差的計算公式為:
(1)
rj(x)被稱為條件平均風(fēng)險,為了確定關(guān)聯(lián)缺陷特征值x的種類,需要對關(guān)聯(lián)缺陷特征值x分到每種關(guān)聯(lián)缺陷的條件平均風(fēng)險進(jìn)行計算,計算公式為:
ri=min|r1(x),r2(x),r3(x)|
(2)
通過計算ri,確定軟件關(guān)聯(lián)缺陷的種類,提高電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)的檢測精度。
根據(jù)以上步驟,能夠?qū)崿F(xiàn)電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷的準(zhǔn)確分類,依據(jù)分類結(jié)果,將多種類別的關(guān)聯(lián)缺陷分組進(jìn)行檢測,不僅加快了軟件關(guān)聯(lián)缺陷的檢測速率,也是有效提高改進(jìn)檢測技術(shù)檢測精度的關(guān)鍵所在。關(guān)聯(lián)缺陷的分類過程為檢測技術(shù)的實現(xiàn)奠定了良好的基礎(chǔ)。
根據(jù)已經(jīng)分類好的關(guān)聯(lián)缺陷類型,采用反匯編的方式,對軟件的數(shù)據(jù)流和各功能函數(shù)調(diào)用過程進(jìn)行分析,改進(jìn)軟件的控制流,依據(jù)分析結(jié)果,并結(jié)合靜態(tài)分析方法,建立關(guān)聯(lián)缺陷檢測模型,實現(xiàn)電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷的檢測。具體實現(xiàn)過程描述如下:
1)反匯編:在電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)中反匯編的過程就是對匯編程序進(jìn)行逆向匯編[5]。反匯編的主要功能是編輯在軟件內(nèi)執(zhí)行的二進(jìn)制代碼的特征。為了標(biāo)識和分解出軟件數(shù)據(jù)代碼和平臺指令代碼,需要對反匯編生成的二進(jìn)制代碼進(jìn)行加工處理。最后將軟件關(guān)聯(lián)缺陷檢測技術(shù)的指令代碼反匯編成易于理解的文件。電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)的反匯編流程如圖3所示。
圖3 關(guān)聯(lián)缺陷檢測技術(shù)反匯編流程圖
2)數(shù)據(jù)流分析:電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)中二進(jìn)制代碼的數(shù)據(jù)流分析方法與軟件的類型無關(guān),分析電壓頻控中抗強(qiáng)干擾軟件的數(shù)據(jù)流,可以減少軟件關(guān)聯(lián)缺陷分析的復(fù)雜度。對軟件局部進(jìn)行分析,得到的結(jié)果準(zhǔn)確性較高,將數(shù)據(jù)流劃分為若干個局部數(shù)據(jù)流,根據(jù)各組件分析得到的結(jié)果及軟件輸出和輸入的數(shù)據(jù),得到完整的軟件數(shù)據(jù)流圖。進(jìn)行電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測時,使用數(shù)據(jù)流分析法需要軟件執(zhí)行流信息和數(shù)據(jù)流信息。數(shù)據(jù)流分析法的原理是跟蹤軟件序列、返回值和參數(shù)[7],進(jìn)行分析,判斷軟件是否存在關(guān)聯(lián)缺陷。
3)函數(shù)調(diào)用:在對電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷進(jìn)行檢測的過程中,通過各功能函數(shù)完成檢測技術(shù)的相關(guān)指令。各功能函數(shù)調(diào)用的具體過程為在關(guān)聯(lián)缺陷檢測過程中遇到需要跳轉(zhuǎn)的地址,并進(jìn)行保存。將關(guān)聯(lián)缺陷檢測過程的PC轉(zhuǎn)入到對應(yīng)的函數(shù)接口中,執(zhí)行檢測指令,最后跳轉(zhuǎn)到保存之前的地址。在電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測過程中各功能函數(shù)的調(diào)用分為嵌套調(diào)用和一般調(diào)用,其中嵌套調(diào)用指的是一個功能函數(shù)中需要調(diào)用其他的功能函數(shù)。
本文采用反匯編技術(shù)進(jìn)行各功能函數(shù)間調(diào)用,關(guān)聯(lián)缺陷檢測過程以反匯編為基礎(chǔ),而控制流中的跳轉(zhuǎn)指令和分值指令秉持過程調(diào)用關(guān)系,從而保障電壓頻控軟件的強(qiáng)抗干擾性能。
4)控制流改進(jìn):控制流改進(jìn)是根據(jù)電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測程序的運行序列,在關(guān)聯(lián)缺陷檢測程序運行序列的基礎(chǔ)上對軟件的基本塊進(jìn)行劃分,劃分的內(nèi)容根據(jù)過程間的控制流和過程內(nèi)的控制流運行。過程間的控制流是對軟件基本塊之間的調(diào)用關(guān)系進(jìn)行控制[8],過程內(nèi)控制流是對軟件基本塊內(nèi)指令關(guān)系進(jìn)行控制。控制流改進(jìn)的具體過程是將軟件關(guān)聯(lián)缺陷檢測程序中可執(zhí)行的軟件文件進(jìn)行反匯編得到匯編程序,程序控制流通過對軟件基本塊的劃分得到控制流圖,通過分析調(diào)用得到檢測過程的調(diào)用圖如圖4所示。
圖4 控制流控制過程調(diào)用圖
5)靜態(tài)分析關(guān)聯(lián)缺陷檢測模型:采用靜態(tài)分析工具對電壓頻控中抗強(qiáng)干擾軟件進(jìn)行缺陷檢測,檢測模型如下:
(1)初始化及變量定義關(guān)聯(lián)缺陷檢測模型。檢測電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷變量是否定義,判斷該變量是否引用初始化或未定義的變量,檢查是否存在未使用的賦值變量。建立軟件相關(guān)變量的交叉引用實現(xiàn)。
(2)軟件接口缺陷檢測模型。檢測平臺程序在調(diào)用時實參和形參的數(shù)量和類別是否一致,平臺輸出和輸入?yún)?shù)的定義是否匹配,軟件的變量和外部變量是否相等。
(3)溢出缺陷檢測模型。關(guān)聯(lián)缺陷檢測程序中的危險函數(shù)存在缺陷,對函數(shù)的邊界進(jìn)行檢測。
(4)邏輯缺陷檢測模型。進(jìn)行關(guān)聯(lián)缺陷檢測程序的邏輯檢查時,會出現(xiàn)不正確、不必要的結(jié)構(gòu)代碼。采用循環(huán)控制變量進(jìn)行賦值,或存儲軟件其他模塊的局部信息等。
在電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)中,靜態(tài)缺陷檢測可以準(zhǔn)確地發(fā)現(xiàn)軟件存在的關(guān)聯(lián)缺陷,提高檢測技術(shù)的檢測精度。
綜上所述,以軟件關(guān)聯(lián)缺陷檢測原理為理論依據(jù),采用貝葉斯分類器對軟件中的關(guān)聯(lián)缺陷進(jìn)行分類,依據(jù)分類結(jié)果,充分分析軟件的數(shù)據(jù)流及其函數(shù)調(diào)用過程,改進(jìn)控制流,結(jié)合反匯編方式完善關(guān)聯(lián)缺陷檢測程序,從而實現(xiàn)電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷的檢測。
本次實驗在MATLAB環(huán)境下完成,操作平臺的系統(tǒng)為32位的Windows7。為了驗證電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)的有效性,對檢測技術(shù)進(jìn)行測試,圖5(a)為實際的軟件關(guān)聯(lián)缺陷檢測結(jié)果,圖5(b)為基于Canny缺陷檢測技術(shù)的軟件關(guān)聯(lián)缺陷檢測結(jié)果,圖5(c)為改進(jìn)技術(shù)的軟件關(guān)聯(lián)缺陷檢測結(jié)果。
圖5 兩種不同技術(shù)的軟件關(guān)聯(lián)缺陷檢測對比結(jié)果
在圖5中,曲線代表的是軟件關(guān)聯(lián)缺陷檢測程序的運行蹤跡,圖中“禁止區(qū)域”表示的是缺陷模式所描述的安全屬性,當(dāng)一條檢測程序的運動蹤跡出現(xiàn)在“禁止區(qū)域”時,代表該軟件存在一個關(guān)聯(lián)缺陷,對比圖5(a)、圖5(b)與圖5(c),發(fā)現(xiàn)基于Canny技術(shù)的關(guān)聯(lián)缺陷檢測技術(shù)的檢測結(jié)果與實際檢測結(jié)果相比出現(xiàn)了兩處誤報;改進(jìn)技術(shù)的軟件關(guān)聯(lián)缺陷檢測結(jié)果與實際結(jié)果一致,驗證了改進(jìn)技術(shù)對電壓頻控中抗強(qiáng)干擾軟件的關(guān)聯(lián)缺陷進(jìn)行檢測時,檢測結(jié)果較為精準(zhǔn)。
通過參數(shù)x對電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)進(jìn)行有效性測試,x代表的是關(guān)聯(lián)缺陷特征值,當(dāng)關(guān)聯(lián)缺陷特征值x越大時,關(guān)聯(lián)缺陷越容易被檢測出來,在相同的檢測時間內(nèi),分別采用改進(jìn)技術(shù)和基于層次模型的軟件關(guān)聯(lián)缺陷檢測技術(shù)進(jìn)行監(jiān)測精度測試,測試結(jié)果如表1所示。
分析表1可知,改進(jìn)技術(shù)的缺陷特征值x平均為55,軟件關(guān)聯(lián)缺陷檢測的平均監(jiān)測精度為92%,基于層次模型的軟件關(guān)聯(lián)缺陷檢測技術(shù)中缺陷特征值x平均為30,軟件關(guān)聯(lián)缺陷檢測的平均監(jiān)測精度為72%。缺陷特征值x越大,缺陷越容易檢測出來,檢測精度越高,對比改進(jìn)技術(shù)和基于層次模型的檢測技術(shù)的實驗結(jié)果可得,改進(jìn)技術(shù)的軟件關(guān)聯(lián)缺陷檢測精度更高,驗證了改進(jìn)技術(shù)的可行性。
表1 兩種不同技術(shù)相同檢測時間內(nèi)檢測精度對比結(jié)果
為了驗證電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)在高精度檢測的同時,能夠保障其強(qiáng)抗干擾性,分別采用改進(jìn)技術(shù)和基于機(jī)器視覺的關(guān)聯(lián)缺陷檢測技術(shù)進(jìn)行抗干擾性能的測試,測試結(jié)果如圖6所示。
圖6 兩種不同技術(shù)的信號強(qiáng)度情況對比結(jié)果
圖6(a)為改進(jìn)技術(shù)正常情況下的信號強(qiáng)度,圖6(b)為加入干擾信號后改進(jìn)技術(shù)的信號強(qiáng)度,對比圖6(a)和圖6(b)可知,改進(jìn)技術(shù)的信號強(qiáng)度受到干擾信號的前后沒有出現(xiàn)大規(guī)模的波動,信號強(qiáng)度保持平穩(wěn)。圖6(c)為基于機(jī)器視覺的關(guān)聯(lián)缺陷檢測技術(shù)正常情況下的信號強(qiáng)度,圖6(d)為加入干擾信號后基于機(jī)器視覺的缺陷檢測技術(shù)的信號強(qiáng)度,對比圖6(c)和圖6(d)可知,基于機(jī)器視覺的缺陷檢測技術(shù)受到干擾信號前后的信號強(qiáng)度曲線出現(xiàn)了大規(guī)模的波動。對比兩種技術(shù)的實驗結(jié)果,可充分說明改進(jìn)技術(shù)在檢測過程中,依然保持其較強(qiáng)的抗干擾性能。
綜合以上實驗結(jié)果可得,改進(jìn)的電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù),在保障其強(qiáng)抗干擾性能的前提下,具有較高的檢測精度,驗證了該技術(shù)的可行性和有效性。
對電壓頻控中抗強(qiáng)干擾軟件的關(guān)聯(lián)缺陷進(jìn)行檢測,可以避免因軟件關(guān)聯(lián)缺陷造成的軟件運行不穩(wěn)定等潛在隱患,當(dāng)前軟件關(guān)聯(lián)缺陷檢測技術(shù)的檢測結(jié)果存在檢測精度低的問題,提出電壓頻控中抗強(qiáng)干擾軟件關(guān)聯(lián)缺陷檢測技術(shù)。通過對關(guān)聯(lián)缺陷進(jìn)行準(zhǔn)確分類,改進(jìn)檢測程序完成關(guān)聯(lián)缺陷的精確檢測。實驗證明,該技術(shù)在保障強(qiáng)抗干擾性能的同時,具有較高的檢測精度。未來將在檢測速率方面進(jìn)行深入研究,為軟件缺陷檢測領(lǐng)域的發(fā)展提供有效借鑒依據(jù)。
參考文獻(xiàn):
[1] 邊偉成. 基于AOP的軟件缺陷監(jiān)測框架的設(shè)計與實現(xiàn)[J]. 電子設(shè)計工程, 2017(16):27-31.
[2] 楊慶華, 王 玲, 荀 一,等. 基于機(jī)器視覺的袋泡茶包缺陷檢測方法[J]. 浙江工業(yè)大學(xué)學(xué)報, 2015, 43(2):163-167.
[3] 郭 靜, 韓躍平, 李會鴿. 產(chǎn)品表面缺陷檢測的變步長采樣機(jī)制研究[J]. 科技通報, 2017, 33(2):129-132.
[4] 劉學(xué)福, 何小敏, 許 亮,等. 基于顯著性模型和區(qū)域生長法的藥卷缺陷檢測[J]. 科學(xué)技術(shù)與工程, 2015, 15(4):125-130.
[5] 錢 海, 馬小軍, 包仁標(biāo),等. 基于三維激光掃描和BIM的構(gòu)件缺陷檢測技術(shù)[J]. 計算機(jī)測量與控制, 2016, 24(2):14-17.
[6] 何博俠, 張毅, 童楷杰,等. 航天密封圈的曲面成像理論及其缺陷檢測[J]. 光學(xué)精密工程, 2015, 23(11):3051-3060.
[7] 楊祖彬, 代小紅. 基于圖像配準(zhǔn)的食品包裝印刷缺陷檢測與實現(xiàn)[J]. 計算機(jī)科學(xué), 2015, 42(8):319-322.
[8] 劉 亮, 蔣 鑫, 師普辛,等. 發(fā)電機(jī)出口電壓互感器絕緣缺陷檢測方法[J]. 電網(wǎng)技術(shù), 2016, 40(12):3966-3972.