写点什么

第一周 UML 作业

用户头像
吴建中
关注
发布于: 2020 年 06 月 07 日

需求描述


食堂就餐卡系统设计

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

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

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

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


用例图



部署图



部署架构由两个物理节点组成:收银台节点、管理中心节点,其中收银台节点是多节点部署,相当于部署多个客户端。管理中心节点一般只需要部署一个节点,不需要集群,如果为了提高管理中心的可用性,可以部署两个节点的负载均衡,引入 nginx 作为负载均衡器和反向代理器


组件图

本系统包括三个组件:收款组件、消费日志同步组件、管理中心组件。其中消费日志同步组件是收款机的一个代理组件,主要用来批量,离线把收款机上的消费流水同步到管理中心。收款组件记录的消费记录,不会实时传递给管理中心,而是通过消费日志同步组件完成。这样设计的目的是,解耦收款组件与管理中心组件,提高系统整体的可用性,避免因为管理中心不可用,而影响收款机的可用性(设想一下一个大型食堂,用户本来就排队烦得很,如果因为系统不可用,进一步影响用户体验,必然会流失消费者)。可以理解收款组件是边缘计算节点,他自主可以完成卡片金额识别,扣减等行为,再通过异步、后台线程同步数据到主结算节点。


收银时序图


上图为收银过程时序图,由消费者、收银员、收款机、管理中心组成。收银步骤为:

1.消费者付款时,先把卡片插入收款机,收款机对卡片有效性进行校验,读取卡片基本信息,如卡主、剩余金额、卡片级别等。

2.收银员在收款机上录入用户消费的商品,计算合计并与卡片余额进行比对,并进行扣减,同时打印收据。

3.金额扣减完后,收银员拔出卡片,把卡片给消费者。


同时收款机的消费日志同步组件定期同步消费流水给管理中心。


用户头像

吴建中

关注

还未添加个人签名 2018.04.18 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
部署图需要考虑前后端以及物理存在的形式,参考http://www.uml.org.cn/appCase/200701244.asp
2020 年 06 月 14 日 09:48
回复
没有更多了
第一周UML作业