秒杀业务背景
1.电商大环境营销模式逐渐形成,秒杀活动于2011年后流行起来
2.电商用户爆发式增长,竞争激励,各大电商纷纷低价促销抢夺用户
3.在大型促销活动中,老系统面临并发性、可用性等问题的挑战
只有了解了秒杀系统诞生的业务背景以及需要解决的问题,才能更好的进行准确的需求分析
前端需求分析
前端页面是离用户感受最近的部分,当前端需求基本决定,一个系统的功能需求也随之产生
1.秒杀详情页
2.查看商品列表
活动商品详情信息——商品图片、商品名称、广告语、库存信息、原价、活动价、秒杀按钮
活动按钮状态
- 活动已开始,对于已登录用户来说,按钮提示 “立即抢购”,点击后会跳转到商品详情页;
- 活动已开始,对于未登录用户来说,按钮提示 “登录后抢购”,点击后会跳转到登录页;
- 活动未开始,按钮则会提示 “提醒我”,点击后就会订阅活动通知。
UI设计
首页入口
秒杀活动页
商品详情页
交互逻辑
具体实现看具体的业务需求
后端需求分析
后端需求依赖于前端请求,为了分析后端需求,我们需要先了解用户在秒杀活动中的行为
- 根据前后端的交互,通过用户访问前端秒杀活动的行为轨迹,分析出后端需要哪些需求
- 设计用户的整体流程图
- 定义接口清单
- 考虑隐藏的需求,如对接订单等模块
管理后台需求分析
后台页面
- 活动专题管理
- 活动场次管理
- 活动商品管理
在需求分析的时候,为了考虑全面,我们可以站住不同的角色立场来分析,比如站在用户、产品经理,前后端研发、测试人员、运营人员等的角度来看待。 有时候我们拿到的需求并不是详细的需求文档,可能仅仅是个原型图,这时就需要我们充分与业务方沟通,并将沟通结果整理成可拆解的需求点用文档记录下来,以便后续做详细设计和任务拆解。 另外,我们还需要挖掘出隐藏需求,以免评估工作量的时候有疏漏,导致项目延期。
非功能性需求
当你接到一个项目后,除了分析功能需求外,还需要以系统的角度来思考需求
后端的同学需要更多地从内部因素来考虑,比如运行系统的机器配置、语言并发能力、机房可用性等等这些是否满足要求
具体来说,非功能需求包括:可用性、并发能力、性能、安全防护能力、水平扩容缩容能力、运维 / 运营成本等。
比如:我们在设计一个重要系统时,可能会要求可用性达到 99.99%,并发能力达到 100 万 QPS,请求延迟低于 500ms,能防范跨站脚本攻击,1 分钟内快速扩容,总成本控制在 10 万元每月。这些要求就是非功能需求要满足的。
灵魂拷问:
- 假如总共有 100 万用户,在同一时刻访问我们的系统,那么系统能否扛住?
- 假如 10 台服务器中有一台服务器因为物理故障瘫痪,剩下的服务器能否扛住?
- 假如服务器所在的某个机房发生了火灾,系统该如何继续运行?
- 假如有人在恶意攻击,系统该如何稳定运行?
- 假如请求超过 1 秒用户就会失去耐心,如何保障请求延迟低于 1 秒?
- 假如系统容量不足,如何做到 30 秒内快速扩容缩容?
