[发明专利]一种基于面向对象软件代码的软件复杂网络模型构建方法有效
申请号: | 201710113704.3 | 申请日: | 2017-02-28 |
公开(公告)号: | CN106951365B | 公开(公告)日: | 2020-04-03 |
发明(设计)人: | 艾骏;刘洋;王佳明;王菲;苏文翥;杨益文 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 祗志洁 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 面向 对象 软件 代码 复杂 网络 模型 构建 方法 | ||
1.一种基于面向对象软件代码的软件复杂网络模型构建方法,其特征在于,实现步骤如下:
步骤1:构建软件层,具体是:确定目标软件,获取目标软件所有版本的源代码;
步骤2:构建数据层,具体是:从软件源代码中提取直接存在的基本实体及基本实体关系,形成目标软件的数字化软件形式,基本实体作为软件元素,并在分析同一软件的不同版本时为数字化软件元素及元素关系添加版本演化信息;版本演化信息包含基本实体与实体关系在特定版本下的存在信息和版本的修改信息;
步骤3:构建网络层,具体是:确定所构建软件复杂网络所要表达的软件特征,在数字化软件的基础上,利用组网规则构建软件复杂网络;
所述的步骤3中,基于组网规则构建软件复杂网络的过程包括:
(3.1)依据软件复杂网络组网原则中软件信息与网络节点的映射关系,在数据化软件中提取复合映射的结构,作为构建软件复杂网络的节点要素;所述的软件信息包括基本实体和实体关系;
(3.2)在所提取的软件信息的基础上,根据组网原则中软件信息与网络边的映射关系,从数据化软件中提取复合映射的结构,作为构建软件复杂网络的边要素,同时依据组网原则中的软件代码版本信息,更新组网过程所使用的软件代码实体及实体关系信息,并为软件代码实体与实体关系信息添加演化信息;
(3.3)在所提取的实体和实体关系基础上,将各节点要素作为网络节点,将两节点之间的边要素整合成为两节点之间的边,并依据软件复杂网络目标用元素的权重表示部分软件特征;
步骤4:构建组织层,具体是:在软件复杂网络的基础上,利用表示规则构建复杂网络的分析展示。
2.根据权利要求1所述的基于面向对象软件代码的软件复杂网络模型构建方法,其特征在于,所述的步骤2中,提取的基本实体包括类型结构、函数、变量和宏,基本实体的属性包括作用域、访问权限和实体定义段;提取的基本实体关系包括变量赋值变量、变量调用函数、变量指代函数、变量类型、函数使用变量、函数调用函数、函数重写关系、函数返回值类型、函数参数类型、函数异常类型抛出、类基于模板、类型继承、实体相互包含、以及宏类型定义;其中,函数使用变量分为两种,一种是函数使用变量作为“左值”的关系,一种是函数使用变量作为“右值”的关系;函数调用函数分为两种,一种是函数的顺序语句中调用其他函数的关系,一种是函数的条件或循环语句中调用其他函数的关系。
3.根据权利要求1所述的基于面向对象软件代码的软件复杂网络模型构建方法,其特征在于,所述的步骤2的数据化软件中,基本实体的定义包含名称、作用域、访问权限、文件位置、软件实体的接入关系与引出关系、以及软件实体演化信息;名称为主键且全局唯一;其中作用域、访问权限、文件位置和软件实体演化信息都为含有版本信息的集合;软件实体演化信息为基本实体的版本与内容摘要的数据对。
4.根据权利要求1或2或3所述的基于面向对象软件代码的软件复杂网络模型构建方法,其特征在于,所述的步骤2,包括:
扫描软件代码,根据基本实体类型,获得软件中所有的基本实体的集合,构成数据化软件的实体集合;
遍历所有的基本实体,根据实体的上下文,确定与该实体相关的实体,获得实体之间的关系集合,构成数据化软件的关系集合;
根据软件基本实体与实体关系的提取结果,形成基本实体、实体关系与软件代码的映射关系;
依据软件代码版本信息及版本信息间对比,为软件的基本实体与实体关系添加版本信息;
使用利于相关关系挖掘的数据形式记录软件信息提取过程结构,得到数字化软件;当软件存在不同版本时,将数字化软件的改动以版本为标识进行合并记录,使数据化软件具备软件的演化信息;数据化软件存储了可追溯到软件代码的基本实体和基本实体关系,以及基本实体和基本实体关系在不同版本间的增加、删除及修改信息。
5.根据权利要求1所述的基于面向对象软件代码的软件复杂网络模型构建方法,其特征在于,所述的步骤3中的组网规则,是指根据所构建软件复杂网络所要表达的软件特征,完成用于不同数字化软件的软件代码基本实体与软件复杂网络元素之间一对一或多对一的映射,同时完成软件代码单一版本及多个版本演化信息在网络节点及边中的体现,使软件复杂网络同时具备软件特征与网络特征。
6.根据权利要求1中所述的一种基于面向对象软件代码的软件复杂网络模型构建方法,其特征在于,所述步骤4中的表示规则,是指利用图形化方法直接反应出软件复杂网络的软件信息及网络信息,构建可重现的软件复杂网络呈现形式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710113704.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种塑胶原料混合搅拌设备
- 下一篇:一种印花粘合剂制备用搅拌设备