Skip to content

问题定义与用户场景

这份文件放在 11-上位机项目需求拆解表.md 前面使用。

它解决一个问题:在拆功能之前,先弄清楚这个上位机到底为什么要做、给谁用、在什么现场用、第一阶段做到什么程度算成功。

如果一开始只说“做一个 WPF 上位机,能通信、能显示、能保存”,AI 很容易直接进入页面和代码。但很多项目真正的问题不是页面怎么排,而是现场流程、设备动作、数据追溯和验收标准没有说清楚。

1. 先写一句问题定义

用一句话说明这个软件要解决什么问题。

模板:

text
为了【目标用户】在【使用场景】中解决【当前痛点】,
我们要做一个【软件类型】,
让用户能够【关键能力】,
并通过【成功标准】判断第一阶段是否完成。

示例:

text
为了产线调试人员在设备出厂测试中解决手工记录慢、通信结果不可追溯的问题,
我们要做一个 WPF 数据采集上位机,
让用户能够连接设备、执行测试、查看实时数据、保存测试记录,
并通过连续完成 20 次测试且数据文件字段完整判断第一阶段是否完成。

2. 用户和现场

问题填写
谁使用这个软件
使用者懂不懂软件配置
使用者懂不懂设备协议
在哪里使用实验室 / 产线 / 客户现场 / 售后 / 其他
一天大概使用多少次
是否有人值守
是否需要给客户或质检看结果
使用电脑环境Windows 版本、分辨率、是否有管理员权限

3. 当前痛点

不要只写“需要一个软件”,要写现在为什么不方便。

痛点当前怎么做造成什么问题严重程度
例:手工记录数据人眼看设备,再填 Excel容易漏记、错记

常见痛点:

  1. 手工记录慢。
  2. 通信调试没有日志。
  3. 设备状态看不清。
  4. 测试流程靠人记。
  5. 数据无法追溯。
  6. 报警原因不好查。
  7. 多台设备配置容易弄错。

4. 任务和流程

用普通话写现场流程,不要先写代码结构。

步骤谁操作做什么软件应该有什么反应设备应该有什么反应
1
2
3

如果流程暂时不清楚,至少先写:

  1. 启动软件后第一步做什么。
  2. 什么时候连接设备。
  3. 什么时候开始采集或测试。
  4. 什么时候保存数据。
  5. 异常时谁来处理。
  6. 最后怎么判断本次操作结束。

5. 成功标准

第一阶段不要写成“功能全部完成”。要写成可以验证的标准。

编号成功标准验证方法通过标准
S-001软件能连接指定设备使用真实设备或模拟器连接状态显示在线,日志有记录
S-002能显示关键数据发送测试报文界面数值和报文一致
S-003能保存测试结果完成一次测试文件字段完整,可重新打开

常见成功标准:

  1. 能稳定连接和断开设备。
  2. 能解析指定协议报文。
  3. 能显示关键实时数据。
  4. 能保存完整测试记录。
  5. 能记录原始收发日志。
  6. 异常帧、断线、保存失败时不会崩溃。
  7. 连续运行一段时间不卡死。

6. 非目标

非目标很重要。它告诉 AI 什么暂时不要做。

暂不做的内容原因后续是否可能做
例:用户权限系统第一阶段只有内部调试人员使用可能
例:数据库存储第一阶段 CSV 已够用可能

常见非目标:

  1. 第一阶段不做复杂权限。
  2. 第一阶段不做数据库,只保存 CSV。
  3. 第一阶段不做漂亮皮肤,先保证流程稳定。
  4. 第一阶段不做自动生成报告。
  5. 第一阶段不支持多设备同时连接。
  6. 第一阶段不做远程升级。

7. 约束条件

类型内容
技术约束WPF / WinForms / .NET 版本 / 必须使用的库
设备约束设备型号、协议是否固定、是否有模拟器
现场约束无网络、无管理员权限、屏幕分辨率、电脑性能
数据约束保存格式、保留时间、字段、是否涉密
时间约束第一版交付时间、联调时间
人员约束谁开发、谁测试、谁验收

8. 假设和风险

把不确定的地方提前写出来,避免 AI 把猜测当事实。

类型内容后续怎么确认
[假设]例:设备每秒发送 10 条数据找协议文档或实测
[风险]例:协议文档没有异常帧说明需要现场抓包
[待确认]例:是否需要保存原始报文问客户或测试人员

高风险项包括:

  1. 真实设备动作可能造成损坏。
  2. 协议文档不完整。
  3. 数据用于质量追溯。
  4. 数据库结构可能影响旧版本。
  5. 现场电脑权限不足。
  6. 需要长时间运行。
  7. 多线程通信和 UI 刷新。

9. 优先级

用 MoSCoW 简单分级即可。

功能或能力优先级理由
连接设备Must没有它无法进入后续流程
实时数据显示Must操作人员需要判断状态
历史查询Should第一阶段可以先用文件查看
自动报告Could后续优化

优先级含义:

  1. Must:第一阶段必须有。
  2. Should:重要,但可以在第一阶段简化。
  3. Could:有价值,但不影响第一阶段跑通。
  4. Won't:本阶段明确不做。

10. 发给 AI 的问题定义 Prompt

text
请你作为 C# WPF/WinForms 上位机产品和需求分析助手。

我现在还不想写代码,也不想直接设计项目结构。
请先根据下面的信息,帮我整理问题定义和第一阶段目标。

已知信息:
【粘贴用户、现场、痛点、流程、设备、数据要求】

请输出:
1. 一句话问题定义。
2. 目标用户和使用场景。
3. 当前痛点。
4. 第一阶段成功标准。
5. 非目标。
6. 约束条件。
7. 假设、风险、待确认问题。
8. 功能优先级。
9. 是否可以进入需求拆解表;如果不可以,还缺什么。

上位机 AI 开发工作流资料包 | 閑魚:別來無恙 | QQ群:1016188499