[发明专利]一种采用聚类方式进行软件重构的方法无效
| 申请号: | 201310521139.6 | 申请日: | 2013-10-27 |
| 公开(公告)号: | CN103593182A | 公开(公告)日: | 2014-02-19 |
| 发明(设计)人: | 曹阳;王永会;王守金;李孟歆 | 申请(专利权)人: | 沈阳建筑大学 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 沈阳东大专利代理有限公司 21109 | 代理人: | 梁焱 |
| 地址: | 110168 辽*** | 国省代码: | 辽宁;21 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 采用 方式 进行 软件 方法 | ||
技术领域
本发明属于软件工程技术领域,具体是一种采用聚类方式进行软件重构的方法。
背景技术
重构是一个程序转换的过程,该过程改进了软件需求的实现,且保持程序行为不变。软件在其生命周期内,不可避免的发生变化,这些变化可能是用户需求的改变,也可能为了纠正软件本身的错误。为了降低软件的维护成本,延长其使用寿命,软件维护人员经常面临软件重构的问题。但随着软件系统的规模和复杂度增加,系统各个功能模块之间的相互影响变得更加复杂。特别是那些缺少文档的遗留系统,如何进行重构,是当前软件维护急需解决的问题。
为了解决这一问题,专利号为200810163396.6的“基于语法重构的代码级构件组装方法”,其在将构件作为具有相对独立功能和可复用的软件模块基础上,公开了一种软件工程技术领域内,基于语法重构的代码级构件组装方法。该方法从程序语言的语法规范中分离出抽象语法和具体语法,并建立符合所述新语法规范的代码级构件,然后进行构件组装,使软件复用时具有语言独立的优点。但这种重构只是代码级的,缺乏对程序结构的改善。特别是,在系统中存在大量基于功能的核心业务关注点,其逻辑关系具有强弱之分,且这些核心业务关注点可能分布在不同的模块中。例如,程序中需要对生产制造中的库存控制功能进行修改,而这部分功能散布于原料库存管理模块、成品库存管理模块和材料供应模块等多个模块,按照上述专利方法,代码的修改将涉及这多个模块,这无疑将会增加修改的成本和出错的概率。正因为核心业务关注点可能要跨越多个模块,同是又必须便于修改、维护和更新,软件维护人员在进行软件重构时,应分析程序核心业务关注点之间的依赖关系及耦合特性,单纯的基于语法重构代码级构件,重构后的系统将无法得到本质改善。
发明内容
针对现有技术存在的不足,本发明提供一种采用聚类方式进行软件重构的方法。
本发明的技术方案是:
一种采用聚类方式进行软件重构的方法,包括以下步骤:
步骤1:根据软件的编程语言建立语法规则,形成语法规则库;
步骤2:根据不同的应用领域知识建立领域规则库:不同的应用领域,领域实体的同一属性具有不同的关联特征,根据领域实体的属性之间的依赖关系、耦合特性,确定不同应用领域的规则,建立用于描述不同应用领域功能的领域规则库;
应用领域规则包括:程序实体编号、所属领域、版本号、功能描述、业务对象、备份、所具有的属性及各属性之间的关联系数;
步骤3:读取软件的源代码信息;
步骤4:根据语法规则对源代码信息进行解析;
步骤4.1:对源代码信息进行语法解析;
步骤4.2:提取源代码信息的语法树;
步骤4.3:对源代码信息的语法树进行语义解析,得到源代码信息中的程序实体和实体属性;
所述程序实体包括:类、函数和业务流程;
所述实体属性包括:包、文件、功能、数据库和测试用例;
步骤5:在领域规则下,对源代码信息中的冗余信息进行过滤,即筛除源代码信息中多余的信息;
步骤6:建立包含程序实体及其描述的事实库,程序实体的描述包括:程序实体编号、接口名称、核心业务关注点、输入参数、输出参数、返回值、程序实体提供者、版本号、关键字、所具有的属性及各属性之间的关联系数;
步骤7:确定程序实体之间相似度,即计算程序实体之间的关联系数;
步骤8:采集聚类分析方法进行实体分析,将关联系数高于阈值的程序实体聚类到一个簇中,每一个簇形成一个新的软件模块,通过对软件模块的重新划分完成软件重构;
步骤9:可以根据需要对领域规则库进行调整,返回步骤5重新进行软件重构。
有益效果:
(1)采用聚类方式进行软件重构,其改善的目标是基于功能的核心业务关注点,将系统的模块进行重新构建后代码将具有良好的可重用性;
(2)经过聚类分析后,每个模块内程序实体的相似或相关度较高,解决代码分散和混乱问题,系统易于理解和维护;
(3)不同的应用领域,程序实体的同一属性具有不同的关联特征,可以通过修改领域规则库中属性的关联系数,这样产生的聚类结果也将不同,这使得本专利具有更好的通用性。
附图说明
图1是本发明具体实施方式的采用聚类方式进行软件重构的方法流程图;
图2是本发明具体实施方式的源代码解析器结构示意图;
图3是本发明具体实施方式的有向图实例示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于沈阳建筑大学,未经沈阳建筑大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310521139.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:实验用鼠游泳负重装置
- 下一篇:钢坯吊运夹具





