[发明专利]一种基于程序切片的功能可复用性度量方法有效
申请号: | 201611019438.X | 申请日: | 2016-11-18 |
公开(公告)号: | CN106980495B | 公开(公告)日: | 2020-04-14 |
发明(设计)人: | 李必信;王桐;万晨 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F8/36 | 分类号: | G06F8/36 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 杨晓玲 |
地址: | 211189 江*** | 国省代码: | 江苏;32 |
权利要求书: | 暂无信息 | 说明书: | 暂无信息 |
摘要: | 本发明提出一种基于程序切片的功能可复用性度量方法,该方法包括以下步骤:对源程序构造程序依赖图,以功能接口所在的代码行为切片准则计算切片结果,每个切片结果为关联对应功能模块的语句。基于切片结果构建功能模块的度量指标,包括:功能模块的群聚度、内聚度、圈复杂度、公共方法数、最大嵌套层数以及耦合度均值。根据度量指标构建功能模块可复用性度量值计算公式,获取功能模块的可复用性相对值,从而筛选出可复用性较高的功能模块。 | ||
搜索关键词: | 一种 基于 程序 切片 功能 可复用性 度量 方法 | ||
【主权项】:
一种基于程序切片的可复用性度量方法,其特征在于,该方法包括以下步骤:步骤1:构建系统依赖图,并将系统依赖图存入依赖图知识库;所述系统依赖图包括语句之间的依赖关系和变量之间的依赖关系,所述依赖关系包括控制依赖和数据依赖;步骤2:对源程序进行遍历,提取源程序中所有功能模块的功能接口代码;将功能接口代码作为对应功能模块的起始语句,并将每个起始语句所在的文件路径和行号作为二元组存入接口知识库中;步骤3:将步骤2中提取到的功能接口代码作为提取各个功能模块的切片准则计算源程序的切片结果,并将切片准则和切片结果相对应的存入切片知识库中;每个切片结果对应一个功能模块,切片结果中包括对应功能模块中与切片准则相关联的语句;步骤4:根据步骤2中提取到的功能接口代码和步骤3中得到的切片结果分别构建用于评价各功能模块可复用性的度量指标,并计算各功能模块在度量指标上的度量值;对于任意一个功能模块,其度量指标为该模块的群聚度、内聚度、圈复杂度、公共方法数、最大嵌套层数以及耦合度均值,所述耦合度均值为该功能模块与其他功能模块的耦合度平均值;步骤5:根据步骤4构建出的度量指标,计算每一项度量指标的度量值总和为:式中,Valueij表示功能模块i在度量指标j中的度量值;步骤6:构建功能模块可复用性度量值计算公式为:RelativeValue(i)=Clustering(i)per+Cohesion(i)per‑Complexity(i)per‑SumMethod(i)per‑MaxNextingLayer(i)per‑Coupling(i)per式中,RelativeValue(i)表示功能模块i的可复用性度量值,Clustering(i)per表示功能模块i的群聚度占群聚度总和的百分比,Cohesion(i)per表示功能模块i的内聚度占内聚度总和的百分比,Complexity(i)per表示功能模块i的圈复杂度占圈复杂度总和的百分比,SumMethod(i)per表示功能模块i的公共方法数占公共方法数总和的百分比,MaxNextingLayer(i)per表示功能模块i的最大嵌套层数占最大嵌套层数总和的百 分比,Coupling(i)per表示功能模块i的耦合度均值占耦合度均值总和的百分比;步骤7:根据功能模块可复用性度量值选取功能模块,复用值越大,表示对应功能模块的可复用性越高。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611019438.X/,转载请声明来源钻瓜专利网。