1
需求分析
明确「做什么」— 功能边界、约束条件、验收标准
PHASE 01
🟢 小型项目
功能清单(.md 一页)
列出要做的功能,5分钟写完
SRS 软件需求规格
过重,不写
🟡 中型项目
需求清单(带优先级)
P0/P1/P2 分级,约1页
约束条件说明
硬件平台、库版本、性能上限
正式 SRS(FR-xx 编号)
除非有合同约束,否则跳过
🔴 合规项目
SRS(IEEE 830 标准)
FR/NFR 完整编号,可追溯
用例规格说明(UCS)
每个用例前置/后置条件
安全需求分析(HARA)
ISO 26262 / IEC 62304 要求
2
系统架构设计
明确「如何组织」— 硬件连接、软件分层、数据流向、关键决策
PHASE 02
🟢 小型项目
架构草图 draw.io
一张图说清楚硬件连接和软件分层
SAD 架构设计文档
有图就够,不写正式文档
🟡 中型项目
架构图(含数据流)
硬件拓扑 + 软件分层 + 数据流向
ADR 架构决策记录 推荐
记录「为什么」:裸机 vs RTOS、选择原因
完整 SAD 文档
图+ADR已够,正式文档维护成本高
🔴 合规项目
SAD 系统架构设计文档
含安全架构视图
FMEA 故障模式分析
每个模块失效后的系统影响
ADR 架构决策记录
每个关键决策可追溯
3
接口设计
⚠️ 最容易被忽视、最影响联调效率 — 多端协议约定必须书面化
PHASE 03
🟢 小型项目
协议说明(README 一节)
帧格式 + 设备号表,一个代码块足够
🟡 中型项目
ICD 接口控制文档 🔑
帧格式、DevID 表、JSON格式、AT指令 — 三端对齐基准
帧速查表(HEX)
每种帧的实际字节序列,调试必备
🔴 合规项目
ICD 接口控制文档
含版本号、变更控制、兼容性说明
接口安全分析
输入验证、边界检查规范
接口测试规范
每个接口的测试覆盖要求
4
详细设计
模块内部实现方案 — 状态机、算法、数据结构
PHASE 04
🟢 小型项目
代码注释即设计 Doxygen
@brief @param @return 注释函数即可
SDD 软件详细设计文档
完全不必要,维护即过时
🟡 中型项目
代码注释 Doxygen
公共函数必须注释,私有函数重要逻辑注释
关键状态机图 draw.io
帧解析状态机、ESP8266状态机等复杂逻辑
SDD 独立文档
代码+状态机图已覆盖,不单独维护
🔴 合规项目
SDD 软件详细设计文档
每个模块的设计规格,独立可审查
状态机规格说明
形式化状态转换表
内存安全分析
栈/堆使用量估算
5
编码实现
工具和规范比文档更重要 — 用工具强制保证质量
PHASE 05
🟢 小型项目
Git 版本控制 必须
哪怕一个人也要用,不用是反模式
0 Warning 原则
-Wall 编译选项,警告即错误
🟡 中型项目
Git + 约定式提交 规范
feat/fix/docs/refactor 前缀提交信息
编码规范(1页)
命名规则、禁止项(goto/全局变量滥用)
cppcheck 静态分析 工具
提交前跑一次,替代大量代码审查
Code Review(轻量)
关键模块 PR 合并前互审
🔴 合规项目
MISRA C 合规报告
车规/医疗强制要求
代码审查记录
每次审查留存书面记录
静态分析报告
PC-lint / Polyspace 输出
编码规范文档
正式发布,团队签字确认
6
测试验证
TestCase 是核心,TestPlan 只是流程文件
PHASE 06
🟢 小型项目
手工测试清单
发版前逐项勾选,markdown表格即可
TestPlan 测试计划
一个人不需要计划文档
🟡 中型项目
TestCase 测试用例集 🔑
关键路径 + 边界 + 异常,含实际操作步骤
单元测试(关键模块)
帧解析、校验和计算等可自动化验证
TestPlan 正式测试计划
TestCase 首页写测试环境即可
🔴 合规项目
TestPlan 测试计划
包含测试策略、资源、通过准则
TestCase 测试用例
需求到测试用例可追溯矩阵
测试报告(每次发版)
通过率、遗留缺陷、测试签字
代码覆盖率报告
MC/DC 覆盖(车规 DAL B+)
7
发布与维护
让 6 个月后的自己(和同事)能独立复现整个过程
PHASE 07
🟢 小型项目
README.md
怎么编译、怎么烧录、引脚连接
git tag v1.0.0
打标签即发版,不需要单独 ChangeLog
🟡 中型项目
BuildGuide 构建烧录指南
Keil 配置要点 + 常见编译错误 + 烧录步骤
git tag + Release Notes
每个 tag 附一段本版本变更说明
CHANGELOG.md(自动生成)
用 conventional-changelog 工具生成,不手写
🔴 合规项目
发布说明(Release Note)
含测试结果摘要、已知问题
配置管理计划(SCM)
版本控制、基线管理规范
维护手册
故障诊断、现场升级流程
软件物料清单(SBOM)
第三方库版本、许可证记录