掌中生活——凡事预则立

掌中生活 掌中生活 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

掌中生活——凡事预则立(β冲刺计划)

这个作业属于哪个课程202601福大-软件工程实践-W班
这个作业要求在哪里团队作业—Beta冲刺+事后诸葛亮
这个作业的目标明确 β 阶段要改进/新增的功能、要改的分工与工具流程,并给出 14 篇博客与冲刺七天的时间计划
其他参考文献《构建之法》第2、13章;《掌中生活_软件需求规格说明书 v1.3》;《掌中生活_系统设计说明书 v1.0》;《04-接口契约文档 v1.0》;掌中生活 α 阶段问题总结

目录

  • 掌中生活——凡事预则立(β冲刺计划)
  • 零、β 要做什么
  • 一、下一阶段要改进和新增的功能
  • 1.1 已有但不够的功能
  • 1.2 需要新增的功能
  • 1.3 优先级和降级方案
  • 二、分工怎么改
  • 2.1 角色调整
  • 2.2 四条新规则
  • 2.3 个人负载
  • 三、工具和流程怎么改
  • 3.1 版本控制
  • 3.2 构建和 CI
  • 3.3 测试
  • 3.4 文档和契约
  • 3.5 AI 技术员
  • 四、博客计划
  • 五、七天怎么排
  • 5.1 日期
  • 5.2 每天做什么
  • 5.3 燃尽
  • 5.4 每日节奏和灵活规则
  • 六、完成标准
  • 七、风险
  • 八、最后

零、β 要做什么

α 结束时,我们的应用已经能注册登录、建记录、看详情、改状态,也能在模拟器上走完一条完整路径。但离"给别人用"还有距离:加密没做,二次验证没做,附件没有入口,提醒不会弹通知,搜索还是占位页,备份也没有。界面是能用的控件堆在一起,离"像个产品"还差一轮打磨。

所以 β 的目标定得比较具体:SRS 里的 FR-01~FR-21 全部能演示,四条交付验收场景都能走通,AC-38 逐条有记录,最后出一个 Release 签名 APK。

α 答辩我们拿了 5 份评分,平均 90.5。其中"安排计划与实现"14.1/15 最高,"测试与质量"16.8/20、"文档一致性"13.4/15 最低。这个结果和我们的自评基本一致:计划执行得不错,测试和文档还有欠账。β 的功能安排和工具流程,主要就是补这两块。

另外,α 答辩 Q&A 里我们公开说过三件事:AI 自主测试进流水线、CI 迁移自定义执行机、附件/提醒/检索/加密按契约推进。β 要接得住这三句话。接不住的部分,比如全自动的 AI 测试流水线,我们会说明放到作业 7,不装作没说过。

有不做的:OCR、邮件和账单导入、重复扣费识别、云同步、多设备、家庭共享、通用密码管理器、深色模式、PDF 批注、桌面小组件。这些都列在 P2,答辩时主动说明,不留给评委问。


一、下一阶段要改进和新增的功能

1.1 已有但不够的功能

#功能α 的问题β 改到什么程度验收标准
1受保护记录编辑受保护记录被锁死,只能看不能改验证后进入编辑;保存失败回滚;凭据可改改一条证件记录并保存,重启后仍在;数据库密文
2账号凭据保存表单有,但受保护状态存不进去账号名/密码/服务名/到期日加密落库,详情页掩码展示新建账号凭据记录 → 杀进程 → 验证后可见明文
3掩码展示只做到 domain 纯函数,UI 未接列表、详情、待办、搜索结果、附件缩略图全部走 MaskProjector六个展示位截图均无明文
4待办列表只读 date_node,无分组、无锁标记、无通知跳转今日/本周/逾期分组,逾期置顶,锁标记,点通知进对应记录三条待办分组正确;通知点击可跳转
5设置页 P10只有分类默认敏感级别通知权限状态、提醒默认天数、验证有效期、备份恢复、数据统计、关于六项均可操作并持久化
6登录/账号 P9只有登录/退出,无改密页修改密码(校验原密码)、退出登录、账号隔离说明、风险提示改密后旧会话失效,需重新登录
7详情页 P4基本信息 + 节点 + 状态,缺附件区、敏感级别切换补附件缩略图区(遮挡)、敏感级别切换(风险提示 + 二次确认)、备注UI-06/UI-07 逐条通过
8首页 P2有列表,缺空态引导、通知权限提示条空态、加载、错误三态;权限提示条可跳系统设置UI-03/UI-04
9记录列表 P3四类切换可用,缺搜索入口联动、排序切换搜索入口进 P8;排序(更新时间/最近日期);敏感字段掩码四类切换 + 排序 + 搜索入口
10数据库迁移v3→v4 迁移无测试;v5 要加加密字段v4→v5 迁移脚本 + 迁移测试;升级不丢数据旧库升级后数据完整、敏感字段为密文
11错误与日志部分日志打了字段值;错误码不统一日志只记错误码/字段名;错误码统一 BIZ-xx抽查 10 条日志无字段值
12UI 视觉控件堆叠,无组件规范,320dp 小屏未验证Material 3 主题、设计令牌 v2、空态/错误态、小屏适配、无障碍基础项走查清单 30 条全过;前后对比图

1.2 需要新增的功能

#功能对应需求做到什么程度验收标准
1敏感数据加密存储FR-06Android Keystore 生成/托管 AES-256-GCM 数据密钥;CryptoBox 提供字符串/文件加解密;密钥不落盘、不进日志;安全区不可用时显式降级数据库/WAL/备份文件明文扫描 0 命中;卸载重装密钥失效
2受保护记录二次验证FR-07 / P7生物识别优先,不可用回退登录密码;验证有效期 2 分钟;5 次失败锁 5 分钟;AccessLog 留痕;切后台/超时恢复掩码6 条联调用例(含强杀重启仍锁)全过;UI-09
3附件归档FR-13 / P6拍照/相册/文件三种来源;JPG/PNG/HEIC/PDF;单文件 ≤10MB、单记录 ≤9 个;受保护记录附件加密;缩略图遮挡;预览(图片缩放、PDF 翻页);删除/替换;文件丢失提示三种来源各建一条;受保护附件未验证不可预览;删文件后提示"文件已不可用"不崩溃
4提醒规则与任务FR-17触发日 = 节点日期 − 提前天数;记录保存时生成;节点改期/删除时旧任务失效;记录完成时关闭单测覆盖提前 0/7/30 天、改期、删除、完成五种情况
5到期提醒通知FR-19NotificationChannel;WorkManager 每日 09:00 扫描;同节点同日去重;通知文案只含名称/节点类型/剩余天数;Android 13+ 通知权限拒绝时保留待办 + 提示条通知截图;权限拒绝截图;同节点不重复推送
6搜索与多条件筛选FR-20 / P8关键词 + 类别 + 标签 + 状态 + 日期区间组合;结果计数;敏感字段掩码;无结果引导UI-11;200 条数据查询 ≤300ms
7数据备份与恢复FR-21备份口令(8~32 位)派生密钥;加密 zip 含账号/记录/节点/状态日志/附件清单;SAF 导出;恢复校验完整性/版本/口令,失败回滚备份→清库→恢复,数据一致;错口令/坏文件均拒绝且不破坏原数据
8密码找回(本地)FR-04密保问题答案校验 → 本地重置 → 旧会话失效答错 5 次锁定;重置后旧密码不可登录
9应用图标/启动页/关于页UI自适应图标、启动页、版本号、隐私说明桌面图标正常;关于页信息完整

1.3 优先级和降级方案

层级内容降级方案
P0 必做加密、二次验证、受保护编辑/凭据、附件、提醒+通知、搜索、UI 主线、α 遗留缺陷、AC-38、签名 APK不降级;做不完就砍 P1/P2 保 P0
P1 应做备份恢复、密码找回、设置页完整、Robolectric、性能数据备份只做加密导出不做恢复,总结写明;密码找回改为验证登录密码后重置
P2 不做OCR、云同步、多设备、家庭共享、深色模式、PDF 批注、桌面组件答辩主动说明为什么不做

砍需求只砍 P1/P2,每次砍都要站会决议、记 CR、当天随笔留痕,并且同步改 PPT 和演示脚本。不能博客里说做了、演示时没有。


二、分工怎么改

α 的分工有三个问题,β 要调。

第一,PM 身上的事太多。站会、博客、CI、契约、答辩、作业提交都在一个人身上,Day1 和作业 5 答辩撞在一起时,站会只能压到 25 分钟,很多细节靠会后补。β 把构建交给胡昊,把 PPT 交给李天赐,把答辩主讲交给杨俊鑫,PM 只留计划、契约、博客、对外和调查报告。

第二,测试只有陈瀚楷一个人,而且他本机没有 Android SDK,只能做"源码拷贝 + ViewModel 桩"的等价测试。UI、通知、附件这些新交互基本没有覆盖。β 由林铭宏接手测试,他从七匹狼换过来,做过数据库和后端数据,SQL 和数据一致性比较熟,但 Android UI 和端到端测试要补,所以安排了 2 天影子跟测。

第三,UI 没有明确的负责人。吴军峰同时做列表、分类、状态 UI 和设计令牌,视觉打磨自然排到最后。β 让他专注 UI/UX、搜索和页面走查,不再接新的业务模块。

2.1 角色调整

角色αβ调整原因
组长/PM黄炫文:全部黄炫文:计划、契约、博客、对外、调查报告、答辩统筹把 CI/构建交给胡昊,PPT 交给李天赐,答辩主讲交给杨俊鑫
集成负责人无(PM 兼)胡昊:每日合并后构建 + 冒烟数据集中的一个固定责任人,问题不过夜
安全负责人李天赐(兼审查)李天赐:KeyVault/CryptoBox/Unlock/代码规范 v2/PPT安全是 β 的主线,必须专人
质量负责人陈瀚楷林铭宏:测试计划 v2、每日并行测试、缺陷跟踪、AC-38、评审表新成员继承测试,陈瀚楷 11-15~17 远程支持
答辩负责人杨俊鑫杨俊鑫:讲稿、彩排、现场主讲明确到人,不再"到时候再说"
UI 负责人吴军峰(兼)吴军峰:设计令牌 v2、页面走查、搜索页减少杂项,集中视觉
文档负责人黄炫文李天赐(规范/PPT)+ 黄炫文(博客)文档拆分,避免 PM 单点

2.2 四条新规则

  1. 文件级 owner。同一个文件只能一个人负责,接口文件单独指定 owner,契约 13.5 写归属表。α 的 DateRepo 因为两个人同时实现,返工约 1100 行,这个教训不能再犯。
  2. 结对。安全(李天赐 + 胡昊)、附件(杨俊鑫 + 吴军峰)、提醒(陈志 + 胡昊)。结对不是两个人一起写,是设计对一遍、review 对一遍。
  3. 测试左移。林铭宏从 Day1 参加契约评审,用例跟接口一起冻结;每天 22:00 前出测试日报,写清跑了什么、发现什么、卡在哪。
  4. 新成员融入。11-14 交接会,11-15 环境和资产验收,11-16 影子跟测,Day1 独立执行;陈瀚楷 11-15~17 每天留 30 分钟答疑。

2.3 个人负载

成员任务点数额外职责
胡昊字段加密+迁移、附件加密、备份导出/恢复32集成负责人、每日构建
李天赐KeyVault/CryptoBox、UnlockService、规范 v2、遗留缺陷30安全评审、PPT
杨俊鑫受保护编辑/凭据、附件录入/预览、P9、待办分组36答辩主讲
吴军峰掩码/验证接线、搜索、主题、走查32UI/UX 负责人
陈志提醒引擎、通知、密码找回22日期/提醒域、回归脚本
林铭宏Robolectric、AC-38、每日测试14测试负责人、评审表、调查执行
黄炫文契约 v1.1、图标/启动页/关于、APK10PM、12 篇博客、调查报告、答辩统筹

林铭宏和 PM 的任务点看起来少,是因为每日测试、缺陷跟踪、博客和统筹没有计点,贡献度里会单列。


三、工具和流程怎么改

3.1 版本控制

α 的远端有 40 多个分支,包含 mr/*/head、test、中文"测试"和几个重复的 feature/date-*,合并后大多没删。还有一次 filter-branch 差点把提交信息清空,靠 reset 回滚。

β 的规则:

  • 只保留 dev(日常集成)、master(发布)和短期的 feature/{模块}-{Issue号};
  • 功能分支活不过 3 天,MR 合并后当天删;
  • 文档、博客、脚本直接提交 dev,不建分支;
  • 提交信息用 feat/fix/docs/test/refactor/chore(scope): 描述 (#Issue);
  • 每天 22:00 前合并到 dev,合并前本地编译、跑相关单测、git diff --check、一人 review;
  • 发布打 tag(v0.8.0-beta),APK 放 release/,不覆盖历史。

3.2 构建和 CI

α 有相当一部分成员本机没有 Android SDK,三个人各自搭了一套 kotlinc/JUnit 的等价环境,脚本还不完全一样。CI 又遇到体验版构建机 30 分钟限制、gradlew 权限、JDK 缺失,三轮才跑通,完整 Android 构建没落地。

β 的做法:

  • 指定一台构建机(胡昊)负责 assembleDebug 和 testDebugUnitTest,其他人不重复搭环境;
  • 每天 22:00 跑一次,结果截图进随笔;构建挂了当天修;
  • CI 保留"静态检查 → 单测 → 构建 → verify_db"四段;体验版构建机的限制写进 README,完整构建走本地或自建执行机;
  • 版本矩阵锁定:JDK 21、AGP 8.7.3、Gradle 8.9、Kotlin 2.0.21、compileSdk 35、minSdk 26,写进 docs/环境说明.md。

3.3 测试

层αβ 增量
单元测试390 条 JVM,0 失败新增加密/提醒/附件/搜索 ≥60 条,总数 ≥450
UI 测试无Robolectric ≥20 条:登录、掩码、验证弹层、附件遮挡
数据库验收verify_db.py 15/15增加 v4→v5 迁移、加密字段、附件表、reminder_task
端到端手工闭环 10/10AC-38 逐条 + 四条交付场景 + Monkey 10 分钟
性能无冷启动、列表滚动、搜索、加解密耗时各 1 组数据

缺陷管理也改:全局 ID 从 B-01 起,不再按天编号(α 的 D-01 在 Day2 和 Day4 指的不是同一个问题);单一来源 docs/测试/缺陷清单-beta.md;状态只有打开、修复中、待验证、关闭;"修了没合"不算关闭。

3.4 文档和契约

α 的 D-02 口令长度裁决后,契约改了、CR 写了,SRS 和测试期望没改,代码常量也没改,三处口径并存了五天。β 的规则是:

  • 契约 v1.1 增补 D/H/I/Z/K 的接口、错误码、事件,接口先冻结再写码;
  • 任何字段、错误码、页面变更,当天同步四处:契约、SRS 增量、测试期望、演示脚本;
  • CR 单加"影响面 checklist"和"关闭验证"两栏,没关闭不算完;
  • 设计说明书 v1.1 只写增量章节(加密、附件、提醒、搜索、备份、迁移),不重写全文;
  • 文档以仓库 docs/ 为准,群里发的结论当天入库。

3.5 AI 技术员

  • 提示词包 v1.1,补三条:安全红线(不输出明文/密钥/真实数据)、生成代码必须附规范自查表、禁止改契约外接口;
  • 每个任务卡记三个数:AI 生成条数、人工采纳条数、发现缺陷数;
  • AI 代码和人工代码同一套规范、同一个 review;
  • 喂料脱敏,真实手机号、证件号、凭据一律替换;
  • 每日随笔单列 AI 技术员工作,答辩时至少能拿出 3 个具体例子。

α 答辩 Q&A 说过"AI 自主测试进流水线"。β 先做三块地基:①断言基线表(口令 820、节点上限 5、提前天数 0365、掩码真值表),AI 生成断言只准引用基线;②缺陷探针资产化,D-01D-06 的探针转成 B-01B-06,每次回归先跑;③CI 第 4 阶段接口(基线表、探针、报告格式)。真正的自动拉起 diff、生成、执行、建单,放到作业 7。


四、博客计划

#博客分值计划发布负责人关键内容
1Beta 置顶集合必需11-14黄炫文14 篇链接、仓库、APK、PPT
2换组交接1011-14黄炫文陈瀚楷换出、林铭宏换入、测试资产移交
3α阶段问题总结1511-14黄炫文七问复盘、问题清单、8 条整改
4凡事预则立511-14黄炫文本文
5代码规范 v2.01011-14李天赐(初稿已备)安全/附件/通知/测试新增条款、AI 代码规范
6Day1 随笔30/711-14黄炫文安全底座、契约/规范 v2、燃尽
7Day2 随笔30/711-15黄炫文二次验证、掩码接线、受保护编辑
8Day3 随笔30/711-16黄炫文附件录入、P9、密码找回
9Day4 随笔30/711-17黄炫文提醒引擎、通知、附件预览
10Day5 随笔30/711-18黄炫文搜索、待办分组、备份导出
11Day6 随笔30/711-19黄炫文备份恢复、主题、走查、缺陷收口
12Day7 随笔30/711-20黄炫文回归、AC-38、签名 APK、彩排
13用户使用调查报告1011-21黄炫文 + 林铭宏≥15 用户、问卷、任务完成率、访谈、改进闭环
14Beta 冲刺总结2011-22黄炫文计划 vs 完成、改进计划完成、APK/二维码/运行图、贡献度

发布纪律:每天 22:30 前发布;CSDN 审核有延迟,重要博客提前半天;发布后把链接回填置顶集合;作业页面最晚 11-26 23:59 提交全部链接。

每篇冲刺随笔按同一个结构写:今日站会(时间、地点、主持、议题、决议、真实照片)、燃尽图、成员进展(表格,开发岗附 Issue 和签入记录,测试岗附结果截图)、AI 技术员工作、代码签入与 Issue、运行截图或录屏、明日计划与风险。站会照片每天真实拍、角度不同、可以挡脸,7 天不复用。


五、七天怎么排

5.1 日期

Day1 定在 11-14,Day7 是 11-20。后面三天收尾,11-26 提交,11-27 答辩。

阶段日期内容
Day111-14(五)安全底座、契约/规范 v2、交接会
Day211-15(六)二次验证、掩码接线、受保护编辑
Day311-16(日)附件录入、P9、密码找回
Day411-17(一)提醒引擎、通知、附件预览
Day511-18(二)搜索、待办分组、备份导出
Day611-19(三)备份恢复、主题、走查、缺陷收口
Day711-20(四)回归、AC-38、签名 APK、彩排
收尾 111-21(五)用户使用调查报告
收尾 211-22(六)冲刺总结、PPT、评审表
缓冲11-23~11-25补材料、修改、答辩准备
提交11-26(四)作业页面提交全部链接
答辩11-27(五)课堂演示 + 问答

如果某天临时没空,后面整体顺延一天,DayN 编号不变;但收尾不要晚于 11-22,否则答辩材料会赶。

5.2 每天做什么

日日期任务(点数)负责人当天要出现的证据
Day111-14Z1 KeyVault/CryptoBox(12)、Z2 字段加密+迁移(10)、C1 契约 v1.1(2)、C2 规范 v2(2)李天赐、胡昊、黄炫文加密单测、明文扫描 0 命中、契约/规范博客
Day211-15Z3 Unlock(10)、Z4 掩码接线(8)、B1 受保护编辑/凭据(8)李天赐、吴军峰、杨俊鑫验证→明文→隐藏录屏、凭据密文截图
Day311-16D1 附件录入(8)、D2 附件加密(6)、A1 P9(6)、A2 密码找回(6)杨俊鑫、胡昊、陈志三种来源截图、改密/重置录屏
Day411-17H1 提醒引擎(8)、H2 通知(8)、D3 附件预览(8)陈志、杨俊鑫reminder_task 数据、通知截图、PDF 预览
Day511-18I1 搜索(10)、H3 待办分组(6)、K1 备份导出(8)、U3 图标/关于(4)吴军峰、杨俊鑫、胡昊、黄炫文组合搜索、分组截图、备份文件
Day611-19K2 恢复(8)、U1 主题(6)、U2 走查(8)、Q1 缺陷收口(6)胡昊、吴军峰、李天赐恢复成功/失败、前后对比、缺陷关闭
Day711-20Q2 Robolectric(6)、Q3 AC-38+回归(8)、R1 签名 APK(4)林铭宏、黄炫文测试报告、AC 表、APK、彩排录屏

5.3 燃尽

Day1Day2Day3Day4Day5Day6Day7
当日完成26262624282818
计划剩余150124987446180

燃尽图每天由 PM 更新,实际线按"完成且验收物齐"算,不按"代码写了"算;同时标可演示场景数(0→4),两条线互相校验。

5.4 每日节奏和灵活规则

时间动作
21:30 前每人发素材到群(进展/问题/安排/心得 + 截图 + 签入链接)
22:00–22:20站会:昨天做完什么、今天做什么、卡在哪;卡住当场定人
22:20–22:30更新燃尽图和缺陷清单
22:30 前PM 发当天随笔
睡前合并 dev、构建绿、删分支

任务可以提前做,不按日锁死。谁提前完成,就补测试、补文档,或者去帮附件和验收,不新增范围。某天没空就整体顺延,DayN 编号不变,随笔按实际发布日写。唯一不能动的是 11-14 三篇博客、Day7 只回归/打包、11-26 提交、11-27 答辩。


六、完成标准

维度标准
功能FR-01~FR-21 全部可演示;四条交付场景通过;AC-38 逐条留痕
安全数据库/WAL/备份明文扫描 0 命中;六处展示位无明文;2 分钟/切后台恢复掩码;5 次锁 5 分钟;日志无字段值
稳定Monkey 10 分钟 0 crash/0 ANR;20 条主流程回归通过;异常路径有提示不崩溃
性能冷启动 ≤2.0s;200 条列表流畅;搜索 ≤300ms;单字段加解密 ≤100ms
质量单测 ≥450;Robolectric ≥20;0 P0/P1;P2 ≤3 且有规避
交付Release 签名 APK + 安装说明 + 3 分钟演示视频 + 预置数据 + 一键演示脚本
文档契约 v1.1、规范 v2.0、设计 v1.1 增量、测试报告、缺陷清单、README、CHANGELOG
答辩PPT 25 页内;5 分钟演示 + 3 分钟问答;彩排 ≥3 次;录屏兜底

七、风险

风险触发信号应对
加密改造引发大面积回归Day1 晚构建失败或登录异常Z2 分两步:先字符串字段,再附件;保留开关;Day2 中午前必须能登录
生物识别在模拟器不可用验证弹层只能密码演示用真机;模拟器走密码回退并在 PPT 说明
通知权限被拒通知不弹首页提示条 + 设置跳转;演示前授权;降级只保留待办
备份恢复做不完Day6 中午仍失败砍恢复保导出;总结写明;答辩不演恢复
新成员不熟业务测试进度慢影子跟测 2 天;陈瀚楷远程支持 3 天;测试资产单一来源
站会照片/签入缺失当天没人发素材21:30 收料;照片当天编号;开发岗每天至少 1 次真实提交
答辩设备/投影异常现场打不开录屏 + 备用机 + 纸质流程图;主讲提前 3 次彩排
分支继续膨胀又建长分支只 dev + 短期 feature;合并即删;文档直接 dev

八、最后

α 让我们明白,计划、环境、接口、测试、缺陷,任何一项偷懒,最后一天都会一起找你。β 的计划比 α 少了一点乐观,多了一点缓冲:176 个任务点、Day7 硬缓冲、每天构建、每条 AC 留痕。

我们不追求功能最多。答辩时能随便点开一个页面都不露馅,随便查一条数据都不见明文,随便问一个缺陷都能说出它什么时候被谁怎么关掉,就可以了。


附:代码仓库

https://codehub.devcloud.cn-north-4.huaweicloud.com/10668555b4754395b09a3ce886e8a3d8/software-schoolwork-lifemap

...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部