亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)據(jù)挖掘在軟件工程領(lǐng)域中的應(yīng)用探討

        2020-07-09 04:03:55張海霞
        現(xiàn)代信息科技 2020年21期
        關(guān)鍵詞:軟件工程數(shù)據(jù)挖掘

        摘 ?要:數(shù)據(jù)挖掘技術(shù)是當(dāng)前發(fā)展速度最為迅猛的技術(shù)之一,為“互聯(lián)網(wǎng)+”相關(guān)大數(shù)據(jù)技術(shù)的發(fā)展提供了助力,其應(yīng)用對于數(shù)據(jù)整理以及分析都有非常重要的影響。廣州華南商貿(mào)職業(yè)學(xué)院針對數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用進(jìn)行了分析研究,對數(shù)據(jù)挖掘技術(shù)進(jìn)行了理論分析,并以軟件知識庫為例分析數(shù)據(jù)挖掘技術(shù)在軟件知識庫中的應(yīng)用,深入分析當(dāng)前數(shù)據(jù)挖掘技術(shù)具體應(yīng)用,為數(shù)據(jù)挖掘技術(shù)在軟件工程領(lǐng)域發(fā)展提供參考。

        關(guān)鍵詞:數(shù)據(jù)挖掘;軟件工程;挖掘類型;軟件知識庫

        中圖分類號:TP311 ? ? ? 文獻(xiàn)標(biāo)識碼: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 ?引 ?言

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

        1 ?數(shù)據(jù)挖掘技術(shù)的基本概述

        當(dāng)前,社會正處于信息化時代,信息數(shù)據(jù)是社會發(fā)展過程中的重要產(chǎn)物,對數(shù)據(jù)信息的有效處理,在一定程度上關(guān)系著社會發(fā)展的生產(chǎn)力,對于信息技術(shù)的應(yīng)用也有非常重要的作用[1]。在信息技術(shù)應(yīng)用的過程中,軟件開發(fā)應(yīng)用是其重要組成部分,而在軟件開發(fā)應(yīng)用的過程中,數(shù)據(jù)的分析和處理是其核心環(huán)節(jié),數(shù)據(jù)挖掘技術(shù)的應(yīng)用可以提升軟件開發(fā)的效果,保證軟件開發(fā)應(yīng)用更加精準(zhǔn)[2]。

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

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

        2 ?分析數(shù)據(jù)挖掘技術(shù)在軟件知識庫中的應(yīng)用

        2.1 ?軟件解構(gòu)

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

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

        2.2 ?反射框架分析

        反射框架分析為軟件框架解構(gòu)主要應(yīng)用辦法,此處對數(shù)據(jù)挖掘與應(yīng)用更為深入,具體如圖2所示。

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

        // 真正的make方法,它直接調(diào)用了resolve繼續(xù)去實現(xiàn)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;

        // 獲取類的構(gòu)造函數(shù)

        $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);

        // 從給出的參數(shù)創(chuàng)建一個新的類實例。

        return $reflector->newInstanceArgs($instances);

        }

        2.3 ?靜態(tài)依賴圖(源代碼)應(yīng)用

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

        為了實現(xiàn)靜態(tài)依賴關(guān)系圖自動添加,對SVN庫中數(shù)據(jù)進(jìn)行分析。主要分為兩個步驟:

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

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

        3 ?GBOMC軟件系統(tǒng)簡化案例

        3.1 ?GBOMC軟件靜態(tài)依賴圖應(yīng)用過程

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

        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;

        通過以上優(yōu)化的gSpan算法可以使得對軟件系統(tǒng)各子系統(tǒng)交互關(guān)系理解更簡便,同時通過一個系統(tǒng)源代碼實體的更改可以實現(xiàn)對多個子系統(tǒng)相關(guān)源代碼實體的更改,更為高效率更新軟件系統(tǒng)代碼。

        3.2 ?GBOMC軟件應(yīng)用靜態(tài)依賴圖后測試

        測試環(huán)境為:

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

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

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

        4 ?結(jié) ?論

        筆者以軟件知識庫為例分析數(shù)據(jù)挖掘技術(shù)在軟件知識庫中的應(yīng)用,分析軟件解構(gòu)、反射框架、靜態(tài)依賴圖(源代碼)應(yīng)用等,并對使用的靜態(tài)依賴圖應(yīng)用方式進(jìn)行測試,此種方式算法性能優(yōu)越,準(zhǔn)確性高,可以實現(xiàn)對系統(tǒng)的進(jìn)一步開發(fā),應(yīng)用價值較高。

        參考文獻(xiàn):

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

        [2] 段彬,魏巍.數(shù)據(jù)挖掘在軟件工程領(lǐng)域中的應(yīng)用淺析 [J].信息系統(tǒng)工程,2018(4):89.

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

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

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

        [6] 黃煒.基于數(shù)據(jù)挖掘技術(shù)的計算機(jī)網(wǎng)絡(luò)病毒防御系統(tǒng)設(shè)計 [J].機(jī)電信息,2020(23):140-141.

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

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

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

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

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

        猜你喜歡
        軟件工程數(shù)據(jù)挖掘
        探討人工智能與數(shù)據(jù)挖掘發(fā)展趨勢
        基于并行計算的大數(shù)據(jù)挖掘在電網(wǎng)中的應(yīng)用
        電力與能源(2017年6期)2017-05-14 06:19:37
        數(shù)據(jù)挖掘技術(shù)在中醫(yī)診療數(shù)據(jù)分析中的應(yīng)用
        依托工作室的軟件工程實踐教學(xué)研究
        應(yīng)用瀑布模型的MOOC制作方法
        融合APTECH體系的軟件產(chǎn)業(yè)人才培養(yǎng)探究
        基于工程教育認(rèn)證的《軟件工程》課程教學(xué)質(zhì)量建設(shè)研究 
        關(guān)于提高軟件工程實踐教學(xué)質(zhì)量的幾點思考
        關(guān)于如何創(chuàng)新和完善計算機(jī)軟件工程管理的探討
        一種基于Hadoop的大數(shù)據(jù)挖掘云服務(wù)及應(yīng)用
        国产91久久精品成人看网站| 日韩精品一区二区av在线| 国产一区二区三区亚洲天堂| 亚洲一区久久久狠婷婷| 99久久精品人妻一区| 丁香花五月六月综合激情| 亚洲美女av二区在线观看| 成人麻豆视频免费观看| 中文字幕无线码一区二区| 欧美黑人性暴力猛交喷水| 中国一 片免费观看| 亚洲A∨无码国产精品久久网| 亚洲一级无码AV毛片久久| 中文字幕一区二区在线看| 久久夜色国产精品噜噜亚洲av| 久久久www成人免费毛片| 国产成人乱色伦区| 欧美精品一区视频| 美女极度色诱视频国产免费| 视频一区中文字幕在线观看| 美女主播福利一区二区| 97色偷偷色噜噜狠狠爱网站| 亚洲а∨天堂久久精品2021| 国产激情电影综合在线看| 免费在线日韩| 日本在线观看三级视频| 亚洲熟女综合色一区二区三区| 国产女人高潮视频在线观看 | 国产精品亚洲综合色区丝瓜| 日本一区人妻蜜桃臀中文字幕| 亚洲悠悠色综合中文字幕| 色偷偷av男人的天堂| 亚洲 欧美 综合 另类 中字| 韩国主播av福利一区二区| 国产精品一区二区三区成人| 国产成人无码专区| 中文日韩亚洲欧美制服| 亚洲国产cao| 一区二区免费中文字幕| 青青草在线免费播放视频| 亚洲中文字幕久久精品无码a|