架构师训练营第 1 周作业——食堂就餐卡系统设计

用户头像
在野
关注
发布于: 2020 年 06 月 08 日

0. 系统需求

  • 系统中每个消费者都有一张卡,在管理中心注册缴费,卡内记着消费者的身份、余额。

  • 使用时将卡插入收款机则显示卡上金额,服务员按收款机上数字键,收款机自动计算并显示消费额及余额。

  • 管理中心的管理员监视每一笔消费,可打印出消费情况的相关统计数据。

1. 需求分析

本系统的使用者有3类人:消费者、服务员和管理员,他们在系统中的主要功能如下:

  • 消费者:注册,缴费,消费,查看余额

  • 服务员:帮助消费者查看余额,扣除消费额

  • 管理员:给消费者注册,充值,查看消费记录,查看和打印消费者的统计数据



2. 设计概述

2.1 功能概述

食堂就餐卡系统是为了方便消费者,降低管理员的工作量而设计。

2.2 非功能约束

系统用户量为在校师生,大概3万人,用餐高锋期在早晨7:20~8:00、中午11:30~12:30、晚上17:30~18:30,全校共10个食堂,200个窗口(服务员),日均订单量可能超过10万笔。

  • 1、查询性能目标:平均响应时间<300ms,95%响应时间<500ms,单机TPS>20;

  • 2、下单性能目标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>10;

  • 3、系统核心功能可用性目标:>99.97%;

  • 4、数据持久化目标:>99.9999%;

  • 5、系统安全目标:系统通讯对称加密;

3. 系统部署图与整体设计

系统上线时预计部署2台物理机,1台用做系统的服务器,1台数据库服务器。本系统分为个3个子系统,分别为用户子系统,计费子系统和报表子系统,计费子系统用户与收款机交互。

3.1 系统部署图



用户子系统的功能职责为消费者注册、收款机注册。

计费子系统的功能职责为充值、消费和查看余额。

报表子系统的功能职责为查询某个用户某笔消费记录、查看消费统计数据、打印消费统计数据。

3.2 充值场景子系统序列图



  • 消费者充值前先在用户子系统里注册,等级其身份。

  • 消费者注册成功后,将要充值的钱交给管理员,计费子系统记录其充值的金额,同时给报表子系统发一条充值的消息,报表子系统记录充值消息,充值成功后返回用户余额,

3.3 消费场景子系统序列图



  • 消费者选好商品后到服务员窗口处付款,将卡放到收款机上,收款机识别卡,通过计费子系统查询该卡的余额。

  • 如果余额充足,在收款机上扣除消费金额,收款机将要扣除的款项发送给计费子系统,计费子系统实行扣款,并将扣款信息发送给报表子系统,报表子系统记录扣款信息,然后返回该卡余额。

3.4 充值场景子系统活动图

消费者来充值,如果没有卡,帮消费者注册账号,然后给卡充值,系统记录充值流水。

3.5 消费场景子系统活动图



1、消费者选好商品后,到收费处付款。

2、服务员拿到消费者的卡后,将卡插入收款机,收款机查询开的余额,如果余额不足,用户需要充值;如果余额充足,收款机向计费子系统发起扣款请求,计费子系统扣款,给报表子系统发送一条记录扣款流动的消息,成功以后返回消费者余额。

4. 用户子系统设计

用户子系统的主要功能是管理系统用户,收款机。

......

......

......

5. 计费子系统设计

用户子系统的主要功能是充值、扣款和查看余额。

......

......

......

6. 报表子系统设计

报表子系统的主要功能是查看消费记录,查看和打印消费者的统计数据。

......

......

......

发布于: 2020 年 06 月 08 日 阅读数: 85
用户头像

在野

关注

还未添加个人签名 2012.03.11 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
赞!完整的设计文档样例。
2020 年 06 月 12 日 15:38
回复
没有更多了
架构师训练营第1周作业——食堂就餐卡系统设计