架构师训练营第 1 期第 1 周作业

需求分析

食堂就餐卡系统是一个食堂消费管理系统。系统主要功能包括卡的注册、缴费、查询、消费、统计等。使用者包括消费者,收银员和管理员。非功能约束是,平均延迟时间<300ms,95%相应时间<500ms。
用例图

系统主要分为管理中心子系统和收款机子系统。管理中心的职责为消费者的卡的注册,缴费,查询身份、余额,以及管理员监控消费,打印消费记录。收款机子系统的职责为显示余额及消费时显示消费额和余额。
概要设计
组件图

管理中心子系统主要由卡信息组件,消费信息组建和消费者信息组建构成。另外包含管理员信息组件,支持管理员登录查询消费信息。收款机子系统通过调用管理中心子系统的卡信息,消费信息和消费者信息来完成查询余额,收银等操作。
部署图

系统预计部署 20 台云服务器,作为管理中心服务器。消费者和管理员可以通过电脑或者手机登录系统查询相关情况。外部接入均通过 TCP/IP 的方式,支持 HTTPS 加密连接。
时序图
卡信息和消费信息绑定,类似根据银行卡打印消费明细。
消费者卡注册时序图

消费者缴费时序图

消费者查询余额时序图

收银员扣费时序图

管理员查询明细,打印明细时序图

详细设计
类图

其中 Records 的 query 可以根据日期和卡号查询消费情况,balance 的 key 为 card_id,vector<float>是消费记录,可以替换为数据库查询。
评论