littlebot
Published on 2025-04-03 / 5 Visits
0

【源码】基于NSGAII算法的代码重构优化系统

项目简介

本项目借助遗传算法(NSGA-II)达成代码重构优化,致力于提升系统的微服务粒度、模块化质量,同时降低重构成本。通过关注点识别、功能原子聚类以及代码文件依赖关系抽取等操作,算法能够搜索并生成面向微服务粒度最大化、模块化质量最大化和重构成本最小化的重构方案。

项目的主要特性和功能

  1. 微服务粒度最大化:依据关注点信息描述粒度,优化微服务划分,使其更合理高效。
  2. 模块化质量最大化:增强模块内聚性,降低模块间耦合性,提升系统可维护性与可扩展性。
  3. 重构成本最小化:以最少步骤调整代码文件,降低重构成本与风险。
  4. 遗传算法优化:采用NSGA-II算法,结合交叉、变异等操作生成新的重构方案,利用非支配排序和拥挤距离分配维持种群多样性与优质性。
  5. 数据预处理:涵盖关注点识别、功能原子聚类和代码文件依赖关系抽取,为遗传算法提供必要数据支持。
  6. 可视化输出:算法运行时实时打印全过程,并将结果输出到文件,便于后续分析与可视化展示。

安装使用步骤

1. 复制项目到本地

bash

2. 使用IDEA打开项目目录

打开项目目录,加载pom.xml文件,安装Maven依赖。

3. 配置环境

确保本地环境已安装JDK 11和Maven 3.8.4。

4. 运行项目

项目的运行入口在src/test/RefactorTest.java文件中。直接运行main方法即可启动遗传算法进行代码重构优化。

5. 查看输出结果

  • 算法运行过程中,IDE任务打印栏会实时打印遗传算法的全过程。
  • 算法运行日志会写入文件,保存在项目的output目录下,格式如:NSGA-II-report-11444.txt
  • 数据文件refactorPrograms.jsonobjectives.json用于绘制Echarts树状图。
  • 如果目标函数是两个以下,则会弹出可视化图表框,展示全部个体和第一前沿。三个及以上目标函数时,则不会显示。

6. 算法参数说明

  • 种群规模参数:种群规模上限为100。
  • 变化器参数:交叉选择概率为0.6,变异选择概率为0.3,break变异概率为0.3。
  • 适应度参数:主题与文件的概率阈值为0.006,过载分数阈值为10,模块化数量系数为1.0。
  • 停止条件参数:最大代数为200,第一前沿占比为0.8,基因型数量为5000。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】