【软考高级·系统分析师全链路通关实战】第 46 篇:移动应用系统分析与设计
本系列定位:面向有开发经验、从零备考软考高级「系统分析师」的工程师,以《系统分析师教程(第 2 版)》为主线,按「综合知识 → 案例分析 → 论文」三科组织,需求工程与 UML 建模深拆,60 篇带你从考试小白到三科同过。
本篇你将学到
- 移动应用三种形态:原生 App、混合 App、Web App 的对比与选型论证
- 移动端特有需求:弱网、离线、电量、推送、传感器——桌面/Web 时代没有的分析维度
- 移动端客户端架构:MVP 与 MVVM 的落地辨析
- 移动安全:本地存储、通信、逆向防护三道防线
- 云诊通实战:患者端「离线续方」与「消息推送」的需求分析全过程
模块九第三站。移动场景的分析题套路固定:给一个业务场景,问选什么形态、离线怎么设计、安全怎么保障——本篇按这三个问题组织。
考点热力表
| 知识点 | 综合知识 | 案例分析 | 论文 |
|---|---|---|---|
| 三形态对比与选型 | ★★★ | ★★★ | ★★ |
| 弱网与离线设计 | ★★ | ★★★ | ★★ |
| 推送机制 | ★★ | ★ | ★ |
| MVP/MVVM 辨析 | ★★ | ★ | ★ |
| 移动安全三防线 | ★★★ | ★★ | ★★ |
一、三种应用形态与选型
| 维度 | 原生 App | 混合 App(跨端框架) | Web App(H5) |
|---|---|---|---|
| 性能与体验 | 最佳 | 接近原生 | 一般 |
| 设备能力(传感器/推送) | 全量 | 大部分 | 受限 |
| 开发成本 | 双端两套代码,最高 | 一套代码多端,中 | 最低 |
| 更新发布 | 应用商店审核,慢 | 动态化能力较强 | 服务端即时更新 |
| 离线能力 | 强 | 较强 | 弱(依赖缓存策略) |
云诊通选型示范:患者端选原生 App——视频问诊(第 03 篇业务域)对编解码性能与摄像头采集要求高,且需要可靠的消息推送(医生回复必须及时触达);医院运营的推广活动页选Web App——无需安装、扫码即达、服务端随时更新;医生端后续选混合形态——功能以列表表单为主、迭代快。**「一个项目多形态并存、按端按场景选型」**本身就是案例采分点:选型不是全有或全无。
二、移动特有需求分析:五个关键词
| 关键词 | 需求问题 | 典型措施 |
|---|---|---|
| 弱网 | 电梯/地库/院区信号盲区怎么办 | 请求重试退避、断点续传、超时分级 |
| 离线 | 无网时核心功能可用吗 | 本地缓存 + 队列化写操作、恢复后同步 |
| 电量 | 后台定位/心跳是否耗电 | 按需唤醒、批量上报、避免轮询 |
| 推送 | 医生回复如何及时触达 | 厂商通道保活、到达率补偿、角标与静默时段 |
| 传感器 | 拍照上传病历、步数随访 | 权限最小化申请、降级方案 |
这五个词是案例题「移动应用需求分析还应考虑哪些方面」的现成答案——比泛泛写「性能、安全」得分高一个档次。第 42 篇的移动专项测试清单(弱网中断/安装升级/电量流量/机型/推送)与之互为镜像:需求分析与测试项一体两面。
三、云诊通实战:患者端离线续方与推送需求分析
3.1 场景
慢病患者复诊续方高频:老院区地库取药时信号差、通勤地铁中断网——患者在这些场景下会查看处方、提交续方申请。业主要求「续方体验不因网络中断而丢失」。
3.2 离线续方的需求分析四步
第一步 划分离线可用边界:并非所有功能都值得离线——处方查看(只读)离线可用;续方提交采用「离线受理、在线生效」:本地生成申请单入待发送队列,联网后补交,服务端以「受理时间」为准裁决(避免离线抢开药窗口的合规风险——合规约束反过来收窄了离线设计的自由度,这句话本身就是医疗类案例的加分点)。
第二步 数据同步设计:本地缓存近期处方与用药记录(加密存储),登录态令牌本地保存并设滑动过期;恢复联网后增量同步、冲突以服务端为准。
第三步 状态可感知:排队中的续方单显示「待网络恢复发送」,失败可重试可撤销——离线体验的核心是让用户始终知道系统状态,而不是假装在线。
第四步 边界值补充验证:队列上限(如 5 单)、重复提交去重(幂等键)、离线超时过期策略(48h 未联网自动作废并通知)。
3.3 推送需求分析
云诊通推送三类消息:事务性(医生回复、审方结果——必须到达)、提醒性(复诊提醒——按静默时段策略)、营销性(活动——需用户授权开关,第 03 篇医院运营与患者的冲突点)。分析要点:到达率保障走厂商推送通道组合 + App 在线时长连接;关键事务推送失联时降级为短信兜底;推送内容不含处方明细(锁屏可见的隐私风险,等保三级语境)。
推送分析还引出一个「需求—平台—运营」三方张力:医院运营希望推送频次高、转化好,监管与用户侧要求克制触达(骚扰投诉直接影响应用商店评分)。系统分析师的解法是把张力转化为可配置的策略需求:推送频次上限、静默时段(如 22:00-7:00 只放行事务类)、用户侧分类开关(事务类不可关、营销类默认关)写进 SRS 的非功能约束章节——把干系人冲突沉淀为规格条款,正是第 28 篇需求协商的落点。
四、移动端架构与安全
4.1 客户端架构:MVP 与 MVVM
第 35 篇 MVC 在移动端的演化:MVP以 Presenter 显式持有 View 接口、双向回调,便于单元测试;MVVM以数据绑定让 View 随 ViewModel 状态自动刷新,减少模板代码。判定信号:题目说「视图与逻辑通过接口解耦、便于测试」选 MVP;说「数据驱动、双向绑定」选 MVVM。
4.2 移动安全三道防线
案例题给「App 被抓包、本地数据库被导出」等场景,按三防线归位作答即可。云诊通语境:患者隐私数据(病情、处方)本地加密存储、通信证书锁定(防中间人抓包)、发布包混淆加固——三句话就是三个采分点。
补充一个权限维度的收尾:移动端权限申请遵循最小化与场景化原则——仅在用户实际使用相关功能时申请(拍照上传病历时再申请相机权限),并在应用内提供权限用途说明;被拒绝后提供降级路径(从相册选择替代直接拍摄)。这套「申请时机 + 用途说明 + 拒绝降级」三件套既是应用商店审核的硬要求,也是移动端可用性需求的常见采分点。
五、弱网与离线策略速查
「弱网与离线」是移动端需求分析的主战场,案例题常给一个业务场景问「如何设计弱网/离线方案」。先把策略梯度摆清楚,再按业务特性对号入座:
| 策略梯度 | 做法 | 适用业务 | 代价与风险 | 云诊通落例 |
|---|---|---|---|---|
| 重试 + 退避 | 失败后自动重试,间隔指数拉长 | 幂等的读操作 | 高峰重试风暴需上限约束 | 报告列表刷新 |
| 请求排队 | 离线生成请求入本地队列,联网后按序补交 | 事务性提交但可延迟生效 | 需幂等键防重复、过期作废 | 离线续方申请单(48 小时过期) |
| 本地缓存只读 | 热点数据落本地,离线可看不可改 | 查询类、数据变化不频繁 | 缓存时效与存储加密(隐私) | 最近处方与报告查看 |
| 边缘计算前置 | 端侧先完成校验/压缩,弱网只传结果 | 采集密集、原始数据大 | 端侧算力与电量消耗 | 体温血压采集端侧打包上报 |
| 全功能离线 | 本地数据库支撑增删改,双端同步合并 | 无强一致性要求的工具类 | 冲突解决复杂,医疗场景慎用 | 平台未采用(合规风险) |
选型判断三问:① 离线期间的操作生效时效能容忍多久——续方可容忍小时级(排队策略),挂号不能(只做只读缓存);② 离线产生的数据重复提交后果多严重——涉及处方的必须幂等键 + 服务端去重;③ 数据离线落在端上是否合规——患者隐私数据本地存储必须加密且可远程擦除(第 46 篇安全三防线)。
弱网专项指标(案例答题可引用):弱网测试通常在 2G/3G、高丢包(20%)、高时延(800ms 以上)与网络切换(WiFi↔蜂窝)四类环境下验证;验收口径写「关键事务在模拟弱网下成功率不低于 99%、超时友好提示而非崩溃」——把弱网需求写成可验证的验收条款,正是第 29 篇 SRS 质量属性要求在移动端的具体化。
电量与流量这对孪生约束(移动端独有,案例常被追问):省电策略的核心是「减少唤醒次数、合并传输批次」——传感器按需采集(运动状态触发而非定频)、上报走批量窗口(每 15 分钟聚合一次而非逐条上传)、界面渲染避免高频刷新;流量侧对应用户「偷跑流量」的差评,做法是区分 WiFi/蜂窝网络下的同步策略(大文件仅 WiFi 下预取)并在设置中提供流量开关。答题时把电量与流量并列作答并各给一条措施,覆盖面就完整了。
真题风格自测题
1. 对设备性能与传感器能力要求极高、体验优先的移动应用,宜选择( )。
A. 原生 App B. Web App C. 短信服务 D. 桌面网页
2. 一套代码多端发布、开发成本适中、能力接近原生的形态是( )。
A. 原生 App B. 混合 App C. Web App D. 小程序专属硬件
3. 无需安装、扫码即达、服务端即时更新的形态是( )。
A. 原生 App B. 混合 App C. Web App D. 均不可
4. 移动应用需求分析区别于桌面系统的特有维度不包括( )。
A. 弱网与离线 B. 电量消耗 C. 推送触达 D. 数据库范式
5. 离线场景下「本地生成申请单入队、联网后补交」的方案核心是( )。
A. 离线受理、在线生效 B. 全功能离线可用 C. 禁止一切离线操作 D. 离线数据永不同步
6. 防止离线重复提交的技术手段是( )。
A. 加大按钮面积 B. 幂等键去重 C. 提高网速 D. 禁用按钮即可无需后端配合
7. 事务类推送(医生回复)未到达时的兜底措施是( )。
A. 放弃通知 B. 短信降级兜底 C. 等下次打开 App D. 电话回访所有患者
8. 锁屏推送内容不含处方明细,主要出于( )。
A. 流量节省 B. 隐私保护(等保三级要求) C. 字数限制 D. 推送通道限制
9. 「视图与业务逻辑通过接口解耦、便于单元测试」描述的架构模式是( )。
A. MVC B. MVP C. MVVM D. 微内核
10. 「数据绑定、视图随状态自动刷新」描述的架构模式是( )。
A. MVC B. MVP C. MVVM D. 管道过滤器
11. 移动安全「三道防线」指( )。
A. 防火墙-杀毒-备份 B. 本地存储加密-通信防护-逆向防护 C. 蛇皮走位 D. 权限-日志-缓存
12. 云诊通患者端选原生 App 的最重要理由是( )。
A. 开发最便宜 B. 视频问诊性能与可靠推送的设备能力要求 C. 无需审核 D. 不联网可用
13. 离线续方申请单设 48 小时过期策略,属于( )。
A. 边界值与异常路径设计 B. 界面美化 C. 数据库设计 D. 网络规划
14. 按需唤醒、批量上报传感器数据的目的是( )。
A. 提高精度 B. 降低电量与流量消耗 C. 增加数据量 D. 无目的
参考答案:1.A 2.B 3.C 4.D 5.A 6.B 7.B 8.B 9.B 10.C 11.B 12.B 13.A 14.B(三形态口诀:原生求性能、混合求成本、H5 求触达;五关键词:弱网离线电量推送传感器)
本篇小结
| 知识点 | 核心内容 |
|---|---|
| 三形态 | 原生(性能/能力)、混合(成本/多端)、H5(触达/更新);一项目多形态并存 |
| 五关键词 | 弱网、离线、电量、推送、传感器——案例答题现成框架 |
| 离线续方四步 | 划边界(离线受理在线生效)→ 数据同步 → 状态可感知 → 边界值验证 |
| 推送三分类 | 事务性必达(短信兜底)、提醒性静默时段、营销性需授权 |
| 客户端架构 | MVP 接口解耦便于测试;MVVM 数据绑定驱动 |
| 安全三防线 | 本地存储加密、通信证书校验、代码混淆不硬编码密钥 |
下篇预告
第 47 篇:大数据处理系统分析与设计
数据来源→采集→存储→计算→应用的分析路径、批处理与流处理及 Lambda 架构、医疗数据治理与脱敏合规实战。
如果本篇内容对你有帮助,欢迎点赞收藏!有任何疑问,欢迎在评论区交流。