发明名称 一种采用聚类方式进行软件重构的方法
摘要 本发明涉及一种采用聚类方式进行软件重构的方法,属于软件工程技术领域。其特征在于包括如下步骤:将源代码信息输入源代码解析器;对源代码信息进行解析,提取程序实体及其相关属性;调用过滤器,筛除源代码信息中多余的信息,利用领域规则库建立系统事实库;采用相似度计算确定实体间的关联系数;通过有向图聚类分析法,自动分解出基于功能的核心业务关注点模块;对重构后的系统进行正确性检验,并根据检验结果调整领域规则库。本发明实现将大型的、复杂的软件系统自动分解成更小、更易管理的子系统。使系统易于理解和维护,同时,通过修改领域规则库中属性的关联系数,该软件重构方法适于不同的应用领域,具有很好的通用型。
申请公布号 CN103559025A 申请公布日期 2014.02.05
申请号 CN201310495785.X 申请日期 2013.10.21
申请人 沈阳建筑大学 发明人 曹阳;王永会;王守金;李孟歆
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 沈阳杰克知识产权代理有限公司 21207 代理人 李宇彤
主权项 一种采用聚类方式进行软件重构的方法,其特征在于:所述方法依次含有以下步骤为:步骤1,调用源代码解析器,对源代码进行解析和过滤,建立事实库; 本步骤的具体过程描述如下:(1)对源代码文件进行扫描,并将源代码信息输入源代码解析器;(2)对源代码信息进行解析,提取代码信息中的程序实体及其相关属性;具体过程为:对源代码进行语法解析;提取代码信息的语法树;对语法树进行语义解析;获得代码信息中的程序实体及其相关属性;程序实体包括:类、函数、业务流程;实体属性包括:包、文件、功能、数据库、测试用例等;(3)调用过滤器,筛除源代码信息中多余的信息,结合领域规则库给定的各属性的关联系数,建立事实库;步骤2,相似度计算;通过对程序实体之间存在的相关属性进行相似度计算,确定程序实体之间的关联系数;步骤3,聚类分析;根据事实库中的程序实体依赖关系建立有向图,然后根据实体的相似度计算结果进行聚类分析;本步骤的具体过程描述如下:(1)建立有向图;该图中的带箭头的实线,表示2个实体具有依赖关系;(2)有向图聚类分析;根据实体的相似度进行聚类分析,图中实线表示具有较高相似或相关度(关联系数值高),虚线表示较低相似或相关度(关联系数值低);将实线连接的节点聚类为簇;步骤4,重构模块;将系统中相似或相关度高的程序实体聚类到一个簇中,每个簇形成一个新的模块;将这些模块以容易理解和使用的形式提供给系统维护人员以完成软件重构;步骤5,正确性检验;对重构后的系统提交给用户或者领域专家,收集意见,并进行完备性检验、一致性检验和无冗余性检验;步骤6,调整领域规则库;根据收集到检验结果或意见,调整领域规则库中,本领域实体相关属性的关联系数;再重新进行系统重构。
地址 110168 辽宁省沈阳市浑南新区浑南东路9号