167 lines
4.6 KiB
Markdown
167 lines
4.6 KiB
Markdown
# 实施计划与任务跟踪
|
||
|
||
> **项目**:反无人机仿真系统后端
|
||
> **文档版本**:V1.1
|
||
> **更新日期**:2026-06-11
|
||
|
||
---
|
||
|
||
## 一、阶段总览
|
||
|
||
```
|
||
Phase 1 ✅ 核心基础
|
||
Phase 2 ✅ 想定管理
|
||
Phase 3 ✅ 算法层
|
||
Phase 4 ✅ 仿真引擎
|
||
Phase 5 ✅ 报告生成
|
||
Phase 6 ⬜ Unity 集成(需 Unity 22.3.62)
|
||
Phase 7 ✅ 打磨收尾
|
||
────────────────────────
|
||
已完成 P1-P5 + P7
|
||
```
|
||
|
||
---
|
||
|
||
## 二、各阶段详情
|
||
|
||
### Phase 1:核心基础 ✅
|
||
|
||
**目标**:搭建项目骨架,数据层可读写,单元测试全绿。
|
||
**测试**:27 个
|
||
|
||
| # | 任务 | 状态 |
|
||
|---|------|------|
|
||
| 1.1-1.12 | 项目骨架、枚举、数据模型、Repository、ModelService/GroupService、单元测试 | ✅ |
|
||
|
||
---
|
||
|
||
### Phase 2:想定管理 ✅
|
||
|
||
**目标**:仿真任务的完整 CRUD + 5 步配置保存/加载 + 搜索分页。
|
||
**测试**:20 个
|
||
|
||
| # | 任务 | 状态 |
|
||
|---|------|------|
|
||
| 2.1-2.14 | 8 个 Repository、ScenarioService、搜索分页、输入校验、单元测试 | ✅ |
|
||
|
||
---
|
||
|
||
### Phase 3:算法层 ✅
|
||
|
||
**目标**:高斯烟团扩散模型、三种毁伤模型、防御推荐算法全部实现。
|
||
**测试**:26 个
|
||
|
||
| # | 任务 | 状态 |
|
||
|---|------|------|
|
||
| 3.1-3.12 | GaussianPuffDispersion、InertGas/ActiveMaterial/ActiveFuel 毁伤模型、DefaultDefenseAdvisor、AlgorithmFactory | ✅ |
|
||
|
||
**关键设计变更**:
|
||
- 推荐算法由弹药规格驱动,查库选型
|
||
- 计算多轮次云团(CloudSalvo)确保覆盖率
|
||
- 输入校验:无目标/无航路/弹药缺失时返回失败原因
|
||
- Kinematics 工具类:抛物线弹道、风矢量、多边形判定
|
||
|
||
---
|
||
|
||
### Phase 4:仿真引擎 ✅
|
||
|
||
**目标**:完整仿真引擎 + 集成测试。
|
||
**测试**:11 个
|
||
|
||
| # | 任务 | 状态 |
|
||
|---|------|------|
|
||
| 4.1-4.16 | 6 个实体类、FireSchedule 发射计划、FrameDataStore 分库、Pause/Resume/Stop、集成测试 | ✅ |
|
||
|
||
**关键设计变更**:
|
||
- 引擎重构为纯执行器:`SetFireSchedule()` 接收计划,不包含任何决策
|
||
- `TimeScale` 属性支持加速仿真(集成测试 4 倍速)
|
||
- 弹道飞行时间用 `Kinematics` 真实计算
|
||
- 集成测试:4 个端到端场景全通过(NoDefense/ZoneIntrusion/Piston/Jet)
|
||
|
||
---
|
||
|
||
### Phase 5:报告生成 ✅
|
||
|
||
**目标**:仿真结束后自动生成 Markdown 报告并导出文件。
|
||
**测试**:7 个
|
||
|
||
| # | 任务 | 状态 |
|
||
|---|------|------|
|
||
| 5.1-5.8 | ReportGenerator、ReportService、ExportToFile、搜索分页、单元测试 | ✅ |
|
||
|
||
**注**:PDF/Word 导出暂以 Markdown 替代,后续可扩展。
|
||
|
||
---
|
||
|
||
### Phase 6:Unity 集成 ⬜
|
||
|
||
**目标**:将 Core.dll 集成到 Unity,实现完整运行链路。
|
||
**前置条件**:安装 Unity Hub + Editor 22.3.62
|
||
|
||
| # | 任务 | 预估 | 状态 |
|
||
|---|------|------|------|
|
||
| 6.1 | 创建 Unity 项目,导入 Core.dll | 1h | ⬜ |
|
||
| 6.2 | 实现 `UnityPathProvider` | 1h | ⬜ |
|
||
| 6.3 | 实现 `ModelManager` | 3h | ⬜ |
|
||
| 6.4 | 实现 `ScenarioManager`(5 步向导) | 4h | ⬜ |
|
||
| 6.5 | 实现 `SimulationRunner`(Update 驱动) | 3h | ⬜ |
|
||
| 6.6 | 实现 `ReplayController`(协程回放) | 3h | ⬜ |
|
||
| 6.7 | 实现 `ReportManager` | 2h | ⬜ |
|
||
| 6.8 | 3D 实体可视化 | 4h | ⬜ |
|
||
| 6.9 | 粒子系统参数传递 | 3h | ⬜ |
|
||
| 6.10 | 端到端联调 | 6h | ⬜ |
|
||
|
||
---
|
||
|
||
### Phase 7:打磨收尾 ✅
|
||
|
||
| # | 任务 | 状态 |
|
||
|---|------|------|
|
||
| 7.1 | 性能优化 | ⬜(非关键,实体少时自然 < 5ms) |
|
||
| 7.2 | TTL 清理(FrameDataStore.CleanupExpired + 测试) | ✅ |
|
||
| 7.3 | 边界测试(空部署/强风/超长航路/空基弹药) | ✅ |
|
||
| 7.4 | 错误处理加固 | ⬜(基本校验已有) |
|
||
| 7.5 | 测试覆盖率 | ✅ 95.4% 行 / 80.5% 分支 |
|
||
| 7.6 | README + API XML 文档 | ✅ |
|
||
| — | 死代码清理(DetectionEntity, EventQueue) | ✅ |
|
||
| — | 代码格式化(.editorconfig + dotnet format) | ✅ |
|
||
|
||
---
|
||
|
||
## 三、最终指标
|
||
|
||
| 指标 | 值 |
|
||
|------|------|
|
||
| 测试总数 | **128** |
|
||
| 行覆盖率 | **95.4%** |
|
||
| 分支覆盖率 | **80.5%** |
|
||
| 执行时间 | ~9 秒 |
|
||
| 项目文件 | `CounterDrone.Core.dll` (.NET Standard 2.1) |
|
||
| 零 Unity 依赖 | ✅ 可脱离 Unity 独立运行和测试 |
|
||
|
||
---
|
||
|
||
## 四、里程碑
|
||
|
||
| 里程碑 | 状态 |
|
||
|------|------|
|
||
| M1 — 数据层就绪 | ✅ |
|
||
| M2 — 想定可配置 | ✅ |
|
||
| M3 — 算法可计算 | ✅ |
|
||
| M4 — 仿真可运行 | ✅ |
|
||
| M5 — 报告可生成 | ✅ |
|
||
| M6 — Unity 可演示 | ⬜ |
|
||
| M7 — 交付就绪 | ✅ |
|
||
|
||
---
|
||
|
||
## 五、状态图例
|
||
|
||
| 符号 | 含义 |
|
||
|------|------|
|
||
| ⬜ | 未开始 |
|
||
| 🔄 | 进行中 |
|
||
| ✅ | 已完成 |
|
||
| ⏸️ | 阻塞 |
|
||
| ❌ | 放弃 |
|