基于UML的饮料自动售货机系统设计.doc基于UML的饮料自动售货机系统设计
1. 问题描述
自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点, 成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾 客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。
该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、找零钱等功能。
与系统交涉的人有两类:送货员和顾客。
送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况,并根据计划适当添 加饮料、钱币或取走适当的钱币。同时,送货员也可以根据需要增加饮料的种类,或修改饮 料的价格。
顾客根据需要选择饮料,投入钱币,并等待售货机的响应。售货机(所设计的系统) 所做的响应:如果售货机中没有该种饮料,则退回顾客所投钱币,交易失败。否则,如果 售货机中有该种饮料,则判断顾客所投钱币是否足够,如果不够,则提示顾客交易失败, 并退回钱币。如果顾客所投的钱币刚好够(不需要找零钱),则售出饮料,交易结束。如 果需要找零钱,则判断是否有适当的零钱可以找,如果有,则售出饮料,找出零钱,交易 结束。否则,退回钱币,交易失败。
当然,实际生活中的售货机可能有更加强大的功能和更完善的处理,这里只模拟一个 售货机系统,所以只实现其核心原理,并练习和提高分析问题能力和编程能力。
;
图1:模块划分
系统涉及的角色有:顾客和送货员。
系统用例模型如下图:
BuyD rinks
图2:用例图
2. 3类分析
系统中涉及的类有Person类, 类,并且各自实现一定的功能,Drink类和Money类各有自己的属性,并可以通过一些操作将 自己的信息显示出来.
3.
设计类图、核心用例的顺序图与状态图、组件图等的描
述;
3. 1
类图
CPers on
CCustomer
^buyDrinksQ
^viewPrice()
CSe nde「
userName^password
CDrink ^>name ^amount 易price
•addDrinksf) ^addMoneyO ^takeAwayMoneyQ ^generateNewSenderO•叩 name2Q
•displayPriceQ ^displayNameO ^displayAmountO
CMoney ■type ^amount
•displa yTypeO •displa yAmountQ
图3:类图
3. 2核心用例的顺序图
Sen der
front
Register
Dat 创 nfo
1 ]牛 cc 即 tlnput(name,g^d)
ZJ
lerateA nltem( nan^,pwd)
4:
[”tavail]DisplayFail
6:
Gen erateNewSe nc<
CheckAveil(nan^】
-e n
I5: Addltem(item'j
er
2: G
图4: “注册新的送货员”时序图
时序图分析:送货员输入新的用户名和密码,并确定。对话框控件接收输入,并将信 息传到售货机系统,请求生成新的数据记录。系统检查该用户名是否有效。如果无效,则 拒绝生成新的送货员。如果有效,则在数据库中添加一条新的记录,成功的生成一个送货 员的用户名和密码。
Person
front
Register
Datalnfo
1: AcceptChoice、
2: ErcwseDrinkTyp昌
CheckDrinklnfo(drin^)
>r*i
4: DisplayPrice(drinki
<
图5: “查看价格”吋序图
时序图分析:顾客或送货员请求查看饮料的价格。对话框控件接收输入,并请求售货 机系统查询该价格信息。系统在数据库中浏览并通过饮料名称查出该饮料的价格,返回给 对话框界面。
customer
front
register
datalnfo
1:: AcceptSelect(drink,money) :
F I:3: CheckAvail(drink):
-2^tetCustlnput(dri nk,money)
?:普 oldout]ReturnMon 珥
5: CheckPrice(drink'j
6: [money>price]CheckForChange :
8: |jnoChan
基于UML的饮料自动售货机系统设计 来自淘豆网m.daumloan.com转载请标明出处.