首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于文本比较的多版本软件演化历史静态分析方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:东南大学

摘要:本发明公开了一种基于文本比较的多版本软件演化历史静态分析方法,该方法包括以下步骤:步骤1将软件多个不同版本的文件以时间为序排列,步骤2用计算程序文件内容余弦相似度的方法,步骤3获知程序文件内容的差异,获知方法变更表;步骤4获知文件变更表,步骤5获取度量数据,获知演化历史分析报告。该方法通过静态分析程序数据流和控制流结构,并利用软件程序结构分层计算;支持不同层次的并发计算,过程简便,成本低廉。

主权项:1.一种基于文本比较的多版本软件演化历史静态分析方法,其特征在于,该方法包括如下步骤:步骤1将软件多个不同版本的文件以时间为序排列,如A0,B0,C0,…,N0,从A0,B0开始,每次取出两相邻文件进行后续分析操作,直到所有相邻文件分析完毕,步骤2用计算程序文件内容余弦相似度的方法,匹配文件A和B中将要进行比较的程序文件,并将程序文件本地绝对路径分别存入两个集合FA和FB中,对于给定的整数集合下标i,FAi与FBi存放将要进行比较的第i对A和B中的程序文件本地绝对路径,|FA|=|FB|,A和B中未匹配的程序文件本地绝对路径分别存入集合UFA和UFB中;步骤3对于集合FA、FB,遍历i0i|A|,由FAi与FBi获知程序文件内容,用基于文本比较的方法,获知方法变更表;步骤4对于集合UFA,遍历j0j|UFA|,得到A中新增和删除的程序文件;对于集合UFB,遍历k0k|UFB|,得到B中新增和删除的程序文件,获知文件变更表;步骤5将A0,B0,C0,…,N0这N个文件中相邻文件分析完毕后,得到N-1张文件变更表和方法变更表,获取度量数据,获知演化历史分析报告,所述步骤2中匹配待比较程序文件的具体流程为:21对于A,B中文件名相同的程序文件,认为是匹配的程序文件,将其本地绝对路径存入集合FA与FB相同脚标对应位置;22对于A,B中文件名不同的程序文件,记整数集合下标分别为m和n,根据本地绝对路径Am和Bn获取程序文件源代码CAm和CBn,比较CAm和CBn的余弦相似度,若余弦相似度大于等于一个阈值,认为本地绝对路径Am和Bn对应的程序文件是匹配的,将其分别存入集合FA与FB中;23上述步骤21和22之后仍未匹配上的文件,认为是失配文件,分别组成集合UFA和UFB;所述步骤3中用基于文本比较的方法,获知程序文件内容差异的具体流程为,31对于集合FA、FB,遍历y0y|A|,由FAy与FBy获知程序文件内容,分别记为CAy与CBy,针对CAy与CBy中函数头相同的函数,认为是匹配的函数,将函数头分别存入集合KA与KB中,|KA|=|KB|;32针对CAi与CBi中函数头不同的函数,根据函数头CAy,r与CBy,d获知函数体RAy,r与RBy,d,若RAy,r与RBy,d的余弦相似度大于等于一个阈值,认为函数头CAy,r与CBy,d对应的函数是匹配的,将函数头分别存入集合KA与KB中,|KA|=|KB|;33上述步骤31和32之后仍未匹配上的函数,认为是失配函数,分别组成集合UKA与UKB;34对于集合UKA,遍历q0q|UKA|,得到A中新增和删除的函数数量以及函数头;对于集合UKB,遍历t0t|UKB|,得到B中新增和删除的函数数量以及函数头;所述步骤5中由文件变更表和方法变更表获取度量数据,获知演化历史分析报告的具体过程为,51可获知如下度量数据:NI:软件迭代次数;CN:文件变更次数;CL:源代码实体中发生改动的代码行数;TCL:源代码实体中发生改动的代码行总数;各度量指标的计算方式如下:1变更频率CF即为文件变更次数除以软件迭代总次数;CF=CNNI;2变更权重CW反应软件迭代过程中文件变更占总变更的比例,可以用文件代码变更规模除以总变更规模得到;CW=CLTCL;52基于变更频率和变更权重排序进行频繁变更文件分析,生成演化历史分析报告。

全文数据:

权利要求:

百度查询: 东南大学 一种基于文本比较的多版本软件演化历史静态分析方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。