发明名称 一种生成包图的Java程序包概要化方法
摘要 本发明提出了一种生成包图的Java程序包概要化方法,主要用于解决在软件开发和维护过程中,因为缺少文档而影响软件理解的问题,本发明涉及到的关键操作包括:(1)包标签确定,通过统计包中类的模式的分布情况,分析出包的标签;(2)内容描述,在已有包标签的基础上,对包中的重要的类进行提取,提取出类后对类中的方法进行过滤,针对方法签名生成描述性语言,并绘制在表格中;(3)包图的生成。根据包中类与外部包的调用关系,建立包与包之间的关系,生成包图,本发明能够更好地从系统中的代码文件的关系来理解整个系统程序,更便于人们从宏观上对系统有整体的理解,本发明可用于软件的开发和维护中。
申请公布号 CN103713909A 申请公布日期 2014.04.09
申请号 CN201410028973.6 申请日期 2014.01.22
申请人 扬州大学 发明人 孙小兵;姜力;李斌;文万志
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 南京苏科专利代理有限责任公司 32102 代理人 董旭东
主权项 一种生成包图的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):选取确定的关系生成最后的关系图,将关系图与包的内容描述表格综合起来,作为最后的包图。
地址 225009 江苏省扬州市开发区大学南路88号