Appearance
问题定义与用户场景
这份文件放在 11-上位机项目需求拆解表.md 前面使用。
它解决一个问题:在拆功能之前,先弄清楚这个上位机到底为什么要做、给谁用、在什么现场用、第一阶段做到什么程度算成功。
如果一开始只说“做一个 WPF 上位机,能通信、能显示、能保存”,AI 很容易直接进入页面和代码。但很多项目真正的问题不是页面怎么排,而是现场流程、设备动作、数据追溯和验收标准没有说清楚。
1. 先写一句问题定义
用一句话说明这个软件要解决什么问题。
模板:
text
为了【目标用户】在【使用场景】中解决【当前痛点】,
我们要做一个【软件类型】,
让用户能够【关键能力】,
并通过【成功标准】判断第一阶段是否完成。示例:
text
为了产线调试人员在设备出厂测试中解决手工记录慢、通信结果不可追溯的问题,
我们要做一个 WPF 数据采集上位机,
让用户能够连接设备、执行测试、查看实时数据、保存测试记录,
并通过连续完成 20 次测试且数据文件字段完整判断第一阶段是否完成。2. 用户和现场
| 问题 | 填写 |
|---|---|
| 谁使用这个软件 | |
| 使用者懂不懂软件配置 | |
| 使用者懂不懂设备协议 | |
| 在哪里使用 | 实验室 / 产线 / 客户现场 / 售后 / 其他 |
| 一天大概使用多少次 | |
| 是否有人值守 | |
| 是否需要给客户或质检看结果 | |
| 使用电脑环境 | Windows 版本、分辨率、是否有管理员权限 |
3. 当前痛点
不要只写“需要一个软件”,要写现在为什么不方便。
| 痛点 | 当前怎么做 | 造成什么问题 | 严重程度 |
|---|---|---|---|
| 例:手工记录数据 | 人眼看设备,再填 Excel | 容易漏记、错记 | 高 |
常见痛点:
- 手工记录慢。
- 通信调试没有日志。
- 设备状态看不清。
- 测试流程靠人记。
- 数据无法追溯。
- 报警原因不好查。
- 多台设备配置容易弄错。
4. 任务和流程
用普通话写现场流程,不要先写代码结构。
| 步骤 | 谁操作 | 做什么 | 软件应该有什么反应 | 设备应该有什么反应 |
|---|---|---|---|---|
| 1 | ||||
| 2 | ||||
| 3 |
如果流程暂时不清楚,至少先写:
- 启动软件后第一步做什么。
- 什么时候连接设备。
- 什么时候开始采集或测试。
- 什么时候保存数据。
- 异常时谁来处理。
- 最后怎么判断本次操作结束。
5. 成功标准
第一阶段不要写成“功能全部完成”。要写成可以验证的标准。
| 编号 | 成功标准 | 验证方法 | 通过标准 |
|---|---|---|---|
| S-001 | 软件能连接指定设备 | 使用真实设备或模拟器连接 | 状态显示在线,日志有记录 |
| S-002 | 能显示关键数据 | 发送测试报文 | 界面数值和报文一致 |
| S-003 | 能保存测试结果 | 完成一次测试 | 文件字段完整,可重新打开 |
常见成功标准:
- 能稳定连接和断开设备。
- 能解析指定协议报文。
- 能显示关键实时数据。
- 能保存完整测试记录。
- 能记录原始收发日志。
- 异常帧、断线、保存失败时不会崩溃。
- 连续运行一段时间不卡死。
6. 非目标
非目标很重要。它告诉 AI 什么暂时不要做。
| 暂不做的内容 | 原因 | 后续是否可能做 |
|---|---|---|
| 例:用户权限系统 | 第一阶段只有内部调试人员使用 | 可能 |
| 例:数据库存储 | 第一阶段 CSV 已够用 | 可能 |
常见非目标:
- 第一阶段不做复杂权限。
- 第一阶段不做数据库,只保存 CSV。
- 第一阶段不做漂亮皮肤,先保证流程稳定。
- 第一阶段不做自动生成报告。
- 第一阶段不支持多设备同时连接。
- 第一阶段不做远程升级。
7. 约束条件
| 类型 | 内容 |
|---|---|
| 技术约束 | WPF / WinForms / .NET 版本 / 必须使用的库 |
| 设备约束 | 设备型号、协议是否固定、是否有模拟器 |
| 现场约束 | 无网络、无管理员权限、屏幕分辨率、电脑性能 |
| 数据约束 | 保存格式、保留时间、字段、是否涉密 |
| 时间约束 | 第一版交付时间、联调时间 |
| 人员约束 | 谁开发、谁测试、谁验收 |
8. 假设和风险
把不确定的地方提前写出来,避免 AI 把猜测当事实。
| 类型 | 内容 | 后续怎么确认 |
|---|---|---|
| [假设] | 例:设备每秒发送 10 条数据 | 找协议文档或实测 |
| [风险] | 例:协议文档没有异常帧说明 | 需要现场抓包 |
| [待确认] | 例:是否需要保存原始报文 | 问客户或测试人员 |
高风险项包括:
- 真实设备动作可能造成损坏。
- 协议文档不完整。
- 数据用于质量追溯。
- 数据库结构可能影响旧版本。
- 现场电脑权限不足。
- 需要长时间运行。
- 多线程通信和 UI 刷新。
9. 优先级
用 MoSCoW 简单分级即可。
| 功能或能力 | 优先级 | 理由 |
|---|---|---|
| 连接设备 | Must | 没有它无法进入后续流程 |
| 实时数据显示 | Must | 操作人员需要判断状态 |
| 历史查询 | Should | 第一阶段可以先用文件查看 |
| 自动报告 | Could | 后续优化 |
优先级含义:
- Must:第一阶段必须有。
- Should:重要,但可以在第一阶段简化。
- Could:有价值,但不影响第一阶段跑通。
- Won't:本阶段明确不做。
10. 发给 AI 的问题定义 Prompt
text
请你作为 C# WPF/WinForms 上位机产品和需求分析助手。
我现在还不想写代码,也不想直接设计项目结构。
请先根据下面的信息,帮我整理问题定义和第一阶段目标。
已知信息:
【粘贴用户、现场、痛点、流程、设备、数据要求】
请输出:
1. 一句话问题定义。
2. 目标用户和使用场景。
3. 当前痛点。
4. 第一阶段成功标准。
5. 非目标。
6. 约束条件。
7. 假设、风险、待确认问题。
8. 功能优先级。
9. 是否可以进入需求拆解表;如果不可以,还缺什么。