[发明专利]一种软件系统演化的分析方法和装置在审
申请号: | 201710279321.3 | 申请日: | 2017-04-25 |
公开(公告)号: | CN106970803A | 公开(公告)日: | 2017-07-21 |
发明(设计)人: | 胡昌振;单纯;朱洪进;马锐;喻梓峻 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F11/36 |
代理公司: | 北京市隆安律师事务所11323 | 代理人: | 权鲜枝,何立春 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 系统 演化 分析 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种软件系统演化的分析方法和装置。
背景技术
目前在世界范围内的软件系统演化方法主要分为动态软件系统演化和静态软件系统演化方法两大类,其中动态软件系统演化方法指的是软件系统在运行期间的演化,它具有软件系统不会出现暂时失效的优点,但是其中的技术方案由于涉及到软件系统的状态迁移问题,因此,相比于静态软件系统演化方法来说技术上实现比较困难。静态软件系统演化方法指的是软件系统在停机状态下的演化,即软件版本的升级。相对来说实现起来比较容易,不需要考虑软件系统的状态迁移以及处理活动的进程。
现有的软件系统静态演化分析方法主要集中在对软件源代码的度量层次上,有基于Petri网的软件系统演化过程,描述了软件系统的演化过程,并提出了软件系统演化过程中的活性判断及优化算法。基于代码复杂度的软件系统演化评估与分析,分析了Java代码的McCabe圈复杂度和Halstead复杂度,通过对软件系统的度量发现其中复杂度较高的模块,并且分析随着软件系统版本的升级软件系统复杂度的变化规律,对引起软件系统复杂度变化的类和方法进行定位,从而知道软件系统演化过程。
但是,现有的软件系统静态演化分析方法只能从软件系统的局部结构进行演化分析,不能从整体上对软件结构的演化进行掌握,并且随着软件规模的增大,现有的软件系统演化分析方法效率较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的软件系统演化的分析方法和相应的装置。
依据本发明的一个方面,提供了一种软件系统演化的分析方法,对于给定软件系统的第一版本软件,获取所述第一版本软件的代数构件表达式,具体包括:
以所述第一版本软件中的信息资源为节点,以所述第一版本软件中信息资源之间的关联关系为边,构建所述第一版本软件的第一软件结构拓扑图;
根据代数拓扑复形原理,将所述第一软件结构拓扑图中的每一个节点表述成一个代数构件,并获取所述代数构件之间的关系信息;
将所述第一软件结构拓扑图转化为以所述代数构件为节点,以所述关系信息为边的第二软件结构拓扑图,并将所述第二软件结构拓扑图分解为代数构件表达式;其中,所述代数构件表达式由所述第二软件结构拓扑图中的代数构件和所述关系信息组成;
输出所述第一版本软件的代数构件表达式。
可选地,所述方法进一步包括:对于给定软件系统的不同版本软件,获取所述不同版本软件的代数构件表达式;
比较所述不同版本软件的代数构件表达式,获得所述给定软件系统的演化信息,根据所述演化信息总结所述给定软件系统的演化规律,并输出所述演化信息和所述演化规律。
可选地,所述以所述第一版本软件中的信息资源为节点,以所述第一版本软件中的关联关系为边,构建所述第一版本软件的第一软件结构拓扑图包括:
针对所述第一版本软件中的面向过程程序语言,以所述第一版本软件的源代码中的方法或结构体作为节点,以所述方法和/或所述结构体之间的调用和包含关系为边,构建所述软件系统的第一软件结构拓扑图;
针对所述软件系统中的面向对象程序语言,以所述软件系统的源代码中的类为节点,以类和类之间的继承、泛化、关联、依赖或使用关系为边,构建所述软件系统的第一软件结构拓扑图。
可选地,所述将所述第一软件结构拓扑图中的每一个节点表述成一个代数构件包括:
将所述软件结构拓扑图中的每一个节点表述成一个代数构件六元组形式;所述六元组中的元素包括:逻辑行为集合、连接关系集合、控制器、内部数据、聚合运算、检测器。
可选地,所述将所述第二软件结构拓扑图分解为代数构件表达式包括:
将所述第二软件结构拓扑图自上向下粗化分解得到第一代数构件表达式;
将所述第二软件结构拓扑图自左向右精化分解得到第二代数构件表达式;
将所述第一代数构件表达式和所述第二代数构件表达式进行集成,获得所述第一版本软件的代数构件表达式。
依据本发明的另一个方面,提供了一种软件系统演化的分析装置,所述装置用于对于给定软件系统的第一版本软件,获取所述第一版本软件的代数构件表达式,具体包括:
构建单元,用于以所述第一版本软件的信息资源为节点,以所述第一版本软件中信息资源之间的关联关系为边,构建所述第一版本软件的第一软件结构拓扑图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710279321.3/2.html,转载请声明来源钻瓜专利网。