【架构师训练营】食堂就餐卡系统设计文档
1 设计概述
食堂就餐卡系统是一个实现食堂就餐信息化管理的系统。
1.1 功能概述
系统功能主要包括卡管理、卡交易、卡消费数据处理;使用者包括管理员、消费者、服务员。
1.2 非功能约束
1.3 用例图




2 系统部署图与整体设计
系统上线预计部署xx台机器,4个子系统和公司用户系统、财务系统交互和外部第三方支付系统交互。
2.1 系统部署图

1).卡管理后台⼦系统的功能职责为给管理员提供的后台系统;部署n台服务器,依赖卡服务⼦系统,实现卡管理、充值、数据查看等功能。
2).卡服务⼦系统的功能职责为提供就餐卡相关服务接口的系统;部署n台服务器,实现卡管理、卡交易等功能。
3).刷卡机⼦系统的功能职责为提供刷卡消费的系统;部署n台服务器,依赖卡服务⼦系统,实现卡余额查询、卡消费等功能。
4).数据分析子系统的功能职责是收集及分析消费数据的系统;部署n台服务器,依赖卡服务⼦系统,实现消费数据收集、数据统计分析、数据查询等功能。
2.2 注册卡场景子系统序列图

1. 卡管理子系统注册新卡时,调用卡服务子系统,卡服务子系统查询用户是否办过卡,如果用户名下没有卡则为用户注册新卡。
2.3 充值缴费场景子系统序列图

1. 卡管理子系统充值缴费时,调用卡服务子系统,卡服务子系统首先查询卡是否正常,如果正常则增加卡的余额。
2.4 查询卡余额子系统序列图

1. 刷卡机子系统查询卡余额时,调用卡服务子系统,卡服务子系统首先查询卡是否正常,如果正常则查询卡的余额。
2.5 刷卡消费场景子系统序列图

1 刷卡机在扣除余额时,首先发送消息到卡服务子系统,卡服务子系统查询卡是否正常,如果正常则查询卡余额是否足够,如果足够则进行卡余额扣除,然后调用和数据分析子系统采集消费数据。
2.5 消费数据查看及打印场景子系统序列图

1. 卡管理后台子系统调用卡服务子系统,卡服务子系统查询消费明细。
2. 卡管理后台子系统调用卡服务子系统,卡服务子系统查询消费明细,然后打印消费统计数据。
3 卡管理后台子系统设计
3.1 组件图

卡管理后台子系统包含3个组件:
1).卡管理组件的功能主要是为用户进行卡注册、查询卡信息等功能,是卡管理后台子系统的核⼼组件,⽤户卡注册请求主要通过该组件完成;
2).卡充值组件的功能主要是为用户进行卡余额充值,依赖卡管理组件校验卡是否存在;
3).数据查看组件的功能主要是提供查看消费明细及打印统计数据功能,依赖卡管理组件校验卡是否存在;
3.1.1卡充值场景组件序列图

对于该场景,⾸先卡充值组件收到卡充值缴费消息,然后卡充值组件调⽤卡管理组件的查询卡是否存在⽅法,如果返回卡存在则调用卡充值缴费方法。
3.1.2消费数据明细查看场景组件序列图

对于该场景,⾸先数据查看组件收到卡消费明细查看消息,然后调⽤卡管理组件的查询卡是否存在⽅法,如果返回卡存在则调用卡消费明细查询方法。
4 卡服务子系统设计
4.1 组件图

卡服务子系统包含2个组件:
1).卡管理组件的功能主要是为用户进行卡注册、查询卡信息等功能,是卡管理后台子系统的核⼼组件,⽤户卡注册请求主要通过该组件完成;
2).卡服务组件的功能主要是用户卡余额查询、充值缴费、消费扣余额等,依赖卡管理组件校验卡是否存在;
4.1.1注册卡场景组件序列图

对于该场景,⾸先卡管理组件收到卡注册消息,然后查询卡是否存在⽅法,如果返回卡存在则调用卡注册方法。
4.1.2卡消费场景组件序列图

对于该场景,⾸先卡充值组件收到卡消费消息,然后调用卡管理组件,查询卡是否存在⽅法,如果返回卡存在则调用卡余额是否充足方法,如果卡余额充足则执行卡余额扣除方法。
5 刷卡机子系统
5.1 组件图

刷卡机子系统包含2个组件:
1).余额查询组件的功能主要是查询用户卡的剩余金额;
2).刷卡消费组件的功能主要是完成用户消费之后的刷卡消费,完成余额扣除功能。
5.1.1刷卡消费场景组件序列图

对于该场景,刷卡消费组件收到卡消费消息,调用卡消费方法,然后调用卡余额查询组件,调用查询卡余额⽅法。
6 数据分析子系统
6.1 组件图

数据分析子系统包含3个组件:
1).消费数据收集组件的功能主要是采集卡的消费数据;
2).数据统计组件的功能主要是根据采集的消费数据,进行数据统计分析。
3).数据查询组件的功能主要是查询消费明细及消费统计数据
6.1.1数据统计分析场景组件序列图

对于该场景,数据统计分析组件执行数据分析任务,调用消费数据查询组件,然后调用查询消费数据⽅法,之后根据获取的数据进行数据分析。
版权声明: 本文为 InfoQ 作者【张明森】的原创文章。
原文链接:【http://xie.infoq.cn/article/f4244f39d9e0b29d08241afde】。未经作者许可,禁止转载。
评论