1.一種軟件易變性預(yù)測模型的構(gòu)建方法,其特征在于,包括以下步驟:
S1:以面向?qū)ο筌浖到y(tǒng)中的類為研究對象,提取軟件源代碼的結(jié)構(gòu)信息;
S2:通過S1中提取到的源代碼結(jié)構(gòu)信息,計算面向?qū)ο筌浖攘浚ㄒ?guī)模類度量、耦合度度量、內(nèi)聚度度量、繼承類度量;
S3:通過對比在軟件演化中不同版本所對應(yīng)的類的變化情況,通過類相似度來定義并解析出類的易變性信息,該易變性信息包括分類標(biāo)簽;
S4:對S2中計算得到的面向?qū)ο筌浖攘?,對得到的度量進(jìn)行分類,分別對各類度量做進(jìn)一步的特征提取和選擇,得到新的特征集合;
S5:使用S3中得到的分類標(biāo)簽與S4中得到的特征集合,生成軟件易變性預(yù)測模型的訓(xùn)練集,使用前饋多層感知器算法訓(xùn)練出預(yù)測模型。
2.根據(jù)權(quán)利要求1所述的軟件易變性預(yù)測模型的構(gòu)建方法,其特征在于,所述的軟件源代碼的結(jié)構(gòu)信息包括程序的抽象語法樹、程序的符號表,以及類間方法屬性調(diào)用關(guān)系。
3.根據(jù)權(quán)利要求2所述的軟件易變性預(yù)測模型的構(gòu)建方法,其特征在于,通過Eclipse JDT得到程序的抽象語法樹,通過遍歷抽象語法樹得到符號表,進(jìn)而得到相應(yīng)類的方法屬性間的調(diào)用關(guān)系。
4.根據(jù)權(quán)利要求1所述的軟件易變性預(yù)測模型的構(gòu)建方法,其特征在于,所述類的相似度是:相對于基線版本,在對比版本的對應(yīng)的類中的字段、方法,以及繼承關(guān)系等的相似情況;對于類中的字段,相似度考察的是該字段的類型,變量名是否相同;對于類中的方法,相似度考察的是該方法的方法名、參數(shù)類型、返回值類型,以及拋出異常類型是否相同。
5.根據(jù)權(quán)利要求1所述的軟件易變性預(yù)測模型的構(gòu)建方法,其特征在于,對S2中計算得到的面向?qū)ο筌浖攘窟M(jìn)行特征提取和選擇,分別分析規(guī)模類、內(nèi)聚度、耦合度、繼承類度量與軟件易變性的相關(guān)性,選擇相關(guān)度較高的度量組成度量集合,對該度量集合進(jìn)行主成分分析進(jìn)行數(shù)據(jù)降維,去除冗余信息,得到一組新的特征集合,以該組特征集合作為前饋多層感知器算法的輸入即前饋神經(jīng)網(wǎng)絡(luò)的輸入層,使用收集到的訓(xùn)練數(shù)據(jù)集,選擇特定的參數(shù),訓(xùn)練得到軟件易變性預(yù)測模型。