主权项 |
一种采用聚类方式进行软件重构的方法,其特征在于:所述方法依次含有以下步骤为:步骤1,调用源代码解析器,对源代码进行解析和过滤,建立事实库; 本步骤的具体过程描述如下:(1)对源代码文件进行扫描,并将源代码信息输入源代码解析器;(2)对源代码信息进行解析,提取代码信息中的程序实体及其相关属性;具体过程为:对源代码进行语法解析;提取代码信息的语法树;对语法树进行语义解析;获得代码信息中的程序实体及其相关属性;程序实体包括:类、函数、业务流程;实体属性包括:包、文件、功能、数据库、测试用例等;(3)调用过滤器,筛除源代码信息中多余的信息,结合领域规则库给定的各属性的关联系数,建立事实库;步骤2,相似度计算;通过对程序实体之间存在的相关属性进行相似度计算,确定程序实体之间的关联系数;步骤3,聚类分析;根据事实库中的程序实体依赖关系建立有向图,然后根据实体的相似度计算结果进行聚类分析;本步骤的具体过程描述如下:(1)建立有向图;该图中的带箭头的实线,表示2个实体具有依赖关系;(2)有向图聚类分析;根据实体的相似度进行聚类分析,图中实线表示具有较高相似或相关度(关联系数值高),虚线表示较低相似或相关度(关联系数值低);将实线连接的节点聚类为簇;步骤4,重构模块;将系统中相似或相关度高的程序实体聚类到一个簇中,每个簇形成一个新的模块;将这些模块以容易理解和使用的形式提供给系统维护人员以完成软件重构;步骤5,正确性检验;对重构后的系统提交给用户或者领域专家,收集意见,并进行完备性检验、一致性检验和无冗余性检验;步骤6,调整领域规则库;根据收集到检验结果或意见,调整领域规则库中,本领域实体相关属性的关联系数;再重新进行系统重构。 |