謝比特
(湖南城市學(xué)院,湖南 益陽 413000)
隨著我國科技的快速發(fā)展,軟件技術(shù)也開始深入各行各業(yè)。針對軟件技術(shù)的實(shí)際可控性展開分析和研究,可以發(fā)現(xiàn)其應(yīng)用效果并不顯著。在實(shí)際應(yīng)用中通常會(huì)出現(xiàn)大量數(shù)據(jù),而諸多行業(yè)的發(fā)展都需要運(yùn)用數(shù)據(jù),因此數(shù)據(jù)作為高價(jià)值的資源會(huì)對多個(gè)領(lǐng)域經(jīng)濟(jì)發(fā)展有所促進(jìn)?;诖?,在軟件開發(fā)企業(yè)中,將數(shù)據(jù)挖掘技術(shù)展開有效應(yīng)用,不僅僅能夠提升相關(guān)數(shù)據(jù)資源的應(yīng)用效果,同時(shí)還能夠在軟件出現(xiàn)問題時(shí)及時(shí)處理,使效率進(jìn)一步提升。
近年來借助信息技術(shù)生產(chǎn)和搜集數(shù)據(jù)能力在不斷提升,數(shù)據(jù)庫在各行各業(yè)的應(yīng)用都極為廣泛。比如說商業(yè)管理,政府辦公,科學(xué)研究以及工程開發(fā)等方面都有應(yīng)用。而且從未來看,這一趨勢還將繼續(xù)發(fā)展。在這種情況下,一個(gè)新的挑戰(zhàn)出現(xiàn)了。隨著信息化技術(shù)的不斷發(fā)展,信息過量已經(jīng)成為人們需要關(guān)注和面對的主要問題,那么大量的信息該怎樣處理,又怎樣將有用的信息從眾多信息中找到并予以應(yīng)用,有效提升信息利用率呢?這個(gè)問題值得大家思考并解決,數(shù)據(jù)已然成為一個(gè)企業(yè)的重要資源,只有將這些資源有效利用起來,才能夠真正為企業(yè)的業(yè)務(wù)決策和戰(zhàn)略決策提供有力依據(jù)。
數(shù)據(jù)挖掘(Data mining)也叫做數(shù)據(jù)采礦,這是數(shù)據(jù)庫中一個(gè)非?;A(chǔ)的環(huán)節(jié)。該項(xiàng)技術(shù)能夠在大量的數(shù)據(jù)中找到具有隱藏特殊關(guān)系的數(shù)據(jù)。通常來說,數(shù)據(jù)挖掘的整個(gè)過程可以分為四個(gè)部分,分別為:軟件庫數(shù)據(jù)選擇、被選擇數(shù)據(jù)的預(yù)處理、格式化預(yù)處理數(shù)據(jù)并展開挖掘以及獲得目標(biāo)數(shù)據(jù)。從一開始,數(shù)據(jù)挖掘技術(shù)就是為了應(yīng)用而研發(fā)的,其不僅僅是面對特定的數(shù)據(jù)庫進(jìn)行簡要搜索和調(diào)用,還要對這些數(shù)據(jù)進(jìn)行有效統(tǒng)計(jì)、分析、推理和歸納。這樣才能夠更好地應(yīng)用這項(xiàng)技術(shù)來找到實(shí)踐問題的答案,進(jìn)而發(fā)現(xiàn)各項(xiàng)事物之間的關(guān)聯(lián)性。甚至還能夠借助已有的數(shù)據(jù)來對今后的相關(guān)活動(dòng)進(jìn)行有效預(yù)測。
在軟件工程開發(fā)和策略中存儲(chǔ)的有關(guān)文檔和測試結(jié)果等數(shù)據(jù)就是軟件工程數(shù)據(jù)挖掘技術(shù),該項(xiàng)技術(shù)也可以稱為數(shù)據(jù)采礦技術(shù)或者資料勘探技術(shù)。其主要是通過有效的計(jì)算來獲得想要的數(shù)據(jù)。該項(xiàng)技術(shù)主要運(yùn)用在智能技術(shù)和自動(dòng)化技術(shù)中,其可以處理非常龐大的數(shù)據(jù)系統(tǒng),滿足更多的數(shù)據(jù)分析需求。因此這項(xiàng)技術(shù)是一種全新的數(shù)據(jù)分析模式。
該項(xiàng)技術(shù)擁有諸多特點(diǎn),包括有:數(shù)據(jù)的復(fù)雜性、挖掘結(jié)果特殊性、挖掘結(jié)果的多元性等等。相對于傳統(tǒng)的數(shù)據(jù)挖掘技術(shù),軟件工程挖掘技術(shù)更為復(fù)雜。因?yàn)樵谄涿鎸Φ臄?shù)據(jù)中,不僅包括了軟件版本和報(bào)告,還包括了代碼和注釋等,通過該項(xiàng)技術(shù)挖掘出來的數(shù)據(jù)結(jié)果較為特殊。在大量的軟件工程數(shù)據(jù)中通過處理、表示、提取和分析等一系列程序來獲得有用的信息就是數(shù)據(jù)挖掘技術(shù)。但這項(xiàng)技術(shù)在展開軟件測試時(shí)會(huì)存在一定問題,這也是因?yàn)槭亲陨淼奶匦远鴮?dǎo)致的。軟件工程數(shù)據(jù)挖掘?qū)θ藛T也有較為嚴(yán)格的技術(shù)要求,數(shù)據(jù)結(jié)果較為復(fù)雜,采用的挖掘方式也非常復(fù)雜。
因?yàn)閿?shù)據(jù)挖掘技術(shù)具有很強(qiáng)的運(yùn)算功能一般的數(shù)據(jù)在運(yùn)算時(shí)需要大量的時(shí)間,而且數(shù)據(jù)過于龐大也會(huì)影響運(yùn)算系統(tǒng)。但在數(shù)據(jù)挖掘技術(shù)之下這個(gè)問題就迎刃而解。而且采用該項(xiàng)技術(shù)還能夠節(jié)省時(shí)間,且不會(huì)出現(xiàn)數(shù)據(jù)丟失。在龐大的數(shù)據(jù)計(jì)算中,有一部分?jǐn)?shù)據(jù)沒有具體作用,屬于垃圾數(shù)據(jù),且垃圾數(shù)據(jù)的存在會(huì)使整個(gè)系統(tǒng)的運(yùn)行效率降低而采用數(shù)據(jù)挖掘技術(shù)就能夠?qū)⒂行?shù)據(jù)保留,無效數(shù)據(jù)去除,確保整體數(shù)據(jù)質(zhì)量。
借助挖掘數(shù)據(jù)技術(shù)可以對相關(guān)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,將原本較亂的數(shù)據(jù)展開有效處理和整合,并轉(zhuǎn)成試用形式。從這些數(shù)據(jù)層面來展開分析,可以對數(shù)據(jù)展開科學(xué)化利用。在數(shù)據(jù)挖掘時(shí),也會(huì)清理一些不明確的數(shù)據(jù),確保數(shù)據(jù)更加科學(xué)。從多個(gè)角度來考察數(shù)據(jù)的真實(shí)性并展開有效整合。將處理好的結(jié)果直接提供給管理者并將其應(yīng)用在軟件工程中,就能夠使相關(guān)數(shù)據(jù)處理時(shí)間大大縮減。
相對于一般的數(shù)據(jù)來說,軟件工程數(shù)據(jù)要更加復(fù)雜。其在應(yīng)用和處理的過程中可能會(huì)面臨諸多問題,因此針對這些復(fù)雜的數(shù)據(jù)展開處理是非常困難的。但隨著近年來軟件工程的快速發(fā)展,軟件工程數(shù)據(jù)挖掘的應(yīng)用也越來越廣泛。所以針對軟件工程數(shù)據(jù)挖掘中存在的問題提出解決對策和方法有很重要的意義。通常對這些軟件工程數(shù)據(jù)展開處理具有以下幾方面特點(diǎn),分別為數(shù)據(jù)復(fù)雜性、數(shù)據(jù)處理非傳統(tǒng)性以及數(shù)據(jù)分析結(jié)果精確性等等。
結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)共同構(gòu)成了軟件工程數(shù)據(jù)。而結(jié)構(gòu)化數(shù)據(jù)信息又包括了軟件工程中產(chǎn)生的問題報(bào)告和相關(guān)版本信息。非結(jié)構(gòu)化數(shù)據(jù)則包括軟件工程信息處理時(shí)產(chǎn)生的代碼信息和文本信息。因?yàn)檫@兩類數(shù)據(jù)的內(nèi)容不同,因此在處理時(shí)也需要分開處理,分別采用不同的算法來展開數(shù)據(jù)處理。盡管是分開處理也不代表這兩項(xiàng)數(shù)據(jù)之間沒有關(guān)系。實(shí)際上他們之間有對應(yīng)的關(guān)系。比如:如果代碼中有缺陷,那么版本中同樣也會(huì)存在相應(yīng)的缺陷文檔。正因?yàn)樗麄冎g有對應(yīng)關(guān)系,所以在分析時(shí)也應(yīng)該進(jìn)行整體分析。如此一來人們就開發(fā)出新的算法和分析技術(shù),通過新的方法才能夠?qū)⒔Y(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)完全挖掘出來。
針對軟件工程數(shù)據(jù)挖掘出來的信息展開分析和評估是數(shù)據(jù)挖掘的最后一步。軟件工程數(shù)據(jù)挖掘技術(shù)挖掘出來的數(shù)據(jù)最后的宿體就是客戶。針對挖掘出來的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)變是軟件開發(fā)者必須展開的工作。之所以要展開格式轉(zhuǎn)變,主要就是為了更好地滿足客戶對于不同數(shù)據(jù)的需求。因?yàn)橐獙?shù)據(jù)展開格式轉(zhuǎn)變,工作量就大大提升了,因此軟件工程數(shù)據(jù)挖掘的效率也會(huì)進(jìn)一步降低??蛻粜枰男畔⑹遣煌模械目蛻粜枰唧w的編程、代碼或者例子。有的數(shù)據(jù)客戶可能只需要其中之一。因此要不斷改善軟件工程挖掘技術(shù),使相應(yīng)的數(shù)據(jù)處理效率獲得提升。那么該如何讓所有的客戶都滿意呢?這就需要對相關(guān)數(shù)據(jù)挖掘技術(shù)獲得的信息予以整合和歸納。通過這些技術(shù)不僅能夠滿足客戶需求,還能夠確保開發(fā)者獲得更大的利益。
從傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)來看,其也有屬于自身的數(shù)據(jù)結(jié)果好壞分析標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)針對傳統(tǒng)數(shù)據(jù)挖掘技術(shù)的處理和分析較為準(zhǔn)確。但從目前來看,傳統(tǒng)的評價(jià)標(biāo)準(zhǔn)已經(jīng)無法滿足當(dāng)前數(shù)據(jù)分析的需求,采用不同的數(shù)據(jù)評判標(biāo)準(zhǔn)來評判不同的數(shù)據(jù)挖掘結(jié)果,但各類評判標(biāo)準(zhǔn)之間并沒有太大的建議,所以軟件開發(fā)者需要針對不同類型的數(shù)據(jù)來做出相對應(yīng)的評判標(biāo)準(zhǔn),這樣才能夠更好地滿足更多客戶的實(shí)際需求。另外要想確保相關(guān)數(shù)據(jù)分析結(jié)果更加準(zhǔn)確,數(shù)據(jù)挖掘得到的信息更加合理,就必須要求軟件開發(fā)者擁有屬于自身的意見和想法,并對獲得的數(shù)據(jù)結(jié)果是否精確也有一定的判斷力。綜合上述,要想獲得準(zhǔn)確的信息就必須采用軟件工程挖掘技術(shù),這也是該項(xiàng)技術(shù)希望達(dá)成的主要目的。因此,最后獲得的數(shù)據(jù)能否滿足軟件工程數(shù)據(jù)挖掘結(jié)果的要求是最終的評判標(biāo)準(zhǔn)。
因?yàn)樵擁?xiàng)技術(shù)是在數(shù)據(jù)庫的基礎(chǔ)上展開的。隨著當(dāng)前各項(xiàng)技術(shù)的不斷發(fā)展,這項(xiàng)技術(shù)已經(jīng)從一開始的理論逐步轉(zhuǎn)化為實(shí)踐,且在實(shí)踐中獲得了較大的應(yīng)用,發(fā)揮了較為重要的作用。軟件工程屬于工科類,其需要依照不同項(xiàng)目的差異,資金和客戶需求來展開產(chǎn)品研發(fā)。因?yàn)橐酝墓こ誊浖_發(fā)非常復(fù)雜,但隨著各項(xiàng)技術(shù)的不斷發(fā)展,數(shù)據(jù)挖掘技術(shù)也越來越成熟,在實(shí)踐中應(yīng)用范圍也越來越廣。另外借助數(shù)據(jù)挖掘技術(shù)對軟件工程數(shù)據(jù)庫信息進(jìn)行深入挖掘,這對于軟件工程的可持續(xù)發(fā)展而言有非常重要的意義。
軟件工程技術(shù)可以有效地掌控相關(guān)信息挖掘,其實(shí)際應(yīng)用范圍非常廣。軟件工程技術(shù)能夠?qū)④浖_發(fā)時(shí)的各種信息予以統(tǒng)一,以此來確保展開軟件開發(fā)的過程中可以及時(shí)更新相關(guān)數(shù)據(jù),并從根源上確保數(shù)據(jù)開發(fā)的質(zhì)量,以此來保證各項(xiàng)任務(wù)順利實(shí)施。從當(dāng)前情況來看,目前的數(shù)據(jù)挖掘技術(shù)中還包括了諸多軟件開發(fā)和更改的數(shù)據(jù)信息,這樣就能夠?qū)④浖?nèi)部的不同之處更直觀地體現(xiàn)出來,再結(jié)合實(shí)際情況來采取有效的解決措施,以此來保證整個(gè)項(xiàng)目的目標(biāo)任務(wù)更順利達(dá)成。
在數(shù)據(jù)挖掘技術(shù)中最重要的一點(diǎn)就是要展開對軟件漏洞的有效檢測,在實(shí)際運(yùn)用時(shí)可以發(fā)現(xiàn)軟件開發(fā)存在的漏洞或缺陷,進(jìn)而對相關(guān)漏洞展開有效修復(fù)和處理,這樣能夠更好確保軟件工程的安全和質(zhì)量。同時(shí)在采用數(shù)據(jù)挖掘技術(shù)對漏洞展開檢測時(shí),有關(guān)技術(shù)人員應(yīng)該清楚檢測內(nèi)容,并立足于客戶基本需求來找到相對應(yīng)的測試內(nèi)容,明確測試內(nèi)容后再采用恰當(dāng)?shù)姆绞絹韺浖M(jìn)行測試,最終獲得最優(yōu)質(zhì)也最有效的解決方案。另外,采用軟件工程技術(shù)對數(shù)據(jù)信息展開處理時(shí),在成功找到相關(guān)漏洞之后,應(yīng)該對多余的信息展開有效處理,以此來確保整個(gè)數(shù)據(jù)信息更加完整也更加科學(xué)。有關(guān)工作人員應(yīng)該采用科學(xué)化的方案來將數(shù)據(jù)挖掘技術(shù)運(yùn)用到軟件工程中,并展開合適的方式來有效分析和處理系統(tǒng)中存在的漏洞,找到漏洞之后,對垃圾數(shù)據(jù)展開處理。這樣能夠讓操作者更好的展開對系統(tǒng)漏洞的處理和修復(fù)。從當(dāng)前實(shí)際來看,數(shù)據(jù)庫挖掘技術(shù)就是將相關(guān)數(shù)據(jù)信息能夠有效轉(zhuǎn)化,并梳理整合再儲(chǔ)存到數(shù)據(jù)庫中。然后由相關(guān)技術(shù)人員結(jié)合具體需求對軟件展開測試,通過測試來明確系統(tǒng)中是否有漏洞,并借助這種方式來確保后續(xù)工作順利展開,使軟件工程項(xiàng)目能夠可持續(xù)健康發(fā)展。
在應(yīng)用數(shù)據(jù)挖掘技術(shù)時(shí),需要著重關(guān)注軟件執(zhí)行記錄。執(zhí)行記錄分析程序的執(zhí)行路徑對于代碼關(guān)聯(lián)性分析有極為重要的意義。因此針對軟件執(zhí)行記錄展開數(shù)據(jù)挖掘,可以更好地維護(hù)相關(guān)軟件,同時(shí)也更加深入地理解代碼的功能。從本質(zhì)上看,針對執(zhí)行路徑予以跟蹤,再逆向構(gòu)建模型就是執(zhí)行記錄的數(shù)據(jù)挖掘。一般來說在數(shù)據(jù)挖掘過程中,包括以下幾個(gè)步驟:插裝、跟蹤、記錄、分析等等。首先應(yīng)該在需要測試的軟件代碼中插裝相關(guān)信息,并將執(zhí)行軟件的過程有效記錄下來。其次通過預(yù)處理之后,在對信息展開分析,分析方式有分類、類聚、關(guān)聯(lián)等等。通過這些分析方式將關(guān)鍵信息提取出來,再對其進(jìn)行跟蹤分析,最后繪制出系統(tǒng)功能模型或者整體結(jié)構(gòu)。有關(guān)工作人員需要在展開數(shù)據(jù)挖掘技術(shù)中對相關(guān)數(shù)據(jù)展開有效分析,并對不同代碼的關(guān)系進(jìn)行探索和研究,確保工作人員能夠有效管理軟件系統(tǒng),促進(jìn)系統(tǒng)的可持續(xù)發(fā)展。
針對開源軟件代碼進(jìn)行挖掘時(shí),需要先將其規(guī)劃到軟件工程中挖掘技術(shù)需要作用的對象挖掘類型中。在軟件數(shù)據(jù)挖掘技術(shù)中,開源軟件挖掘復(fù)制代碼是非常常見的一種應(yīng)用方式。在軟件工程中,代碼復(fù)用極為常見。而且在諸多項(xiàng)目中,都可以采用多數(shù)通用源代碼。這也意味著采用代碼克隆檢測技術(shù)能夠很好地完成對軟件內(nèi)部代碼以及不同軟件之間的代碼展開相應(yīng)的檢測,并將有利用價(jià)值的代碼段予以提取。對這些代碼段展開特征分析,可以避免在克隆代碼的過程中出現(xiàn)漏洞。同時(shí)也能夠?yàn)橄嚓P(guān)軟件的后期維護(hù)和升級提供有力借鑒。因?yàn)殚_源軟件代碼技術(shù)一般都會(huì)應(yīng)用到代碼克隆過程中,有效處理代碼漏洞。因此采用這種方式也可以進(jìn)一步提升相關(guān)工作的效率。
以上所述,可以明確在軟件工程項(xiàng)目中,采用合理、科學(xué)的運(yùn)營數(shù)據(jù)挖掘技術(shù)能夠更好促進(jìn)相關(guān)軟件工程的可持續(xù)發(fā)展。以軟件應(yīng)用的實(shí)際情況為基礎(chǔ)來展開相應(yīng)分析,能夠明確數(shù)據(jù)挖掘技術(shù)未來有很大的發(fā)展空間。有關(guān)技術(shù)人員需要明確該技術(shù)的重要性,并不斷深入研究,對該項(xiàng)技術(shù)予以完善,對該項(xiàng)技術(shù)的理論和應(yīng)用價(jià)值予以充分挖掘。采用這種方式從本質(zhì)上加強(qiáng)該項(xiàng)技術(shù)的專業(yè)性,并通過技術(shù)人員的應(yīng)用將其作用充分發(fā)揮出來,使我國軟件工程技術(shù)能夠獲得可持續(xù)發(fā)展。