梁祥波 , 夏子厚
(1.信陽師范學(xué)院 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,河南 信陽464000;2.信陽職業(yè)技術(shù)學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,河南 信陽464000)
軟件開發(fā)生命周期有許多階段,例如軟件需求收集與分析、軟件設(shè)計(jì)、軟件編寫、調(diào)度、存儲(chǔ)與維護(hù)等.軟件風(fēng)險(xiǎn)在軟件開發(fā)的不同階段都會(huì)出現(xiàn)[1].降低軟件風(fēng)險(xiǎn)的策略就是分析風(fēng)險(xiǎn)和緩解因素之間的聯(lián)系,對(duì)風(fēng)險(xiǎn)因素進(jìn)行有效管理,降低軟件風(fēng)險(xiǎn)發(fā)生的概率[2].
有研究說明數(shù)據(jù)挖掘和人工智能技術(shù)可以解決軟件風(fēng)險(xiǎn)這類問題.ASIF利用被稱為規(guī)則庫系統(tǒng)的人工智能技術(shù)[3]建立了一個(gè)規(guī)則庫作為決策支持系統(tǒng),該規(guī)則庫是以軟件風(fēng)險(xiǎn)因素及其緩解的相互關(guān)系形成的.因此,將人工智能和數(shù)據(jù)挖掘技術(shù)結(jié)合起來,應(yīng)用到軟件工程的風(fēng)險(xiǎn)分析中[4],是降低軟件風(fēng)險(xiǎn)的有效方法.
文獻(xiàn)[5]中將數(shù)據(jù)挖掘關(guān)聯(lián)規(guī)則Apriori算法應(yīng)用到軟件工程,分析軟件風(fēng)險(xiǎn)因素和軟件風(fēng)險(xiǎn)緩解因素之間的聯(lián)系.但是,傳統(tǒng)的數(shù)據(jù)挖掘關(guān)聯(lián)規(guī)則Apriori算法導(dǎo)致生成大量的候選項(xiàng)集和長(zhǎng)子集,因此,影響軟件工程中風(fēng)險(xiǎn)與緩解因素關(guān)系分析結(jié)果.本文通過結(jié)合粗糙集理論(RST),提出了基于屬性相關(guān)的關(guān)聯(lián)規(guī)則挖掘算法來處理風(fēng)險(xiǎn)中的數(shù)據(jù).
本文研究主要有以下三個(gè)步驟:
1. 提出一種改進(jìn)的數(shù)據(jù)挖掘關(guān)聯(lián)規(guī)則Apriori算法;
2. 運(yùn)用改進(jìn)的數(shù)據(jù)挖掘Apriori算法來追蹤軟件風(fēng)險(xiǎn)因素和軟件風(fēng)險(xiǎn)緩解之間的關(guān)聯(lián)規(guī)則[6];
3. 提出新的適應(yīng)性數(shù)據(jù)結(jié)構(gòu).
關(guān)聯(lián)規(guī)則(ARM)挖掘目的旨在檢測(cè)事務(wù)數(shù)據(jù)庫中的元組和服務(wù)器決策的關(guān)系.本質(zhì)上,采用關(guān)聯(lián)規(guī)則挖掘來找到滿足最小支持度和最小置信度閾值的數(shù)據(jù)集.經(jīng)典關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘過程如圖1.
圖1 ARM過程Fig. 1 ARM process
與傳統(tǒng)的關(guān)聯(lián)規(guī)則挖掘方法相比,特征相關(guān)關(guān)聯(lián)規(guī)則對(duì)關(guān)聯(lián)規(guī)則增加了屬性約束.具有特征相關(guān)信息的事務(wù)可以記為T{TIDT1T2…TnCmaxCmin},|Cmax|和|Cmin|分別表示特征相關(guān)項(xiàng)集模的最大值和最小值.根據(jù)關(guān)聯(lián)規(guī)則“滿足最小支持度閾值和最小置信度閾值”的定義,我們可以給出特征相關(guān)關(guān)聯(lián)規(guī)則的定義.
定義1 設(shè)min_sup和min_conf分別表示最小支持閾值和最小置信度閾值,當(dāng)且僅當(dāng)在條件Cmax>Cmin,支持度C≥min_sup并且支持度C≥min_conf規(guī)則下,P?R是一個(gè)特征相關(guān)關(guān)聯(lián)規(guī)則,記為P?R={T_sup,T_conf,Cmin,Cmax}.
conf(P?R)[Cmin,Cmax]=
(1)
在數(shù)據(jù)預(yù)處理階段,首先對(duì)特征相關(guān)的數(shù)據(jù)進(jìn)行組合,組成特性相關(guān)的集合I.然后,在特征相關(guān)關(guān)聯(lián)規(guī)則生成的過程中,采用頻繁樹增長(zhǎng)模式來獲得最小支持度閾值.具體算法描述如下:
輸入:特征相關(guān)項(xiàng)集I,特征約束[Cmin,Cmax];
輸出:特征相關(guān)關(guān)聯(lián)規(guī)則集R;
步驟1 根據(jù)初始項(xiàng)集Ti中的每個(gè)元素組成特征相關(guān)項(xiàng)集I并構(gòu)造支持度計(jì)數(shù)Vc的矩陣;
步驟3 始化節(jié)點(diǎn)null()作為模式樹的根節(jié)點(diǎn),將Ii按降序插入到頻繁樹(PT)中,獲得在根部在k,所有長(zhǎng)度作為頻繁模式的樹Fk;
步驟4 通過執(zhí)行Lk=Fk-1ΛFk-1來獲取所有長(zhǎng)度的候選項(xiàng)集;
步驟5 執(zhí)行步驟2迭代地找到所有候選項(xiàng)集;
步驟6 當(dāng)特征約束[Cmin,Cmax]在Fk滿足約束Cmax>Cmin,C≥Cmin和C≤Cmax時(shí),將頻繁模式Fk添加到特征相關(guān)項(xiàng)集;否則,刪除頻繁模式Fk;
ARApriori數(shù)據(jù)挖掘算法能有效地找出特征相關(guān)的項(xiàng)集,降低對(duì)初始項(xiàng)集的依賴程度,提高數(shù)據(jù)挖掘的精度.
本節(jié)把軟件風(fēng)險(xiǎn)因素和風(fēng)險(xiǎn)緩解因素抽象為初始項(xiàng)集,然后用ARApriori數(shù)據(jù)挖掘算法對(duì)這兩類因素進(jìn)行分析.
在軟件開發(fā)過程中,找出軟件風(fēng)險(xiǎn)因素和軟件風(fēng)險(xiǎn)緩解因素之間的潛在聯(lián)系,以此作為軟件開發(fā)的依據(jù),能夠提高軟件開發(fā)的成功率.因此,利用ARApriori數(shù)據(jù)挖掘算法,找出這兩種因素的關(guān)聯(lián),為設(shè)計(jì)軟件工程新型適應(yīng)新結(jié)構(gòu)提供了支撐.表1是這兩種因素的條件.
表1列舉了軟件開發(fā)過程中的風(fēng)險(xiǎn)因素和風(fēng)險(xiǎn)緩解因素,具體解釋如下:
軟件風(fēng)險(xiǎn)緩解因素為:一貫承諾(M50),影響評(píng)估(M49),項(xiàng)目追蹤控制(M48),可重用性(M47),問題解答(M46),應(yīng)急計(jì)劃(M45),評(píng)估過去的通信(M44),定期更新(M43),壓力測(cè)試(M42),設(shè)置關(guān)鍵績(jī)效指標(biāo) (M41),安全檢查表和認(rèn)證過程(M40),積極的行為和解決問題的技巧(M39),直覺和創(chuàng)造性(M38),中心化(M37),便利的應(yīng)用規(guī)約技術(shù)(M36), 管理高層承諾 (M35),次等的要求(M34),政策環(huán)境和執(zhí)行(M33),成功標(biāo)準(zhǔn)的鑒定(M32),恰當(dāng)?shù)匿N售營銷團(tuán)隊(duì)(M31),恰當(dāng)?shù)臏y(cè)試技術(shù) (M30),人力資源角色(M29),在徹底的研究可用的工具和技術(shù)之后對(duì)技術(shù)的選擇(M28),運(yùn)用統(tǒng)計(jì)方法(M27), 用戶參與(M26), 原型法(M25),項(xiàng)目進(jìn)度安排 (M24),連續(xù)檢查(M23),雇員意識(shí)(M22),雇員技能(M21), 雇員態(tài)度(M20),尊重雇員 (M19),在職培訓(xùn)和脫產(chǎn)培訓(xùn)(M18), 工作單元文化(M17), 適當(dāng)運(yùn)用方法論和軟件模式(M16), 過去的經(jīng)驗(yàn)(M15),領(lǐng)導(dǎo)力(M14), 確保通信和里程碑(M13), 定義目標(biāo)(M12), 適當(dāng)?shù)膫浞萦?jì)劃(M11), 適當(dāng)?shù)膱F(tuán)隊(duì)結(jié)構(gòu)(M10), 開發(fā)者的忠實(shí)度(M9), 吸引人的包裝 (M8), 獎(jiǎng)金(M7), 留住好員工(M6), 恰當(dāng)?shù)臏贤ㄇ?M5), IT顧問(M4), 需求規(guī)格說明(M3), 恰當(dāng)?shù)目尚行詧?bào)告制作(M2), 清晰的訴求(M1).
軟件風(fēng)險(xiǎn)因素為:項(xiàng)目的大小(SOTP), 不當(dāng)?shù)臓I銷技巧(IMT), 過時(shí)的市場(chǎng)需求(MDO),不當(dāng)?shù)目尚行詧?bào)告(IF), 高級(jí)管理決策(HMD), 了解顧客的問題(UPOC), 了解開發(fā)者的問題(UPOD),不當(dāng)計(jì)劃(IP), 不當(dāng)范圍定義(ISD), 缺乏項(xiàng)目經(jīng)理的經(jīng)驗(yàn)(LOEPM) , 實(shí)施(IMP),政府因素 (GF), 文化多樣性(CDR), 缺乏動(dòng)機(jī)(LOM), 不切實(shí)際的期限(UD), 人員聘用(PH), 不當(dāng)設(shè)計(jì)(ID) , 不當(dāng)預(yù)算(IB),不當(dāng)技術(shù)(IT), 缺乏資源(LOR).
表1 主要數(shù)據(jù)集Tab. 1 The main data set
根據(jù)ARApriori數(shù)據(jù)挖掘算法,軟件風(fēng)險(xiǎn)因素和風(fēng)險(xiǎn)緩解因素挖掘步驟如下:
第一步計(jì)算最小支持度,對(duì)候選項(xiàng)集和頻繁項(xiàng)集進(jìn)行優(yōu)化.
我們?cè)O(shè)置數(shù)據(jù)挖掘ARApriori算法有15%的最小支持度,通過在ARApriori算法的應(yīng)用方程,我們得到結(jié)果0.3.因此,只有大于或者等于0.3的項(xiàng)集會(huì)在頻繁項(xiàng)集中被選中,即在表1的第一部分中那些頻繁集大于或者等于0.3的發(fā)生概率.
第二步最小置信度下產(chǎn)生的規(guī)則
我們?cè)O(shè)置最小置信度的值為60%,根據(jù)式(1),求出ARApriori挖掘算法的置信度.
第三步執(zhí)行ARApriori算法
通過ARApriori挖掘算法,得到特征相關(guān)項(xiàng)集R.
本節(jié)對(duì)ARApriori挖掘軟件開發(fā)中的兩個(gè)風(fēng)險(xiǎn)因素結(jié)果進(jìn)行分析.
1)通過執(zhí)行ARApriori挖掘算法,數(shù)據(jù)庫已經(jīng)被掃描了三次.第一次掃描得出了每一個(gè)候選項(xiàng)的概率次數(shù)(50個(gè)候選項(xiàng)),即在最小支持率15%的基礎(chǔ)上從M1到M50.第二次掃描有91對(duì)候選項(xiàng),即{M1M10}、{M1M2}等,第三次產(chǎn)生了兩個(gè)候選集,它們是{M1M3M12}、{M1M2M3}.
2)ARApriori挖掘算法共產(chǎn)生了143個(gè)候選項(xiàng),并能夠產(chǎn)生一個(gè)頻繁模式樹(FP-Tree),如圖2所示.
3)圖2中所有的項(xiàng)集都按照降序排列,這樣可以盡可能地節(jié)省存儲(chǔ)空間.
4)ARApriori挖掘算法是基于“自下而上/橫向優(yōu)先搜索”的方法,產(chǎn)生候選項(xiàng)集.
5) Apriori挖掘算法并不是記憶有效的算法,因?yàn)樗茈y存儲(chǔ)大量的候選項(xiàng)集,不適于處理大規(guī)模數(shù)據(jù).但是ARApriori挖掘算法是特征相關(guān)的,因此,產(chǎn)生的候選項(xiàng)集相對(duì)較小,具有處理大規(guī)模數(shù)據(jù)的能力.
6)關(guān)聯(lián)規(guī)則的產(chǎn)生與ARApriori算法的支持度和置信度有關(guān).根據(jù)第二節(jié)的支持度和置信度的產(chǎn)生策略,總共有8條規(guī)則產(chǎn)生并選中:規(guī)則1、M1→M3(60%),規(guī)則2、M3→M1(75%),規(guī)則3、M1→M12(60%),規(guī)則4、M12→M1(75%),規(guī)則5、M2→M3(75%),規(guī)則6、M3→M2(75%),規(guī)則7、M21→M22(100%),規(guī)則8、M22→M21(100%).通過對(duì)比Apriori挖掘算法,產(chǎn)生了相同的關(guān)聯(lián)規(guī)則.
圖2 軟件風(fēng)險(xiǎn)緩解FP-TreeFig. 2 Software Risk Mitigation FP-Tree
根據(jù)挖掘結(jié)果,M22→M21(100%),雇員意識(shí)(M22)決定雇員技能(M21)的水平,即只要增強(qiáng)軟件開發(fā)成員的主動(dòng)意識(shí),就能夠不斷提高該成員在軟件開發(fā)中的技術(shù)水平.其他規(guī)則也顯示了軟件開發(fā)中風(fēng)險(xiǎn)緩解因素的聯(lián)系,在一定程度上為軟件開發(fā)的成功提供了有效參考.
軟件風(fēng)險(xiǎn)因素對(duì)于軟件開發(fā)成功率的影響是很大的,通過ARApriori挖掘的關(guān)聯(lián)規(guī)則,我們提出了一種新的軟件工程適應(yīng)性數(shù)據(jù)結(jié)構(gòu),降低風(fēng)險(xiǎn)因素對(duì)軟件工程的影響.
這種適應(yīng)性結(jié)構(gòu)的主體思想是綜合運(yùn)用Apriori和ARApriori挖掘算法.數(shù)據(jù)挖掘Apriori算法對(duì)小型數(shù)據(jù)集的處理有比較好的效果,容易產(chǎn)生最小數(shù)目候選項(xiàng)集.而ARApriori挖掘算法則更適用于數(shù)據(jù)規(guī)模很大的數(shù)據(jù)集.這種新的適應(yīng)性結(jié)構(gòu)會(huì)讓軟件工程中的數(shù)據(jù)處理變得更為簡(jiǎn)單,每次事務(wù)處理都可以設(shè)定一個(gè)最低值和最高值.如果事務(wù)處理的數(shù)據(jù)規(guī)模超過了最高值,ARApriori挖掘算法就會(huì)被使用.如果事務(wù)處理低于最低值,Apriori算法則會(huì)被使用.圖3為軟件項(xiàng)目管理者提供的決策使用的新型結(jié)構(gòu).
通過實(shí)驗(yàn)驗(yàn)證Apriori 算法的性能,把軟件風(fēng)險(xiǎn)因素和軟件風(fēng)險(xiǎn)緩解因素抽象為初始項(xiàng)集,應(yīng)用新型適應(yīng)性結(jié)構(gòu)[7].該數(shù)據(jù)集可用于檢驗(yàn)頻繁項(xiàng)集算法的效率,而且由于其項(xiàng)集特征相關(guān)較大,對(duì)分析軟件風(fēng)險(xiǎn)因素和軟件風(fēng)險(xiǎn)緩解因素有著重要作用.
圖3 一個(gè)新型的適應(yīng)性結(jié)構(gòu)Fig. 3 A new type of adaptive structure
實(shí)驗(yàn)環(huán)境為: CPU 為 Intel Pentium T4200、2 GB 內(nèi)存、Windows7 操作系統(tǒng).采用 Weka 軟件作為實(shí)驗(yàn)工具,Apriori 算法由Weka 軟件提供,由 Java 編寫并由 Weka 調(diào)用運(yùn)行.實(shí)驗(yàn)方法為采用相同的數(shù)據(jù)集,在相同的實(shí)驗(yàn)環(huán)境下用不同置信度閾值和不同的支持度閾值對(duì)Apriori算法的運(yùn)行效率進(jìn)行測(cè)試.實(shí)驗(yàn)結(jié)果如圖4所示.
從實(shí)驗(yàn)結(jié)果中能夠發(fā)現(xiàn),隨著最小支持度與最小置信度的增加,Apriori算法的運(yùn)算時(shí)間不斷增加.而且,當(dāng)最小支持度與最小置信度分別為50%以上時(shí),Apriori算法的運(yùn)算時(shí)間急劇增加.這種現(xiàn)象的原因是Apriori算法對(duì)于特征相關(guān)的數(shù)據(jù)具有較強(qiáng)的處理能力,當(dāng)最小支持度與最小置信度設(shè)置在50%以下時(shí),不會(huì)影響算法的挖掘結(jié)果.
圖4 實(shí)驗(yàn)結(jié)果Fig. 4 Experimental results
因此,設(shè)置最小支持度和最小置信度在50%以下時(shí),實(shí)驗(yàn)?zāi)軌蛲诰虺龊虯priori算法分析同樣的結(jié)果,證明了Apriori 算法對(duì)于特征相關(guān)的數(shù)據(jù)在軟件風(fēng)險(xiǎn)管理分析中的有效性.在軟件開發(fā)過程中,找出軟件風(fēng)險(xiǎn)因素和軟件風(fēng)險(xiǎn)緩解因素之間的潛在聯(lián)系,以此作為軟件開發(fā)的依據(jù),能夠提高軟件開發(fā)的成功率,為設(shè)計(jì)軟件工程提供了新的思路.
根據(jù)改進(jìn)的Apriori挖掘算法能夠準(zhǔn)確分析軟件開發(fā)風(fēng)險(xiǎn)因素和軟件風(fēng)險(xiǎn)緩解因素之間的聯(lián)系,并提出了一種新型的軟件工程適應(yīng)性結(jié)構(gòu),為項(xiàng)目經(jīng)理在軟件開發(fā)實(shí)施過程中提供了決策依據(jù).因此,把數(shù)據(jù)挖掘技術(shù)添加到智能系統(tǒng)中,為決策過程的研究提供了新的研究方向,并為包含關(guān)聯(lián)知識(shí)庫的發(fā)展提供了更為簡(jiǎn)單、系統(tǒng)的方法.
信陽師范學(xué)院學(xué)報(bào)(自然科學(xué)版)2018年2期