# CodeMetricTool **Repository Path**: friendly-invention/code-metric-tool ## Basic Information - **Project Name**: CodeMetricTool - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-15 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Code Metric Tool 软件质量保证课程项目:软件度量自动化工具。 当前版本为 Spring Boot Web 应用,度量算法复用原 Swing 项目的 Java 实现,前端为 Thymeleaf 页面。 ## 1. 当前能力总览 - 代码行度量:LOC、注释行、总行数、注释率 - 复杂性度量: - Java 代码圈复杂度(方法级) - 流程图复杂度(节点/边/圈复杂度) - 面向对象度量: - Java 代码 CK/LK 相关指标 - 类图结构指标(类数、关系数、平均 DIT/CBO) - 估算度量: - 功能点 - 特征点 - 用例点 - 报告输出:HTML 报告 - 云端 AI 助手:对当前模块结果做解释与建议(OpenAI 兼容接口) ## 2. 与 Swing 版对齐说明 功能点、特征点、用例点三大模块已按 Swing 版对齐: - 输入结构与默认值对齐 - 计算逻辑直接调用原有 Java 度量类 - 结果展示采用报告文本样式,内容来源于原度量类的 report 方法 对应核心类: - src/main/java/com.metric.metrics/FunctionPointMetric.java - src/main/java/com.metric.metrics/FeaturePointMetric.java - src/main/java/com.metric.metrics/UseCaseMetric.java ## 3. 关键目录 ```text code-metric-tool/ ├─ pom.xml ├─ README.md ├─ class-diagram-format-check/ │ ├─ sample-class.md │ ├─ sample-class.mermaid │ ├─ sample-class.mmd │ ├─ sample-class.plantuml │ ├─ sample-class.puml │ ├─ sample-class.txt │ └─ sample-class.uml └─ src/ ├─ main/ │ ├─ java/ │ │ ├─ com/metric/ │ │ │ ├─ WebApplication.java │ │ │ └─ web/ │ │ │ ├─ controller/MetricWebController.java │ │ │ ├─ dto/ │ │ │ └─ service/ │ │ ├─ com.metric.metrics/ │ │ └─ com.metric.ui/ │ └─ resources/ │ ├─ application.properties │ ├─ static/css/app.css │ └─ templates/index.html └─ test/ ``` ## 4. 输入与格式支持 ### 4.1 代码行度量 - 支持文件路径输入 - 支持上传单个 Java 文件 - 支持上传目录(目录内 Java 文件聚合统计) ### 4.2 复杂性度量 - Java 模式:支持 Java 文件/目录 - 流程图模式:支持 Mermaid 文本文件 - 常见扩展名:.mmd, .mermaid, .txt, .md ### 4.3 面向对象度量 - Java 模式:支持 Java 文件/目录 - 类图模式:支持多格式输入 - Mermaid:.mmd, .mermaid - PlantUML:.puml, .plantuml - 文本/UML:.uml, .txt, .md 类图格式覆盖样例目录: - class-diagram-format-check/ ## 5. 运行方式 在项目根目录执行: ```bash mvn -DskipTests compile mvn spring-boot:run ``` 默认访问: - http://localhost:8080 ## 6. 云端 AI 助手(可选) 项目默认对接 DeepSeek 云端 AI 服务,底层仍使用 OpenAI 兼容聊天接口。 application.properties 常用配置: ```properties app.ai.cloud.base-url=https://api.deepseek.com app.ai.cloud.api-key=你的DeepSeek_API_Key app.ai.cloud.model=deepseek-chat app.ai.cloud.system-prefix=你是软件度量分析助手。请基于当前页面的度量结果回答问题。 app.ai.cloud.request-timeout-seconds=20 app.ai.cloud.max-context-chars=2200 app.ai.cloud.max-user-chars=1200 app.ai.cloud.max-output-tokens=256 app.ai.cloud.temperature=0.2 ``` 说明: - 已支持 20 秒内超时控制 - 已支持当前页面度量结果上下文注入 - 已支持提示词前缀配置 - 已支持上下文截断和生成长度限制 ## 7. 主要页面模块 - 代码行度量 - 复杂性度量 - 面向对象度量 - 功能点度量(Swing 同款输入与结果) - 特征点度量(Swing 同款输入与结果) - 用例度量(Swing 同款输入与结果,含高级因子) - 输出报告 ## 8. 开发说明 - 前端模板:src/main/resources/templates/index.html - 页面样式:src/main/resources/static/css/app.css - Web 控制器:src/main/java/com/metric/web/controller/MetricWebController.java - 业务服务:src/main/java/com/metric/web/service/MetricAnalysisService.java 如需继续扩展,建议优先保持以下原则: - 计算逻辑仍放在 metrics 包 - web/service 仅负责参数编排与结果聚合 - 模板层只负责输入与展示,不重复实现度量规则