999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數據挖掘在軟件工程領域中的應用探討

2020-07-09 04:03:55張海霞
現代信息科技 2020年21期
關鍵詞:數據挖掘

摘 ?要:數據挖掘技術是當前發展速度最為迅猛的技術之一,為“互聯網+”相關大數據技術的發展提供了助力,其應用對于數據整理以及分析都有非常重要的影響。廣州華南商貿職業學院針對數據挖掘技術在軟件工程中的應用進行了分析研究,對數據挖掘技術進行了理論分析,并以軟件知識庫為例分析數據挖掘技術在軟件知識庫中的應用,深入分析當前數據挖掘技術具體應用,為數據挖掘技術在軟件工程領域發展提供參考。

關鍵詞:數據挖掘;軟件工程;挖掘類型;軟件知識庫

中圖分類號:TP311 ? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)21-0013-04

Discussion on the Application of Data Mining in the Field of Software Engineering

ZHANG Haixia

(Guangzhou South China Business Trade College,Guangzhou ?510650,China)

Abstract:Data mining technology is one of the most rapidly developing technologies at present,which provides a boost for the development of “internet plus” related big data technology,and its application has a very important impact on data collation and analysis. Guangzhou South China Business Trade College conducted analysis and research on the application of data mining technology in software engineering,and conducted theoretical analysis on data mining technology. The application of data mining technology in software knowledge base is analyzed by taking software knowledge base as an example. The specific application of current data mining technology is deeply analyzed to provide reference for the development of data mining technology in software engineering field.

Keywords:data mining;software engineering;mining type;software knowledge base

0 ?引 ?言

隨著用戶對軟件系統要求的不斷提升,越來越多大型軟件系統開發人員需要不斷地優化軟件代碼設計,以滿足用戶日益增長的需求,但是在代碼優化過程中需要面臨各種各樣的問題。例如,大型軟件開發人員必須使用一些有效的方法、工具去理解軟件系統的具體框架,之后對框架傳播源代碼進行優化與變更,在這過程中良好的系統開發文檔,可以幫助開發人員更好地理解大型軟件系統,但遺憾的是大多數軟件系統開發人員并沒有記錄自己工作的習慣,能夠留存下來的文件大多殘缺不全,因此一旦需要對大型系統進行修改或者完善時,便需要對系統源代碼進行查看,但是此種方式所需要耗費的時間往往比較長,很大程度上會出現難以遵守軟件交付周期的風險。因此為了應對在大型系統開發中相關文檔殘缺不全等問題,通過對Subversion(SVN)軟件中系統修改或者更新的歷史信息深度挖掘,加快對大型系統軟件框架理解的進程,便于開發人員在軟件更新前期快速實現新功能模塊添加與源代碼更新。針對此種情況通過將數據挖掘技術運用在知識庫中,以實現最終提升源代碼修改與新模塊更新效率的目的。廣州華南商貿職業學院針對上述情況,提出一種數據挖掘在軟件工程領域中的應用方法,為教學研究打下良好基礎。

1 ?數據挖掘技術的基本概述

當前,社會正處于信息化時代,信息數據是社會發展過程中的重要產物,對數據信息的有效處理,在一定程度上關系著社會發展的生產力,對于信息技術的應用也有非常重要的作用[1]。在信息技術應用的過程中,軟件開發應用是其重要組成部分,而在軟件開發應用的過程中,數據的分析和處理是其核心環節,數據挖掘技術的應用可以提升軟件開發的效果,保證軟件開發應用更加精準[2]。

數據挖掘技術在具體應用的過程中也是一項復雜的技術應用,其主要包括信息收集、數據集成、數據規約、數據清理、數據變換、數據挖掘過程、功能模式測試及評估等不同部分組成,對數據能夠進行有效的處理[3]。

圖1為數據挖掘的具體流程,圖中反映不同流程分擔著不同的數據處理任務,信息收集任務可以將軟件系統中相關信息整合收集出來;數據集成在相應空間內,利用預先設定好的數據規約對數據進行篩選,將其中對軟件系統運行、更新等完全無作用的多余數據信息清除掉;根據軟件系統開發功能刪減、優化等需要改變軟件系統部分代碼,重新構建軟件框架,改變原有軟件各子系統交互關系;軟件進行功能模式測試及評估,記錄優化后系統源代碼。

2 ?分析數據挖掘技術在軟件知識庫中的應用

2.1 ?軟件解構

在軟件系統優化過程中需要先對軟件系統本身框架進行分析與理解,便于掌握軟件總系統與各個子系統之間關系,及系統之間存在的交互關系等,便于將這些設計相關信息均存儲在軟件知識庫中。通常在對軟件系統框架理解中會從框架源代碼入手,采用假設-比較-調查-再研究這一循環研究方式對軟件框架進行解讀,最終達到完全理解框架的目的。在不同的框架解讀環節,需要做的工作不同。

首先,假設階段需要對軟件系統總系統與子系統交互關系進行假設。軟件開發人員可以利用陳舊的系統文檔或者同高級技術人員進行交流,對相似軟件系統結構進行推測,并根據推測形成對軟件系統框架的初步假設與理解[4]。例如,在對操作系統分析中,技術開發人員會對系統可以實現的功能,對各個子系統之間交互關系進行驗證分析。其次,比較階段對已經提出的假設進行求證。這一環節需要對比系統框架建設與系統實際功能實現的統一性。再次,調查階段屬于軟件框架解構最為耗時的階段。此時開發人員以各子系統之間差異與關系分析為目的,對預測的子系統之間交互關系進行測試,并在測試中準確判斷兩個子系統或者多個子系統之間存在的關系的真實性,通常此階段主要運用的方式包括查看設計文檔、源代碼、向高級技術人員詢問等方式。為了節省開發人員在調查過程中所需要的時間,研究中使用的數據挖掘技術采用軟件反射框架方法,并在此基礎上增加源代碼啟發式方法,以實現快速幫助開發人員了解軟件系統框架的目的[5]。

2.2 ?反射框架分析

反射框架分析為軟件框架解構主要應用辦法,此處對數據挖掘與應用更為深入,具體如圖2所示。

圖2表明軟件開發技術人員可以利用從軟件中獲取的相關軟件系統認知,對軟件各子系統之間交互關系進行初步判斷,并建立實際系統的目錄中源代碼、系統文件的映射關系,后對形成的概念框架與圖實體框架進行對比,分析二者之間存在的差異,進而分析軟件各子系統之間已經被證實存在的交互關系、未預測的交互關系、缺失的交互關系等。通過這種反射框架有利于軟件技術開發人員更為深入掌握軟件系統框架實際情況,并不斷掌握軟件各子系統之間準確的交互關系[6]。在實際軟件設計過程中根據軟件系統各個功能的深入開發,對當前軟件系統各子模塊交互關系進行調整,以使得子系統交互可以達到預定功能的目的。因此在子系統關系探究上,除了是對當前系統框架進行掌握外,也是對系統功能拓展開發的重要環節。可以通過刪除或者增加軟件各子系統的交互關系實現對整體軟件系統功能的進一步完善[7]。具體分析源代碼為:

// 真正的make方法,它直接調用了resolve繼續去實現make的功能

// $abstract = 'HelpSpot\API'

public function make($abstract, array $parameters = [])

{

// $abstract = 'HelpSpot\API'

return $this->resolve($abstract, $parameters);

}

protected function resolve($abstract, $parameters = [])

{

// 判斷是否可以合理反射

// $abstract = 'HelpSpot\API'

if ($this->isBuildable($concrete, $abstract)) {

// 實例化具體實例 (實際并不是實例化,而是通過反射“解刨”了)

$object = $this->build($concrete);

} else {

$object = $this->make($concrete);

}

}

public function build($concrete)

{

// $concrete = 'HelpSpot\API'

if ($concrete instanceof Closure) {

return $concrete($this, $this->getLastParameterOverride ());

}

// 實例化反射類

$reflector = new ReflectionClass($concrete);

// 檢查類是否可實例化

if (! $reflector->isInstantiable()) {

return $this->notInstantiable($concrete);

}

$this->buildStack[] = $concrete;

// 獲取類的構造函數

$constructor = $reflector->getConstructor();

if (is_null($constructor)) {

array_pop($this->buildStack);

return new $concrete;

}

$dependencies = $constructor->getParameters();

$instances = $this->resolveDependencies(

$dependencies

);

array_pop($this->buildStack);

// 從給出的參數創建一個新的類實例。

return $reflector->newInstanceArgs($instances);

}

2.3 ?靜態依賴圖(源代碼)應用

無論是計算機軟件亦或是手機APP等軟件,在開發過程中軟件系統是不斷演化的,以滿足不斷變化的用戶需求,保持軟件始終具有較強的競爭力,盡可能延長軟件的生命周期。因此,在軟件更新過程中軟件開發技術人員需要對軟件源代碼進行更新,而一般一款軟件在源代碼更新上并非是一人或者同一批技術人員可以完成的,往往需要諸多軟件開發技術人員參與,為了避免不同軟件開發技術人員在軟件開發中出現個體化差異而影響軟件代碼更新,在實際軟件工程中會運用SVN對軟件版本進行控制,以明確記錄軟件系統源代碼修改及更新的具體情況,這些記錄軟件系統更新、修改等信息會存儲在SVN庫中[8]。考慮到SVN存儲的文件信息并不能準確描述系統層次關系,因此使用相適宜的源代碼實體,可準確判斷是刪除依賴關系或者是添加依賴關系。之后將特征屬性關聯到相應的映射源代碼實體上,如此一來再對系統進行更新更加簡單易于操作[9]。

為了實現靜態依賴關系圖自動添加,對SVN庫中數據進行分析。主要分為兩個步驟:

(1)對源代碼文件不同歷史版本進行識別,并準確識別源代碼實體(已經定義),記錄已經定義源代碼實體的內容與名字。例如,在庫中存在兩個B版本的文件,初始版本中該文件有函數4個,第二個版本中函數增加了一個新的函數,有5個函數。進而通過這些源代碼實體,比對初始版本可以準確掌握軟件系統更新與修改情況。

(2)采用歷史符號標記表,對相同版本源代碼文件的不同歷史版本進行重新定義,進而實現對系統不同版本源代碼實體的多個歷史版本快照。通過對SVN庫中源代碼文件不同歷史版本記錄比對,將源代碼注解到某一個歷史版本刪除或者新增交互關系上,進而通過源代碼注解情況分析不同歷史版本之間交互關系,如圖3所示。再之后,逐漸分析不同歷史版本交互關系圖,獲得一個軟件工程項目周期內各系統歷史交互關系圖。借助軟件系統歷史交互關系圖,便于軟件技術開發人員掌握軟件各系統具體交互關系,并通過源代碼注解讀取,使得軟件技術開發人員可更為快速掌握軟件系統框架層次情況[10]。

3 ?GBOMC軟件系統簡化案例

3.1 ?GBOMC軟件靜態依賴圖應用過程

為了盡可能節省軟件系統代碼簡化過程中可能出現的重復工作等,提高軟件系統開發與優化效率,對GBOMC軟件系統進行實驗,由于這個軟件此系統代碼庫數據繁多,利用如上靜態依賴圖自動添加流程逐漸構建歷史交互圖用時1.2小時,并將最終生成的歷史系統交互圖結果存儲在XML文件中。在對該GBOMC軟件系統交互關系調查中,一直重復使用XML文件,大大節省了系統層次結構所需要的時間。隨著軟件系統不斷地發展,為初始版XML文件添加相對應源代碼注解,并在XML文件SVN庫更新上,使用優化的gSpan算法,有效降低重復圖出現的概率,確保依賴圖完全集,具體代碼為:

1:retrieve XMIL to sort the labels in by modify time

2: label dependent fie vertices and edges;

3: add the sourcenotes to edges;

4: s1-all link: 1-edge graphs in;

5: sortsl in DFS lexicographic order by time;

6: S←s1:

7: for each edge e∈1 do

8: ? ? initialize s with e,ets ?D by graphs which contains e

9: ? ? ? ?grapMining(D,S,s);

10: ? ? ? add the source notes to edges:

11: if S,contains(s)

12: ? ? ?remove sl;

13: ?graphMining(D,S, s);

14: ?if s≠min(S)

15: return;

16: S←SU{s):

17:enumerate s in each graph in and count its link class;

通過以上優化的gSpan算法可以使得對軟件系統各子系統交互關系理解更簡便,同時通過一個系統源代碼實體的更改可以實現對多個子系統相關源代碼實體的更改,更為高效率更新軟件系統代碼。

3.2 ?GBOMC軟件應用靜態依賴圖后測試

測試環境為:

(1)軟件:Windows 10,Eclipse軟件平臺,Java編寫算法。

(2)硬件:1 GB內存、PM 1.6 GHZ CPU、80 GB硬盤、筆記本電腦。

測試結果如表1與表2所示,結果顯示此種方式算法性能較優、修改歷史記錄完整,有一定深入研究與應用價值。

4 ?結 ?論

筆者以軟件知識庫為例分析數據挖掘技術在軟件知識庫中的應用,分析軟件解構、反射框架、靜態依賴圖(源代碼)應用等,并對使用的靜態依賴圖應用方式進行測試,此種方式算法性能優越,準確性高,可以實現對系統的進一步開發,應用價值較高。

參考文獻:

[1] 張勇.軟件工程行業中數據挖掘的應用探討 [J].中國新通信,2018,20(5):89.

[2] 段彬,魏巍.數據挖掘在軟件工程領域中的應用淺析 [J].信息系統工程,2018(4):89.

[3] 李喆.數據挖掘技術在軟件工程中的應用研究 [J].數碼設計(下),2019(11):216-217.

[4] 黃智聰.數據挖掘技術在軟件工程中的應用 [J].數字化用戶,2019,25(17):104.

[5] 錢曉軍,范冬萍,吉根林.物聯網差異數據庫中的故障數據快速挖掘仿真 [J].計算機仿真,2016,33(1):301-304.

[6] 黃煒.基于數據挖掘技術的計算機網絡病毒防御系統設計 [J].機電信息,2020(23):140-141.

[7] 鄭幸源,洪親,蔡堅勇,等.基于AJAX異步傳輸技術與Echarts3技術的動態數據繪圖實現 [J].軟件導刊,2017,16(3):143-145.

[8] 寧德軍,葉培根,劉琴,等.基于存儲庫數據挖掘的開源軟件成功度量方法 [J].電子學報,2018,46(12):2930-2935.

[9] 張波,李舸.基于改進聚類算法的Web異常數據挖掘軟件設計 [J].現代電子技術,2019,42(8):73-76+81.

[10] 梁藝瓊.基于數據挖掘技術的輿情分析系統的設計 [J].電腦知識與技術,2020,16(3):1-2.

作者簡介:張海霞(1979.12—),男,漢族,湖北荊州人,講師,碩士研究生,研究方向:軟件工程。

猜你喜歡
數據挖掘
基于數據挖掘的船舶通信網絡流量異常識別方法
探討人工智能與數據挖掘發展趨勢
數據挖掘技術在打擊倒賣OBU逃費中的應用淺析
基于并行計算的大數據挖掘在電網中的應用
電力與能源(2017年6期)2017-05-14 06:19:37
數據挖掘技術在中醫診療數據分析中的應用
一種基于Hadoop的大數據挖掘云服務及應用
數據挖掘在高校圖書館中的應用
數據挖掘的分析與探索
河南科技(2014年23期)2014-02-27 14:18:43
基于GPGPU的離散數據挖掘研究
利用數據挖掘技術實現LIS數據共享的開發實踐
主站蜘蛛池模板: 97免费在线观看视频| 亚洲欧美日韩色图| 日韩福利在线观看| 99久视频| 99九九成人免费视频精品 | 国产精品网址在线观看你懂的| 亚洲无码一区在线观看| 久久精品嫩草研究院| 亚洲精品无码日韩国产不卡| 26uuu国产精品视频| 四虎AV麻豆| 亚洲精品你懂的| 成年免费在线观看| 高潮毛片免费观看| 无码丝袜人妻| 久久永久精品免费视频| 9啪在线视频| 免费观看国产小粉嫩喷水 | 奇米精品一区二区三区在线观看| 亚洲视频免| 九九热视频在线免费观看| 免费国产小视频在线观看| 国产免费自拍视频| 六月婷婷激情综合| 天天躁夜夜躁狠狠躁躁88| 国内精品九九久久久精品| AV不卡在线永久免费观看| 成人午夜精品一级毛片| 亚洲成人免费在线| 久久夜色精品国产嚕嚕亚洲av| 制服丝袜国产精品| 亚洲一区国色天香| 一级毛片在线播放免费观看| 最新国产成人剧情在线播放| 3p叠罗汉国产精品久久| 国产一区免费在线观看| 中文字幕在线视频免费| 日韩福利视频导航| 3344在线观看无码| 91av成人日本不卡三区| 婷婷综合色| 久久免费观看视频| 国产精品成人观看视频国产 | 中文字幕在线永久在线视频2020| 日韩小视频在线播放| 黄色在线不卡| 在线永久免费观看的毛片| 色吊丝av中文字幕| 欧美成一级| 免费观看男人免费桶女人视频| 99人妻碰碰碰久久久久禁片| 亚洲欧美日韩久久精品| 日本AⅤ精品一区二区三区日| а∨天堂一区中文字幕| 亚洲国产日韩欧美在线| 亚洲 欧美 偷自乱 图片| 欧美日韩国产在线观看一区二区三区| 精品一区二区三区无码视频无码| 国产大全韩国亚洲一区二区三区| 欧美日韩亚洲综合在线观看| 亚洲视频在线青青| 亚洲午夜福利在线| 欧美精品啪啪一区二区三区| 91成人在线免费观看| 亚洲AⅤ永久无码精品毛片| 男女男精品视频| 国产真实乱了在线播放| 亚洲国产理论片在线播放| 国产综合精品一区二区| 91亚洲免费| 色悠久久久| 欧美日韩国产精品va| 国产成人1024精品| 在线观看国产精美视频| 日韩a级毛片| 国产欧美综合在线观看第七页| 国产精品久线在线观看| 女人毛片a级大学毛片免费| 亚洲欧美自拍中文| 无码乱人伦一区二区亚洲一| 午夜视频www| 99re这里只有国产中文精品国产精品|