[发明专利]一种软件复杂度计算方法有效
申请号: | 201910081440.7 | 申请日: | 2019-01-28 |
公开(公告)号: | CN109814924B | 公开(公告)日: | 2020-10-02 |
发明(设计)人: | 赵涌鑫;史建琦;黄滟鸿;李钦;王泊涵 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F8/77 | 分类号: | G06F8/77 |
代理公司: | 北京辰权知识产权代理有限公司 11619 | 代理人: | 刘广达 |
地址: | 200062 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 复杂度 计算方法 | ||
1.一种软件复杂度计算方法,其特征在于,包括:
获取软件中的构件包括的各个活动,其中,通过面向复杂度的建模语言抽象软件包括的构件对应的构件信息,从所述构件信息中识别所述构件包括的各个活动,所述活动由二元组组成,所述二元组包括所述活动对应的功能及执行所述功能产生的复杂度;
根据所述构件包括的各个活动,通过操作语义规则执行所述软件中的各个构件,得到所述软件的执行路径对应的路径信息;
根据所述软件的执行路径对应的路径信息,计算所述软件的复杂度。
2.根据权利要求1所述的方法,其特征在于,所述根据所述构件包括的各个活动,通过操作语义规则执行所述软件中的各个构件,得到所述软件的执行路径对应的路径信息,包括:
通过面向复杂度的建模语言确定所述软件中各个构件之间的构件组合关系;
通过所述操作语义规则,按照所述构件组合关系的执行规则运行所述软件;
记录运行所述软件过程中各个执行路径对应的路径信息,所述路径信息包括执行路径包括的各个活动。
3.根据权利要求1所述的方法,其特征在于,所述根据所述软件的执行路径对应的路径信息,计算所述软件的复杂度,包括:
计算所述执行路径对应的路径信息包括的各个活动的复杂度之和,将得到的和值作为所述执行路径下所述软件的动态复杂度。
4.根据权利要求1所述的方法,其特征在于,所述根据所述软件的执行路径对应的路径信息,计算所述软件的复杂度,包括:
分别计算每个执行路径对应的路径信息包括的各个活动的复杂度之和,得到每个执行路径对应的路径复杂度;
根据每个执行路径对应的路径复杂度,计算所述软件的平均复杂度。
5.根据权利要求4所述的方法,其特征在于,所述根据每个执行路径对应的路径复杂度,计算所述软件的平均复杂度,包括:
计算每个执行路径对应的路径复杂度之和,计算得到的和值与执行路径的总数目之间的比值,将所述比值作为所述软件的平均复杂度。
6.根据权利要求1-5任一所述的方法,其特征在于,所述方法还包括:
若所述软件的复杂度大于预设阈值,确定所述软件包括的各个构件组合的复杂度;
根据所述各个构件组合的复杂度,对所述软件的结构进行优化,直至所述软件的复杂度小于或等于所述预设阈值。
7.根据权利要求6所述的方法,其特征在于,所述根据所述各个构件组合的复杂度,对所述软件的结构进行优化,直至所述软件的复杂度小于或等于所述预设阈值,包括:
从所述各个构件组合中确定出复杂度最大的第一构件组合;
获取第二构件组合,所述第二构件组合的功能与所述第一构件组合的功能之间的相似度大于预设值,且所述第二构件的复杂度小于所述第一构件组合的复杂度;
将所述第一构件组合替换为所述第二构件组合;
重新计算所述软件的复杂度,若所述软件的复杂度仍大于所述预设阈值,则返回执行从所述各个构件组合中确定出复杂度最大的第一构件组合的操作,直至所述软件的复杂度小于或等于所述预设阈值。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
以图形化的形式显示所述软件的结构图,所述结构图包括所述软件中的各个构件及每个构件包括的各个活动。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在图形化显示的所述软件的结构图中,标注每个构件和/或每个活动在执行过程中所产生的复杂度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910081440.7/1.html,转载请声明来源钻瓜专利网。