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數據共享的開發實踐
主站蜘蛛池模板: 毛片国产精品完整版| 欧美精品啪啪一区二区三区| 欧美成人午夜在线全部免费| 国产第一页亚洲| 久久精品这里只有精99品| 久久精品视频亚洲| 免费三A级毛片视频| 99伊人精品| 精品视频91| 大乳丰满人妻中文字幕日本| 99re在线免费视频| 亚洲国产成人在线| 久久黄色一级视频| 亚洲av色吊丝无码| 91精品情国产情侣高潮对白蜜| 亚洲成AV人手机在线观看网站| av大片在线无码免费| 亚洲无码高清免费视频亚洲| 在线看免费无码av天堂的| 国产精欧美一区二区三区| 五月天久久婷婷| 国产在线日本| 午夜色综合| 日本午夜在线视频| 国产靠逼视频| 欧美一级黄色影院| 国产一级片网址| 一区二区三区精品视频在线观看| 99精品欧美一区| 欧美精品啪啪| 波多野结衣在线se| 九色在线观看视频| 午夜精品久久久久久久无码软件 | 国产a v无码专区亚洲av| 最新国产麻豆aⅴ精品无| 狠狠亚洲五月天| 久久久久亚洲AV成人人电影软件 | 日韩不卡免费视频| 伊人激情综合| 无码日韩精品91超碰| 日本成人一区| 尤物在线观看乱码| 久久久黄色片| 国产乱人视频免费观看| 91av成人日本不卡三区| 国产一区二区三区在线精品专区| h网站在线播放| 免费视频在线2021入口| 欧美一级在线播放| 狠狠亚洲婷婷综合色香| 日韩在线影院| 人妖无码第一页| 女人18一级毛片免费观看| 国产精品网址你懂的| 国产精品福利在线观看无码卡| 日韩人妻少妇一区二区| 亚洲视频无码| 欧美亚洲国产日韩电影在线| 找国产毛片看| 国产成人综合网在线观看| 国产精品一区在线观看你懂的| 五月天综合婷婷| 国产成人凹凸视频在线| 国产在线麻豆波多野结衣| 国产小视频免费观看| 日本亚洲国产一区二区三区| 无码福利视频| 99精品视频在线观看免费播放| 国产精品女人呻吟在线观看| 国产亚洲成AⅤ人片在线观看| 午夜三级在线| 久久伊伊香蕉综合精品| 全部免费特黄特色大片视频| 最新日韩AV网址在线观看| 国产精品成人久久| 欧美成人综合视频| 欧美一区二区人人喊爽| 日韩不卡免费视频| 亚洲伊人电影| 美女无遮挡拍拍拍免费视频| 毛片免费高清免费| 免费一级毛片不卡在线播放|