【架构训练 Week01 作业】食堂就餐卡系统设计
食堂就餐卡系统设计
1 设计概述
食堂就餐卡系统是一个供消费者用餐付费,以及供食堂管理员管理就餐卡的系统。是打入餐饮软件市场战略的核心系统,承担着公司的年盈利3000w的目标。
1.1 功能概述
系统的主要功能包括刷卡付费(下单)、查看就餐卡余额、查询付费订单的详细信息,以及统计用户消费情况。使用者包括有用餐需求的消费者、食堂管理员。
功能需求用例图
1.2 非功能约束
刷卡扣费平均响应时间
< 500ms
, 90%响应时间<800ms
系统可用性目标:
>99.9%
2 系统部署图与整体设计
预计系统上线时需要8个容器服务器节点,整个系统有5个子系统组成,其中订单子系统的“Web客户端”与就餐卡读卡器交互
2.1 系统部署图
订单子系统,职责是为客户端组件提供查询和下单接口、为管理后台提供统计查询接口等,需要部署2个容器节点。
通知中心子系统,职责为给用户发通知消息,包括短信和邮件消息等,需要部署2个容器节点。
. . .
2.2 订单子系统序列图
消费前,读卡器先读取就餐卡的ID,及其余额信息
消费时,先通过读卡器更新卡余额信息,之后通知服务端,最后由服务端异步调用通知子系统,以进行消息下发
服务端异步处理通知财务系统
2.3 订单场景系统活动图
消费前,读卡器先读取就餐卡的ID,及其余额信息
消费时,先通过读卡器更新卡余额信息,之后通知服务端,最后由服务端异步调用通知子系统,以进行消息下发。
服务端异步处理通知财务系统
3 订单子系统设计
3.1 订单子系统组件图
子系统包含2个组件:订单组件、支付组件、退款组件
1. 订单服务组件,主要包括刷卡消费(下单)、查看订单信息功能等,是该子系统的核心组件,它依赖于支付组件。
2. 支付组件,主要实现了交易功能,包括消费交易和充值交易。
3. 退款组件,主要实现了对订单进行退款功能
3.2 订单组件设计
3.2.1 订单类图
用户User类与Order订单类是一对多的关联关系
Order订单类与支付交易Transaction类是一对一的关联关系
用户User类与用户余额UserBalance类是一对一的关联关系
用户余额UserBalance对象的变更,是依赖于支付交易类的,包括缴费、退款和消费类交易。
3.2.2 订单状态图
订单对象运行时可能有6种状态
3.3 TODO ...
版权声明: 本文为 InfoQ 作者【Rex】的原创文章。
原文链接:【http://xie.infoq.cn/article/a2a1d4c27734751af1a8fc0cd】。文章转载请联系作者。
评论