§07 非功能需求
Non-Functional Requirements
性能、安全、兼容性要求
7.1 性能需求
7.1.1 响应时间
| 场景 |
指标 |
目标值 |
| App冷启动 |
首屏显示时间 |
< 2秒 |
| 页面加载 |
FCP (First Contentful Paint) |
< 1.5秒 |
| 页面加载 |
LCP (Largest Contentful Paint) |
< 2.5秒 |
| 接口响应 |
P50 |
< 100ms |
| 接口响应 |
P95 |
< 500ms |
| 图片加载 |
首屏图片 |
< 1秒 |
7.1.2 并发与容量
| 指标 |
目标值 |
| 日活跃用户(DAU) |
支持 10万 |
| 接口并发(QPS) |
支持 1000 |
| 同时在线用户 |
支持 1万 |
7.1.3 资源占用
| 指标 |
Android |
iOS |
| 安装包大小 |
< 50MB |
< 60MB |
| 运行时内存 |
< 200MB |
< 200MB |
| CPU占用 |
平均 < 10% |
平均 < 10% |
| 耗电量 |
后台每小时 < 1% |
后台每小时 < 1% |
7.2 可用性需求
7.2.1 系统可用性
| 指标 |
目标值 |
| 服务可用性 |
99.9%(月度停机 < 43分钟) |
| 数据备份 |
每日全量备份,保留7天 |
| RTO(恢复时间目标) |
< 30分钟 |
| RPO(恢复点目标) |
< 5分钟 |
7.2.2 降级策略
- 核心服务故障时,非核心功能自动降级关闭
- 数据库主库故障时,自动切换到从库(只读模式)
- 第三方服务故障时,使用本地缓存或默认数据
7.3 安全需求
7.3.1 数据安全
| 数据类型 |
存储方式 |
传输方式 |
| 密码 |
bcrypt加密,cost=10 |
HTTPS(不存储明文) |
| 手机号 |
AES加密存储 |
HTTPS + 脱敏显示 |
| Token |
服务端存储哈希值 |
HTTPS |
| 敏感操作日志 |
数据库存储,保留180天 |
- |
7.3.2 接口安全
- 身份认证:JWT Token,有效期7天,支持刷新
- 权限控制:RBAC模型,接口级别鉴权
- 防重放攻击:请求签名 + 时间戳(5分钟有效)
- 限流策略:单用户 100次/分钟,单IP 1000次/分钟
- 防SQL注入:参数化查询,ORM框架
- 防XSS:输入过滤,输出编码
7.3.3 安全审计
- 登录/登出记录
- 敏感操作日志(修改密码、支付等)
- 异常行为监控(异地登录、频繁失败等)
7.4 兼容性需求
7.4.1 移动端兼容性
| 系统 |
最低版本 |
说明 |
| Android |
8.0 (API 26) |
覆盖 90% 以上设备 |
| iOS |
14.0 |
覆盖 95% 以上设备 |
7.4.2 Web端兼容性
| 浏览器 |
最低版本 |
优先级 |
| Chrome |
最新2个主版本 |
P0 |
| Safari |
最新2个主版本 |
P0 |
| Edge |
最新2个主版本 |
P1 |
| Firefox |
最新版本 |
P1 |
7.4.3 屏幕适配
| 设备类型 |
分辨率范围 |
适配策略 |
| 手机 |
320px - 428px |
响应式布局 |
| 平板 |
768px - 1024px |
独立布局或放大 |
| PC |
> 1024px |
响应式布局 |
7.5 可维护性需求
7.5.1 代码规范
- 代码注释率 > 20%
- 核心函数必须有文档说明
- 代码覆盖率 > 80%
7.5.2 日志规范
- 日志分级:DEBUG/INFO/WARN/ERROR
- 错误日志必须包含:时间、位置、错误详情、上下文
- 日志保留:生产环境30天,测试环境7天
7.5.3 监控告警
| 监控项 |
告警阈值 |
通知方式 |
| 接口错误率 |
> 1% |
钉钉/飞书 |
| 接口响应时间(P95) |
> 1秒 |
钉钉/飞书 |
| 服务器CPU |
> 80% |
钉钉/飞书 |
| 服务器内存 |
> 85% |
钉钉/飞书 |
| 磁盘空间 |
> 80% |
钉钉/飞书 |
7.6 国际化需求
【如适用,描述多语言支持要求】
- 支持语言:简体中文、繁体中文、English
- 时间格式:根据时区自动转换
- 货币格式:根据地区显示