第一周 UML 作业
需求描述
食堂就餐卡系统设计
系统中每个消费者都有一张卡,在管理中心注册缴费,卡内记着消费者的身份、余额。
使用时将卡插入收款机则显示卡上金额,服务员按收款机上数字键,收款机自动计算并显示消费额及余额。
管理中心的管理员监视每一笔消费,可打印出消费情况的相关统计数据。
请设计系统用例图,组件图,组件时序图,部署图。
用例图
部署图
部署架构由两个物理节点组成:收银台节点、管理中心节点,其中收银台节点是多节点部署,相当于部署多个客户端。管理中心节点一般只需要部署一个节点,不需要集群,如果为了提高管理中心的可用性,可以部署两个节点的负载均衡,引入 nginx 作为负载均衡器和反向代理器
组件图
本系统包括三个组件:收款组件、消费日志同步组件、管理中心组件。其中消费日志同步组件是收款机的一个代理组件,主要用来批量,离线把收款机上的消费流水同步到管理中心。收款组件记录的消费记录,不会实时传递给管理中心,而是通过消费日志同步组件完成。这样设计的目的是,解耦收款组件与管理中心组件,提高系统整体的可用性,避免因为管理中心不可用,而影响收款机的可用性(设想一下一个大型食堂,用户本来就排队烦得很,如果因为系统不可用,进一步影响用户体验,必然会流失消费者)。可以理解收款组件是边缘计算节点,他自主可以完成卡片金额识别,扣减等行为,再通过异步、后台线程同步数据到主结算节点。
收银时序图
上图为收银过程时序图,由消费者、收银员、收款机、管理中心组成。收银步骤为:
1.消费者付款时,先把卡片插入收款机,收款机对卡片有效性进行校验,读取卡片基本信息,如卡主、剩余金额、卡片级别等。
2.收银员在收款机上录入用户消费的商品,计算合计并与卡片余额进行比对,并进行扣减,同时打印收据。
3.金额扣减完后,收银员拔出卡片,把卡片给消费者。
同时收款机的消费日志同步组件定期同步消费流水给管理中心。
评论 (1 条评论)