12 KiB
实施计划与任务跟踪
项目:反无人机仿真系统后端
文档版本:V1.0
创建日期:2026-06-11
一、阶段总览
Phase 1 ■■■■■ 核心基础(6天)
Phase 2 ■■■■■ 想定管理(5天)
Phase 3 ■■■■■ 算法层(7天)
Phase 4 ■■■■■ 仿真引擎(7天)
Phase 5 ■■■ 报告生成(3天)
Phase 6 ■■■■ Unity 集成(5天)
Phase 7 ■■ 打磨收尾(3天)
────────────────────────────
合计 约 36 天(7~8 周)
依赖关系:Phase 1 → Phase 2 → Phase 3+4(可并行) → Phase 5 → Phase 6 → Phase 7
二、各阶段详情
Phase 1:核心基础
目标:搭建项目骨架,数据层可读写,单元测试全绿。
时间:6 天
验证:dotnet test 全绿,所有 Repository 和基础 Service 可独立运行。
| # | 任务 | 预估 | 状态 |
|---|---|---|---|
| 1.1 | 创建 CounterDrone.Core 类库项目(.NET Standard 2.1) |
2h | ⬜ |
| 1.2 | 创建 CounterDrone.Core.Tests xUnit 测试项目 |
1h | ⬜ |
| 1.3 | 定义所有枚举(17 个)和数据模型(11 张表 POCO) | 4h | ⬜ |
| 1.4 | 集成 sqlite-net,编写 DatabaseManager(建表 / 迁移) |
3h | ⬜ |
| 1.5 | 实现 IPathProvider 接口 + 测试用实现 |
1h | ⬜ |
| 1.6 | 实现 ModelRepository(CRUD + 文件存储路径管理) |
3h | ⬜ |
| 1.7 | 实现 AmmunitionSpecRepository(加载第三方 JSON 配置) |
2h | ⬜ |
| 1.8 | 实现 GroupRepository |
2h | ⬜ |
| 1.9 | 实现 IModelService + ModelService |
3h | ⬜ |
| 1.10 | 实现 IGroupService + GroupService |
2h | ⬜ |
| 1.11 | 编写 ModelService / GroupService 单元测试 | 4h | ⬜ |
| 1.12 | 编写 Repository 单元测试(SQLite 文件模式) | 4h | ⬜ |
Phase 1 验收标准:
- 11 张表可在 SQLite 中自动建表
- ModelInfo、AmmunitionSpec、Group 的完整 CRUD 通过测试
- 第三方 AmmunitionSpec JSON 可成功导入数据库
- dotnet test 全部通过
Phase 2:想定管理
目标:仿真任务的完整 CRUD + 5 步配置保存/加载 + 搜索分页。
时间:5 天
验证:可创建想定、逐步骤配置保存、草稿恢复、搜索分页。
| # | 任务 | 预估 | 状态 |
|---|---|---|---|
| 2.1 | 实现 SimTaskRepository + SimTask 增删改查 |
2h | ⬜ |
| 2.2 | 实现 CombatSceneRepository |
1h | ⬜ |
| 2.3 | 实现 ControlZoneRepository |
1h | ⬜ |
| 2.4 | 实现 TargetConfigRepository |
1h | ⬜ |
| 2.5 | 实现 EquipmentDeploymentRepository |
1h | ⬜ |
| 2.6 | 实现 CloudDispersalRepository |
1h | ⬜ |
| 2.7 | 实现 RoutePlanRepository + WaypointRepository |
2h | ⬜ |
| 2.8 | 实现 IScenarioService — CreateTask / DeleteTask |
2h | ⬜ |
| 2.9 | 实现步骤保存方法(SaveScene / SaveTarget / ... / SaveRoute) | 3h | ⬜ |
| 2.10 | 实现 GetTaskDetail(聚合 5 步配置) |
2h | ⬜ |
| 2.11 | 实现 SearchTasks(关键词 + 时间范围 + 分页) |
3h | ⬜ |
| 2.12 | 实现 UpdateStep(步骤状态管理) | 1h | ⬜ |
| 2.13 | 实现输入校验(必填校验、数值范围校验) | 2h | ⬜ |
| 2.14 | 编写 ScenarioService 单元测试 | 6h | ⬜ |
Phase 2 验收标准:
- 创建任务 → 5 步逐步骤保存 → 草稿恢复 → 搜索分页 全链路可走通
- 按任务名称搜索、按日期筛选、分页浏览通过测试
- 必填校验:任务名称为空时拒绝创建
GetTaskDetail返回完整的 5 步配置聚合对象
Phase 3:算法层
目标:高斯烟团扩散模型、三种毁伤模型、防御推荐算法全部实现并通过确定性测试。
时间:7 天
验证:固定输入 → 固定输出,可精确断言计算结果。
| # | 任务 | 预估 | 状态 |
|---|---|---|---|
| 3.1 | 实现 GaussianPuffDispersion(简化球体膨胀 + 风速漂移 + 密度衰减) |
8h | ⬜ |
| 3.2 | 编写扩散模型单元测试(无风/有风/消散/密度衰减 4 场景) | 4h | ⬜ |
| 3.3 | 实现 InertGasDamageModel(阈值型吸入式灭火) |
3h | ⬜ |
| 3.4 | 实现 ActiveMaterialDamageModel(触发型爆燃式) |
3h | ⬜ |
| 3.5 | 实现 ActiveFuelDamageModel(指数累积型吸入式爆炸) |
3h | ⬜ |
| 3.6 | 实现 DamageModelRouter(根据 AerosolType 路由到对应模型) |
1h | ⬜ |
| 3.7 | 编写毁伤模型单元测试(每种机制 3 个场景) | 4h | ⬜ |
| 3.8 | 实现 DefaultDefenseAdvisor — Step A 气溶胶选型规则 |
3h | ⬜ |
| 3.9 | 实现 DefaultDefenseAdvisor — Step B 时空交汇优化 |
6h | ⬜ |
| 3.10 | 实现 DefaultDefenseAdvisor — Step C 反推平台部署 |
4h | ⬜ |
| 3.11 | 实现 AlgorithmFactory(注册/创建) |
2h | ⬜ |
| 3.12 | 编写 DefenseAdvisor 单元测试(活塞→惰性气体 / 喷气→活性材料) | 4h | ⬜ |
Phase 3 验收标准:
- 扩散模型:给定初始半径+风速+60s → 断言最终半径和中心偏移
- 毁伤模型:活塞发动机 5s 暴露于惰性气体 → 断言 HP ≤ 阈值
- 防御推荐:活塞发动机航路 → 推荐惰性气体,拦截概率 > 0
- AlgorithmFactory.Register 可替换任一算法实现
- 所有测试结果完全可复现(确定性)
Phase 4:仿真引擎
目标:完整 8 阶段仿真引擎,支持运行/暂停/停止,录制帧数据和事件。
时间:7 天
验证:加载想定 → 运行完整仿真 → 检查事件序列和帧数据。
| # | 任务 | 预估 | 状态 |
|---|---|---|---|
| 4.1 | 实现 DroneEntity(航路移动 + 风偏 + 编队排列) |
4h | ⬜ |
| 4.2 | 实现 PlatformEntity(空基/地基 + 冷却计时) |
3h | ⬜ |
| 4.3 | 实现 MunitionEntity(自由落体 + 抛物线弹道) |
4h | ⬜ |
| 4.4 | 实现 CloudEntity(集成扩散模型 + 毁伤判定) |
3h | ⬜ |
| 4.5 | 实现 DetectionEntity(探测扫描) |
2h | ⬜ |
| 4.6 | 实现 ControlZone 多边形判定(Point-in-Polygon) |
2h | ⬜ |
| 4.7 | 实现 EventQueue |
2h | ⬜ |
| 4.8 | 实现 SimulationEngine — Initialize(加载配置,实例化实体) |
4h | ⬜ |
| 4.9 | 实现 SimulationEngine — 8 阶段 Tick 流程 |
6h | ⬜ |
| 4.10 | 实现 SimulationEngine — Pause/Resume/Stop + State 管理 |
2h | ⬜ |
| 4.11 | 实现 IFrameDataStore — CreateTaskDb / WriteFrame / ReadFrames |
4h | ⬜ |
| 4.12 | 实现 SimEvent 写入主库 + 查询 |
2h | ⬜ |
| 4.13 | 编写仿真集成测试(单无人机无拦截 → 到达目标) | 3h | ⬜ |
| 4.14 | 编写仿真集成测试(单无人机 → 拦截成功 → 被摧毁) | 3h | ⬜ |
| 4.15 | 编写仿真集成测试(多无人机 + 编队 + 蜂群) | 3h | ⬜ |
| 4.16 | 编写仿真集成测试(管控区域侵入) | 2h | ⬜ |
Phase 4 验收标准:
- 加载完整想定配置后可启动仿真
- 8 个阶段的 Tick 顺序正确,事件队列正常产出
- 集成测试:单无人机无拦截 → 断言 "DroneReachedTarget" 事件
- 集成测试:单无人机被拦截 → 断言 "DroneDestroyed" + "CloudGenerated"
- 帧数据可正确写入
frames/{taskId}.db,回读验证帧数一致 - Pause/Resume 不影响仿真状态一致性
Phase 5:报告生成
目标:仿真结束后自动生成报告,支持 PDF/Word 导出。
时间:3 天
验证:跑完仿真 → 生成报告 → 导出文件存在且内容正确。
| # | 任务 | 预估 | 状态 |
|---|---|---|---|
| 5.1 | 实现 ReportGenerator(从 SimEvent + 配置聚合统计数据) |
4h | ⬜ |
| 5.2 | 实现对抗结果判定逻辑(成功/部分/失败) | 1h | ⬜ |
| 5.3 | 实现报告模板引擎(占位符填充) | 3h | ⬜ |
| 5.4 | 实现 PDF 导出(QuestPDF 或替代方案调研) | 4h | ⬜ |
| 5.5 | 实现 Word 导出 | 3h | ⬜ |
| 5.6 | 实现 SimulationReportRepository |
1h | ⬜ |
| 5.7 | 实现 IReportService(Generate / Get / Delete / Search / Export) |
3h | ⬜ |
| 5.8 | 编写报告生成单元测试 | 3h | ⬜ |
Phase 5 验收标准:
- 仿真完成后报告自动生成,包含仿真前/中/后三阶段数据
- 对抗结果判定正确
- PDF 导出文件可正常打开
- 报告搜索分页功能正常
Phase 6:Unity 集成
目标:将 Core.dll 集成到 Unity,实现完整运行链路。
时间:5 天
验证:在 Unity Editor 中完成"创建想定 → 配置 5 步 → 算法推荐 → 启动仿真 → 查看回放"全流程。
| # | 任务 | 预估 | 状态 |
|---|---|---|---|
| 6.1 | 创建 Unity 22.3.62 项目,导入 Core.dll 到 Assets/Plugins | 1h | ⬜ |
| 6.2 | 实现 UnityPathProvider(返回 persistentDataPath) |
1h | ⬜ |
| 6.3 | 实现 ModelManager MonoBehaviour(桥接 IModelService) |
3h | ⬜ |
| 6.4 | 实现 ScenarioManager MonoBehaviour(桥接 IScenarioService) |
4h | ⬜ |
| 6.5 | 实现 SimulationRunner MonoBehaviour(Update 驱动引擎) |
3h | ⬜ |
| 6.6 | 实现 ReplayController MonoBehaviour(协程回放) |
3h | ⬜ |
| 6.7 | 实现 ReportManager MonoBehaviour(桥接 IReportService) |
2h | ⬜ |
| 6.8 | 实现 3D 实体可视化(根据 Snapshot 更新 GameObject Transform) | 4h | ⬜ |
| 6.9 | 实现粒子系统参数传递(CloudEntity → ParticleSystem) | 3h | ⬜ |
| 6.10 | 端到端联调 + 问题修复 | 6h | ⬜ |
Phase 6 验收标准:
- Unity Editor 中创建想定 → 配置保存 → 算法推荐 → 启动仿真全链路可走通
- 仿真过程中 3D 实体实时移动
- 回放功能正常
- 无 Crash,无内存泄漏
Phase 7:打磨收尾
目标:性能优化、边界处理、TTL 清理、文档。
时间:3 天
| # | 任务 | 预估 | 状态 |
|---|---|---|---|
| 7.1 | 性能优化:Tick() P99 < 5ms | 4h | ⬜ |
| 7.2 | TTL 清理实现 + 测试 | 2h | ⬜ |
| 7.3 | 边界场景测试(0 实体、超大航路、极端风速) | 3h | ⬜ |
| 7.4 | 错误处理加固 | 2h | ⬜ |
| 7.5 | 补充缺失的单元测试(目标覆盖率 > 80%) | 4h | ⬜ |
| 7.6 | 文档更新 + API 注释 | 3h | ⬜ |
Phase 7 验收标准:
- Tick() 单帧耗时 P99 < 5ms(16 实体场景)
- 过期帧数据库可自动清理
- 单元测试覆盖率 > 80%
- 所有公开 API 有 XML 文档注释
三、依赖关系
Phase 1 (核心基础)
│
▼
Phase 2 (想定管理)
│
├──────────────────┐
▼ ▼
Phase 3 (算法层) Phase 4 (仿真引擎)
│ │
└────────┬─────────┘
▼
Phase 5 (报告生成)
│
▼
Phase 6 (Unity 集成)
│
▼
Phase 7 (打磨收尾)
Phase 3 和 Phase 4 可部分并行:算法层完成后仿真引擎才能完整串联,但仿真实体模型可先开工。
四、里程碑
| 里程碑 | 截止 | 标志 |
|---|---|---|
| M1 — 数据层就绪 | Phase 1 结束 | 11 张表 CRUD 通过 |
| M2 — 想定可配置 | Phase 2 结束 | 5 步配置保存/恢复/搜索 |
| M3 — 算法可计算 | Phase 3 结束 | 扩散/毁伤/推荐输出正确 |
| M4 — 仿真可运行 | Phase 4 结束 | 集成测试通过 |
| M5 — 报告可生成 | Phase 5 结束 | PDF/Word 导出 |
| M6 — Unity 可演示 | Phase 6 结束 | 端到端全链路 |
| M7 — 交付就绪 | Phase 7 结束 | 覆盖率 > 80%,P99 < 5ms |
五、状态图例
| 符号 | 含义 |
|---|---|
| ⬜ | 未开始 |
| 🔄 | 进行中 |
| ✅ | 已完成 |
| ⏸️ | 阻塞 |
| ❌ | 放弃 |
下一步:确认阶段划分和时间计划后,可以开始 Phase 1,逐项打勾推进。