国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種逆向提取Java軟件程序類圖的方法

      文檔序號:6513731閱讀:288來源:國知局
      一種逆向提取Java軟件程序類圖的方法
      【專利摘要】本發(fā)明屬于一種軟件測試【技術(shù)領(lǐng)域】,特別涉及一種軟件詳細設(shè)計功能測試及提取軟件程序類圖的方法。其技術(shù)方案是:一種逆向提取Java軟件程序類圖的方法,包括步驟:A.靜態(tài)分析程序類圖;B.選定骨干類作為抽象的基準點,搜索骨干類之間的路徑;C.對每一條路徑,從路徑的任意一端開始,對存在具有類-關(guān)系-類-關(guān)系-類這樣性質(zhì)的子路徑與本發(fā)明列舉的57條類圖抽象規(guī)則相匹配的子路徑進行抽象;D.若出現(xiàn)兩個骨干類之間抽象后存在多種關(guān)系時,按規(guī)定的優(yōu)先級抽象后的路徑進行合并,得到抽象類圖。本發(fā)明提供了一種逆向提取Java程序類圖的方法,達到軟件的代碼實現(xiàn)與其詳細設(shè)計之間的一致性驗證的目的。
      【專利說明】一種逆向提取Java軟件程序類圖的方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于一種軟件測試【技術(shù)領(lǐng)域】,特別涉及一種軟件詳細設(shè)計功能測試及提取軟件程序類圖的方法。
      【背景技術(shù)】
      [0002]目前的軟件審查工具,主要側(cè)重于對源代碼的自動分析、對代碼缺陷的自動檢測,某種程度上忽視了程序是否符合軟件詳細設(shè)計的功能模塊劃分,程序結(jié)構(gòu)是否合理的檢驗,且對軟件詳細設(shè)計及其編程實現(xiàn)的審查,完全依賴于有經(jīng)驗的軟件開發(fā)人員,尚未看到可用來檢查程序結(jié)構(gòu)是否符合設(shè)計要求的有效方法和支持工具。例如,為了建立代碼與詳細設(shè)計之間的對應關(guān)系,需要人工在程序代碼中標注各段代碼與軟件詳細設(shè)計文檔中的定義的功能點之間的對應關(guān)系。盡管在模型驅(qū)動的軟件開發(fā)過程中,軟件的詳細設(shè)計可以直接轉(zhuǎn)換成程序代碼,但是程序代碼在軟件開發(fā)的多次迭代中可能發(fā)生變化,因此,對軟件的詳細設(shè)計與源代碼之間進行審查依然是必要的,以確認軟件實現(xiàn)是否符合設(shè)計要求。
      [0003]由于在軟件開發(fā)過程中,類與類之間關(guān)系的實現(xiàn)有多種方式,因此會存在這樣的現(xiàn)象:軟件設(shè)計模型中類A和類B之間存在著關(guān)聯(lián)關(guān)系或者是依賴關(guān)系,而程序?qū)崿F(xiàn)時類A和類B不存在直接的關(guān)系,而用其他類來實現(xiàn)類A與類B之間的關(guān)系。也就是說,設(shè)計類圖與程序類圖之間會相差很大,為了達到對軟件的詳細設(shè)計與源代碼之間進行審查,需要一種提取抽象程序類圖的方法,以得到更簡化、更高抽象層次的程序類圖。

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

      [0004]本發(fā)明的目的是:提供一種逆向提取Java程序類圖的方法,以達到軟件的代碼實現(xiàn)與其詳細設(shè)計之間的一致性驗證。
      [0005]本發(fā)明的技術(shù)方案是:一種逆向提取Java軟件程序類圖的方法,其特征是包括以下步驟:
      [0006]A.基于JDT的API接口,分析.class文件,獲取Java程序的靜態(tài)信息,提取類之間的繼承、關(guān)聯(lián)、聚合、依賴關(guān)系以及類與接口之間實現(xiàn)、關(guān)聯(lián)、聚合、依賴關(guān)系;
      [0007]B.選定體現(xiàn)主要流程的類作為骨干類,并將其作為抽象的基準點,搜索任意兩個骨干類之間的路徑;
      [0008]C.對B步驟得到的每一條路徑,從路徑的任意一端開始,檢查是否存在具有類-關(guān)系-類-關(guān)系-類這樣性質(zhì)的子路徑與本步驟列舉的57條類圖抽象規(guī)則相匹配,若匹配,則用抽象規(guī)則的結(jié)果代替這條子路徑;若不匹配,則跳過當前的類結(jié)點和關(guān)系結(jié)點,從下一個類結(jié)點開始遍歷;直到不存在可以轉(zhuǎn)換的路徑,除此之外,骨干類不能被抽象掉;類圖抽象規(guī)則包括:
      [0009]1)Class1-GeneralizationRight-Class2-GeneralizationRight-Class3==> Class1-GeneralizationRight-Class3;
      2)Classl-GeneralizationRight-Class2-DependencyRight_Class3=> Classl—DependencyRight_Class3;
      3)Class1-GeneralizationRight-Class2-AssociationRight~Class3=? Class1-AssociationRight-Class3;
      4)Classl-GeneralizationRight_Class2-AggregationRight-Class3=> Classl-AggregationRight—Class3;
      5)Class1-GeneralizationRight-Class2-AssociationLeft-Class3=^ Class1-AssociationLeft-Class3;
      6)Class1-GeneralizationRight-Class2-DependencyLeft-Class3=> Classl—DependencyLeft_Class3;
      7)Classl-GeneralizationRight-Class2-AggregationLeft-Class3=> Classl—AggregationLeft-Class3;
      8)Class1-GeneralizationRight_Class2-Association-Class3 =^Class1-Association-Class3;
      9)Class1-GeneralizationLeft-Class2-DependencyRight-Class3=>
      Classl-DependencyRight-Class3;
      `10)Class1-GeneralizationLeft-Class2-AssociationRight-Class3=^ Classl—AssociationRight-Class3;
      11)Classl—GeneralizationLeft-Class2-Aggregati0nRight_Class3=? Classl- AggregationRight—Class3;
      12)Class1-GeneralizationLeft-Class2-GeneralizationLeft~Class3=^ Classl- GeneralizationLeft-Class3;
      [0010]
      【權(quán)利要求】
      1.一種逆向提取Java軟件程序類圖的方法,其特征是包括以下步驟: A.基于JDT的API接口,分析.class文件,獲取Java程序的靜態(tài)信息,提取類之間的繼承、關(guān)聯(lián)、聚合、依賴關(guān)系以及類與接口之間實現(xiàn)、關(guān)聯(lián)、聚合、依賴關(guān)系; B.選定體現(xiàn)主要流程的類作為骨干類,并將其作為抽象的基準點,搜索任意兩個骨干類之間的路徑; C.對B步驟得到的每一條路徑,從路徑的任意一端開始,檢查是否存在具有類-關(guān)系-類-關(guān)系-類這樣性質(zhì)的子路徑與本步驟列舉的57條類圖抽象規(guī)則相匹配,若匹配,則用抽象規(guī)則的結(jié)果代替這條子路徑;若不匹配,則跳過當前的類結(jié)點和關(guān)系結(jié)點,從下一個類結(jié)點開始遍歷;直到不存在可以轉(zhuǎn)換的路徑,除此之外,骨干類不能被抽象掉;類圖抽象規(guī)則包括:
      2.根據(jù)權(quán)利要求1所述的逆向提取Java軟件程序類圖的方法,其特征是步驟B所述的選定骨干類的方法為: 借助用例模型:在業(yè)務領(lǐng)域?qū)<业闹笇抡业脚c用例圖或者活動圖對應的那些框架片斷,選為骨干類; 或者基于業(yè)務實體的層次分析:從能與業(yè)務實體對應起來的實體類開始,按照類間關(guān)系自底向上根據(jù)構(gòu)件依賴關(guān)系標識層次,將處于較高層次上的那些類選為骨干類; 或者軟件設(shè)計人員或測試人員根據(jù)需要自定義骨干類。
      【文檔編號】G06F9/45GK103593222SQ201310451992
      【公開日】2014年2月19日 申請日期:2013年9月29日 優(yōu)先權(quán)日:2013年9月29日
      【發(fā)明者】于莉莉, 張幼春, 盧玲, 高智杰, 祝宇, 邱薇, 劉曉杰, 呂益楠 申請人:中國人民解放軍第二炮兵裝備研究院科研試驗中心
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1