写点什么

架构师课程第一周作业

用户头像
杉松壁
关注
发布于: 2020 年 06 月 07 日

食堂就餐卡系统设计

1. 设计概述

某公司食堂是以各种品牌的美食为主的高级别食堂。为了规范方便客户消费,公司需求设计一套食堂就餐卡系统。该系统主要面向客户消费和充值使用,并提供消费券等的营销活动。

1.1 功能概述

本系统的使用者主要包括客户,服务台,管理控制台。主要包括的功能有客户开卡、消费、退卡,服务台申请刷卡机、对账结算等,管理员管理维护整个平台。刷卡机需要与商户进行绑定,以便为商户提供账单以及结算消费。对于充值功能,客户可以通过柜台或自动充值机充值。

1.2 非功能概述

预计系统未来一年内的客户数量将达到5万,日消费订单可以达到1万,并且随着商户质量提升,客户数量和日订单将大幅上升。

查询性能⽬标:平均响应时间<300ms,95%响应时间<500ms,单机TPS>100;

订单成功率>99.99%;

系统核心功能可用性指标:系统可查询时间>99.9999%,系统可交易时间99.99%;

数据安全目标:系统所有的数据(包括日志)都保存至少半年以上,且关键数据都需要有绝对的备份机制,不能导致数据丢失。

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

该系统部署需要部署服务端软件、刷卡机软件、充值机软件。刷卡机和充值机根据需求可以调整。服务端是业务处理的核心系统,预计需要数据库1主1备,各组件部署机器2台,各组件可以通过HTTP或RPC调用。负载均衡器1台。

2.1用例图



图一 消费者用例



图二 服务员用例



图三管理员用例



系统的使用者主要是消费者、服务员以及管理员。其中消费者可以使用开卡销卡、充值、消费功能;服务员可以设定固定的消费金额或者单独设置消费金额;管理员则可以使用系统所有功能,并且负责维护系统。

2.2系统部署图



 

   客户、服务员、管理员通过不同的终端向服务端发送请求,服务端则根据不同请求调用不同的模块处理相关业务。相关的业务数据都保存到数据库系统中,日志则通过日志系统收集到日志服务中,供管理员使用。

3. 系统详细设计

3.1系统组件



 

服务端系统主要的组件有请求处理组件、消费处理组件、充值处理组件、开卡销卡处理组件、报表处理组件、数据存取组件以及日志处理组件。请求首先进入到请求处理组件,在这里将请求进行解析,解析之后根据不同的请求类型将请求交给不同的组件进行处理。处理的过程中出现的各种操作或问题都可以通过日志组件记录下来,留给管理员处理或自处理。所有的客户数据、交易数据、卡片数量都要经过数据存取组件持久化。

3.2系统组件时序图



 

时序图反映了不同的请求在不同的时间周期的个组件之间的调用返回关系。根据消费、充值、开卡销卡以及报表等不同的请求,请求处理组件会调用不同的业务处理组件,从而实现正确的请求返回。

学习总结

本周是架构师课程的第一周,上了2次课程共5个小时。主要学习的内容有:架构设计文档编写、架构设计模型、UML建模语言。重点讲解了UML建模语言中的7种建模图形:用例图、类图、组件图、部署图、序列图、活动图、状态图。老师推荐书《UML精粹》。

虽然这些图看着是挺简单的,但是在写作业的时候,还是感觉想把这些图中的元素都应该好需要花费一些时间。不过,对于工具而言,只要多花一点时间多画几次就可以掌握了。架构师的关键也不在这里,画图只是将自己的架构展示给别人看的,真正重要的是需要在脑子里构建出来架构,并且这个架构需要符合实际、符合需求、可以落地,让客户满意,则需要像老师说的悟性了。足够的悟性、创造力加上不断的努力则可以成就伟大的人。所以,学习了这门课只是帮助我找到架构师的路,大概发现了架构师的一些知识点,更多的东西需要通过不断的学习、不断的思考、不断的实践去积累。

 

用户头像

杉松壁

关注

还未添加个人签名 2018.03.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师课程第一周作业