• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>
    當前位置: 首頁 > 專利查詢>揚州大學專利>正文

    一種生成包圖的Java程序包概要化方法技術

    技術編號:9896599 閱讀:205 留言:0更新日期:2014-04-09 22:42
    本發明專利技術提出了一種生成包圖的Java程序包概要化方法,主要用于解決在軟件開發和維護過程中,因為缺少文檔而影響軟件理解的問題,本發明專利技術涉及到的關鍵操作包括:(1)包標簽確定,通過統計包中類的模式的分布情況,分析出包的標簽;(2)內容描述,在已有包標簽的基礎上,對包中的重要的類進行提取,提取出類后對類中的方法進行過濾,針對方法簽名生成描述性語言,并繪制在表格中;(3)包圖的生成。根據包中類與外部包的調用關系,建立包與包之間的關系,生成包圖,本發明專利技術能夠更好地從系統中的代碼文件的關系來理解整個系統程序,更便于人們從宏觀上對系統有整體的理解,本發明專利技術可用于軟件的開發和維護中。

    【技術實現步驟摘要】
    一種生成包圖的Java程序包概要化方法
    本專利技術涉及一種軟件概要化方法,特別涉及一種Java程序包概要化方法,屬于軟件工程領域。
    技術介紹
    通常情況下,在軟件開發和維護過程中,因為缺少文檔和注釋等原因,開發人員和維護人員不得不需要去閱讀、瀏覽大量的源代碼,這無疑會降低人們的工作效率。研究者們針對軟件系統的程序理解投入了大量的精力,其中有很多有效的程序理解方法。比如程序依賴關系的分析,程序的聚類等,而這些方法通常缺乏對程序功能特征方面的理解。另外,目前出現了一種比較流行的程序概要化技術,它是通過對一個軟件系統方法的種類和分布進行分析,自動對一段代碼生成簡單的摘要,這樣可輔助人員對程序進行理解。當前,程序概要化技術基本都是在較小的程序中的方法粒度層次進行,但是程序中某個方法通常是軟件功能的某個很小的部分,開發人員需要對每個方法的摘要進行分析才能去分析類層次或者更大的包層次的程序的功能,從而不利于開發人員很快地對整個軟件進行理解。因此,方法層次的概要化技術還沒有在實際開發中得到很廣的應用。
    技術實現思路
    本專利技術的目的是提供一種生成包圖的Java程序包概要化方法,用于解決在軟件開發和維護過程中,因為缺少文檔而影響工作效率的問題,從而提高在無開發文檔的情況下的軟件系統理解,本專利技術能夠更好地從系統中的代碼文件的關系來理解整個系統程序,更便于人們從宏觀上對系統有整體的理解。本專利技術的目的是這樣實現的:一種生成包圖的Java程序包概要化方法,其特征在于,包括以下步驟:步驟1):根據確定的類的功能分類,建立包的類別分析表格;步驟2):分析包中內容確定標簽:a)如果包中含有接口;使用公式|implement|/|classes|>=θ,implement表示包中實現接口功能的類的數量,classes表示包中所有的類的數量,θ表示一個預定值,所述θ界于30%至100%之間,接口類標簽即為包的最終標簽,并且直接跳轉至步驟3);b)如果包中不含有接口,或者接口數量不滿足公式,達不到預定值;根據步驟1)中的表格,分析包中不同類別的類所占包中所有類的比例,并對分析結果降序排列,通過比較占最大比例的類與所有其他類之間的比例差值來確定最終包的主標簽及子標簽,主標簽是占最大比例的類,子標簽為類的類別名稱,同時根據標簽篩選內容;b-1)根據包標簽中的子標簽,選擇包中的與該標簽相符合的類,并進行降序排列,設定閾值k=30%,對排序結果進行提??;b-2)再將上述提取的結果再一次進行關鍵內容提取。對各個類所對應的不同類別的方法進行提取,同時限定每個類中選出的方法的數量小于等于30%;b-3)再將選出的方法的簽名提取出來與類別名稱結合生成包的內容描述表格;步驟3):分析包與包之間的關系;3-1)先對每個包中的成員根據訪問權限進行過濾,即去除掉private權限和protected權限的成員,再根據已確定的包的標簽進行排序,排序的規則是根據包與包之間關系的復雜程度降序排列;3-2)分析包與包之間的依賴關系,建立依賴關系分析表;如果目標包中使用了外部包的類中的成員,就會對表格中相應的數據進行增加,在對目標包分析結束后,一個完整的包間調用關系表就會生成;3-3)分析包與包之間的泛化關系,建立泛化關系分析表;如果存在目標包中類繼承于外部包中的類,就會對表格中相應的數據進行增加。在對目標包分析結束后,一個完整的包間泛化關系表就會生成;3-4)利用公式p=|classselected|/|total|來確定包與包之間的關系,classselected表示在分析關系時滿足相應關系的類的數量,total表示為所述外部包中所有類的數量,按比例關系降序原則進行排列,選取滿足條件區間的包間建立關系,其余的就不建立關系;設定p>=50%為第一條件區間,如果p滿足p>=50%,將包與包建立關系;設定30%<=p<50%為第二條件區間,如果p不滿足第一條件區間,則使用第二條件區間判定,將滿足第二條件區間的將所有包按從高到底排序后,選擇一半數量的包建立聯系,如果數量為奇數,則對數量一半取整作為結果;步驟4):選取確定的關系生成最后的關系圖,將關系圖與包的內容描述表格綜合起來,作為最后的包圖。本專利技術使用時,主要是利用粗粒度的Java包層次上的概要化對程序進行理解,在對包進行概要化分析時,本專利技術不僅關注于對單一代碼段的程序理解,還會從整個軟件系統層面來分析該代碼段與系統中其他代碼段的聯系,最后生成包圖來描述這個系統。該方法可以讓開發者更快地理解整個系統,尤其是在沒有文檔的情況下,不用再去為了某個功能模塊去逐個瀏覽、查找單個可能相關的代碼文件。與現有技術相比,本專利技術的有益效果在于,本專利技術不需要開發人員閱讀太多代碼就能對整個軟件系統有一個宏觀的理解,并能幫助他們快速定位到需要的代碼模塊;本專利技術提出結合文字、表等,利用包圖的可視化表示更能有效、直接地幫助開發人員建立系統的功能方面的依賴關系圖;該專利技術的概要化方法不僅依賴于包層次的元素進行摘要的生成,還結合包類的類內和類外的一些關系分析,利用包圖生成更加準確的包的摘要(即包名和包圖)。本專利技術可用于軟件的開發和維護中。附圖說明圖1為最后生成示例包關系圖。圖2為本專利技術的工作流程圖。具體實施方式下面結合具體實施例對本專利技術作進一步說明。本專利技術的工作流程如圖2所示。步驟1):根據確定的類的功能分類,建立包的類別分析表格。建立表1,開始對軟件系統中的逐個包進行分析。表1。步驟2):分析包中內容確定標簽。a)如果包中含有接口,采用公式|implement|/|classes|>=θ;在包M中包含三個接口和10個類,這10個類中有8個是實現了那三個接口的,即implement=8,classes=10,θ設定為60%,因為8/10*100%=80%>60%.故可認為該包M標簽定為組件包,同時對該包的分析就已經到此結束,并且直接跳轉至步驟3),包M的最終標簽為Component_Component,此時包M的類別分析表格如表2所示。表2。b)如果包中不含有接口,或者接口數量不滿足公式,達不到預定值;根據步驟1)中的表格,分析包中不是接口類別的類所占包中所有類的比例,并對分析結果降序排列,通過比較占最大比例的類與所有其他類之間的比例差值來確定最終包的主標簽及子標簽,主標簽是占最大比例的類的類別名稱,子標簽為類的類別名稱,同時根據標簽篩選內容。示例如下:包F不能滿足組件包的條件,對包F中的類進行分析,包F包含有Entity類型的類占41%,DataProvider類型的類占36%,其余的為未確定的,這時Entity作為包中所占比例最大的部分,在包標簽中要有所體現,同時最大比例以下5%范圍內的類型也應該作為同等重要的內容在標簽中體現,所以包F的最終標簽為Entity_Entity&Dataprovider,此時包F的類別分析表格如表3所示。表3。b-1)根據包標簽中的子標簽,選擇包中的與該標簽相符合的類,并進行降序排列,設定閾值k=30%,對排序結果進行提取。包F的標簽確定為Entity_Entity&Dataprovider;其中有Entity類5個,Dataprovider類4個,分別統計兩部分本文檔來自技高網...
    一種生成包圖的Java程序包概要化方法

    【技術保護點】
    一種生成包圖的Java程序包概要化方法,其特征在于,包括以下步驟:步驟1):根據確定的類的功能分類,建立包的類別分析表格;步驟2):分析包中內容確定標簽:a)如果包中含有接口;使用公式|implement|/|classes|>=θ,implement表示包中實現接口功能的類的數量,classes表示包中所有的類的數量,θ表示一個預定值,所述θ界于30%至100%之間,接口類標簽即為包的最終標簽,并且直接跳轉至步驟3);b)如果包中不含有接口,或者接口數量不滿足公式,達不到預定值;根據步驟1)中的表格,分析包中不同類別的類所占包中所有類的比例,并對分析結果降序排列,通過比較占最大比例的類與所有其他類之間的比例差值來確定最終包的主標簽及子標簽,主標簽是占最大比例的類,子標簽為類的類別名稱,同時根據標簽篩選內容;b?1)根據包標簽中的子標簽,選擇包中的與該標簽相符合的類,并進行降序排列,設定閾值k=30%,對排序結果進行提??;b?2)再將上述提取的結果再一次進行關鍵內容提??;對各個類所對應的不同類別的方法進行提取,同時限定每個類中選出的方法的數量小于等于30%;b?3)再將選出的方法的簽名提取出來與類別名稱結合生成包的內容描述表格;步驟3):分析包與包之間的關系;3?1)先對每個包中的成員根據訪問權限進行過濾,即去除掉private權限和protected權限的成員,再根據已確定的包的標簽進行排序,排序的規則是根據包與包之間關系的復雜程度降序排列;3?2)分析包與包之間的依賴關系,建立依賴關系分析表;如果目標包中使用了外部包的類中的成員,就會對表格中相應的數據進行增加,在對目標包分析結束后,一個完整的包間調用關系表就會生成;3?3)分析包與包之間的泛化關系,建立泛化關系分析表;如果存在目標包中類繼承于外部包中的類,就會對表格中相應的數據進行增加,在對目標包分析結束后,一個完整的包間泛化關系表就會生成;3?4)利用公式p=|classselected|/|total|來確定包與包之間的關系,classselected表示在分析關系時滿足相應關系的類的數量,total表示為所述外部包中所有類的數量,按比例關系降序原則進行排列,選取滿足條件區間的包間建立關系,其余的就不建立關系;設定p>=50%為第一條件區間,如果p滿足p>=50%,將包與包建立關系;設定30%<=p<50%為第二條件區間,如果p不滿足第一條件區間,則使用第二條件區間判定,將滿足第二條件區間的將所有包按從高到底排序后,選擇一半數量的包建立聯系,如果數量為奇數,則對數量一半取整作為結果;步驟4):選取確定的關系生成最后的關系圖,將關系圖與包的內容描述表格綜合起來,作為最后的包圖。...

    【技術特征摘要】
    1.一種生成包圖的Java程序包概要化方法,其特征在于,包括以下步驟:步驟1):根據確定的類的功能分類,建立包的類別分析表格;步驟2):分析包中內容確定標簽:a)如果包中含有接口;使用公式|implement|/|classes|>=θ,implement表示包中實現接口功能的類的數量,classes表示包中所有的類的數量,θ表示一個預定值,所述θ界于30%至100%之間,接口類標簽即為包的最終標簽,并且直接跳轉至步驟3);b)如果包中不含有接口,或者接口數量不滿足公式,達不到預定值;根據步驟1)中的表格,分析包中不同類別的類所占包中所有類的比例,并對分析結果降序排列,通過比較占最大比例的類與所有其他類之間的比例差值來確定最終包的主標簽及子標簽,主標簽是占最大比例的類的類別名稱,子標簽為類的類別名稱,同時根據標簽篩選內容;b-1)根據包標簽中的子標簽,選擇包中的與該標簽相符合的類,并進行降序排列,設定閾值k=30%,對排序結果進行提?。籦-2)再將上述提取的結果再一次進行關鍵內容提取;對各個類所對應的不同類別的方法進行提取,同時限定每個類中選出的方法的數量小于等于30%;b-3)再將選出的方法的簽名提取出來與類別名稱結合生成包的內容描述表格;步驟3):分析包與包之間的關系;3-1)先對每個包中的成員根據訪問權限進行過濾,即去除掉pri...

    【專利技術屬性】
    技術研發人員:孫小兵姜力李斌,文萬志,
    申請(專利權)人:揚州大學,
    類型:發明
    國別省市:江蘇;32

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲中文久久精品无码1| 无码A级毛片免费视频内谢| 亚洲AV无码片一区二区三区| 无码人妻精品一区二区三区不卡 | 欲色aV无码一区二区人妻| 无码任你躁久久久久久老妇App | 宅男在线国产精品无码| 精品无码AV无码免费专区| 亚洲无码黄色网址| 少妇人妻偷人精品无码AV| 亚洲av无码一区二区乱子伦as| 国产精品无码久久久久久久久久| 无码中文人妻视频2019| 日韩AV无码一区二区三区不卡毛片| 亚洲熟妇无码AV不卡在线播放| 亚洲AV永久青草无码精品| 五月天无码在线观看| 亚洲最大天堂无码精品区| 人妻中文字幕无码专区| 在线观看片免费人成视频无码| 亚洲AV无码乱码精品国产| 成人年无码AV片在线观看| 精品无码国产自产在线观看水浒传 | 久久久久亚洲AV无码麻豆| 国产成年无码AV片在线韩国| 亚洲av无码一区二区三区四区| 亚洲va成无码人在线观看| 人妻无码中文久久久久专区| 综合无码一区二区三区| 国产亚洲?V无码?V男人的天堂| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲AV无码片一区二区三区| 精品人妻无码一区二区三区蜜桃一| 亚洲av永久无码精品天堂久久| 无码性午夜视频在线观看| 无码人妻精品一区二区三区66| 亚洲av无码精品网站| 色综合久久无码中文字幕| 乱人伦中文无码视频在线观看| 亚洲无码一区二区三区| 无码日本电影一区二区网站|