写点什么

架构师 3 期 3 班 -week1- 作业

用户头像
zbest
关注
发布于: 2020 年 11 月 22 日

题目:

食堂就餐卡系统设计



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

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

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



请设计系统用例图,组件图,组件时序图,部署图。



作业

用例图



说明:

  • 插卡和输入金额,都是收款机本身提供的功能,而不是系统提供的,系统只给收款机提供读卡和扣款功能,所以在交易过程中,我只画了收款机一个角色。消费者和收银员都只是收款机这个角色的功能。

  • 题目只描述了用户办卡和消费的信息,不确定是否需要管理服务员、管理员的相关信息。所以用例中没有服务员和管理员的维护用例

组件图



说明

服务员:由于题目中的部分,服务员的信息太少,是从属店铺,还是食堂没有店铺的概念,服务员都从属管理中心都未知,所以未考虑服务员的信息维护

管理员:这里我只把管理员当作是需要维护信息的对象,管理员不直接使用用户主件,而是通过登录管理中心,查询用户及统计报告

疑惑

是否需要将卡和用户分离?

用户这个组件是肯定需要的,考虑单一职责的原则,我个人觉得卡应该被分离出来,也为了后续卡的管理(包括挂失,补卡等),不知道算不算过度设计。

组件时序图



消费者消费时序图





消费者注册/缴费时序图





注:这里把注册和充值分开了,实际操作中可能是管理员合并注册和首充这2步操作。



管理员查询/统计时序图





疑惑:

我将消费者注册和充值都放在了同一个时序图中,我不清楚这样是不是合理的,还是说要分开?

还有管理员查询和统计,实际上也是2个功能,都放在一个时序图是否合理?

部署图





说明

没有量化要求,未考虑缓存,消息队列等其他中间件,只做最简单的部署



发布于: 2020 年 11 月 22 日阅读数: 36
用户头像

zbest

关注

一个胖子 2020.11.04 加入

一个不正经的java程序员, 整天写着openresty和go的代码, 努力从键摄向非职业摄影师迈进, 快要溺死在内耗里的中年人, 胖子。

评论

发布
暂无评论
架构师3期3班-week1-作业