软件工程实践团队第二次作业-原型设计&需求分析
软件工程实践团队第二次作业——原型设计&需求分析
团队:NULL | 项目:数据结构可视化学习平台(NULL Visual Lab)
一句话:把「代码执行 → 状态变化 → 原因解释」做成可控、可交互的学习过程。We start from NULL, but we won't end at NULL.
| 这个作业属于哪个课程 | 202601福大-软件工程实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践团队第二次作业——原型设计&需求分析 |
| 团队名称 | NULL |
| 这个作业的目标 | 完成《数据结构可视化学习平台》的界面原型设计与需求分析:产出《软件需求规格说明书》、界面原型、需求分析 PPT、界面原型设计答辩 PPT;明确团队整体计划与里程碑、关键点/难点/风险、组员分工与工作量比例、成员协作方式 |
| 其他参考文献 | GB/T 9385-2008《计算机软件需求规格说明规范》;GB/T 8567-2006《计算机软件文档编制规范》;邹欣《构建之法》(第 3 版);严蔚敏《数据结构(C 语言版)》;VisuAlgo;MDN Web Docs;D3.js 官方文档 |
目录
一、作业目录与评分要点自检(Checklist)
二、团队项目计划
2.1 项目定位与一句话目标
2.2 项目范围与迭代边界(内容维度 MVP / V1 / V2 + 能力维度 L1–L4)
2.3 项目整体里程碑计划(含新增能力时间盒 M4a / M6a)
2.4 里程碑甘特图
2.5 本次作业周计划(10/09 – 10/16)
三、关键点、难点与风险分析
3.1 六个关键技术难点与攻关思路
3.2 风险登记册
3.3 Top 3 风险的详细应对预案
四、项目分工与组员工作量比例
4.1 团队角色分工(主责 + 副责)
4.2 本次作业组员分工与贡献度
4.3 团队绩效考核制度
五、成员协作方式
5.1 端到端开发链路与四条主线
5.2 沟通工具矩阵
5.3 版本仓库协作规范(含九步合并流程)
5.4 接口与集成测试责任矩阵
5.5 冲突处理机制
5.6 任务同步机制(含一周迭代节奏)
5.7 质量保障机制(含黄金测试案例)
5.8 团队执行检查清单
六、软件需求规格说明书
**七、界面原型设计**(含新增的登录 / 注册页 P8、闯关积分页 P9)
八、需求分析 PPT 链接
九、界面原型设计答辩 PPT 链接
十、团队互评与评审表
十一、小结与下一步
一、作业目录与评分要点自检(Checklist)
1.1 交付物清单
- ✅ 1 篇博客随笔(包含作业目录并且核对评分要点)—— 本文
- ✅ 1 份界面原型设计(在博客中给出链接)—— 见 第七章
- ✅ 1 份界面原型设计答辩 PPT(课堂讲述)—— 见 第九章
- ✅ 1 份需求规格说明书(Word 电子版)—— 见 第六章
- ✅ 1 份需求分析报告 PPT(课堂讲述)—— 见 第八章
- ✅ 1 份界面原型设计评审表(腾讯共享文档,由助教汇总)
- ✅ 1 份需求分析评审表(腾讯共享文档,由助教汇总)
交付说明:PPT 与《需求规格说明书》均已按老师建议同时导出 PDF,连同源文件一并上传至华为云仓库,仓库链接见第六、八、九章。
支撑文档:团队另有执行版文档《NULL 团队 8 人职责分工与协作说明》,逐人写明职责边界、分阶段工作、协作接口、验收与绩效证据,是本文第四、五章的来源。链接:【待填:职责分工与协作说明文档链接】
1.2 评分要点自检表
| 评分项 | 分值 | 得分点 | 本文对应位置 | 自检 |
|---|---|---|---|---|
| 博客撰写(课程目标 7) | 2' | 博客 markdown 排版;正确给出说明书链接、界面原型链接、原型答辩 PPT 链接、需求分析 PPT 链接 | 第六章 / 第七章 / 第八章 / 第九章 | ✅ 四个链接均已给出(占位符待替换仓库地址) |
| 博客撰写(课程目标 7) | 6' | 组队后项目整体计划安排 | 第二章,含 M0–M8 共 9 个带日期、交付物、验收标准的里程碑 | ✅ |
| 博客撰写(课程目标 7) | 5' | 项目进行过程中可能遭遇的关键点、难点与风险分析 | 第三章,含 6 项技术难点 + 11 条风险登记册(含新增功能带来的范围与安全风险) | ✅ |
| 博客撰写(课程目标 7) | 7' | 此次作业组员分工、组员工作量比例 | 第四章,含 8 人「主责 + 副责」角色表、四条协作主线、本次作业分工贡献度表与绩效考核制度 | ✅ |
| 团队协作(课程目标 6) | 16' | 描述成员协作方式 | 第五章,覆盖端到端链路与四条主线、沟通工具、版本仓库协作与九步合并流程、接口与集成测试责任矩阵、DoD、冲突处理、一周迭代节奏、任务同步与检查清单 | ✅ |
| 需求规格说明书(课程目标 2) | 2' | 引言 | 说明书第 1 章 | ✅ |
| 需求规格说明书(课程目标 2) | 8' | 用户场景 | 说明书第 2 章 + 7.2 用户场景 | ✅ |
| 需求规格说明书(课程目标 2) | 8' | 类图 | 说明书第 3 章 + 7.3 领域类图概览 | ✅ |
| 需求规格说明书(课程目标 2) | 8' | 界面原型 | 说明书第 4 章 + 第七章 | ✅ |
| 需求规格说明书(课程目标 2) | 3' | 功能描述 | 说明书第 5.1 节 | ✅ |
| 需求规格说明书(课程目标 2) | 3' | 验收验证标准 | 说明书第 5.3 / 5.4 节 | ✅ |
| 国标规范(课程目标 5) | 12' | 参考《软件需求规格说明书》国标规范文本撰写 | 说明书按 GB/T 9385-2008 目录组织,分层描述、缩写先定义、样式统一 | ✅ |
| 答辩(课程目标 2) | 2' | 项目开发的目的、意义、背景 | 原型答辩 PPT 第 1–2 页 + 需求分析 PPT 第 1 章 | ✅ |
| 答辩(课程目标 2) | 6' | 项目研发的内容(类图、原型、功能展示) | 需求分析 PPT 第 3–5 章 + 现场可交互原型演示 | ✅ |
| 答辩(课程目标 6) | 4' | 团队计划落实情况、组员分工与工作量比例 | 第二、四章 + 答辩 PPT「计划落实」页 | ✅ |
| 答辩(课程目标 5) | 4' | PPT 演示 | 两份 PPT 统一视觉规范,页码/编号/加载计时一致 | ✅ |
| 答辩(课程目标 5) | 4' | 报告 | 《需求规格说明书》+ 答辩讲稿 | ✅ |
二、团队项目计划
2.1 项目定位与一句话目标
项目名称:数据结构可视化学习平台(NULL Visual Lab)
产品形态:Web 应用,浏览器打开即用,无需安装
团队名称:NULL 组员人数:8 人
我们观察到的真实学习障碍是:**数据结构最难的地方不只是"定义难",而是"过程看不见"**。
传统学习路径是「代码 / 伪代码 → 脑内模拟 → 结构变化 → 理解结果」,而关键变化恰恰发生在学习者脑中——初学者最容易在这一环"断链"。它不是三点具体问题,而是三个叠加的认知负荷:
| 障碍 | 表现 |
|---|---|
| 抽象 | 指针、节点、边、下标关系难以形成稳定心智模型 |
| 动态 | 插入 / 删除 / 遍历是连续过程,静态图只能展示几个截面 |
| 脱节 | "这行代码"与"这个节点为什么变化"常常对应不上 |
我们要做的:把「脑内模拟」搬到屏幕上,把"代码执行 → 状态变化 → 原因解释"做成可控、可交互的学习过程;并通过账号体系沉淀学习进度、通过**闯关积分把"看懂"推进到"练会"**,形成「学 → 练 → 测」的完整闭环。
核心体验四要素(贯穿全部设计决策):
| 体验 | 含义 | 落到原型上 |
|---|---|---|
| 看得见 | 节点 / 指针 / 边 / 下标可视化 | 画布区用形状、颜色、箭头表达结构与指针 |
| 跟得上 | 代码高亮与动画同步 | 代码区当前执行行高亮,与画布动画同一节拍 |
| 点得动 | 自定义数据与主动操作 | 支持输入自定义数据、随机生成、指定操作与参数 |
| 控得住 | 暂停 / 单步 / 回退 / 调速 | 底部控制条 + 步骤进度条,任意步骤可来回跳 |
闭环三要素(第二阶段起纳入):
| 环节 | 能力 | 回答的问题 |
|---|---|---|
| 学 | 可视化 + 代码联动 + 步骤解释 | "这一步为什么这样变?" |
| 练 | 自定义数据 + 主动操作 + 实验台 | "换成我的数据会怎样?" |
| 测 | 账号进度 + 闯关关卡 + 积分与成就 | "我到底掌握了没有?" |
目标:不是"看动画",而是"理解变化";不是"看过",而是"练会"。
2.2 项目范围与迭代边界
我们主动承认成熟可视化工具(如 VisuAlgo)已经存在,因此边界控制是本项目的第一原则:先把"看懂"做扎实,再扩展数据结构数量;不追求一次性覆盖所有算法。
范围从两个维度定义——内容维度(支持哪些数据结构)和能力维度(产品提供哪些能力)。两者独立排期,避免"加功能"顺手把"加结构"也带进来。
(1)内容维度:数据结构覆盖范围
| 阶段 | 范围 | 内容 | 说明 |
|---|---|---|---|
| MVP | 数组 / 链表 / 栈 / 队列 | 基础操作 + 单步动画 | 第一阶段,必须完成 |
| V1 | 树 / 二叉搜索树 | 遍历 + 插入 / 删除 | 第二阶段,必须完成 |
| V2 | 图 / 哈希表 | 更复杂交互与课程扩展 | 第三阶段,加分项,仅在 M7 前有余量时启动 |
(2)能力维度:账号与闯关积分(本阶段新增纳入范围)
在可视化学习闭环之外,本项目新增两条能力线——账号体系(登录 / 注册)与闯关积分,用于解决"学完就忘、没有反馈、没有坚持动力"的问题。
| 能力层 | 功能 | 所属阶段 | 优先级 | 说明 |
|---|---|---|---|---|
| L1 学习闭环(立身之本) | 结构选择、数据输入、单步动画、代码高亮、步骤解释、播放控制 | MVP | Must | 不可裁剪——任何情况下优先保证 |
| L2 账号与进度(新增) | 注册 / 登录 / 登出、会话保持、访客模式、学习记录与进度持久化、"我的实验台" | M4a | Should | 让学习行为可持续;未登录也必须能完整使用 L1 |
| L3 闯关积分(新增) | 知识关卡地图与解锁、题目与答题区、即时判定与解析、积分规则、成就 / 徽章、积分榜 | M6a | Should | 把"看懂"变成"练会",形成「学 → 练 → 测」闭环 |
| L4 轻后端(新增) | 账号 API、进度 API、积分 API、数据持久化、部署与回滚 | M4a / M6a | Could | 由成员8 承担,不提前过度设计 |
(3)新增范围带来的取舍(必须说清楚)
- 新增 L2 / L3 不改变 L1 的完成标准,也不占用 V1 / V2 的数据结构迭代窗口——账号与积分安排在 M4a(Alpha 期)与 M6a(Beta 期)两个独立时间盒内完成;
- 若 M4a / M6a 时间盒不够用,降级顺序为:积分榜 → 成就徽章 → 关卡数量,登录与进度保存最后降级;
- L4 的轻后端只做"账号 / 进度 / 积分"三件事,不做通用用户中心,避免在 MVP 阶段过度设计;
- 积分规则必须公开可解释(学生能自己算出为什么得这个分),不接受黑盒加分。
差异化重点(不是"动画更多",而是学习链路更完整):
| 维度 | 教材 / 视频 | 成熟工具 | NULL 重点 |
|---|---|---|---|
| 动态过程 | △ | ✓ | ✓ |
| 主动交互 | △ | ✓ | ✓ |
| 代码联动 | △ | ✓ | 强化 |
| 中文课程场景 | ✓ | 部分 | 重点 |
| 步骤解释 | ✓ | 有 | 强化 |
| 账号与进度沉淀 | ✗ | 部分 | 新增 |
| 闯关练习与积分激励 | △(纸质习题) | 少 | 新增·重点 |
2.3 项目整体里程碑计划
说明:下表日期为团队内部排期。其中 10/15(作业截止)、10/16(答辩)为课程组硬性节点;其余节点如与课程日历冲突,由组长在群内公告后更新本文并打版本号。
| 里程碑 | 阶段 | 时间 | 关键交付物 | 通过标准(DoD) |
|---|---|---|---|---|
| M0 选题确认 | 选题 | 09/24 – 10/08 | 《选题汇报》PPT、NABCD 分析 | ✅ 已完成,课堂汇报通过 |
| M1 需求分析 & 界面原型定稿 | 需求与原型 | 10/09 – 10/15 | 《软件需求规格说明书》v1.0、界面原型 v1.0、需求分析 PPT、原型答辩 PPT | 10/15 23:59 前博客 + 文档 + PPT 全部归档华为云;10/16 答辩完成 |
| M2 需求评审与基线冻结 | 需求基线 | 10/17 – 10/18 | 评审意见记录、说明书 v1.1、产品 Backlog、验收标准清单 | 评审问题 100% 闭环;需求基线 v1.1 打 tag 冻结,此后变更走变更流程 |
| M3 架构设计与技术验证 | 架构 | 10/17 – 10/19 | 架构设计文档、Structure Adapter 接口定义、动画引擎 PoC | PoC 跑通"链表插入"垂直切片,代码高亮 × 动画 × 解释三联动可用;接口 Review 通过 |
| M4 Alpha 冲刺 | Alpha | 10/19 – 10/24 | MVP 版本:数组 / 链表 / 栈 / 队列,基础操作 + 单步动画 | 4 个结构 × 核心操作全部可用;单元测试通过;无 P0/P1 缺陷 |
| M4a 账号与学习记录 | 增值能力 | 10/19 – 10/23 | 注册 / 登录 / 登出、会话保持、访客模式、学习进度与实验台记录持久化、账号与进度 API | 可按账号登录并保留学习进度;未登录也能完整使用 L1 核心功能;密码加盐哈希存储,库中无明文 |
| M5 Alpha 发布 & 班级内测 | Alpha | 10/24 – 10/25 | Alpha 上线版本、内测反馈表 | ≥ 15 位同学完成体验;"是否看懂"正向反馈 ≥ 70% |
| M6 Beta 冲刺 | Beta | 10/25 – 10/27 | V1 版本:树 / 二叉搜索树(遍历 + 插入 / 删除);V2 视余量启动 | V1 结构全功能可用;Alpha 反馈的 P0/P1 问题 100% 修复 |
| M6a 闯关积分体系 | 增值能力 | 10/24 – 10/26 | 关卡地图与解锁、题面与答题区、即时判定与解析、积分规则与结算、成就徽章、积分榜 | ≥ 3 个知识关卡上线;积分由服务端判定且幂等(重复提交不重复加分);积分规则对用户公开可解释 |
| M7 Beta 发布 & 课程场景验证 | Beta | 10/26 – 10/27 | Beta 版本、课程场景试用记录(预习 / 演示 / 复习) | 至少完成 1 次课堂投屏演示;教师 / 助教走查通过 |
| M8 终期答辩与交付 | 交付 | 10/27 – 10/28 | 终期答辩 PPT、完整源码与文档、演示视频 | 演示零故障(含录屏兜底);文档齐全、README 可复现 |
关于新增的账号与闯关积分:M4a / M6a 是两条独立时间盒,与 M4、M6 的数据结构冲刺并行推进,由不同成员承担(见 4.2 分工表),因此不会挤占 L1 学习闭环与 V1 / V2 的迭代窗口。若时间盒告急,按 2.2 节「新增范围带来的取舍」约定的顺序降级。
关键指标:不是"访问量",而是——用户能否更快理解一次结构变化,以及能否在闯关中被检验出真的掌握了。
2.4 里程碑甘特图
gantt
title NULL · 数据结构可视化学习平台 —— 项目整体里程碑
dateFormat YYYY-MM-DD
axisFormat %m/%d
section 选题
M0 选题确认 :done, m0, 2026-09-24, 2026-10-08
section 需求与原型
M1 需求分析 & 原型定稿 :active, m1, 2026-10-09, 2026-10-16
M2 需求评审与基线冻结 : m2, 2026-10-17, 2026-10-18
section 架构
M3 架构设计与技术验证 : m3, 2026-10-17, 2026-10-19
section Alpha
M4 Alpha 冲刺 : m4, 2026-10-19, 2026-10-24
M5 Alpha 发布 & 班级内测 : m5, 2026-10-24, 2026-10-25
section Beta
M6 Beta 冲刺 : m6, 2026-10-25, 2026-10-27
M7 Beta 发布 & 场景验证 : m7, 2026-10-26, 2026-10-27
section 增值能力 · 账号与闯关积分
M4a 账号与学习记录 : m4a, 2026-10-19, 2026-10-23
M6a 闯关积分体系 : m6a, 2026-10-24, 2026-10-26
section 交付
M8 终期答辩与交付 : m8, 2026-10-27, 2026-10-28
2.5 本次作业周计划
本次作业的窗口只有 7 天(10/09 – 10/16),且"界面原型设计内容必须于答辩(10/16)前完成",因此我们采用倒排 + 并行的方式推进:
| 日期 | 事项 | 产出 | 主要负责 |
|---|---|---|---|
| 10/09(五) | 需求梳理启动会:确认范围、冻结 MVP 边界、任务拆分到人 | 任务看板、分工表 | 组长 / PM |
| 10/10(六) | 用户调研:访谈 3 位同学 + 1 位助教或老师,整理真实使用场景 | 访谈纪要、用户场景清单 | 需求负责人 |
| 10/11(日) | 场景 → 功能:功能清单 + MoSCoW 优先级;类图第一稿 | 功能清单、类图 v0.1 | 需求分析 / 建模 |
| 10/12(一) | 类图评审 + 前后端接口对齐;原型页面清单与线框 | 类图 v1.0、页面清单、线框稿 | 建模 + 原型设计 |
| 10/13(二) | 高保真原型开发(核心 3 个页面);《需求规格说明书》撰写 | 原型 v0.5、说明书初稿 | 原型实现 + 文档 |
| 10/14(三) | 原型走查 + 说明书走查;两份 PPT 制作 | 走查记录、PPT 初稿 | 测试 / 文档 |
| 10/15(四) | 全流程彩排 + 计时;文档与 PPT 归档华为云;博客发布 | 全套交付物、博客链接 | 全组 |
| 10/16(五) | 课堂答辩 · 收集评审意见 | 评审表、答辩记录 | 全组 |
并行原则:文档(说明书)与原型(HTML)由不同成员同步推进,每天 21:00 在群里对齐一次接口与术语,避免"文档写完发现原型对不上"。
本次作业的 7 天排期是完整迭代节奏的一个压缩版。进入 M4 之后,团队统一按 5.6 一周迭代节奏(周一立项 → 周二至周三并行开发 → 周四主链路集成 → 周五验收回归 → 周末复盘)运转。
原型范围说明:本次交付的界面原型除 L1 学习闭环的 7 个页面外,已包含账号(登录 / 注册)与闯关积分相关的页面原型(P8、P9,见 7.4 页面清单)。这两条能力线的功能实现分别安排在 M4a 与 M6a,本次只交付原型与需求定义,不占用本次作业的答辩内容。
三、关键点、难点与风险分析
3.1 六个关键技术难点与攻关思路
难点 1:动画与代码执行的同步——本项目的"心脏"
问题:如何把一次数据结构操作(例如链表插入)切分成可回放、可解释的原子步骤,并让每一步同时驱动"代码高亮 + 图形变化 + 文字解释"三者一致?
为什么难:如果让动画回调去直接操作画布,那么"暂停 / 单步 / 回退"就变成了无法实现的乱序状态;如果让代码逐行执行再录屏,又无法支持用户自定义数据。
攻关思路:**把动画降级为"数据 + 下标"**——让算法只负责产出 Step,让画面只负责消费 Step。
- 成员5(算法引擎) 不直接画图,而是把算法过程拆成 Step 序列(而不是只返回最终结果);
- 成员1(Tech Lead) 统一 Step Schema,规定字段、顺序与公共语义,并维护 Step Controller 作为唯一调度入口;
- 成员3(可视化引擎) 与 成员6(代码同步) 各自消费同一个 Step——一个播动画,一个绑
codeLine与description; - 成员4(播放控制) 的播放器不碰算法,只负责改变当前 Step 下标。
这样,"暂停 / 单步 / 回退 / 调速 / 拖进度条"全部退化成切换一个下标,实现难度骤降,天然支持回放与分享,也让成员3、4、5、6 可以按接口并行开发,互不等待。
难点 2:图形自动布局的稳定性与美观
问题:链表 / 树 / 图在插入、删除后需要重新布局,若布局突变会出现"节点乱跳",学生反而看不懂。
攻关思路:分层布局策略——链表用线性布局,树用 Reingold–Tilford 类算法,图用有向分层布局;动画只做位置补间(tween),不做重排突变;布局结果缓存,只有结构真正变化时才重算。
难点 3:自定义输入下的边界与非法情况
问题:用户可输入任意数据、任意操作序列(空结构删除、下标越界、栈溢出、重复插入等)。
攻关思路:输入校验 + 操作预演(dry-run) + 明确错误提示。宁可拒绝执行并解释原因,也绝不静默失败——静默失败对初学者是最大的伤害。
难点 4:长操作序列下的性能与内存
问题:快照序列随步骤数线性增长,长序列(如 1000 次随机操作)会占满内存。
攻关思路:快照增量 / 差分存储 + 关键帧定期全量;设置步骤上限保护,超过 N 步自动分段并提供"跳到第 k 段"。
难点 5:教学解释的"人话"质量
问题:本项目最难的其实不是代码,而是文案。"把 p.next 指向新节点"对初学者等于没说。
攻关思路:每个步骤绑定固定解释模板,解释文案由"算法同学 + 文档同学"双人评审;邀请任课老师 / 助教对术语与表述做一次走查,确保与课程用语一致。
难点 6:多结构复用架构,避免"每加一个结构就重写一遍"
问题:如果每个数据结构都自带一套动画代码,V1、V2 阶段将无法按期交付。
攻关思路:抽象出统一的 Structure Adapter 接口(数据模型 + 布局器 + 渲染器 + 步骤生成器),把"通用基础设施"(播放器、控制条、代码高亮、解释面板)与"具体结构"彻底解耦。M3 阶段必须先完成一个垂直切片(链表插入)跑通全链路,再横向复制到其他结构。
3.2 风险登记册
| 编号 | 风险描述 | 类别 | 概率 | 影响 | 等级 | 应对策略 | 负责人 | 触发信号 |
|---|---|---|---|---|---|---|---|---|
| R1 | 需求蔓延:结构越加越多、功能越加越多,MVP 做不完 | 范围 | 高 | 高 | 🔴 高 | 严格双维度边界:内容维度 MVP 只做 4 个线性结构;能力维度 L1 不可裁剪、L2/L3 走独立时间盒 M4a / M6a。新增需求一律进 Backlog,需组长 + PM 双签才能插入当前迭代 | 组长 / PM | 迭代中出现"顺手再加一个结构 / 再加一个功能"的提议 |
| R2 | 动画引擎与代码高亮同步难度被低估 | 技术 | 中 | 高 | 🔴 高 | M3 先做"链表插入"垂直切片打通全链路,再横向复制;若 3 天内未跑通,降级为"预置数据集 + 分段动画"方案 | 可视化技术预研 | PoC 超出 M3 时间盒 |
| R3 | 8 人协作接口不一致、合并冲突频繁 | 协作 | 中 | 中 | 🟠 中 | 提前冻结 Adapter 接口与类型定义;feature 分支 + 小 PR + 每日合并回 dev;禁止直推 main | 前端架构 | 单次 PR 冲突文件 > 5 个 |
| R4 | 进度前松后紧,末期撞上考试周 | 进度 | 高 | 中 | 🟠 中 | 里程碑倒排;每周日 21:00 看板对齐;每个阶段预留 20% buffer | 组长 / PM | 连续两周任务完成率 < 70% |
| R5 | 成员课程负担不均,个别成员长期掉线 | 人员 | 中 | 中 | 🟠 中 | 任务按 1–5 Point 计量、可转让;组长每周复核负载并调平 | 组长 / PM | 某成员连续 2 周无产出记录 |
| R6 | 浏览器兼容 / 课堂投屏演示失败 | 交付 | 低 | 高 | 🟠 中 | 提前锁定 Chrome / Edge 最新版;课堂演示前 24 小时全流程彩排;准备录屏兜底 | 测试 / 质量 | 彩排出现渲染异常 |
| R7 | 需求理解偏差,做出来老师同学觉得不好用 | 需求 | 中 | 高 | 🔴 高 | 10/16 答辩即第一次真实反馈;M5 班级内测收集"是否看懂";用数据而非感觉决定迭代方向 | 需求负责人 | 内测正向反馈 < 70% |
| R8 | 素材 / 第三方库版权问题 | 合规 | 低 | 中 | 🟡 低 | 代码与素材全部自研;引用第三方库遵守 License 并在 README 注明 | 文档 / 答辩 | 引入新的第三方依赖 |
| R9 | 新增账号与闯关积分拖累核心功能:登录 / 积分是新增范围,容易在 Alpha 期抢走 L1 的工时 | 范围 | 中 | 高 | 🔴 高 | 独立时间盒(M4a / M6a)与独立负责人;L1 是不可裁剪项,任何情况下优先保证;按"积分榜 → 成就 → 关卡数量"顺序降级,登录与进度保存最后降级 | 组长 / PM + 成员8 | M4a / M6a 占用到 L1 的迭代工时 |
| R10 | 账号安全与积分公平性:密码泄露、会话固定、重复提交刷分、越权查看他人积分 | 安全 | 中 | 高 | 🔴 高 | 密码加盐哈希存储、全程 HTTPS、会话超时与登出失效;积分一律由服务端判定并按幂等键去重;接口做鉴权,不信任前端传入的分数 | 成员8 + 成员7 | 出现可重复加分 / 越权读取的用例 |
| R11 | 轻后端范围失控,MVP 阶段过度设计 | 技术 | 中 | 中 | 🟠 中 | L4 只做"账号 / 进度 / 积分"三件事,明确不做通用用户中心、不做社交、不做管理后台 | 成员8 | 出现课程作业未要求的后端需求 |
3.3 Top 3 风险的详细应对预案
R1 需求蔓延(最高优先级)
我们的项目最诱人的陷阱是"再加一个红黑树吧"——最近一次就发生在新增登录与闯关积分的时候。对策不是拒绝新功能,而是把范围写进基线并给新功能单独开时间盒:内容维度(MVP / V1 / V2)与能力维度(L1–L4)在 M2 需求基线冻结时一并冻结,L2 / L3 走独立的 M4a / M6a,不占用 L1 与 V1 / V2 的窗口。任何新增需求写进 Backlog 并在每周日例会上统一评估,变更必须同时回答"砍掉什么"——不允许只加不减。
R2 同步引擎技术风险
这是决定项目成败的单点技术风险。应对方式是先用最小垂直切片验证:M3 阶段只做"链表插入"这一个操作,从代码高亮到画布动画到解释文案全部打通。如果 3 天时间盒内无法跑通,立即启动降级方案(预置数据集 + 分段动画,牺牲部分自定义能力保住核心体验),并在周报中如实上报。
R7 需求理解偏差
我们不假设自己懂用户。10/16 答辩现场就是第一次真实检验;M5 阶段做班级内测,收集"是否看懂"的结构化反馈而不是"好不好看";M7 进入真实课程场景(预习 / 课堂演示 / 复习)验证。任何一个功能,如果内测中多数人看完仍说不清"刚才发生了什么",就重做。
四、项目分工与组员工作量比例
本章与团队执行版文档《NULL 团队 8 人职责分工与协作说明》完全对齐。该文档明确了 8 名成员的职责边界、协作接口、阶段产出与验收依据。
4.1 团队角色分工
组织原则:不是把 8 个人机械地切成 8 个孤立岗位,而是让每个人有明确主责,同时能够围绕同一个可运行产品进行跨模块协作。每名成员均采用「主责 + 副责」模式。
项目核心链路(所有成员的工作最终都必须能够接入这条链路):
用户输入 → 算法引擎 → Step 步骤模型 → 动画引擎 / 代码高亮 / 步骤解释 → 播放控制 → 页面展示 → 测试与部署
| 成员 | 核心角色 | 主责 | 副责 |
|---|---|---|---|
| 成员1 | 组长 / PM / Tech Lead / 集成负责人 | 范围、架构、任务、接口、集成、版本 | 公共状态、Step Controller、技术补位 |
| 成员2 | 产品 / UX / 前端体验负责人 | 用户流程、页面原型、学习交互、普通前端 | 可用性测试、文案与演示流程 |
| 成员3 | 可视化引擎负责人 | 节点 / 边 / 指针渲染、动画、布局、视觉状态 | 性能优化、动画组件沉淀 |
| 成员4 | 前端交互 / 播放控制负责人 | 播放、暂停、单步、回退、调速、UI 状态 | 前端组件、与成员3联调 |
| 成员5 | 数据结构算法引擎负责人 | 数据模型、算法操作、Step 生成、算法正确性 | 单元测试、基础数据结构模块 |
| 成员6 | 代码同步 / 算法模块负责人 | 代码高亮、步骤解释、Step 映射、进阶算法模块 | 教学案例、树 / 图等扩展 |
| 成员7 | QA / 测试负责人 | 测试计划、接口测试、回归测试、E2E、Bug 管理 | 可用性与兼容性检查 |
| 成员8 | 工程化 / 部署 / 全栈支援 | 构建、CI、部署、环境、日志、轻后端 | 跨模块救火、发布保障 |
四条协作主线与交叉备份
| 主线 | 成员 | 共同目标 | 要避免的误区 |
|---|---|---|---|
| 产品与整体 | 1 + 2 | 范围清晰、用户流程可执行、架构可落地 | PM 与开发脱节 |
| 可视化与交互 | 3 + 4 | 动画正确、播放可靠、操作直观 | 动画各写各的 |
| 算法与教学 | 5 + 6 | 算法正确、Step 可解释、代码同步 | 算法正确但无法被动画消费 |
| 质量与工程化 | 7 + 8 | 测试可重复、发布可重复、问题可追溯 | 最后一天才测试和部署 |
三条组织规则
- 每名成员均采用**"主责 + 副责"**模式:主责用于确保模块有人负责到底,副责用于避免单点依赖;
- 成员之间以**"接口约定"协作,不以"写完自己的文件"作为完成标准**——只有模块能够被下一环正确调用,任务才算真正完成;
- 优先保证"链表插入"这一黄金样例完整跑通,再横向扩展数组、栈、队列、树和图。
4.2 本次作业组员分工与贡献度
本节与 1.1 交付物清单逐条对应:先把 7 项交付物落到人,再按成员汇总工作量与贡献度。
(1)交付物责任分配
| 编号 | 交付物(对应 1.1) | 主责 | 主要协作 |
|---|---|---|---|
| D1 | 1 篇博客随笔(含作业目录与评分要点核对) | 【郑伟航】102400134 | 全员供稿:成员2(用户场景与原型)、成员3(可视化方案)、成员4(交互与控制)、成员5(算法与功能)、成员6(教学解释)、成员7(验收标准)、成员8(工程与部署) |
| D2 | 1 份界面原型设计(在线可交互链接) | 【林嘉柞】102400118 | 成员4(播放控制与交互控件)、成员3(可视化画布与动画表达)、成员5(示例数据与操作合法性)、成员8(部署为在线链接) |
| D3 | 1份需求规格说明书(word电子版) | 【姚浩然】102400131 | 成员3(类图与具体要求)、成员5(功能描述与算法接口)、成员6(术语表与解释规范)、成员4(交互规范)、成员7(验收验证标准)、成员8(运行环境与外部接口)、成员1(统稿与国标格式把关) |
| D4 | 1 份需求分析 PPT | 【苏林】102400125 | 成员2(用户场景与原型页)、成员3(领域类图页)、成员5(功能与优先级页)、成员6(教学解释页)、成员7(验收标准页)、成员8(运行环境页) |
| D5 | 1 份界面原型设计答辩 PPT | 【邹毅轩】102400136 | 成员1(答辩组织与讲稿)、成员4(现场演示操作)、成员3(视觉素材)、成员7(彩排走查)、成员8(演示环境与录屏兜底) |
| D6 | 1 份界面原型设计评审表(腾讯共享文档) | 【邱宁华】102400325 | 成员2(评审要点)、成员1(汇总并转 Backlog) |
| D7 | 1 份需求分析评审表(腾讯共享文档) | 【林俊杰】102400119 | 成员3(技术要点)、成员1(汇总并转 Backlog) |
说明:D3 / D4 是"一人主笔、多人分章"的交付物,因此主责人负责统稿与交期,各协作人负责自己那一章的内容与准确性;D6 / D7 由成员7 统一建表维护,避免多人同时编辑同一份腾讯共享文档。
(2)组员分工与贡献度
| 学号 | 工作内容 | 贡献度 |
|---|---|---|
| 【詹志瑜】102400133 | 【成员1·组长/PM/Tech Lead】主责 D1、D4;协作 D3、D5、D6、D7。确定本次作业范围与 MVP 边界,拆分任务到人并制定 10/09–10/16 倒排计划;统一 Algorithm Engine → Step → Animation / Code Sync / Explanation 的接口约定;主持需求启动会与类图评审会;撰写并排版发布博客 D1,核对 1.2 评分要点自检表;统稿《需求规格说明书》D3,把关国标目录结构、缩写定义与全文术语一致性;搭建需求分析 PPT D4 的框架并撰写项目背景 / 目的意义 / 计划落实页;组织答辩彩排;负责全部交付物归档华为云 | 【13%】 |
| 【邱宁华】102400325 | 【成员2·产品/UX/前端体验】主责 D2、D3、D5;协作 D1、D4、D6。设计 9 个页面的信息架构(结构目录 / 操作区 / 动画区 / 代码区 / 解释区 / 控制区),绘制中保真原型并定义页面状态(初始 / 输入错误 / 运行中 / 暂停 / 完成 / 未登录);新增设计登录与注册页、闯关模式与积分榜页;撰写《需求规格说明书》第 1 章引言与第 2 章总体描述(用户画像 / 用户场景 / 用户故事);编写交互说明与提示文案;设计答辩演示路径与异常兜底 | 【12%】 |
| 【苏林】102400125 | 【成员3·可视化引擎】协作 D1、D2、D3、D4、D5。绘制领域类图 v0.1–v1.0 并主持评审,撰写《需求规格说明书》第 3 章具体要求与第 5 章功能描述 D3;设计节点 / 边 / 指针 / 数组单元 / 标签等基础可视化组件的原型表达 D2;定义 Create / Delete / Connect / Disconnect / Highlight / Move 通用动画动作并输出动作映射表;制定链表横向、数组顺序、树层次、图基础布局策略;在原型中表达关键步骤的视觉状态;为闯关答题提供"结构状态比对"判定能力 | 【12%】 |
| 【邹毅轩】102400136 | 【成员4·前端交互/播放控制】协作 D1、D2、D3、D5。在原型中实现播放控制器(开始 / 暂停 / 继续 / 下一步 / 上一步 / 重新开始 / 速度调整)与前端交互状态机(running / paused / finished / error)D2;实现操作面板、按钮、滑块与步骤进度组件;撰写《需求规格说明书》第 4 章交互规范(页面状态与操作反馈)D3;验证连续点击、快速切换、暂停后恢复、回退后再播放等状态问题;设计登录态 UI 与积分变化、关卡解锁的界面反馈;承担答辩现场原型演示操作 D5 | 【12%】 |
| 【林嘉柞】102400118 | 【成员5·算法引擎】协作 D1、D2、D3、D4。建立统一数据结构模型与操作接口(create / insert / delete / search / traverse);把算法过程拆成 Step 序列而非只返回最终结果,与成员1共同维护 Step Schema;撰写《需求规格说明书》第 5.1 功能描述与第 5.2 输入输出格式 D3,输出算法接口文档与边界情况说明;为原型提供各结构的示例数据与操作合法性校验 D2;定义闯关关卡的正确答案与判分规则;编写正常 / 边界 / 非法输入的算法单元测试 | 【13%】 |
| 【郑伟航】102400134 | 【成员6·代码同步/步骤解释】协作 D1、D3、D4、D5。建立 Step → codeLine → description 映射关系,实现代码 / 伪代码高亮组件的数据绑定,保证 Step 切换时高亮同步;撰写面向初学者的步骤解释(黄金样例「10→20→40 中 20 后插入 30」全套解释)并整理《需求规格说明书》附录 B 术语表 D3;统一各结构的术语与教学风格;设计闯关关卡的知识点分布、题干与错题解析,保证积分规则对用户公开可解释;规划树遍历、BST、BFS/DFS 等进阶算法模块 | 【12%】 |
| 【林俊杰】102400119 | 【成员7·QA/测试】主责 D6、D7;协作 D1、D2、D3、D5。制作并维护《界面原型设计评审表》《需求分析评审表》腾讯共享文档 D6 / D7;撰写《需求规格说明书》第 5.3 界面验收标准与第 5.4 功能验收标准 D3;制定测试计划与用例库(正常流程 / 边界 / 异常输入 / 连续操作),建立 7 条接口测试矩阵并维护黄金测试案例;依据验收标准执行原型走查、记录并跟踪缺陷 D2;新增登录 / 会话失效 / 权限越界 / 重复提交刷分 / 积分回滚专项用例;组织答辩彩排走查 D5 | 【13%】 |
| 【姚浩然】102400131 | 【成员8·工程化/部署/全栈支援】协作 D1、D2、D3、D4、D5。将界面原型部署为在线可访问链接并保证答辩演示环境稳定、准备录屏兜底 D2 / D5;撰写《需求规格说明书》第 2.3 运行环境与第 3.3 外部接口需求 D3;统一开发环境、依赖版本与启动命令,配置基础 CI(构建 + 基础测试 + 必要检查),维护 README 与部署文档;新增账号与进度 API、积分 API 与数据持久化(密码加盐哈希、会话管理、积分幂等结算),保证未登录访客模式可完整使用核心功能 | 【13%】 |
| 合计 | 100% |
4.3 团队绩效考核制度
为保证"计划不只是写在纸上",我们在开发开始前就公开考核规则(评分规则、证据来源、计算方式全部前置公开,组长同样被考核):
五项指标与权重
| 指标 | 权重 | 考察内容 |
|---|---|---|
| T 任务完成度 | 30% | 按时、达标、无故延期情况 |
| Q 工作质量 | 25% | 正确性、规范性、Bug 与可维护性 |
| W 实际工作量 | 20% | 任务点、复杂度、责任与额外工作 |
| C 团队协作 | 15% | Code Review、补位、沟通、问题解决 |
| P 参与纪律 | 10% | 会议、响应、进度反馈、制度执行 |
计算公式:S = 0.30T + 0.25Q + 0.20W + 0.15C + 0.10P,最终个人绩效封顶 100 分。
执行流程(每个迭代结束填写一次)
① 任务分配 → ② 过程留痕 → ③ 阶段评分 → ④ 贡献归一 → ⑤ 异议复核
负责人/ 代码/文档/ 五项指标 绩效分 → 凭证据复核,
截止时间/ 测试/会议 分别 0–100 成员贡献比例 组长同规则
验收标准
不同角色使用同一权重,但证据形式不同(避免"用同一把尺子量不同岗位"):
| 角色 | 任务完成证据示例 | 质量证据示例 | 协作证据示例 |
|---|---|---|---|
| 成员1 | 任务拆分、公共模块、集成版本 | 接口稳定、版本可运行 | 解决跨模块阻塞、Review |
| 成员2 | 原型、页面、交互流程 | 可用性问题减少、状态完整 | 与前端 / 教学内容联调 |
| 成员3 | 动画组件、布局、视觉状态 | 动画稳定、组件复用 | 配合播放器 / 算法联调 |
| 成员4 | 播放器、状态管理、控制组件 | 状态一致、边界操作可靠 | 与成员1 / 3 联调 |
| 成员5 | 算法与 Step | 算法 / 边界测试通过 | 维护公共 Step 语义 |
| 成员6 | 代码同步、解释、进阶算法 | 同步准确、解释正确 | 配合产品 / 测试优化理解 |
| 成员7 | 用例、Bug、测试报告 | 缺陷复现清晰、回归完整 | 推动问题闭环 |
| 成员8 | CI、部署、环境、API | 构建稳定、版本可复现 | 为各模块提供工程支持 |
核心原则
- 不以代码行数或 Commit 数量直接等同于贡献;
- 任务按 1 / 2 / 3 / 4 / 5 Point 计量,实际难度明显偏差时经团队讨论可调整;
- 加减分必须说明理由 + 提供对应证据;
- 建议每个成员每轮迭代的任务点保持在同一数量级(例如 8~12 点),但不强求完全相等——真正需要比较的是"任务难度 × 完成质量 × 协作贡献";
- 主要证据来源:任务看板 / 验收记录、Git / PR / Code Review、测试记录 / 文档 / 设计稿、会议纪要 / 阶段汇报。
五、成员协作方式
8 人团队最大的风险不是技术,而是信息不对称。我们的协作机制围绕"让信息自动流动、让接口先于代码确定"设计。
5.1 端到端开发链路与四条主线
谁接谁的活——这不是 8 个人各做各的模块然后拼起来,而是一条有明确上下游的生产线:
成员2 定义用户操作
↓
成员5 产生算法 Step
↓
成员1 统一并调度 Step
↓
成员3 播放动画
↓
成员6 同步代码与解释
↓
成员4 提供播放控制
↓
成员7 执行接口与 E2E 测试
↓
成员8 构建并部署
每一环的"完成"标准都是下一环能够正确调用,而不是"我这个文件写完了"。
5.2 沟通工具矩阵
| 场景 | 工具 | 规则 |
|---|---|---|
| 日常即时沟通 | QQ 群(主) / 微信群(备) | 消息 2 小时内响应;@全体 由组长发起,仅用于需要全员知悉的事项 |
| 每周例会 / 评审会 | 腾讯会议 | 每周日 21:00 固定例会 30–45 分钟;评审会按需召开,必须留会议纪要 |
| 每日进度同步 | QQ 群打卡 | 每人每天三句话:昨天做了什么 / 今天做什么 / 卡在哪里 |
| 文档在线协作 | 腾讯文档 | 说明书、评审表、会议纪要均在腾讯文档协同编辑,保留修订记录 |
| 任务看板 | 腾讯文档表格 | 四态看板:待办 / 进行中 / 待验收 / 已完成 |
| 接口约定 | 接口文档 + Issue | 接口先于实现确定,并以文档为唯一依据 |
| 代码与 Issue | Git 仓库 Issues + PR 评论 | 技术讨论尽量落在 Issue / PR 里,形成可追溯的决策记录 |
| 对外发布 | CSDN 社区 | 团队博客、阶段性成果对外发布 |
这周已经召开组会进行需求分析以及原型的确立



5.3 版本仓库协作规范
仓库划分:代码主仓库(Gitee / GitHub 私有仓库)+ 作业交付仓库(华为云仓库,存放 Word / PDF / PPT)。
分支模型
| 分支 | 用途 | 规则 |
|---|---|---|
master | 可交付 / 冻结版本 | 禁止直接 push,只接受来自集成分支的 PR,每次里程碑打 tag |
develop | 集成分支 | 每日合并,保持可运行 |
feature/<模块>-<简述> | 功能开发 | 从 develop 切出,如 feature/linkedlist-insert-anim |
fix/<问题简述> | 缺陷修复 | 从 develop 或对应 feature 切出 |
docs/<文档名> | 文档变更 | 说明书、PPT 源文件、博客草稿 |
代码合并与测试流程(九步,每步都要留证据)
| 步骤 | 阶段 | 关键要求 | 证据 |
|---|---|---|---|
| 1 | 领取任务 | 明确功能、输入输出、任务点、验收标准 | 任务卡 |
| 2 | 独立分支开发 | feature/xxx 或 fix/xxx,不直接改稳定分支 | 分支 / Commit |
| 3 | 开发者自测 | 单元 / 组件测试 + 黄金输入 | 自测记录 |
| 4 | 接口联调 | 与直接上游 / 下游验证调用关系 | 联调结果 |
| 5 | Pull Request | 说明改了什么、怎么测、影响哪些接口 | PR |
| 6 | Code Review | 至少一名相关成员评审;公共模块成员1参与 | Review 记录 |
| 7 | 合入 develop | 通过后进入集成分支,不直接进入 release | 集成版本 |
| 8 | 集成 / 回归测试 | 成员7跑接口矩阵与黄金案例 | 测试结果 |
| 9 | 版本冻结与发布 | 只修 Bug,不新增功能;成员8部署 | Release |
Commit 规范:采用 Conventional Commits,格式 type(scope): 描述,type 取值 feat / fix / docs / style / refactor / test / chore。
示例:feat(linkedlist): 支持插入步骤的 Step 生成
Commit 归属:要求 user.name 使用真实姓名、user.email 使用团队统一邮箱,确保贡献可追溯、可用于绩效评分。
5.4 接口与集成测试责任矩阵
模块单独能跑不等于连起来能跑。我们把 11 条关键连接、提供方、消费方、测试方和"必须验证什么"全部写死在矩阵里(新增账号与积分后,从原来的 7 条扩展到 11 条):
| 连接 | 提供方 | 消费方 | 测试 / 验收 | 必须验证 |
|---|---|---|---|---|
| UI → Algorithm | 2 / 4 | 5 | 7 | 输入参数能否正确进入算法;非法输入是否被拦截 |
| Algorithm → Step | 5 | 1 | 7 | Step 字段、顺序、目标对象与最终状态是否正确 |
| Step → Animation | 1 | 3 | 7 | Create / Connect / Highlight 等动作能否正确播放 |
| Step → Code Sync | 1 / 5 | 6 | 7 | codeLine 与 explanation 是否和当前 Step 一致 |
| Player → Step Controller | 4 | 1 | 7 | 前进、后退、暂停、重播是否改变正确状态 |
| Step → UI State | 1 / 4 | 2 | 7 | 运行中 / 错误 / 完成状态是否正确呈现 |
| Build → Deploy | 全体提交 | 8 | 7 / 1 | 代码合并后是否可构建、可访问、可回滚 |
| Login → Session | 8 | 1 / 4 | 7 | 登录态是否正确建立、超时失效与登出后是否真正失效;未登录访客模式是否仍可完整使用 L1 |
| Session → Progress | 8 | 1 / 2 | 7 | 学习进度写入与读取是否一致;换设备登录后进度是否恢复 |
| Session → Score | 8 | 5 / 6 | 7 | 积分是否由服务端判定、是否幂等(重复提交不重复加分);越权提交他人分数是否被拒绝 |
| Score → UI State | 8 / 4 | 2 | 7 | 未登录 / 已登录 / 积分变化 / 关卡解锁状态是否正确呈现 |
推荐的集成顺序(把"最后一刻大爆炸集成"拆成可验证的小步):
- 成员5先完成算法模块自测,能独立输出正确 Step;
- 成员1用固定 Step 测 Step Controller,不依赖动画;
- 成员3用 Mock Step 测动画,不等待算法全部完成;
- 成员6用固定 Step 测代码高亮与解释;
- 成员4接入 Step Controller,验证播放、暂停、回退和重播;
- 成员7按接口矩阵逐条做两两集成测试;
- 全部通过后再做"链表插入"完整 E2E;
- 黄金样例稳定后,再扩展其他数据结构。
完成的定义(Definition of Done)
一个成员说"我写完了"还不够。至少应满足:本模块自测通过 → 接口数据符合约定 → 与直接下游联调通过 → PR 完成评审 → 集成分支测试通过 → 关键用例回归无新增严重问题。
5.5 冲突处理机制
| 冲突类型 | 处理机制 |
|---|---|
| 代码冲突(Git merge conflict) | 遵循"谁后提交谁负责 rebase"原则;冲突涉及他人模块时,先拉当事人语音沟通,30 分钟内未解决立即升级到群里同步,由模块负责人裁决;禁止用"覆盖对方代码"的方式解决冲突 |
| 接口冲突(上下游定义不一致) | 以接口文档为唯一依据;需要变更时先改接口文档、再改代码,并在 PR 中同步引用;不允许一方私自改字段 |
| 文档冲突(多人改同一份) | 统一在腾讯文档在线协作,不使用"各自本地 Word 互相传"的方式;文档设唯一负责人,其他人以批注 / 修订模式提意见;重要版本导出 PDF 并以 vX.Y_日期 命名归档 |
| 意见冲突(方案分歧) | 三步收敛:① 用证据说话——原型 / 数据 / 竞品截图优先于主观感觉;② 讨论两轮仍不收敛,由组长拍板并记录决策理由与反对意见;③ 已决策事项先执行,允许在下一个迭代复盘时重新提出 |
| 进度冲突(任务撞车 / 无人认领) | 周一例会上统一认领;出现无人认领的任务,由组长指定;出现撞车,按"谁更熟悉谁做、另一人转做相邻任务"处理 |
| 职责冲突(模块边界模糊) | 回到职责文档的"协作接口"与"职责边界"两节判定;文档未覆盖的情况由成员1裁定并补充进文档 |
5.6 任务同步机制
(1)任务看板四态流转
待办 (Backlog) ──认领──▶ 进行中 (Doing) ──提交──▶ 待验收 (Review) ──验收通过──▶ 已完成 (Done)
▲ │
└──────────────── 验收不通过,打回并注明原因 ◀──────────┘
每个任务卡必须包含:任务名 / 负责人 / 截止时间 / 验收标准 / 任务点(1–5 Point) / 关联 PR 或文档链接。
(2)一周迭代节奏
| 时间 | 团队动作 | 成员1重点 | 成员7 / 8 重点 |
|---|---|---|---|
| 周一 | 确定 Sprint Goal、任务与验收标准 | 拆任务、确认依赖、分配任务点 | 提前准备测试与环境 |
| 周二 ~ 周三 | 并行开发 + 小范围联调 | 检查接口是否一致、提前合并小 PR | 接口一完成就开始测试 |
| 周四 | 主链路集成 | 组织 Algorithm→Step→Animation→UI 联调 | 建立 Bug 清单、修 CI / 环境 |
| 周五 | 功能验收 + 回归 | 判断是否达到 Sprint Goal | 完整测试、给出质量结论 |
| 周末 | 15 ~ 30 分钟复盘 | 记录完成 / 延期 / 风险并调整下周 | 整理测试与发布记录 |
(3)三级同步节奏
| 频率 | 形式 | 内容 |
|---|---|---|
| 每日 | 群内三句话打卡 | 昨天 / 今天 / 卡点 |
| 每周日 21:00 | 腾讯会议例会(30–45 min) | 看板过一遍、本周完成率、下周计划、风险预警、绩效记录 |
| 每里程碑 | 阶段评审会 + 周报归档 | 交付物走查、DoD 核对、下一阶段排期、复盘沉淀 |
(4)信息单一来源(Single Source of Truth)
为避免"群里说过但文档没改",我们约定唯一来源:
| 信息类型 | 唯一来源 |
|---|---|
| 需求与功能定义 | 《软件需求规格说明书》 |
| 职责与协作接口 | 《8 人职责分工与协作说明》 |
| 接口定义(Step Schema 等) | 接口文档(冻结版) |
| 任务与进度 | 任务看板 |
| 决策与理由 | 会议纪要 |
| 设计与视觉规范 | 原型设计规范文档 |
其余渠道(群聊、口头)只作为提醒,不作为依据。
5.7 质量保障机制
(1)测试层次递进
单元测试 → 接口测试 → 两两集成 → 完整链路 → E2E → 回归测试
测试从第一轮迭代就开始,而不是项目最后一周才开始点页面。
(2)黄金测试案例:链表插入
全组共用同一个"黄金样例"作为验收基准——输入 10→20→40,在 20 后插入 30,最终 10→20→30→40:
| 检查点 | 预期结果 |
|---|---|
| 初始输入 | 10 → 20 → 40 能正确创建 |
| 操作 | 在 20 后插入 30 |
| 算法 | 最终结构为 10 → 20 → 30 → 40 |
| Step | 查找位置 → 创建 30 → 30 连 40 → 20 连 30,顺序正确 |
| 动画 | 节点 / 指针变化与 Step 一致,无残留或错误连线 |
| 代码同步 | 每一步高亮正确代码行 |
| 解释 | 每一步说明与当前动作一致 |
| 播放器 | 暂停、下一步、上一步、重播均正确 |
| 异常操作 | 快速点击、回退后再播放不会破坏状态 |
(3)其他质量手段
- Code Review Checklist:命名规范、边界处理、无调试残留、注释与解释文案是否"说人话";
- 文档走查:说明书由非撰写者交叉走查,重点检查术语一致性、图表编号、目录与正文是否对应;
- 原型走查:由成员7按验收标准逐条打勾,缺陷记录到看板并跟踪到关闭;
- 答辩彩排:至少 2 次计时彩排,全组到场提意见,确保 8 分钟节奏可控;
- 演示兜底:答辩版本提前冻结并部署为稳定 Release,同时准备录屏备用方案,不依赖某一台开发电脑临时运行。
5.8 团队执行检查清单
每轮迭代开始与结束时各过一遍(本清单是可复用的过程自检模板,随迭代长期使用):
- ✅ 本轮 Sprint Goal 是否只有一个清晰的主目标?
- ✅ 每个任务是否有负责人、截止时间、任务点和验收标准?
- ✅ 上游输出与下游输入是否已有接口约定?
- ✅ 每个开发成员是否完成自测,而不是把测试全部交给成员7?
- ✅ 关键功能是否先完成两两联调,再进入完整 E2E?
- ✅ 黄金测试案例是否仍然通过?
- ✅ PR 是否经过相关成员 Review?
- ✅ 严重 Bug 是否有复现、修复和回归记录?
- ✅ 答辩版本是否已经冻结并部署为稳定 Release?
- ✅ 本轮绩效是否有实际成果和记录支撑?
六、软件需求规格说明书
《数据结构可视化学习平台 软件需求规格说明书》v1.0
| 项目 | 内容 |
|---|---|
| 仓库链接(华为云) | 华为云仓库链接 |
| PDF 版(推荐阅读) | .pdf 文件链接 |
| 版本 | v1.0(2026-10-15) |
| 编制依据 | GB/T 9385-2008《计算机软件需求规格说明规范》 |
6.1 文档结构(对应国标规范)
目录
1 引言
1.1 编写目的
1.2 项目背景
1.3 定义与缩写
1.4 参考资料
2 总体描述
2.1 目标(开发意图 / 应用目标和作用范围 / 产品前景)
2.2 用户场景(用户画像 / 典型场景 / 用户故事)
2.3 运行环境
2.4 设计与实现约束
3 具体要求
3.1 类图(领域模型)
3.2 属性(可用性 / 安全性 / 性能 / 可靠性)
3.3 外部接口需求
4 界面原型
4.1 页面清单
4.2 核心界面说明
4.3 交互规范与视觉规范
5 功能描述及验收验证标准
5.1 具体功能描述
5.2 输入输出格式
5.3 界面验收标准
5.4 功能验收标准
附录 A 用户访谈纪要
附录 B 术语表
附录 C 需求追踪矩阵
6.2 关键内容摘要
(1)引言(2')
编写目的、项目背景(软件名称:数据结构可视化学习平台;项目任务提出者:软件工程实践课程组;项目开发者:NULL 队)、缩写定义(所有缩写均在第 1.3 节事先定义,如 MVP、DoD、PoC、Step Engine、Adapter 等)。
(2)用户场景(8')
沿用选题阶段的四类用户,并细化为可验证的场景:
| 用户 | 需求 | 典型场景 |
|---|---|---|
| 数据结构课程初学者 | 看懂动态过程 | 课后复习"链表插入",用单步动画逐步看完指针怎么改 |
| 需要快速复习的计算机专业学生 | 快速回顾核心操作 | 考前 30 分钟过一遍栈 / 队列的核心操作,并做 2 个关卡自测 |
| 课堂演示的教师 / 助教 | 稳定可投屏的演示工具 | 课堂上投屏演示 BST 插入,边讲边暂停 |
| 算法与编程自学者 | 可试错的实验台 | 输入自己的数据,试试空结构删除会发生什么 |
| 希望有反馈与坚持动力的学习者(新增能力对应) | 知道自己掌握了没有 | 登录后闯关,答错看解析,积分与成就记录进度 |
(3)类图(8')
第 3.1 节给出完整领域类图(见 7.3 节 的概览),核心类包括:UserAccount(账号)、VisualizationSession、抽象类 DataStructure 及其子类 Array / LinkedList / Stack / Queue / Tree / Graph、Operation、StepSnapshot、CodeSnippet、Explanation、DataSet、LearningRecord,以及新增能力对应的 Challenge(关卡)、ScoreRecord(积分记录)。
(4)界面原型(8')
第 4 章给出 9 个页面的界面说明与交互规范,详见 第七章。
(5)功能描述(3')
第 5.1 节按"结构选择 → 数据输入 → 操作选择 → 单步播放 → 回放与分享"的主流程逐项描述功能,并用 MoSCoW 标注优先级。
(6)验收验证标准(3')
第 5.3 / 5.4 节分别给出界面验收标准(逐页面的元素、位置、状态)与功能验收标准(逐条可判定、可勾选),示例:
| 编号 | 验收项 | 验收方法 | 通过标准 |
|---|---|---|---|
| F-01 | 选择数据结构 | 点击首页任一种结构卡片 | 进入学习主界面,画布加载该结构默认数据 |
| F-02 | 自定义数据输入 | 输入 5 个整数并提交 | 画布渲染 5 个节点,节点值与输入顺序一致 |
| F-03 | 单步执行 | 点击"单步" | 代码区高亮下一行,画布与解释面板同步更新,步骤计数 +1 |
| F-04 | 回退 | 点击"回退" | 回到上一步快照,三者状态与上一步完全一致 |
| F-05 | 非法操作提示 | 对空链表执行删除 | 给出明确中文错误提示,程序不崩溃、不静默失败 |
| F-06 | 步骤解释可读性 | 每一步查看解释面板 | 每步均有中文解释,且不含未定义术语 |
七、界面原型设计
7.1 原型链接
| 项目 | 内容 |
|---|---|
| 在线可交互原型 | 界面原型在线链接 |
| 原型源文件 / 仓库 | 华为云仓库 |
| 原型版本 | v1.0(2026-10-15) |
| 技术形式 | HTML + CSS + JavaScript 高保真可交互原型,浏览器直接打开 |
| 推荐浏览器 | Chrome / Edge 最新版 |
7.2 用户场景与原型映射
| 场景 | 原型路径 |
|---|---|
| 课前预习结构与基本操作 | 首页 → 选择结构 → 知识卡 → 播放单步动画 |
| 课中教师投屏演示过程 | 学习主界面 → 暂停 / 单步 / 调速 → 投屏演示 |
| 课后复习与自定义实验 | 学习主界面 → 数据输入面板 → 自定义数据 → 执行操作 |
| 考前快速回顾核心操作 | 首页 → 结构详情 → 操作速查 → 播放关键步骤 |
| 登录后闯关自测(新增) | 登录 → 闯关模式 → 选择关卡 → 答题 / 操作 → 即时判定与解析 → 获得积分与成就 |
| 查看进度与积分榜(新增) | 登录 → 我的实验台 → 学习记录 / 积分明细 / 排行榜 |
| 不登录先试用(访客模式) | 首页 → 访客模式 → 完整使用 L1 学习闭环 → 提示登录以保存进度 |
7.3 领域类图概览
新增账号与闯关积分后,领域模型增加
UserAccount、Challenge、ScoreRecord三个类,以及VisualizationSession与它们之间的归属关系(下图中以「新增」标注)。
classDiagram
class UserAccount {
+String accountId
+String nickname
+String passwordHash
+Date createdAt
+register()
+login()
+logout()
+isGuest()
}
class VisualizationSession {
+String sessionId
+Date startTime
+int currentStepIndex
+play()
+pause()
+stepForward()
+stepBackward()
+setSpeed()
}
class DataStructure {
<<abstract>>
+String name
+int size
+insert(value)
+remove(value)
+traverse()
}
class Array
class LinkedList
class Stack
class Queue
class Tree
class Graph
class Operation {
+String opType
+Object params
+validate()
}
class StepSnapshot {
+int stepIndex
+int codeLineNo
+Object structureState
+List highlightedNodes
+String explanation
}
class CodeSnippet {
+String language
+List lines
}
class Explanation {
+String text
+String termRef
}
class DataSet {
+String sourceType
+List values
}
class LearningRecord {
+String recordId
+Date timestamp
+int stepCount
}
class Challenge {
+String challengeId
+String title
+String structureRef
+int difficulty
+int pointValue
+checkAnswer()
}
class ScoreRecord {
+String recordId
+String accountId
+String challengeId
+int points
+Date submittedAt
+boolean isFirstClear
}
UserAccount "1" --> "*" VisualizationSession : 创建 / 控制
UserAccount "1" --> "*" LearningRecord : 产生
UserAccount "1" --> "*" ScoreRecord : 获得
VisualizationSession "1" --> "1" DataStructure : 操作对象
VisualizationSession "1" --> "1" CodeSnippet : 代码高亮
VisualizationSession "1" --> "*" StepSnapshot : 快照序列
DataStructure <|-- Array
DataStructure <|-- LinkedList
DataStructure <|-- Stack
DataStructure <|-- Queue
DataStructure <|-- Tree
DataStructure <|-- Graph
Operation "1" --> "*" StepSnapshot : 生成
StepSnapshot "1" --> "1" Explanation : 绑定解释
DataSet "1" --> "1" DataStructure : 初始化
Challenge "1" --> "1" DataStructure : 考察
Challenge "1" --> "*" ScoreRecord : 结算
设计要点:VisualizationSession 与 StepSnapshot 是本项目的核心抽象——**把"过程"变成"可索引的数据"**,这正是难点 1 的解决方案在模型层的体现。
新增账号与闯关积分后的模型变化:User 细化为 UserAccount(承载注册 / 登录 / 会话,并支持访客模式 isGuest());新增 Challenge(关卡:考察哪个结构、难度、分值、判定方法)与 ScoreRecord(积分记录:保留 isFirstClear 字段用于幂等结算,重复通关不重复加分)。VisualizationSession 与 LearningRecord、ScoreRecord 都归属到 UserAccount,使进度与积分可跨设备恢复。
类职责说明(与上图一一对应,便于不便查看图形的读者阅读)
| 类名 | 类型 | 关键属性 | 关键方法 | 职责 |
|---|---|---|---|---|
UserAccount | 实体 | accountId、nickname、passwordHash、createdAt | register()、login()、logout()、isGuest() | 账号:注册 / 登录 / 登出与会话;支持不登录的访客模式;密码只存加盐哈希 |
VisualizationSession | 控制 | sessionId、startTime、currentStepIndex | play()、pause()、stepForward()、stepBackward()、setSpeed() | 一次可视化会话,持有当前步骤下标,是所有播放控制的入口 |
DataStructure | 抽象实体 | name、size | insert()、remove()、traverse() | 所有数据结构的统一抽象,屏蔽具体结构差异 |
Array / LinkedList / Stack / Queue / Tree / Graph | 实体 | 各自结构属性 | 重写 insert / remove / traverse | 具体数据结构实现,对应 MVP / V1 / V2 三阶段 |
Operation | 实体 | opType、params | validate() | 一次用户操作请求,负责参数校验与非法操作拦截 |
StepSnapshot | 实体 | stepIndex、codeLineNo、structureState、highlightedNodes、explanation | — | 不可变步骤快照,同时承载代码行号、结构状态、高亮集合与解释文案 |
CodeSnippet | 实体 | language、lines | — | 待演示的算法代码,供代码区高亮使用 |
Explanation | 实体 | text、termRef | — | 每一步的中文解释文案及其术语引用 |
DataSet | 实体 | sourceType、values | — | 用户输入 / 随机生成 / 导入的数据集,用于初始化结构 |
LearningRecord | 实体 | recordId、timestamp、stepCount | — | 学习记录,用于"我的实验台"回放与进度追踪 |
Challenge | 实体 | challengeId、title、structureRef、difficulty、pointValue | checkAnswer() | 关卡:考察指定数据结构的一个知识点,携带难度、分值与判定方法 |
ScoreRecord | 实体 | recordId、accountId、challengeId、points、submittedAt、isFirstClear | — | 积分记录:一次结算的凭证;isFirstClear 用于幂等去重,保证重复提交不重复加分 |
若渲染环境不支持 mermaid,上表即为类图的可读替代。
与团队接口术语的对应关系(与《8 人职责分工与协作说明》保持一致)
| 设计模型(本图) | 团队接口术语 | 负责成员 |
|---|---|---|
DataStructure 及其子类 + Operation | Algorithm Engine | 成员5(成员6 承担树 / 图等进阶模块) |
StepSnapshot 的属性集合 | Step Schema(统一 Step 数据结构) | 成员1 统一维护,成员5 生成 |
VisualizationSession | Step Controller(公共状态与控制层) | 成员1 设计,成员4 调用 |
StepSnapshot → 画布渲染 | Step → Animation | 成员3 |
StepSnapshot → CodeSnippet / Explanation | Step → Code Sync | 成员6 |
| 播放控制部分 | Player → Step Controller | 成员4 |
LearningRecord / DataSet | UI State 与输入层 | 成员2 |
UserAccount | 账号 API / Session | 成员8(成员4 消费登录态) |
Challenge / ScoreRecord | 闯关与积分 API(服务端判定、幂等结算) | 成员8(成员5 提供判定逻辑,成员6 提供关卡与解析) |
7.4 页面清单(9 个页面)
| 编号 | 页面 | 核心内容 |
|---|---|---|
| P1 | 首页 / 结构选择 | Logo 与品牌标语、结构卡片(数组 / 链表 / 栈 / 队列 / 树 / 图)、学习进度入口、帮助入口、登录 / 访客模式入口 |
| P2 | 学习主界面(核心页) | 三栏布局:左侧代码区(当前行高亮)+ 中间画布区(节点 / 指针 / 边 / 下标)+ 右侧解释区(当前步骤说明);底部控制条(播放 / 暂停 / 单步 / 回退 / 调速 / 步骤进度条) |
| P3 | 数据输入面板 | 手动输入、随机生成、批量粘贴、导入数据集;输入校验提示 |
| P4 | 操作面板 | 插入 / 删除 / 查找 / 遍历;参数输入;操作前预演提示;非法操作错误提示 |
| P5 | 结构详情与知识卡 | 结构定义、复杂度、核心要点、常见错误、与课程章节对应关系、该结构关联的关卡入口 |
| P6 | 我的实验台 | 历史记录、步骤回放、收藏的示例、分享链接;积分明细、成就徽章、关卡通过记录(需登录) |
| P7 | 帮助与术语表 | 使用说明、快捷键、术语表(与说明书第 1.3 节定义保持一致) |
| P8 | 登录 / 注册页(新增) | 账号密码登录、注册、访客模式入口、错误提示(账号不存在 / 密码错误 / 重复注册)、隐私与数据说明 |
| P9 | 闯关模式与积分榜(新增) | 关卡地图与解锁状态、题面与答题区、即时判定与错题解析、本次得分与总分、成就徽章、排行榜(需登录) |
7.5 核心界面 P2 的布局与交互说明
┌───────────────────────────────────────────────────────────────────────┐
│ NULL Visual Lab 链表 · INSERT 步骤 4 / 4 [术语] [帮助] │
├────────────────────┬──────────────────────────────┬───────────────────┤
│ 代码区 │ 画布区 │ 解释区 │
│ │ │ │
│ 1 p = head │ (A)──▶(B)──▶(C) │ 步骤 4 / 4 │
│ 2 while p.next: │ ▲ │ │
│ 3 p = p.next │ │ p │ 修改指针,让新节点 │
│ 4 p.next = new ◀ │ (N)────┘ │ 接入链表。 │
│ │ │ │
│ │ 节点 / 指针 / 边 / 下标可视化 │ 当前代码行:4 │
├────────────────────┴──────────────────────────────┴───────────────────┤
│ ▶/⏸ ⏮ 单步 回退 速度[──●──] ●━━━━━━━━━━━━━━━━━━━━ 步骤进度条 │
└───────────────────────────────────────────────────────────────────────┘
关键交互规则
- 三联动:代码高亮行、画布动画、解释文案由同一个
stepIndex驱动,任意时刻三者必然一致; - 可控:播放 / 暂停 / 单步 / 回退 / 调速 / 拖拽进度条,任意步骤可来回跳转;
- 可实验:用户可随时打开 P3 替换数据、打开 P4 换一个操作;
- 可解释:每一步都有中文解释,且解释中的术语均可在 P7 术语表中查到;
- 不静默失败:任何非法输入或非法操作,均在界面上给出明确中文提示;
- 登录不挡路(新增):未登录(访客模式)也能完整使用 L1 学习闭环,只在"保存进度 / 闯关积分 / 排行榜"处提示登录,不做强制登录墙;
- 积分可解释(新增):每一笔积分的来源(哪个关卡、首次通过还是重复练习)都可在"我的实验台"查到明细,不出现黑盒加分。
7.6 新增页面 P8 / P9 的界面说明
┌───────────────────────────── P8 登录 / 注册 ─────────────────────────────┐
│ NULL Visual Lab │
│ ┌───────────────────────────────────┐ 账号 [________________] │
│ │ 登录 │ 注册 │ 密码 [________________] │
│ │ │ [ 登 录 ] │
│ │ 登录后可保存学习进度、参与闯关积分 │ ─────────────── │
│ │ 排行榜;也可以直接访客模式试用 │ [ 以访客身份继续 → ] │
│ └───────────────────────────────────┘ ⚠ 账号或密码错误 │
└───────────────────────────────────────────────────────────────────────────┘
┌──────────────────────── P9 闯关模式与积分榜 ──────────────────────────────┐
│ NULL Visual Lab 闯关模式 总积分 320 [我的实验台] [退出登录] │
├──────────────────────────────┬────────────────────────────────────────────┤
│ 关卡地图 │ 关卡 3 · 链表插入(难度 ★★☆ · 20 分) │
│ ✅ 关卡1 数组基础 10分 │ ────────────────────────────────────────── │
│ ✅ 关卡2 栈与队列 10分 │ 题目:在 10→20→40 的 20 之后插入 30, │
│ ▶ 关卡3 链表插入 20分 │ 第 3 步应该修改哪个指针? │
│ 🔒 关卡4 链表删除 20分 │ ○ p = head │
│ 🔒 关卡5 树遍历 30分 │ ● p.next = new │
│ 🔒 关卡6 BST 插入 30分 │ ○ new.next = p │
│ │ ────────────────────────────────────────── │
│ 成就徽章 │ [ 提 交 ] ✅ 正确!+20 分(首次通过) │
│ 🏅 初次通关 🏅 连对5题 │ 解析:新节点接入链表需要修改前驱的 next…… │
└──────────────────────────────┴────────────────────────────────────────────┘
P9 的关键设计点
- 关卡与知识点绑定:每个关卡通过
Challenge.structureRef绑定到一个数据结构与一个知识点,答错直接跳到对应的可视化页面(P2)回看那一步; - 判定在服务端:前端只提交作答,分数由服务端依据成员5 提供的判定逻辑计算,
ScoreRecord.isFirstClear保证重复提交不重复加分; - 积分可解释:得分明细逐条可查,重复练习不重复给分但记录练习次数;
- 解锁而非阻断:未解锁的关卡显示 🔒 与解锁条件,不做付费 / 强制分享等阻断式设计。
八、需求分析 PPT 链接
《数据结构可视化学习平台 需求分析报告》PPT
| 项目 | 内容 |
|---|---|
| 仓库链接(华为云) | 华为云仓库链接 |
| PDF 版(推荐) | .pdf 文件链接 |
内容大纲
01 封面
02 项目背景与开发目的、意义
03 用户调研与用户场景(用户画像 / 访谈结论 / 用户故事)
04 领域类图与领域模型讲解
05 界面原型讲解(9 个页面清单 + 核心页逐个说明)
06 新增能力专章:账号与学习进度、闯关积分体系(积分规则与幂等结算)
07 功能描述与优先级(MoSCoW)
08 验收验证标准
09 团队计划落实情况、分工与工作量比例
10 风险与后续计划(含新增范围带来的范围与安全风险)
11 致谢 / Q&A
九、界面原型设计答辩 PPT 链接
《数据结构可视化学习平台 界面原型设计答辩》PPT
| 项目 | 内容 |
|---|---|
| 仓库链接(华为云) | 华为云仓库链接 |
| PDF 版(推荐) | .pdf 文件链接 |
内容大纲
01 封面:NULL · 数据结构可视化学习平台 · 界面原型设计答辩
02 为什么值得做:传统学习路径的断链点(抽象 / 动态 / 脱节)
03 我们做什么:把「脑内模拟」搬到屏幕上(看得见 / 跟得上 / 点得动 / 控得住)
04 界面原型总览:9 个页面与信息架构
05 核心页精讲:学习主界面 P2 的三栏布局与三联动机制
06 交互演示:现场操作——自定义数据 → 单步 → 回退 → 改参数重跑
07 关键设计决策:为什么用 StepSnapshot 驱动而不是动画回调
08 新增能力演示:登录 / 访客模式 → 闯关答题 → 即时判定与解析 → 积分与成就
09 用户场景演示:课前 / 课中 / 课后 / 考前
10 计划落实与分工:里程碑完成情况、组员分工与工作量比例
11 风险与下一步:待验证问题与迭代计划(含 M4a / M6a 两条新增能力时间盒)
12 致谢 / Q&A
十、团队互评与评审表
本次作业的两份评审表——《界面原型设计评审表》与《需求分析评审表》——按课程要求直接在腾讯共享文档中填写与互评,由助教统一汇总,因此不在本博客中另附链接。
评审表内容包括:小组名称、项目名称、评审的内容、评审建议;各小组的名称和排名;以及自定义表格。
我们的使用方式:答辩当天由成员7 现场记录各组反馈,当晚汇总进共享文档,并把可执行的建议转成 Backlog 条目,进入下一轮迭代评估。
十一、小结与下一步
本次作业我们完成了什么
- 计划:把选题一句话,拆成了 M0–M8 共 9 个里程碑 + M4a / M6a 两条新增能力时间盒,每个都有日期、交付物与通过标准,并倒排出本次作业的 7 天周计划;
- 范围:明确"内容维度(MVP / V1 / V2)+ 能力维度(L1 学习闭环 / L2 账号与进度 / L3 闯关积分 / L4 轻后端)"的双维度边界,并为新增的登录与闯关积分写清了取舍与降级顺序;
- 风险:识别出 6 个技术难点与 11 条项目风险,其中"需求蔓延""动画与代码同步""需求理解偏差""新增功能拖累核心功能""账号安全与积分公平性"五条列为高等级并配了具体预案;
- 分工:明确 8 人「主责 + 副责」角色与职责边界,把新增的账号 / 积分工作明确分配到成员2、4、5、6、7、8,给出本次作业分工与贡献度表,并公开了绩效考核公式与证据来源;
- 协作:建立了"端到端开发链路 + 四条协作主线 + 沟通工具矩阵 + 分支模型与九步合并流程 + 11 条接口与集成测试责任矩阵 + DoD + 冲突处理机制 + 一周迭代节奏 + 信息单一来源"的完整协作机制;
- 交付:《软件需求规格说明书》、界面原型(9 个页面)、需求分析 PPT、原型答辩 PPT 已全部产出并归档。
下一步(M2 → M3)
- 10/16 答辩后 48 小时内完成评审意见汇总,闭环后冻结需求基线 v1.1(含 L2 / L3 的范围基线);
- 启动 M3 架构设计与技术验证,重点是先用"链表插入"垂直切片跑通三联动,验证通过后再横向复制到其他结构;
- 严格执行范围边界:MVP 只做 4 个线性结构,L1 学习闭环是不可裁剪项,其余进 Backlog;
- M4a 与 M4 同期启动时,先确认访客模式可用——保证新增账号体系不会挡住核心学习流程。
我们从一个空指针出发——
NULL不是"空",而是一切结构建立之前的起点。We start from NULL, but we won't end at NULL.
相关推荐
软件工程需求分析作业.docx
《软件工程需求分析——以学生信息管理系统为例》在软件工程领域,需求分析是至关重要的第一步,它为后续的设计、编码、测试等阶段奠定了基础。
软件工程中Git的工作流实践
Git作为当今最流行的分布式版本控制系统,其工作流实践直接影响软件开发团队的效率和代码质量。本文旨在系统性地介绍Git工作流的核心概念、主流实践模式及其在软件工程中的应用场景,帮助开发团队建立高效、规范的版本控制流程。本文首先介绍Git工作流的基本概念,然后深入分析几种主流工作流模型,接着通过实际案例展示Git工作流的应用,最后讨论相关工具和未来发展趋势。Git: 分布式版本控制系统,由Linus Torvalds创建工作流(Workflow): 团队使用Git进行协作的标准流程和方法。
3软件工程大作业.doc
"该文档是关于软件工程的一份大作业,涵盖了从系统概述到系统测试的完整开发流程。作业详细介绍了网上商城系统的开发背景、目的、可行性分析、需求分析、系统设计、系统实现和测试等内容。该系统包括前台用户部分
软件工程大作业-日记管理系统
《软件工程大作业——日记管理系统》在软件工程的学习中,大作业是实践技能和理论知识结合的重要环节。
软件工程项目需求分析说明书(模板)
在软件工程项目中,软件工程项目需求分析说明书可以帮助项目团队成员和项目stakeholders之间达成共识,确保项目的正确实施。


