16 KiB
RailwaySystem 一期 P0 需求确认表 V0.1
用途: 内部评审 / 与老师或甲方进行需求确认 适用阶段: 需求分析完成后、PRD 和数据库正式设计前 确认原则:
- 当前已有明确要求的,不重复推翻;
- 原需求没有明确的,不由开发人员自行决定;
- 每个问题先给出当前情况,再给出推荐方案;
- “推荐方案”属于项目组设计建议,不代表甲方已经确认;
- P0 问题确认完成后,再冻结业务基线 V1.0。
一、P0 问题总览
| 编号 | 核心问题 | 是否影响数据库结构 | 优先级 |
|---|---|---|---|
| P0-01 | 一个开班计划是一门课程还是多门课程? | 极高 | 必须首先确认 |
| P0-02 | 学员如何进入一个培训班? | 极高 | 必须确认 |
| P0-03 | 课程表如何形成,是否存在“课次”? | 极高 | 必须确认 |
| P0-04 | 宿舍什么时候、通过什么方式分配? | 高 | 必须确认 |
| P0-05 | 开班后 X 日未报到中的 X 是多少? | 中 | 必须确认规则 |
| P0-06 | 综合成绩如何计算? | 高 | 必须确认 |
| P0-07 | 什么条件算“完成培训 / 结业”? | 高 | 必须确认 |
建议确认顺序:
flowchart LR
A[P0-01 开班与课程关系]
--> B[P0-02 参训名单形成]
--> C[P0-03 课程表与课次]
--> D[P0-04 宿舍分配]
--> E[P0-05 报到时限]
--> F[P0-06 成绩规则]
--> G[P0-07 结业规则]
其中前三项会直接决定后续核心数据模型。
二、P0-01 一个开班计划究竟是一门课程还是多门课程?
1. 当前需求情况
现有需求表述为:
创建开班计划时设置“所属课程”。
当前数据表中,一个 train_class_plan 也只保存一个 c_id。
因此现有材料实际上更接近:
flowchart LR
A[课程:钢结构检测]
--> B[钢结构检测第一期]
A --> C[钢结构检测第二期]
也就是:
一个开班计划对应一门课程。
2. 但现实业务可能存在另一种模式
例如一次铁路综合培训:
flowchart TD
A[铁路综合培训第一期]
A --> B[安全理论]
A --> C[钢结构检测]
A --> D[VR巡检]
A --> E[实操考核]
这种情况下:
一个培训班包含多门课程。
3. 两种方案差异
| 对比项 | 方案A:一班一课 | 方案B:一班多课 |
|---|---|---|
| 业务简单度 | 简单 | 更符合综合培训 |
| 当前文档匹配度 | 高 | 当前文档未明确 |
| 数据库复杂度 | 低 | 高 |
| 课表设计 | 相对简单 | 必须设计班级-课程关系 |
| 成绩 | 一期对应一门课程成绩 | 一期会有多门课程成绩 |
| 签到 | 围绕该课程 | 需要区分不同课程 |
| 后续扩展性 | 一般 | 更强 |
4. 项目组推荐
推荐优先确认真实业务,再决定
如果培训基地现实中通常是:
“开一个培训班,里面安排若干课程。”
则建议采用:
一个培训班包含多门课程。
如果真实业务实际上就是:
“某一门课程开一期培训。”
则保持当前:
一班一课。
当前建议倾向
从“报到后查看课程表”“不同教师、不同场地、实训”等需求来看,多课程培训班在业务上更自然。
但这一点不能直接由开发组拍板。
5. 需要老师 / 甲方确认
请明确:
一个开班计划是否允许配置多门课程?
确认项:
- 只能关联一门课程
- 可以关联多门课程
- 当前一期先一门课程,后续再支持多门课程
最终确认结果
待填写:
三、P0-02 学员如何进入一个培训班?
1. 当前需求情况
现有需求中已经出现:
招生人数
报名条件
报名人数
开班报到
但没有明确:
一个学员是通过什么业务动作成为“本期参训人员”的。
2. 可能存在的方式
flowchart TD
A[学员进入某一期培训]
A --> B[管理员手动添加]
A --> C[Excel批量导入]
A --> D[学员自行报名]
A --> E[报名后管理员审核]
A --> F[外部系统下发名单]
3. 为什么这是核心问题
如果不解决这一点,系统只能知道:
张三这个人存在。
却无法明确知道:
张三是否属于钢结构检测第一期。
而后续:
flowchart LR
A[参训资格]
--> B[报到]
--> C[住宿]
--> D[签到]
--> E[成绩]
全部依赖这层关系。
4. 项目组推荐
一期建议至少支持:
管理员手动加入 + Excel 批量导入。
理由:
- 实现简单;
- 适合培训基地集中组织人员;
- 不需要先开发复杂报名门户;
- 后续可以扩展学员自主报名或外部系统同步。
推荐一期流程:
flowchart LR
A[学员库]
--> B[管理员选择 / Excel导入]
--> C[形成参训名单]
--> D[等待报到]
5. 需要老师 / 甲方确认
请确认参训名单来源:
- 管理员手动添加
- Excel 批量导入
- 学员自行报名
- 学员报名 + 管理员审核
- 外部系统同步
- 多种方式同时支持
另外确认:
是否存在“报名审核”这个业务步骤?
- 有
- 无
最终确认结果
待填写:
四、P0-03 课程表到底如何形成?
1. 当前需求情况
需求明确要求:
学员报到后能够查看课程表。
当前签到表中也存在:
本节课程开始时间
本节课程结束时间
说明业务实际上已经存在:
某个具体时间真正发生的一次教学活动。
2. 建议定义“课次”
例如:
9月20日 09:00-11:00
钢结构检测理论
王老师
201教室
这一条就可以称为:
一次课次 / Lesson。
3. 推荐业务关系
flowchart TD
A[开班计划]
--> B[课次1]
A --> C[课次2]
A --> D[课次3]
B --> B1[课程]
B --> B2[教师]
B --> B3[时间]
B --> B4[教室 / 场地]
签到也因此变成:
flowchart LR
A[学员]
--> B[某次课次]
--> C[签到记录]
而不是只记录:
张三签到过“钢结构检测”。
4. 项目组推荐
建议正式引入:
课次 / 教学安排 Lesson
每条课次至少包含:
所属培训班
所属课程
授课教师
开始时间
结束时间
教室 / 实训场地
这样:
- 课程表可以生成;
- 签到有准确对象;
- 教师冲突可以判断;
- 教室冲突可以判断;
- 后续课程统计也更加清晰。
5. 需要老师 / 甲方确认
请确认:
一个培训班是否会多次上课?
- 是
- 否
每次教学是否需要独立配置:
- 日期
- 开始时间
- 结束时间
- 课程
- 教师
- 教室
- 实训场地
是否同意以“课次”作为课程表基本单位?
- 同意
- 不同意
- 需要其他形式
最终确认结果
待填写:
五、P0-04 宿舍什么时候分配?
1. 当前需求情况
需求确定:
报到后可以获取所分配宿舍。
但是没有明确宿舍到底什么时候被分好。
2. 可能的三种流程
方案A:报到前预分配
flowchart LR
A[确定参训名单]
--> B[提前分配宿舍]
--> C[学员到场]
--> D[报到]
--> E[直接展示宿舍]
方案B:报到时自动分配
flowchart LR
A[学员报到]
--> B[系统检查可用床位]
--> C[自动匹配]
--> D[分配成功]
--> E[下发门禁]
方案C:管理员现场分配
flowchart LR
A[学员报到]
--> B[管理员选择宿舍]
--> C[确认入住]
--> D[下发门禁]
3. 项目组推荐
一期建议采用:
报到前可预分配 + 管理员可调整。
系统可以根据:
性别
培训班
剩余床位
提供自动推荐。
但是一期不一定必须做到完全无人值守自动分床。
推荐流程:
flowchart LR
A[参训名单]
--> B[系统推荐宿舍]
--> C[管理员确认 / 调整]
--> D[形成住宿安排]
--> E[报到展示]
--> F[下发门禁]
这样风险最低。
4. 另外必须确认
是否所有培训学员都需要住宿?
可能存在:
住宿学员
不住宿学员
因此住宿不能默认是所有人强制产生。
5. 需要老师 / 甲方确认
宿舍分配方式:
- 报到前预分配
- 报到时自动分配
- 报到时管理员分配
- 支持预分配,同时允许现场调整
是否所有人必须住宿:
- 是
- 否
如果不住宿:
是否仍然允许正常报到和参加培训?
- 是
- 否
最终确认结果
待填写:
六、P0-05 开班后 X 日未报到中的 X 是多少?
1. 当前需求情况
当前功能分析明确提出:
开班后 X 日内未报到
→ 自动取消资格
→ 释放宿舍资源
但 X 没有确定。
2. 需要注意的问题
这其实不只是一个数字。
还需要确定:
flowchart TD
A[超过报到期限]
A --> B{是否请假?}
B -->|否| C[取消参训资格]
C --> D[释放宿舍]
B -->|是| E[是否允许延期报到?]
3. 项目组推荐
不建议把“X天”直接写死在程序中。
建议做成:
开班计划可配置的报到截止时间 / 报到有效期。
例如:
开班时间:
9月20日 09:00
报到截止:
9月21日 18:00
比固定:
开班后 1 天
更灵活。
4. 需要老师 / 甲方确认
规则采用:
- 固定 X 天
- 每个开班计划独立设置报到截止时间
如果固定:
X = ______ 天
另外确认:
请假学员超过期限是否取消资格?
- 是
- 否
- 管理员人工决定
超期取消以后是否自动释放宿舍?
- 是
- 否
最终确认结果
待填写:
七、P0-06 综合成绩如何计算?
1. 当前需求情况
现有成绩包括:
课程成绩
实训成绩
考核成绩
同时需求要求:
支持按权重自动计算综合成绩。
但是没有说明权重。
2. 可能的计算方式
例如:
flowchart TD
A[课程成绩 30%] --> D[综合成绩]
B[实训成绩 40%] --> D
C[考核成绩 30%] --> D
则:
综合成绩
=
课程成绩 × 30%
+
实训成绩 × 40%
+
考核成绩 × 30%
3. 关键问题
不仅要确认比例,还要确认:
所有课程是否使用同一套比例?
例如:
理论课程
课程成绩 60%
考试成绩 40%
实训课程
理论 20%
实训 60%
考核 20%
显然可能不同。
4. 项目组推荐
建议:
权重可配置,不在代码中固定。
推荐层级:
flowchart LR
A[课程]
--> B[成绩规则]
B --> C[理论权重]
B --> D[实训权重]
B --> E[考核权重]
一期至少支持课程级配置。
5. 需要老师 / 甲方确认
综合成绩:
- 所有课程统一权重
- 每门课程独立配置权重
若统一:
课程成绩:____ %
实训成绩:____ %
考核成绩:____ %
总计必须为:
100%
另外:
缺少某一类成绩时怎么办?
例如某课程没有实训。
- 权重重新计算
- 该项按 0 分
- 每门课程自己配置成绩组成
最终确认结果
待填写:
八、P0-07 什么叫“培训完成 / 结业”?
1. 当前需求情况
当前需求已经出现:
结业后宿舍门禁权限自动失效。
但是没有定义:
什么条件才叫结业。
2. 可能的规则
flowchart TD
A[培训结束]
A --> B{是否满足结业条件}
B -->|是| C[结业]
B -->|否| D[未结业 / 待处理]
C --> E[保存培训历史]
C --> F[失效宿舍门禁]
C --> G[形成最终统计]
结业条件可能涉及:
签到率
成绩
学习时长
必修课程完成情况
管理员确认
3. 几种典型方案
方案A:时间结束即结业
开班结束
=
所有学员自动结业
优点:
简单。
缺点:
即使长期缺勤或者没成绩,也会结业。
方案B:满足条件自动结业
例如:
签到率 ≥ 80%
综合成绩 ≥ 60
满足后系统自动结业。
方案C:系统判断 + 管理员确认
系统给出:
建议结业
不满足条件
最后管理员确认。
4. 项目组推荐
一期推荐:
系统计算是否满足条件 + 管理员最终确认结业。
这样既可以自动化,又能处理特殊情况。
推荐流程:
flowchart LR
A[培训结束]
--> B[系统统计]
--> C[判断结业条件]
--> D[管理员确认]
--> E[正式结业]
--> F[失效对应培训权限]
5. 特别需要注意
结业应该针对:
某一次参训
而不是直接把:
张三这个人的全局状态改成“结业”。
因为张三未来还可能参加其他培训。
6. 需要老师 / 甲方确认
结业方式:
- 开班结束自动结业
- 满足条件自动结业
- 系统判断 + 管理员确认
如果需要条件,请确认:
签到率要求
≥ ______ %
综合成绩要求
≥ ______ 分
学习时长是否有要求
- 有:________
- 无
是否允许管理员特殊处理
- 是
- 否
最终确认结果
待填写:
九、推荐的一期默认方案
如果当前必须先做一版原型,而甲方暂时无法全部确认,项目组可以暂时按下面方案设计。
注意:以下全部属于项目组推荐默认值,不代表已确认需求。
| 问题 | 推荐默认方案 |
|---|---|
| 开班与课程 | 暂按一个开班对应一门课程,确认后再决定是否升级一班多课 |
| 学员进入培训 | 管理员添加 + Excel批量导入 |
| 课程表 | 引入独立课次 Lesson |
| 宿舍分配 | 提前预分配 + 管理员可调整 |
| 报到截止 | 每期开班单独配置截止时间 |
| 综合成绩 | 课程级可配置权重 |
| 结业 | 系统判断 + 管理员最终确认 |
十、7 个 P0 问题之间的关系
这七个问题不是互相独立的。
flowchart TD
A[P0-01 开班与课程关系]
--> B[P0-03 课程表 / 课次]
A --> C[P0-02 参训名单]
C --> D[P0-04 宿舍分配]
C --> E[P0-05 报到时限]
B --> F[P0-06 成绩规则]
D --> G[P0-07 结业规则]
E --> G
F --> G
因此建议会议不要随机讨论。
应该按:
P0-01 → P0-02 → P0-03 → P0-04 → P0-05 → P0-06 → P0-07
依次确认。
十一、确认完成后的输出
当 7 个 P0 问题确认完以后,需要把结果回填到:
《RailwaySystem 一期需求分析与业务基线》
并升级为:
V1.0 业务基线
随后才能正式进入:
flowchart LR
A[P0确认完成]
--> B[业务基线V1.0]
--> C[PRD]
--> D[业务模型]
--> E[数据库V2]
--> F[API / 页面]
--> G[Epic / Issue]
--> H[开发]
十二、会议最终确认记录
| 编号 | 最终结论 | 确认人 | 日期 |
|---|---|---|---|
| P0-01 | |||
| P0-02 | |||
| P0-03 | |||
| P0-04 | |||
| P0-05 | |||
| P0-06 | |||
| P0-07 |
当以上七项全部填写后:
一期核心业务模型才可以视为基本冻结。