第一周架构方法 - 练习 - 食堂就餐卡系统设计
作业题目
![](https://static001.geekbang.org/infoq/63/63018f75743b53ec46615fe00ef4dc6c.png)
我的疑问
请助教帮忙解答,谢谢~
问题 1:使用 UML 表达建模时,如何区分“组件”,以便于绘制“组件图”和“组件时序图”?
问题 2:“用例图”比较粗略,感觉不足以用来描述一个大型系统,为什么软件架构时还需要使用用例图?
用例图
有几个执行者:消费者、管理员、服务员
有几个用例:注册缴费、刷卡消费、监视消费情况/运用消费记录
食堂就餐卡系统的用例图如下:
![](https://static001.geekbang.org/infoq/02/027d54b7c68cd5c8841ee84751078c3d.png)
消费者的主要操作是:发起缴费、刷卡消费
服务员的主要操作是:使用刷卡机进行扣款
管理员的主要操作是:使用消费记录,如:监视每一笔消费、统计消费记录、打印消费记录
组件图
组件定义:系统中遵从一组接口且提供其实现的物理的、可替换的部分。对系统的物理方面建模时,它是一个重要的构造块。
问题 1:实际项目中,如何定义一个系统的组件?
![](https://static001.geekbang.org/infoq/f3/f38eab4f97aa514e506a7d9a1d536bfa.png)
系统主要包含 2 类 7 个组件:
一类是围绕就餐卡组件的,包含注册缴费组件和收款组件
二类是围绕消费记录组件的,包含监视组件、统计组件、打印组件
组件时序图
![](https://static001.geekbang.org/infoq/e2/e25566adc74cccb3313cd5fca337c35f.png)
对于“缴费”场景,首先是消费者使用就餐卡,向管理中心发起缴费,管理中心缴费成功后,就餐卡就有一定余额可以进行消费;
对于“消费”场景,由消费者使用就餐卡,在商店进行消费,消费时,由服务员通过刷卡机进行扣款,扣款成功,就餐卡余额扣除消费金额,同时产生消费记录;
部署图
部署图描述了系统中硬件和软件的物理配置情况和系统体系结构。
![](https://static001.geekbang.org/infoq/05/051e919e866db4d40e9daf27c176e9ae.png)
就餐卡管理系统主要用于就餐卡的注册缴费、消费记录使用(监视、统计、打印),初期部署 2 台服务器;
评论 (2 条评论)