目录
# Claude Code 项目分析器

这是一个**代码项目分析系统**,用于分析软件项目的代码结构、文件职责、依赖关系和函数信息。系统使用 Claude AI 来理解代码的业务含义和技术特征。

## 项目结构

claude_code/ ├── config_claude_cli.py # 统一配置文件 ├── claude_code_cli_analyzer.py # CLI 版本分析器(主程序) ├── filter_claude_cli.py # 需求过滤器 ├── check_and_retry_missing.py # 缺失文件修复工具 ├── verify_json_fields.py # 结果验证工具 ├── requirements.txt # Python 依赖 ├── datasets/ # 数据集目录 │ ├── eANCI/ │ ├── eTour/ │ ├── iTrust/ │ ├── LibEST/ │ └── smos/ ├── prompts/ # 提示词模板 │ ├── basic_analysis.txt # 基本信息分析 │ ├── dependency_analysis.txt # 依赖关系分析 │ └── function_analysis.txt # 函数分析 └── output/ # 分析结果输出 └── {dataset}_analysis_claude_cli.json


## 核心架构

| 文件 | 职责 |
|------|------|
| `config_claude_cli.py` | 统一配置中心 |
| `claude_code_cli_analyzer.py` | CLI 版本分析器 |
| `filter_claude_cli.py` | 需求过滤器 |
| `check_and_retry_missing.py` | 修复工具 |
| `verify_json_fields.py` | 验证工具 |

## 核心功能

### 1. 代码分析器 (`claude_code_cli_analyzer.py`)
使用 Claude CLI 分析代码文件,输出包含:
- 文件主要职责(中英文)
- 业务概念列表
- DDD 六层架构分类
- 文件依赖关系
- 函数级分析

### 2. 需求过滤器 (`filter_claude_cli.py`)
过滤 CSV 文件中的非功能性需求(F=0 的行):
- 处理 `_gold.csv` 和 `_best.csv` 文件
- 输出 `_filtered.csv` 文件
- 支持批量处理所有数据集

### 3. 修复工具 (`check_and_retry_missing.py`)
检查并重新分析缺失字段的文件:
- 扫描 JSON 结果中的问题文件
- 自动重新分析缺失的文件
- 更新 JSON 结果

### 4. 验证工具 (`verify_json_fields.py`)
验证分析结果的字段完整性:
- 检查必需字段是否存在
- 统计缺失字段的文件
- 生成验证报告

## 分析流程
  1. 扫描项目结构 → 获取所有代码文件
  2. 批量分析文件 → 文件职责、业务概念、DDD分类
  3. 分析依赖关系 → import/include 解析
  4. 分析函数信息 → 函数签名、功能、输入输出
  5. 合并结果 → 生成 JSON 输出 ```

配置说明

config_claude_cli.py 配置文件示例:

# 数据集路径
DATASETS_ROOT = r"D:\7-Traceability\claude_code\datasets"
OUTPUT_DIR = r"D:\7-Traceability\claude_code\output"
CURRENT_DATASET = "iTrust"           # 当前分析的数据集

# Claude CLI 配置
CLAUDE_CLI_COMMAND = "claude"
CLAUDE_MODEL = "claude-sonnet-4-5-20250929"

# 批处理配置
BATCH_SIZE = 5                       # 每批文件数
MAX_PARALLEL_BATCHES = 3             # 最大并行批次数

# Git Bash 配置(Windows)
GIT_BASH_PATH = r"D:\software\Git\bin\bash.exe"

使用方法

1. 安装依赖

pip install -r requirements.txt

2. 安装 Claude CLI(CLI版本需要)

npm install -g @anthropics/claude-code

3. 过滤需求文件(预处理)

python filter_claude_cli.py

4. 运行代码分析

# 修改 config_claude_cli.py 中的 CURRENT_DATASET 切换数据集
python claude_code_cli_analyzer.py

5. 检查并修复缺失字段

python check_and_retry_missing.py

6. 验证结果完整性

python verify_json_fields.py

输出结构

分析结果保存在 output/{dataset}_analysis_claude_cli.json

{
  "root": "D:\\...\\iTrust\\code",
  "files": {
    "AccessManager.java": {
      "full_path": "...",
      "size": 2799,
      "extension": ".java",
      "main_responsibility_en": "Manages user access control",
      "main_responsibility_zh": "管理用户访问控制",
      "business_concepts_en": ["User", "Role", "Permission"],
      "business_concepts_zh": ["用户", "角色", "权限"],
      "category": "business_logic",
      "depends_on": ["User.java", "Role.java"],
      "depended_by": ["LoginController.java"],
      "function_analysis": [
        {
          "function_signature": "public boolean hasPermission(User user, String permission)",
          "functionality": "Check if user has specific permission",
          "inputs": ["User user: the user to check", "String permission: permission name"],
          "outputs": ["boolean: true if user has permission"],
          "requirement_predictions": [
            "System must enforce role-based access control",
            "Users can only access authorized features"
          ]
        }
      ]
    }
  },
  "validation": {
    "expected_count": 226,
    "scanned_count": 226,
    "validation_passed": true
  }
}

数据集说明

数据集 代码文件数 说明
eANCI 55 Java 项目
eTour 116 Java 项目
iTrust 226 Java Web 项目
LibEST 14 C 项目
smos 100 Java 项目

工作流程

1. 准备数据
   ├── 确保 datasets/{dataset}/code/ 有代码文件
   └── 运行 filter_claude_cli.py 过滤需求(可选)

2. 分析代码
   ├── 修改 CURRENT_DATASET 指定数据集
   └── 运行 claude_code_cli_analyzer.py

3. 修复问题
   ├── 运行 check_and_retry_missing.py 检查缺失
   └── 自动重新分析有问题的文件

4. 验证结果
   ├── 运行 verify_json_fields.py 验证完整性
   └── 检查 output/ 目录的 JSON 文件

注意事项

  1. CLI 版本需要安装 Claude CLI 并配置 Git Bash(Windows)
  2. API 版本需要本地代理服务(http://localhost:8000/v1
  3. 支持的文件类型.java, .py, .cpp, .c, .h, .js, .ts, .css, .html
  4. 分析结果会保存到 output/ 目录
  5. Windows 用户:需要安装 Git Bash 并在配置文件中设置正确路径
  6. API 密钥:Claude CLI 需要配置 API 密钥(通过 claude config 设置)
  7. 网络要求:需要访问 Claude API
  8. 并发限制MAX_PARALLEL_BATCHES 可调整以避免 API 限流
  9. 文件大小:大文件会被截断(MAX_BASIC_CONTENT_LENGTH 可调整) ```

    许可证

本项目仅供研究和学习使用。

联系

邮件:shiluoyuan1995@126.com

关于

代码项目分析系统,用于分析软件项目的代码结构、文件职责、依赖关系和函数信息。系统使用 Claude AI 来理解代码的业务含义和技术特征。

1.7 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号