Skip to content

上位机项目需求拆解表

这个表是整套资料包的核心骨架,但它不是让你一开始就写完整技术规格书。

📋 什么时候必须填、什么时候不用:

  • 新项目 / 大功能开发:必填。不填清楚后面全乱。
  • 小改功能 / UI 微调:不用。说明目标+影响范围就够了。
  • 修复 Bug:不用填整张表。说清现象+期望效果+涉及文件。
  • 不确定时:只填第一轮骨架,后面让 AI 帮你补。

真实项目的需求通常是模糊的、零散的、想到哪说到哪。正确做法不是一开始就把按钮、表格、协议细节、日志规则、权限和性能全部填满,而是先把项目大方向搭起来,再让 AI 帮你一步一步细化。

💡 很多拆解工作不需要人工做。 如果你在用 Codex,按 Shift+Tab 进入 Plan 模式,直接说"我要做一个 XXX 上位机",AI 会自动输出数据库设计、接口定义、页面规划、测试用例。你只需要审查、指出遗漏、确认后让它执行。人工只需要做两件事:说清楚目标、做最终确认。中间的分析和拆解让 AI 完成。

如果你连用户是谁、现场怎么用、当前痛点和第一阶段成功标准都还没想清楚,先填写 10-问题定义与用户场景.md。这一步完成后,再回到本表拆功能、页面、通信、数据和验收。

使用原则

  1. 第一轮只填你现在确定的内容。
  2. 不确定的地方直接写“不确定”。
  3. 不要强行猜按钮、控件、绑定字段、粘包半包、重连策略这些技术细节。
  4. 先让 AI 根据粗需求整理成需求方案。
  5. 需求方案出来后,再让 AI 反问缺失信息。
  6. 先确认软件是干什么的,再讨论页面怎么分、通信怎么做、数据怎么存。
  7. 每次只细化一个方向,不要一次把所有问题都展开。
  8. 需求确认通常不是一次完成,而是多轮迭代:先粗框架,再追问,再细化,再确认版本。

0. 需求确认的迭代闭环

上位机需求不是一次问清楚的。很多时候用户一开始只有一句模糊想法,或者手上有一份需求说明书,但自己也没完全理解里面的技术含义。

💡 用 Codex Plan 模式可以加速前三轮。 切到 Plan 模式(Shift+Tab),AI 会自动搭框架、修正理解偏差、细化核心流程。你只需要审查和补充后两轮(细化关键模块 + 准备开发)。如果你不用 Codex 或用普通 ChatGPT,则手动走完五轮。

推荐按这个闭环推进:

text
问题定义 -> 粗需求 -> AI 整理第一版方案 -> 用户确认/纠正 -> AI 追问关键缺口 -> 单模块细化 -> 形成第二版方案 -> 再确认 -> 质量门检查 -> 进入开发拆解

每一轮都只解决一个目标:

轮次目标用户做什么AI 做什么输出
第 1 轮搭项目框架说清楚大概想做什么整理第一版需求方案项目目标、核心功能、初步页面和流程
第 2 轮修正理解偏差确认哪里对、哪里不对修改方案并列关键问题第二版需求方案
第 3 轮细化核心流程补充真实操作步骤拆业务流程和页面交互可执行的业务流程
第 4 轮细化关键模块按需补通信、数据、日志、报警拆模块职责和风险点可开发的模块需求
第 5 轮准备开发确认第一阶段范围输出开发顺序和验收点第一阶段任务清单

不要追求第一轮就完整。第一轮的目标只是搭出框架,让用户看到框架后继续想清楚哪里缺、哪里不对、哪里需要补。

进入技术方案前,建议用 12-AI开发质量门.md 检查需求确认门。如果关键流程、设备、数据或验收标准还没说清楚,不要直接让 AI 写代码。

0.1.1 需求到交付的追踪关系

工控软件和上位机项目里,需求不能只停留在“功能列表”。每条重要需求最好能追踪到设计、任务、代码和验收证据。

建议给需求编号:

text
F-001 功能需求
C-001 通信需求
D-001 数据需求
U-001 界面需求
E-001 异常处理需求
P-001 性能和稳定性需求
S-001 安全或设备动作需求

最小追踪表:

需求编号需求内容设计/模块开发任务验收方法证据
F-001连接设备并显示在线状态通信服务、主界面状态区实现连接/断开状态连接真实设备或模拟器连接日志、界面截图
C-001正确解析设备上传数据协议解析器、接收缓存实现组帧、CRC、业务对象输出正常帧、半包、粘包、CRC 错误测试TX/RX/PARSE 日志
D-001保存测试结果数据服务、导出模块实现保存和导出完成一次测试并检查文件字段导出文件样例

这张表不要求一开始填满。第一阶段只要把核心需求追踪起来,后续每次新增功能或修改协议时再补充。

发给 AI 时可以这样说:

text
请根据下面需求方案生成需求追踪表。

要求:
1. 给重要需求自动编号。
2. 每条需求要能对应到设计模块、开发任务和验收方法。
3. 区分功能、通信、数据、界面、异常、性能、安全需求。
4. 不确定的验收方法请标注为待确认。
5. 不要为了完整而编造客户没有要求的功能。

需求方案如下:
【粘贴需求方案】

0.1 两种常见入口

入口 A:只有模糊想法

适合这种情况:

text
我想做一个设备采集软件,可以连设备,显示数据,保存结果,最好有个界面。

这种情况不要急着问协议、按钮、数据库、权限。先让 AI 帮你搭框架:

  1. 软件目标是什么。
  2. 谁使用。
  3. 现场怎么操作。
  4. 可能有哪些核心功能。
  5. 第一阶段最小版本是什么。
  6. 哪些信息下一轮必须确认。

入口 B:已经有需求说明书或技术要求

适合这种情况:

text
我手上有客户给的需求说明书、技术协议、招标要求、设备说明文档或聊天记录。

这种情况也不要直接让 AI 写代码。先让 AI 做“需求翻译”和“可执行拆解”:

  1. 把文档里的自然语言要求翻译成软件功能。
  2. 区分必须做、可选做、不清楚、存在风险的内容。
  3. 把大段要求拆成页面、流程、通信、数据、日志、验收。
  4. 找出文档里没有说清楚但开发必须确认的问题。
  5. 形成第一阶段开发范围。

0.2 三层填写方式

层级目的什么时候填要求
第一层:必填骨架先让 AI 知道项目大概是什么第一次沟通尽量用自然语言写,不需要专业
第二层:AI 初步拆解让 AI 根据骨架反推页面、流程、模块第一层填完后AI 输出方案,你来确认对不对
第三层:专项细化对通信、数据、日志、验收等逐步补充方案基本确认后按项目需要选择填写,不是每项都必填

1. 第一层:项目必填骨架

这一部分是第一次必须尽量说清楚的内容。只要能说清楚大方向,后面才有细化的基础。

项目项填写内容
项目名称例如:电机测试上位机、温控采集软件、设备调试工具
项目类型数据采集 / 设备控制 / 测试工装 / 参数配置 / 监控看板 / 调试工具 / 其他
新项目还是已有项目新项目 / 已有项目改造 / 只修 Bug / 只做某个模块
当前阶段只有想法 / 有界面 / 有通信 / 已能运行 / 有 Bug / 准备交付
软件主要解决什么问题用自然语言说明,例如:采集设备数据并保存、控制设备完成测试、给设备下发参数
谁使用这个软件操作员 / 调试工程师 / 测试人员 / 售后人员 / 自己使用
在哪里使用实验室 / 产线 / 设备调试现场 / 客户现场 / 教学演示 / 不确定
连接什么设备PLC、单片机、仪表、电源、扫码枪、传感器、运动控制卡等;不知道型号也可以先写设备类型
大概有哪些功能用列表写,例如:连接设备、读取数据、设置参数、开始测试、保存结果、查看日志
最想先做出来的版本第一阶段最小可运行版本,只写最核心功能
已知限制工控机配置、系统版本、必须用 WPF/WinForm、必须离线运行等

2. 第一轮可以这样描述

如果你还没有完整需求,可以先按这种方式写:

text
我想做一个上位机软件,主要用于:
【写软件用途】

使用人员:
【谁用】

使用现场:
【在哪里用】

连接设备:
【连接什么设备,通信方式知道就写,不知道就写不确定】

大概功能:
1.
2.
3.

第一阶段我最想先实现:
1.
2.
3.

现在不确定的地方:
1.
2.
3.

3. 第二层:让 AI 先整理需求方案

第一层填完后,不要直接让 AI 写代码。

先把下面 Prompt 发给 AI:

text
我正在做一个 C# WPF/WinForm 上位机项目。下面是我目前能说清楚的粗需求。

请先不要写代码,也不要直接设计项目结构。

请你先把这些零散需求整理成一份第一版需求方案。

要求:
1. 不要假设我已经知道所有技术细节。
2. 不要让我一开始就提供按钮、控件、绑定字段、粘包半包、重连策略这些细节。
3. 请先根据我的业务目标,反推可能需要的页面、流程、通信、数据、日志和验收点。
4. 对不确定的地方,请列成“需要确认的问题”,不要直接替我拍死。

请输出:
1. 项目目标。
2. 使用人员和使用场景。
3. 核心业务流程草案。
4. 功能模块草案。
5. 页面规划草案。
6. 通信需求草案。
7. 数据保存草案。
8. 日志、报警、权限是否需要进一步确认。
9. 第一阶段最小可运行版本建议。
10. 已确认内容。
11. AI 推测内容。
12. 下一步最应该确认的 5-10 个问题。

粗需求如下:
【粘贴第一层内容】

3.1 如果你已经有需求说明书

如果你手上有完整需求说明书、技术协议、客户文档或聊天记录,可以用下面 Prompt:

text
我手上有一份上位机项目需求说明书/技术要求。请先不要写代码,也不要直接设计项目结构。

请你先帮我把这份文档拆成可执行的软件需求。

要求:
1. 不要照抄原文,要翻译成上位机开发能执行的功能点。
2. 区分“明确要求”“AI 推测”“需要客户确认”“可能有风险”。
3. 不要默认所有功能都第一阶段完成,请帮我拆第一阶段最小可运行版本。
4. 页面、通信、数据、日志、权限、验收都先做初步拆解,不清楚的地方列问题。
5. 每次只追问最关键的问题,不要一次问几十个细节。

请输出:
1. 需求摘要。
2. 功能模块拆解。
3. 业务流程草案。
4. 页面规划草案。
5. 通信和协议需求。
6. 数据保存需求。
7. 日志、报警、权限需求。
8. 第一阶段范围。
9. 风险点。
10. 下一轮需要确认的问题。

需求说明书/技术要求如下:
【粘贴文档内容】

4. 第三层:根据 AI 方案逐步细化

AI 输出第一版需求方案后,再按下面方向逐步细化。不是每个项目都需要全部填写。

4.1 使用场景细化

这一部分不用一开始就特别准确,能描述大概流程即可。

项目项填写内容
使用人员怎么操作例如:打开软件 -> 连接设备 -> 设置参数 -> 开始采集 -> 查看结果
软件输入来自哪里人工输入 / 扫码枪 / 设备上传 / 文件导入 / 不确定
软件输出给谁看操作员现场看 / 工程师调试看 / 保存给后续追溯 / 导出给客户
设备大概会返回什么数值 / 状态 / 报警 / 测试结果 / 原始报文 / 不确定
软件大概会控制什么只读数据 / 下发参数 / 启停设备 / 执行测试 / 不确定
现场最怕什么问题数据丢失 / 设备断线 / 操作误点 / 程序卡死 / 结果不准

4.2 UI 界面需求细化

页面不是固定的,不是所有项目都需要“参数配置页、实时数据页、历史数据页、报警页”。

先写业务目标,再让 AI 设计页面和控件。

项目项填写内容
用户打开软件后第一眼要看到什么设备状态、当前数据、测试按钮、结果、曲线、日志等
用户最常用的操作是什么连接、开始、停止、设置参数、保存、导出、查询等
哪些信息必须一直显示在线状态、当前值、报警状态、测试结果、运行时间等
哪些信息可以放到二级页面参数设置、历史查询、日志详情、用户管理等
是否有参考界面或截图有就提供,没有就让 AI 先设计草图
界面风格偏好工控简洁 / 深色看板 / 触摸屏 / 普通桌面软件 / 不确定

发给 AI 时可以这样说:

text
请根据下面业务功能帮我规划 WPF 上位机页面。

我不确定具体需要哪些控件、按钮、表格和绑定字段,请你根据使用流程先设计。

业务功能:
【粘贴功能和操作流程】

请输出:
1. 建议分几个页面或区域。
2. 每个页面/区域解决什么问题。
3. 每个页面需要显示哪些信息。
4. 每个页面需要哪些主要操作。
5. 哪些内容应该放主界面,哪些可以放二级页面。
6. 需要我确认的问题。

4.3 通信需求细化

通信第一轮只需要知道“怎么连”和“有没有协议”。粘包半包、心跳、重连、CRC 等是 AI 和开发时需要主动考虑的风险,不应该一开始要求用户全部判断。

项目项填写内容
通信方式串口 / TCP / UDP / Modbus / HTTP / 不确定
设备角色软件主动连接设备 / 设备连接软件 / 不确定
连接参数串口号、波特率、IP、端口;不知道就写不确定
有没有协议文档有 / 没有 / 只有示例 / 需要现场抓包
有没有示例报文有就粘贴;没有就写暂无
通信频率大概怎样手动点击 / 定时读取 / 设备主动上报 / 高频采集 / 不确定
通信异常最担心什么收不到数据 / 数据错 / 断线 / 卡死 / 不确定

发给 AI 时可以这样说:

text
请根据下面已知通信信息,帮我整理通信需求和风险点。

我不确定是否有粘包半包、是否需要心跳、是否需要断线重连、CRC 怎么做,请你根据通信方式和协议特点主动分析。

已知通信信息:
【粘贴通信方式、连接参数、协议文档或示例报文】

请输出:
1. 通信方式判断。
2. 需要确认的连接参数。
3. 协议是否完整。
4. 是否需要考虑粘包半包、超时、重连、心跳、CRC。
5. 建议的通信模块职责。
6. 需要我继续补充的材料。

4.4 业务流程细化

业务流程不能固定成启动、连接、采集、测试、停止。不同软件的流程不同,应该按真实业务写。

先用自然语言写“人怎么操作,软件怎么响应,设备怎么变化”。

步骤人做什么软件显示/处理什么设备动作/返回什么不确定点
1
2
3
4

示例:

步骤人做什么软件显示/处理什么设备动作/返回什么不确定点
1打开软件加载上次配置是否自动连接
2点击连接显示在线状态设备返回状态是否需要握手
3点击开始测试显示测试中设备开始返回数据判定规则不确定

4.5 数据存储细化

数据存储先确认“要不要保存”和“保存什么”,不要一开始就纠结表字段、索引、保留周期。

项目项填写内容
是否需要保存数据需要 / 不需要 / 不确定
主要保存什么测试结果 / 实时数据 / 报警记录 / 操作记录 / 参数配置
保存后用来干什么查询 / 导出 / 追溯 / 报告 / 只是留底
数据量大概怎样很少 / 每次测试一条 / 每秒多条 / 长时间运行 / 不确定
希望保存成什么CSV / Excel / SQLite / MySQL / 不确定
是否需要查询导出需要 / 不需要 / 不确定

4.6 日志、报警、权限

这些不是所有项目都要重做,先判断需不需要。

项目项填写内容
是否需要日志不需要 / 简单运行日志 / 通信日志 / 错误日志 / 完整操作日志
是否需要报警不需要 / 简单提示 / 报警列表 / 历史报警 / 报警确认
是否需要权限不需要 / 简单登录 / 管理员和操作员 / 更复杂权限
哪些异常必须提示断线、超时、保存失败、数据超限、设备报警等
哪些内容必须留记录操作、通信、错误、报警、测试结果等

4.7 性能与稳定性

先抓通用约束,不要一开始写过细参数。

项目项填写内容
是否需要长时间运行不需要 / 几小时 / 8 小时 / 24 小时 / 多天
数据刷新是否频繁很低 / 一秒一次 / 一秒多次 / 高频 / 不确定
数据量是否大很少 / 中等 / 很大 / 不确定
电脑配置是否一般普通电脑 / 工控机 / 低配置 / 不确定
是否连接真实设备是 / 否 / 先模拟
最担心的稳定性问题卡死、断线、数据丢失、误操作、崩溃

4.8 验收标准

验收标准先抓通用项,后面再细化。

验收项怎么算通过
软件能启动能正常打开主界面,没有启动报错
核心功能能跑通第一阶段核心流程能完整操作一遍
通信能验证能连接设备或模拟设备,能看到预期数据
数据能保存需要保存的数据能正确保存和打开
异常有提示断线、参数错误、保存失败等有明确提示
界面可操作主要按钮、状态显示、数据刷新符合预期
不明显卡顿普通操作下界面不卡死
修改不破坏旧功能已有功能还能正常使用

5. 已有项目改造时填写

如果是新项目,这一节可以跳过。

已有项目改造也不要一开始强行找文件。先描述目标和现象,让 AI 判断需要哪些材料。

项目项填写内容
当前项目能否运行能 / 不能
当前主要问题编译错误、运行异常、界面问题、通信问题、数据保存问题
本次想改什么用自然语言写,例如:连接成功后按钮变成关闭
当前现象现在软件是什么样,或者现在有什么问题
期望效果希望改完后是什么样
不希望影响什么例如:不要影响采集、保存、日志、原有界面风格
相关材料截图、日志、报错、项目结构;知道文件名再写文件名
验证方式怎么判断修改成功

6. 风险边界

这些问题不一定一开始全知道,但如果涉及,要尽早告诉 AI。

风险项是否涉及说明
真实设备控制是 / 否 / 不确定是否控制电机、气缸、加热、运动机构等
高危险动作是 / 否 / 不确定是否可能造成人身、设备或财产风险
数据不可丢失是 / 否 / 不确定是否涉及生产记录、质量追溯
高频采集或长时间运行是 / 否 / 不确定是否有 UI 卡死、数据堆积风险
数据库结构变更是 / 否 / 不确定已有项目是否会改表结构
协议不完整是 / 否 / 不确定协议文档是否缺失或需要现场验证
现场环境复杂是 / 否 / 不确定网络不稳定、设备多、工控机权限受限

7. 第一轮发给 AI 的标准提示词

填完第一层骨架后,复制下面这段:

text
我正在做一个 C# WPF/WinForm 上位机项目。下面是我目前能说清楚的第一轮需求。

请先不要写代码,也不要直接设计项目结构。

这些需求还不完整,有些地方我也不确定。请你先帮我整理成第一版需求方案,并指出哪些地方需要继续确认。

要求:
1. 先理解软件是干什么的、谁用、在哪用、大概有哪些功能。
2. UI 页面不要套固定模板,请根据业务功能和使用流程来规划。
3. 通信部分我只提供已知信息,粘包半包、心跳、重连、CRC 等请你主动作为风险点分析。
4. 业务流程不要固定成某一种流程,请根据我的项目实际内容整理。
5. 日志、报警、权限、性能先判断是否需要,不要默认全部做重。
6. 输出时区分“已确认内容”“AI 推测内容”“需要我确认的问题”。

请输出:
1. 项目目标。
2. 使用场景。
3. 第一阶段核心功能。
4. 业务流程草案。
5. 页面规划草案。
6. 通信需求草案。
7. 数据保存草案。
8. 日志/报警/权限是否需要。
9. 性能和稳定性风险。
10. 第一阶段验收标准。
11. 下一步最应该确认的 5-10 个问题。

第一轮需求如下:
【粘贴第一层内容】

8. AI 输出检查清单

AI 给出第一版需求方案后,用下面清单检查:

  1. 是否先整理需求方案,而不是直接写代码或直接设计项目结构。
  2. 是否区分了已确认、AI 推测、需要确认的问题。
  3. 是否没有强行套固定页面模板。
  4. 是否没有要求用户一开始就提供按钮、控件、绑定字段。
  5. 是否没有要求用户一开始就判断粘包半包、心跳、重连等通信细节。
  6. 是否根据业务实际整理流程,而不是固定套启动、连接、采集、测试。
  7. 是否给出了第一阶段最小可运行版本。
  8. 是否把日志、报警、权限作为可选项判断,而不是默认全部重做。
  9. 是否给出了下一步最该确认的问题。

如果以上内容不完整,先让 AI 补充需求拆解,不要急着进入代码阶段。

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