国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向物聯(lián)網(wǎng)軟件系統(tǒng)的軟件缺陷分配算法研究

2021-04-01 07:52蘇警
關(guān)鍵詞:開發(fā)人員分類器遺傳算法

蘇警

(安徽電子信息職業(yè)技術(shù)學(xué)院 軟件學(xué)院,安徽 蚌埠 233000)

物聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展取決于軟件產(chǎn)品的普及。軟件涵蓋了物聯(lián)網(wǎng)系統(tǒng)的許多方面,例如物聯(lián)網(wǎng)終端系統(tǒng)、短距離連接、物聯(lián)網(wǎng)架構(gòu)、物聯(lián)網(wǎng)瀏覽器、物聯(lián)網(wǎng)安全性和其他重要應(yīng)用[1-3]。根據(jù)OMA(OPEN MOBILE ALLIANCE)的調(diào)查,有60%的物聯(lián)網(wǎng)企業(yè)認(rèn)為物聯(lián)網(wǎng)產(chǎn)品依賴于開源軟件。根據(jù)Vision Mobile的調(diào)查,91%的物聯(lián)網(wǎng)開發(fā)人員已使用開放的缺陷存儲庫尋求幫助來修復(fù)缺陷并進(jìn)一步提高物聯(lián)網(wǎng)軟件的性能和安全性。可靠的軟件質(zhì)量是確保物聯(lián)網(wǎng)系統(tǒng)高效安全運(yùn)行的基礎(chǔ)。物聯(lián)網(wǎng)系統(tǒng)的軟件可靠性直接影響了信息傳輸,物聯(lián)網(wǎng)中物與物之間的通信以及人與物之間的交互將受到很大影響。因此,快速有效地將缺陷分配給合適的開發(fā)人員是確保軟件質(zhì)量的關(guān)鍵。但是,隨著軟件數(shù)量的增加,用戶的需求也隨之增加,并且每天都會發(fā)現(xiàn)大量的軟件缺陷。管理人員很難將軟件缺陷分配給適當(dāng)?shù)拈_發(fā)人員。以前有關(guān)缺陷分類的大多數(shù)工作的目標(biāo)是分析缺陷報(bào)告,以幫助開發(fā)人員或程序員有效地修復(fù)缺陷。針對上述挑戰(zhàn),提出了有效的缺陷報(bào)告特征學(xué)習(xí)模型和有效的缺陷分配機(jī)制。

1 軟件缺陷分配算法設(shè)計(jì)

假設(shè)數(shù)據(jù)集中有n個缺陷報(bào)告(用S+{s1,…,sn}表示),m個特征/變量(用M+{f1,…,fm}表示)和k個工人(用C={c1,…,ck})。每個樣本si可以用向量si={xi1,…,xim}表示,其中xij表示樣本si的特征fj的值。每個樣本s∈S對應(yīng)于類別標(biāo)簽ci。缺陷分類框架包括三個主要步驟:軟件缺陷信息提取、代表性特征空間構(gòu)建以及基于GA和推薦的最優(yōu)整體ELM(Ertreme Learning Machine)分類。為了更好地理解所提出的方法,首先對下面的三個步驟進(jìn)行簡要說明。

軟件缺陷信息提?。喝毕輬?bào)告包含很多信息,但是并非所有信息都有用。僅對可用于提取缺陷分類軟件缺陷功能的信息感興趣。此步驟的目標(biāo)是過濾一些不相關(guān)的信息,例如URL、里程碑、關(guān)鍵字等。在這一步中,將通過去除停用詞來完成初始操作。

特征空間構(gòu)建:使用缺陷信息來構(gòu)建軟件缺陷報(bào)告的特征空間。主要對缺陷信息進(jìn)行預(yù)處理,并完成代表特征的多種特征選擇。此步驟的目標(biāo)是選擇一組具有代表性的非冗余特征集,這些特征集具有關(guān)于顯影劑分類的相對最大統(tǒng)計(jì)信息。

基于遺傳算法的最優(yōu)ELM分類:根據(jù)選擇的多樣性特征,訓(xùn)練ELM集成分類器。固定劑是用來訓(xùn)練ELM分類機(jī)的標(biāo)簽。在這一步中,設(shè)計(jì)了一種基于ELM的遺傳算法,以進(jìn)一步提高分類器的有效性。該方法可以輸出多個加權(quán)分類器的平均值。

為了獲得性能更好的分類器,沒有為每個分類分配相同的權(quán)重。在文中,使用基于遺傳算法的方法來找到每個分類的最佳權(quán)重分配修復(fù)者。當(dāng)產(chǎn)生新的軟件缺陷時,會根據(jù)經(jīng)過訓(xùn)練的模型推薦最合適的權(quán)重。

1.1 軟件缺陷信息提取

大多數(shù)現(xiàn)有的研究僅從缺陷報(bào)告中提取有關(guān)描述和相應(yīng)貢獻(xiàn)者的信息。但是,發(fā)現(xiàn)缺陷報(bào)告的摘要和注釋也提供了大量有價(jià)值的軟件缺陷信息。摘要概述了缺陷的基本類型和位置,注釋是開發(fā)人員在修復(fù)軟件缺陷時進(jìn)行的交流。因此,除了提取缺陷報(bào)告的描述和恢復(fù)者的信息外,還收集摘要和注釋以提高缺陷分配的準(zhǔn)確性。

使用缺陷跟蹤系統(tǒng)Bugzilla來獲取缺陷報(bào)告數(shù)據(jù)。在Bugzilla中,缺陷報(bào)告記錄了軟件缺陷的詳細(xì)信息。提取有用的信息(例如摘要的一部分、報(bào)告的描述和注釋)作為軟件缺陷分類的候選屬性信息。提取貢獻(xiàn)者作為訓(xùn)練樣本的標(biāo)簽。但是,在Bugzilla中,并不總是將貢獻(xiàn)者分配給真正的軟件缺陷修復(fù)者。例如,某個缺陷可以是由另一個開發(fā)人員修復(fù)的,而不是由分配給它的第一個開發(fā)人員修復(fù)的,并且有關(guān)該分配的信息也可能沒有及時得到更新。首先,選擇處于“解決”狀態(tài)的缺陷報(bào)告數(shù)據(jù)。為了獲得軟件缺陷的真實(shí)等級,采用以下規(guī)則:如果軟件缺陷由分配給它的開發(fā)人員修復(fù),則假定該開發(fā)人員是缺陷的最終真實(shí)修復(fù)者;如果缺陷未由所分配的開發(fā)人員修復(fù),那么則認(rèn)為將缺陷狀態(tài)修改為“解決”的人員是最終的修復(fù)者。

從缺陷報(bào)告中可以看出,大多數(shù)缺陷報(bào)告都有描述性信息和注釋。但是,軟件缺陷報(bào)告的描述和注釋是自然語言描述,其中包含許多無用的信息。當(dāng)使用向量空間模型表示文本文檔時,維度空間可能達(dá)到一萬個或更多。因此,對原始數(shù)據(jù)進(jìn)行預(yù)處理并選擇有代表性的特征是非常重要的一個步驟。預(yù)處理有兩個步驟:詞干提取和停用詞刪除。

詞干提取是將選定的單詞還原成其詞干或詞根的過程。單詞的詞干不一定與其詞根相同。即使詞干本身不是詞根,但是詞干通常也與詞根有關(guān)。當(dāng)將文本文檔轉(zhuǎn)換為向量空間模型時,同一單詞的描述可能具有不同的形式,必須在數(shù)據(jù)預(yù)處理中統(tǒng)一單詞形式。在文中,使用Snowball stemmer算法來進(jìn)行詞干提取。

系統(tǒng)將在處理自然語言數(shù)據(jù)之前或之后過濾掉一些單詞或短語,這些單詞或短語稱為停用詞。通常,停用詞是人類語言中的功能詞,這些功能詞極為常見。與其他詞相比,功能詞沒有實(shí)際含義[4]。盡管這些停用詞無法單獨(dú)表示文檔的相關(guān)程度,但是這些停用詞將占用相當(dāng)大的空間。在提取的軟件缺陷報(bào)告中,大多數(shù)單詞是停用詞。因此,構(gòu)建了一個停止列表,然后根據(jù)該列表過濾數(shù)據(jù),以減小數(shù)據(jù)維度和數(shù)據(jù)大小。

1.2 多樣化特征空間構(gòu)建

如果將原始數(shù)據(jù)直接映射到向量空間,則所有維度的特征都將產(chǎn)生高維向量。此外,噪聲還增加了空間的復(fù)雜性,并影響了分類的準(zhǔn)確性[5-6]。因此,在保留重要特征的同時,篩選那些無意義的特征(例如冗余特征或不相關(guān)特征)。根據(jù)信息增益(IG)來選擇特征,以減小特征空間的尺寸和噪聲,以提高分類的效率和準(zhǔn)確性。IG的公式如下:

(1)

在實(shí)驗(yàn)中,通過IG方法選擇了一個特征子集,以減小向量空間的維數(shù)并濾除噪聲。下一步,對不同頻率的特征詞加權(quán),以提高軟件缺陷報(bào)告的分類準(zhǔn)確度。

使用TF-IDF方法計(jì)算不同重要術(shù)語的權(quán)重值[7],對于給定的特征詞ti,該詞的tfij值可以表示為:

(2)

在上式中,nij是此特征詞出現(xiàn)在文檔dj中的次數(shù),分母表示文件中出現(xiàn)的所有單詞的頻率之和。此單詞的idfi值為:

(3)

|D|是文件集中文件的總數(shù),|j∶ti∈dj|表示包含特征詞ti的文件的數(shù)目。文件dj中特征詞ti的權(quán)重wij可以表示為:

(4)

maxj{tfkj}是文件dj中特征詞tf的最大數(shù)目。用上述方法計(jì)算所有特征詞的權(quán)重,并通過建立向量空間模型進(jìn)行歸一化。經(jīng)過特征選擇處理后,選擇了前k個特征作為代表特征。

1.3 基于遺傳算法的特征選擇和基于極限學(xué)習(xí)機(jī)的分類

由于許多現(xiàn)實(shí)世界中的數(shù)據(jù)是多類的,并且會出現(xiàn)類不平衡的現(xiàn)象,因此可以采用集成了多個學(xué)習(xí)器的ELM以提高準(zhǔn)確性。

在ELM中,權(quán)重是隨機(jī)設(shè)置的。權(quán)重也會在一定程度上影響分類的準(zhǔn)確性。實(shí)際上,對于表現(xiàn)良好的分類器,權(quán)重可以設(shè)置為較高。提出了一種基于遺傳算法(GA)的方法,以探索適合每個分類器的權(quán)重系數(shù)。

遺傳算法是一種隨機(jī)搜索優(yōu)化技術(shù)。在GA中,搜索空間以染色體形式編碼。所有的染色體組成了種群。每個染色體都與一個適應(yīng)度函數(shù)相關(guān)聯(lián),該函數(shù)表示該染色體的優(yōu)劣程度。

給定訓(xùn)練實(shí)例r,預(yù)期輸出為d(r),第x個ELM的實(shí)際輸出為ox(r)。在訓(xùn)練期間,希望x的實(shí)際輸出應(yīng)與運(yùn)行的ELM的輸出一致。此外,設(shè)Va為驗(yàn)證集和a=[a1,…,aM]為權(quán)重系數(shù)。根據(jù)文獻(xiàn)[8],與a對應(yīng)的集成ELM估計(jì)的泛化誤差為:

(5)

(6)

在每個后續(xù)的生成過程中,都需要某種選擇方法來使用適應(yīng)度函數(shù)判斷染色體的質(zhì)量,以便選擇最佳解決方案。采用輪盤賭輪作為選擇策略,即每個染色體與選擇概率相關(guān)。如果ft是總體中個體t的適應(yīng)度,則選擇個體t被選中的概率為:

(7)

(8)

每個染色體都有一個概率為δm突變過程,δm的表達(dá)式:

(9)

對于染色體中的每個位置,以概率δm使用從Laplacian分布中得出的隨機(jī)變量替換原有的值。

2 實(shí)驗(yàn)評估

實(shí)驗(yàn)使用了兩個包含了物聯(lián)網(wǎng)軟件缺陷報(bào)告的真實(shí)數(shù)據(jù)集,即Bugzilla和Eclipse,以評估ELM分類器的性能。Bugzilla的樣本數(shù)(即缺陷報(bào)告數(shù)量)為5200,每個開發(fā)人員的平均缺陷報(bào)告數(shù)量為62,每個開發(fā)人員平均的注釋數(shù)量為5.65;Eclipse的樣本數(shù)為4100,每個開發(fā)人員的平均缺陷報(bào)告數(shù)量為43,每個開發(fā)人員平均的注釋數(shù)量為5.26。選擇50%的樣本作為訓(xùn)練集,選擇50%作為測試集。

表1和2分別給出了在兩個真實(shí)數(shù)據(jù)集上本算法與現(xiàn)有算法在不同特征提取方法下的準(zhǔn)確度比較?;谶z傳算法的特征提取方法在所有分類器上提供最高的準(zhǔn)確性,這主要是因?yàn)樵摲椒ㄋx擇的特征可以被視為提供了所有原始特征的最小但最具代表性的覆蓋范圍,提供的冗余信息少于其他方法。

表1 Bugzilla數(shù)據(jù)集的準(zhǔn)確度對比

表2 Eclipse數(shù)據(jù)集的準(zhǔn)確度對比

3 結(jié)論

隨著世界物聯(lián)網(wǎng)產(chǎn)業(yè)的飛速發(fā)展,快速有效地消除軟件中的缺陷對于物聯(lián)網(wǎng)企業(yè)的增長至關(guān)重要。本研究提出了一種基于ELM的軟件缺陷分配算法,根據(jù)實(shí)驗(yàn)結(jié)果,知道基于ELM的缺陷分類器的性能比現(xiàn)有的算法更好。在未來的工作中,我們將改進(jìn)基于ELM的分類器。將充分考慮倍增還原器修復(fù)缺陷的能力,并針對每個軟件缺陷推薦一些最合適的還原器,從而提高缺陷分配的準(zhǔn)確性,尤其是對于物聯(lián)網(wǎng)企業(yè)的成長。

猜你喜歡
開發(fā)人員分類器遺傳算法
學(xué)貫中西(6):闡述ML分類器的工作流程
基于遺傳算法的高精度事故重建與損傷分析
基于樸素Bayes組合的簡易集成分類器①
基于動態(tài)分類器集成系統(tǒng)的卷煙感官質(zhì)量預(yù)測方法
基于遺傳算法的模糊控制在過熱汽溫控制系統(tǒng)優(yōu)化中的應(yīng)用
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
一種自適應(yīng)子融合集成多分類器方法
基于遺傳算法的智能交通燈控制研究
后悔了?教你隱藏開發(fā)人員選項(xiàng)
基于改進(jìn)多島遺傳算法的動力總成懸置系統(tǒng)優(yōu)化設(shè)計(jì)
绥化市| 额尔古纳市| 雅安市| 榕江县| 郑州市| 托克托县| 阜平县| 来凤县| 贵港市| 屯留县| 台江县| 宜兰县| 罗山县| 镇安县| 阜阳市| 巢湖市| 蕲春县| 云霄县| 东兰县| 枝江市| 祁东县| 含山县| 漾濞| 宁蒗| 天全县| 依兰县| 崇信县| 汶上县| 裕民县| 吉水县| 文安县| 玉溪市| 土默特左旗| 汽车| 巴南区| 讷河市| 随州市| 孟州市| 云安县| 德格县| 资源县|