两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種采用聚類方式進行軟件重構(gòu)的方法

文檔序號:6516005閱讀:614來源:國知局
一種采用聚類方式進行軟件重構(gòu)的方法
【專利摘要】本發(fā)明涉及一種采用聚類方式進行軟件重構(gòu)的方法,屬于軟件工程【技術(shù)領(lǐng)域】。其特征在于包括如下步驟:將源代碼信息輸入源代碼解析器;對源代碼信息進行解析,提取程序?qū)嶓w及其相關(guān)屬性;調(diào)用過濾器,篩除源代碼信息中多余的信息,利用領(lǐng)域規(guī)則庫建立系統(tǒng)事實庫;采用相似度計算確定實體間的關(guān)聯(lián)系數(shù);通過有向圖聚類分析法,自動分解出基于功能的核心業(yè)務(wù)關(guān)注點模塊;對重構(gòu)后的系統(tǒng)進行正確性檢驗,并根據(jù)檢驗結(jié)果調(diào)整領(lǐng)域規(guī)則庫。本發(fā)明實現(xiàn)將大型的、復(fù)雜的軟件系統(tǒng)自動分解成更小、更易管理的子系統(tǒng)。使系統(tǒng)易于理解和維護,同時,通過修改領(lǐng)域規(guī)則庫中屬性的關(guān)聯(lián)系數(shù),該軟件重構(gòu)方法適于不同的應(yīng)用領(lǐng)域,具有很好的通用型。
【專利說明】ー種采用聚類方式進行軟件重構(gòu)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及ー種采用聚類方式進行軟件重構(gòu)的方法,屬于軟件工程【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]重構(gòu)是ー個程序轉(zhuǎn)換的過程,該過程改進了軟件需求的實現(xiàn),且保持程序行為不變。軟件在其生命周期內(nèi),不可避免的發(fā)生變化,這些變化可能是用戶需求的改變,也可能為了糾正軟件本身的錯誤。為了降低軟件的維護成本,延長其使用壽命,軟件維護人員經(jīng)常面臨軟件重構(gòu)的問題。但隨著軟件系統(tǒng)的規(guī)模和復(fù)雜度增加,系統(tǒng)各個功能模塊之間的相互影響變得更加復(fù)雜。特別是那些缺少文檔的遺留系統(tǒng),如何進行重構(gòu),是當(dāng)前軟件維護急需解決的問題。
[0003]為了解決這ー問題,我國發(fā)明專利,專利號為200810163396.6的“基于語法重構(gòu)的代碼級構(gòu)件組裝方法”,其在將構(gòu)件作為具有相對獨立功能和可復(fù)用的軟件模塊基礎(chǔ)上,公開了ー種軟件工程【技術(shù)領(lǐng)域】內(nèi),基于語法重構(gòu)的代碼級構(gòu)件組裝方法。該方法從程序語言的語法規(guī)范中分離出抽象語法和具體語法,并建立符合所述新語法規(guī)范的代碼級構(gòu)件,然后進行構(gòu)件組裝,使軟件復(fù)用時具有語言獨立的優(yōu)點。但這種重構(gòu)只是代碼級的,缺乏對程序結(jié)構(gòu)的改善。特別是,在系統(tǒng)中存在大量基于功能的核心業(yè)務(wù)關(guān)注點,其邏輯關(guān)系具有強弱之分,且這些核心業(yè)務(wù)關(guān)注點可能分布在不同的模塊中。例如,程序中需要對生產(chǎn)制造中的庫存控制功能進行修改,而這部分功能散布于原料庫存管理模塊、成品庫存管理模塊和材料供應(yīng)模塊等多個模塊,按照上述專利方法,代碼的修改將涉及這多個模塊,這無疑將會増加修改的成本和出錯的概率。正因為核心業(yè)務(wù)關(guān)注點可能要跨越多個模塊,同是又必須便于修改、維護和更新,軟件維護人員在進行軟件重構(gòu)時,應(yīng)分析程序核心業(yè)務(wù)關(guān)注點之間的依賴關(guān)系及耦合特性,單純的基于語法重構(gòu)代碼級構(gòu)件,重構(gòu)后的系統(tǒng)將無法得到本質(zhì)改善。

【發(fā)明內(nèi)容】

[0004]本發(fā)明就是針對上述問題提出來的,目的是提供ー種采用聚類方式進行軟件重構(gòu)的方法,將大型的、復(fù)雜的軟件系統(tǒng)自動分解成更小、更易管理的子系統(tǒng)。
[0005]為實現(xiàn)上述目的,本發(fā)明解決技術(shù)問題的技術(shù)方案是:
(1)輸入源代碼文件,并將源代碼信息解析,根據(jù)程序語法規(guī)則,完整地表示程序語義
信息;
(2)構(gòu)造過濾器,篩除多余的信息,根據(jù)程序語義信息確定系統(tǒng)程序?qū)嶓w及其相關(guān)屬性,并根據(jù)程序?qū)嶓w屬性之間的依賴關(guān)系及耦合特性,領(lǐng)域規(guī)則庫給定各相關(guān)屬性的關(guān)聯(lián)系數(shù),生成事實庫;
(3)相似度計算,程序?qū)嶓w之間存在多個相關(guān)屬性,通過相似度計算,確定程序?qū)嶓w之間的關(guān)聯(lián)系數(shù);
(4)建立聚類,通過有向圖聚類分析法,將系統(tǒng)中相似或相關(guān)度高的程序?qū)嶓w聚類到ー個簇中,每個簇形成ー個新的模塊;
(5)結(jié)果的可視化,將聚類分析后得到的結(jié)果,以容易理解和使用的形式提供給系統(tǒng)維護人員以完成軟件重構(gòu)。
[0006]本發(fā)明與現(xiàn)有技術(shù)相比具有下述優(yōu)點效果:
(1)采用聚類方式進行軟件重構(gòu),其改善的目標(biāo)是基于功能的核心業(yè)務(wù)關(guān)注點,將系統(tǒng)的模塊進行重新構(gòu)建后代碼將具有良好的可重用性;
(2)經(jīng)過聚類分析后,每個模塊內(nèi)程序?qū)嶓w的相似或相關(guān)度較高,解決代碼分散和混亂問題,系統(tǒng)易于理解和維護;
(3)不同的應(yīng)用領(lǐng)域,程序?qū)嶓w的同一屬性具有不同的關(guān)聯(lián)特征,可以通過修改領(lǐng)域規(guī)則庫中屬性的關(guān)聯(lián)系數(shù),這樣產(chǎn)生的聚類結(jié)果也將不同,這使得本專利具有更好的通用性。
【專利附圖】

【附圖說明】
[0007]圖1采用聚類方式進行軟件重構(gòu)過程示意圖。。
[0008]圖2源代碼解析器結(jié)構(gòu)示意圖。
[0009]圖3有向圖聚類分析法實例示意圖A——有向圖。
[0010]圖4有向圖聚類分析法實例示意圖B——聚類圖。
【具體實施方式】
[0011]下面參見本發(fā)明的附圖并結(jié)合具體實施例對本發(fā)明進行進一歩詳細說明,但本發(fā)明的保護范圍不受具體的實施例所限制,以權(quán)利要求書為準(zhǔn)。另外,以不違背本發(fā)明方案的前提下,對本發(fā)明所作的本領(lǐng)域普通技術(shù)人員容易實現(xiàn)的任何改動或改變都將落入本發(fā)明的權(quán)利要求范圍之內(nèi)。
[0012]參見附圖1,本發(fā)明包括以下步驟:
第一歩,參見附圖2,調(diào)用源代碼解析器,對源代碼進行解析和過濾,建立事實庫。本步驟的具體過程描述如下:
(1)參見附圖2,對源代碼文件進行掃描,并將源代碼信息輸入源代碼解析器;
(2)參見附圖2,對源代碼信息進行解析,提取代碼信息中的程序?qū)嶓w及其相關(guān)屬性。具體過程為:對源代碼進行語法解析;提取代碼信息的語法樹;對語法樹進行語義解析;獲得代碼信息中的程序?qū)嶓w及其相關(guān)屬性。程序?qū)嶓w包括:類、函數(shù)、業(yè)務(wù)流程;實體屬性包括:包、文件、功能、數(shù)據(jù)庫、測試用例等;
(3)參見附圖2,調(diào)用過濾器,篩除源代碼信息中多余的信息,結(jié)合領(lǐng)域規(guī)則庫給定的各屬性的關(guān)聯(lián)系數(shù),建立事實庫。
[0013]語法規(guī)則庫的建立。為語法分析器提供語法規(guī)則,該語法分析器可將特定編程語言的上下文無關(guān)文法翻譯成該編程語言的語法樹。
[0014]領(lǐng)域規(guī)則庫的建立。不同的應(yīng)用領(lǐng)域,程序?qū)嶓w的同一屬性具有不同的關(guān)聯(lián)特征。參考領(lǐng)域因素,根據(jù)本系統(tǒng)程序?qū)嶓w屬性之間的依賴關(guān)系、耦合特性,給定本系統(tǒng)各相關(guān)屬性的關(guān)聯(lián)系數(shù)。其中與核心業(yè)務(wù)關(guān)注點關(guān)聯(lián)的屬性,其系數(shù)值較高,以保證核心業(yè)務(wù)關(guān)注點獲得較高的聚集性。領(lǐng)域知識是該領(lǐng)域功能的描述集,對每個功能的描述包括:程序?qū)嶓w編號、所屬領(lǐng)域、版本號、功能描述、業(yè)務(wù)對象、備份、所具有的相關(guān)屬性及關(guān)聯(lián)系數(shù)。[0015]事實庫的建立,是在領(lǐng)域規(guī)則下對源代碼信息過濾后得到的。是該系統(tǒng)的核心業(yè)務(wù)關(guān)注點描述集,對每個程序?qū)嶓w的描述包括:程序?qū)嶓w編號、接ロ名稱、核心業(yè)務(wù)關(guān)注點、輸入?yún)?shù)、輸出參數(shù)、返回值、程序?qū)嶓w提供者、版本號、關(guān)鍵字、所具有的相關(guān)屬性及關(guān)聯(lián)系數(shù)。
[0016]第二歩,相似度計算。程序?qū)嶓w之間存在多個相關(guān)屬性,根據(jù)公式1,進行相似度計算,確定程序?qū)嶓w之間的關(guān)聯(lián)系數(shù);
【權(quán)利要求】
1.ー種采用聚類方式進行軟件重構(gòu)的方法,其特征在于:所述方法依次含有以下步驟為: 步驟I,調(diào)用源代碼解析器,對源代碼進行解析和過濾,建立事實庫; 本步驟的具體過程描述如下: (1)對源代碼文件進行掃描,并將源代碼信息輸入源代碼解析器; (2)對源代碼信息進行解析,提取代碼信息中的程序?qū)嶓w及其相關(guān)屬性; 具體過程為:對源代碼進行語法解析;提取代碼信息的語法樹;對語法樹進行語義解析;獲得代碼信息中的程序?qū)嶓w及其相關(guān)屬性; 程序?qū)嶓w包括:類、函數(shù)、業(yè)務(wù)流程;實體屬性包括:包、文件、功能、數(shù)據(jù)庫、測試用例等; (3)調(diào)用過濾器,篩除源代碼信息中多余的信息,結(jié)合領(lǐng)域規(guī)則庫給定的各屬性的關(guān)聯(lián)系數(shù),建立事實庫; 步驟2,相似度計算; 通過對程序?qū)嶓w之間存在的相關(guān)屬性進行相似度計算,確定程序?qū)嶓w之間的關(guān)聯(lián)系數(shù); 步驟3,聚類分析; 根據(jù)事實庫中的程序?qū)嶓w依賴關(guān)系建立有向圖,然后根據(jù)實體的相似度計算結(jié)果進行聚類分析; 本步驟的具體過程描述如下: (1)建立有向圖; 該圖中的帶箭頭的實線,表示2個實體具有依賴關(guān)系; (2)有向圖聚類分析; 根據(jù)實體的相似度進行聚類分析,圖中實線表示具有較高相似或相關(guān)度(關(guān)聯(lián)系數(shù)值高),虛線表示較低相似或相關(guān)度(關(guān)聯(lián)系數(shù)值低); 將實線連接的節(jié)點聚類為簇; 步驟4,重構(gòu)模塊; 將系統(tǒng)中相似或相關(guān)度高的程序?qū)嶓w聚類到ー個簇中,每個簇形成一個新的模塊; 將這些模塊以容易理解和使用的形式提供給系統(tǒng)維護人員以完成軟件重構(gòu); 步驟5,正確性檢驗; 對重構(gòu)后的系統(tǒng)提交給用戶或者領(lǐng)域?qū)<?,收集意見,并進行完備性檢驗、一致性檢驗和無冗余性檢驗; 步驟6,調(diào)整領(lǐng)域規(guī)則庫; 根據(jù)收集到檢驗結(jié)果或意見,調(diào)整領(lǐng)域規(guī)則庫中,本領(lǐng)域?qū)嶓w相關(guān)屬性的關(guān)聯(lián)系數(shù); 再重新進行系統(tǒng)重構(gòu)。
2.根據(jù)權(quán)利要求1所述ー種采用聚類方式進行軟件重構(gòu)的方法,其特征在干:由語法知識建立語法規(guī)則庫,為語法分析器提供語法規(guī)則,該語法分析器可將特定編程語言的上下文無關(guān)文法翻譯成該編程語言的語法樹。
3.根據(jù)權(quán)利要求1所述ー種采用聚類方式進行軟件重構(gòu)的方法,其特征在干:由領(lǐng)域知識建立領(lǐng)域規(guī)則庫,不同的應(yīng)用領(lǐng)域,程序?qū)嶓w的同一屬性具有不同的關(guān)聯(lián)特征;參考領(lǐng)域因素,根據(jù)本系統(tǒng)程序?qū)嶓w屬性之間的依賴關(guān)系、耦合特性,給定本系統(tǒng)各相關(guān)屬性的關(guān)聯(lián)系數(shù); 領(lǐng)域知識是該領(lǐng)域功能的描述集,對每個功能的描述包括:程序?qū)嶓w編號、所屬領(lǐng)域、版本號、功能描述、業(yè)務(wù)對象、備份、所具有的相關(guān)屬性及關(guān)聯(lián)系數(shù)。
4.根據(jù)權(quán)利要求1所述ー種采用聚類方式進行軟件重構(gòu)的方法,其特征在于:在領(lǐng)域規(guī)則下對源代碼信息過濾后得到事實庫,權(quán)利要求1所述ー種采用聚類方式進行軟件重構(gòu)的方法,是該系統(tǒng)的核心業(yè)務(wù)關(guān)注點描述集,對每個程序?qū)嶓w的描述包括:程序?qū)嶓w編號、接ロ名稱、核心業(yè)務(wù)關(guān)注點、輸入?yún)?shù)、輸出參數(shù)、返回值、程序?qū)嶓w提供者、版本號、關(guān)鍵字、所具有的相關(guān)屬性及關(guān)聯(lián)系數(shù)。
【文檔編號】G06F9/44GK103559025SQ201310495785
【公開日】2014年2月5日 申請日期:2013年10月21日 優(yōu)先權(quán)日:2013年10月21日
【發(fā)明者】曹陽, 王永會, 王守金, 李孟歆 申請人:沈陽建筑大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
本溪| 岳阳县| 苏州市| 新安县| 永和县| 晋州市| 龙游县| 衡阳市| 灵武市| 前郭尔| 加查县| 永康市| 齐河县| 台中县| 乌鲁木齐市| 桐城市| 汶上县| 保山市| 赤城县| 东乌| 泾阳县| 兴宁市| 石阡县| 长寿区| 合山市| 托里县| 成都市| 全椒县| 广水市| 临清市| 定西市| 衡东县| 库尔勒市| 汶川县| 安乡县| 鹤壁市| 二连浩特市| 广平县| 盐亭县| 枣强县| 龙南县|