饮料销售机UML顺序图
- 格式:doc
- 大小:24.00 KB
- 文档页数:4
《面向对象设计UML建模》---08本新版上机实验(一)创建用例及用例图一.实验目的:在Rose 2003 环境下设计应用系统的UML用例图(Use Case Diagram)。
二.实验内容:根据用户“需求陈述”创建Use Case框图。
包括:案例1. 绘制“自动饮料机售货”的Use Case框图(包括功能扩展)案例2. 用例之间的三种关系练习案例3. 设计“网上学生选课系统”的Use Case 框图案例4. 设计“图书管理系统”的Use Case 框图三.操作步骤:案例1.①建立用例图的步骤:。
右击Use Case View。
选New Use Case Diagram。
起名,比如:Buy Drink。
双击Buy Drink图标,这时工具栏变成适合Use Case作图的形式。
设计Use Case Diagram.②“自动饮料机售货”需求陈述:“顾客通过自动饮料售货机, 可以方便地买到一听饮料。
而自动饮料售货机除了卖给顾客饮料外,还具备以下功能:·供应商可以向自动饮料售货机添加饮料(需要打开和关闭自动饮料售货机的门);·收银员可以从自动饮料售货机取钱. (需要打开和关闭自动饮料售货机的门)”经过分析可知自动饮料售货机系统涉及到的名词及概念有:Customer Supplier Cashier Buy drink Set drink Take moneyOpen machine Close machine显然, 前三个名词为参与者. 后面的那些功能为Use Case .③绘制自动饮料售货机售货的用例图. (提示:首先找出参与者和用例之间的关系, 建立初步用例图, 然后细化用例建立用例之间的《include》或《extend》关系。
)案例2. 用例之间的三种关系练习·分析用例之间的“泛化关系”、“include”和“extend”关系。
·在Rose下创建包括以上三种关系的Use Case图。
UML中的顺序图和协作图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准语言,被广泛应用于软件开发过程中。
在UML中,顺序图和协作图是两种常用的建模工具,用于描述系统中对象之间的交互关系。
本文将探讨顺序图和协作图的区别,并通过实际应用案例解析它们的使用。
顺序图是一种时序图,用于展示对象之间的交互顺序。
它通过显示对象之间的消息传递和时间顺序来描述系统的动态行为。
顺序图以垂直方向表示时间轴,从上到下按照时间顺序排列对象和消息。
每个对象用一个矩形表示,对象之间的消息通过箭头表示。
顺序图强调对象之间的交互和消息的顺序,能够清晰地展示系统中的动态行为。
协作图是一种静态图,用于描述对象之间的合作关系。
它通过展示对象之间的连接和消息传递来描述系统的结构和交互。
协作图以水平方向表示对象之间的连接关系,每个对象用一个矩形表示,对象之间的连接通过实线和虚线表示。
协作图强调对象之间的连接和合作关系,能够清晰地展示系统中的结构和交互。
为了更好地理解顺序图和协作图的区别,我们可以通过一个实际应用案例来解析它们的使用。
假设我们正在开发一个在线购物系统,其中包含用户、购物车和商品三个对象。
首先,我们可以使用顺序图来描述用户购买商品的过程。
顺序图可以展示用户选择商品、将商品添加到购物车、结算支付等交互过程。
通过顺序图,我们可以清晰地了解用户与系统之间的交互顺序和消息传递。
接下来,我们可以使用协作图来描述购物车和商品之间的合作关系。
协作图可以展示购物车和商品之间的连接关系,以及它们之间的消息传递。
通过协作图,我们可以清晰地了解购物车和商品之间的合作关系,从而更好地设计系统的结构和交互。
通过以上案例,我们可以看到顺序图和协作图在描述系统中的对象交互和合作方面有着不同的应用场景。
顺序图适用于描述对象之间的交互顺序和消息传递,而协作图适用于描述对象之间的连接关系和合作关系。
基于UML的饮料自动售货机系统设计1.问题描述1.1 关于自动售货机自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。
如今的自动售货机可以为顾客提供多种服务。
顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。
1.2 饮料自动售货机的设计该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、找零钱等功能。
与系统交涉的人有两类:送货员和顾客。
送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况,并根据计划适当添加饮料、钱币或取走适当的钱币。
同时,送货员也可以根据需要增加饮料的种类,或修改饮料的价格。
顾客根据需要选择饮料,投入钱币,并等待售货机的响应。
售货机(所设计的系统)所做的响应:如果售货机中没有该种饮料,则退回顾客所投钱币,交易失败。
否则,如果售货机中有该种饮料,则判断顾客所投钱币是否足够,如果不够,则提示顾客交易失败,并退回钱币。
如果顾客所投的钱币刚好够(不需要找零钱),则售出饮料,交易结束。
如果需要找零钱,则判断是否有适当的零钱可以找,如果有,则售出饮料,找出零钱,交易结束。
否则,退回钱币,交易失败。
当然,实际生活中的售货机可能有更加强大的功能和更完善的处理,这里只模拟一个售货机系统,所以只实现其核心原理,并练习和提高分析问题能力和编程能力。
2.用例模型及分析类图的描述;2.1 系统功能模块划分图1:模块划分2.2 系统用例模型描述系统涉及的角色有:顾客和送货员。
系统用例模型如下图:图2:用例图2.3 类分析系统中涉及的类有Person类,主要实现viewPrice这个功能.Customer和Sender继承这个类,并且各自实现一定的功能,Drink类和Money类各有自己的属性,并可以通过一些操作将自己的信息显示出来.3.设计类图、核心用例的顺序图与状态图、组件图等的描述;3.1 类图图3:类图3.2 核心用例的顺序图图4:“注册新的送货员”时序图时序图分析:送货员输入新的用户名和密码,并确定。
软件建模与UML智慧树知到课后章节答案2023年下山东理工大学山东理工大学第一章测试1.结构化设计阶段的主要设计思路是()。
答案:自顶向下,逐步求精2.结构化分析建模的3种核心模型为()。
答案:DD;ERD;DFD3.数据流图的外部实体可能是与系统交互的()。
答案:硬件设备;人;软件系统;部门;组织4.环境图也称顶层数据流图,它仅包括一个数据处理过程,即目标系统。
答案:对5.ER图是数据库设计的基础,因此又称为()。
答案:数据库概念模型6.数据字典是以词条方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,其定义对象包括()。
答案:数据源点/汇点;加工(过程)条目;数据流条目;数据文件7.DD中最常用的数据结构描述方式有()。
答案:定义式 ;Warier图8.结构图可以清楚的表达出模块间的层次调用关系和信息传递,但不能表达有条件的模块调用。
答案:错9.结构图优化时,需要应用高耦合、低内聚原则。
答案:错10.关于结构化程序设计的描述,正确的是()。
答案:选用的控制结构只准有一个入口和一个出口。
; 使用顺序、选择、循环这三种基本控制结构表达程序逻辑。
; 严格控制GOTO语句。
11.请根据描述,对学校图书管理系统建立DFD。
图书管理系统主要目的是方便学校图书馆的借还书工作。
图书管理员负责进行图书的管理,主要包括图书的入库、图书信息的修改和图书的出库。
其他工作人员负责完成借书和还书的操作。
读者可以通过系统查询图书信息及流通状态,可以自助借书、还书。
另外还可以通过系统进行图书的预约和续借。
读者分为教师和学生。
教师最多允许借10本书,借阅时长2个月。
学生最多允许借5本书,借阅时长为1个月。
两类读者的续借时长都为1个月。
对已借出图书到期时长小于一周时,允许预约,预约期为10天,多位读者预约时,按预约时间排序;超期未借,预约自动失效。
存在预约的图书只能由预约读者借阅。
还书时,如果发生超期,需要缴纳罚款。
超市管理系统需求分析报告(使用面向对象的方法)目录1用例和用例图 (1)1.1什么是用例和用例图 (1)1.2用例图 (2)1.3用例说明 (4)2类图 (9)2.1什么是类图 (9)2.2类图 (10)超市管理系统需求分析报告(面向对象方法)1用例和用例图1.1 什么是用例和用例图用例是由行为者启动的系统完成的一系列动作,这些动作除了完成系统内部的计算与工作外,还包括与一些行为者的通信。
用例代表某些用户可见性的功能,实现一个具体的用户目标。
用例图(User Case)是由参与者,用例以及它们之间的关系构造成的用于描述系统功能的动态视图的图。
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。
用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
1.2 用例图1.3 用例说明用例名称:超市管理系统之人事管理相关活动者:职工,人事部人员,超市管理系统之售后服务简要说明:人事部人员对职工进行人事调动,人事考核,培训,工资管理等一系列人事安排。
一切的人事安排都打印出报表及时通知给职工。
其中的人事考核将接受由超市管理系统之售后服务传过来的对职工的投诉的信息,作为人事考核的一个依据。
前置条件:人事部人员已经登录人事管理界面主事件流:1.人事部人员登录人事管理界面,用例开始2.系统提示输入人事管理对象职工的职工号3.人事部人员输入人事管理对象职工的职工号4.系统提示选择人事管理的四项管理:人事调动,人事考核,培训,工资管理5.人事部人员选择一项具体的人事管理:B1:选择人事调动B2:选择人事考核B3:选择培训B4:选择工资管理6.系统按选择做相关处理7.用例结束可选事件流:B1:选择人事调动1.系统提示选择人事调动中三项管理:就职,职位变更,离职2.人事部人员选择一项具体的人事调动管理:B5:选择就职B6:选择职位变更B7:选择离职3.系统按选择做相关处理4.返回主事件流第7步B2:选择人事考核1.系统显示该职工可能存在的由超市管理系统之售后服务传入的被投诉的事项2.系统提示输入考核内容3.人事部人员输入考核内容4.系统提示给出职工考核结果5.人事部人员输入具体考核结果6.系统显示职工考核具体情况并打印报表7.返回主事件流第7步B3:选择培训1.系统提示选择培训项目2.人事部人员选择培训项目3.系统提示选择培训时间4.人事部人员选择培训时间5.系统显示该项培训具体事项并打印报表6.返回主事件流第7步B4:选择工资管理1.系统显示该职工当前工资情况2.系统提示修改该职工工资3.人事部人员修改该员工各项工资4.系统显示修改后职工工资情况并打印报表5.返回主事件流第7步B5:选择就职1.系统显示该后备职工具体情况2.系统将该职工信息由后备职工表转入就职职工表3.系统打印职工就职任命书4.返回主事件流第7步B6:选择职位变更1.系统显示该职工当前职位情况2.系统提示选择该职工变更后职位3.人事部人员选择变更后职位4.系统显示该职工变更后职位情况并答应职位变更报表5.返回主事件流第7步B7:选择离职1.系统显示该职工当前就职情况2.系统将该职工信息由就职职工表转入离职职工表3.系统打印职工离职报表4.返回主事件流第7步后置条件:无用例名称:超市管理系统之销售管理相关活动者:顾客,大客户,营业员,销售经理,超市管理系统之售后服务,超市管理系统之仓储管理简要说明:销售管理对超市的销售做总体的管理。
饮料销售机UML顺序图文档引言本文档为饮料销售机设计过程中的UML顺序图文档,编写成员为开发成员,目的是为了方便后续的开发更顺利并且便利的开展,了解系统功能顺序,对系统有一个更加直观的功能框架。
饮料销售机分析在自动饮料售货机的“买饮料”场景中,假设饮料销售机有3个部分:前端(front)、钱币记录仪(register)以及分配器(dispenser)。
前端负责:接受顾客的选购和现钞;显示诸如Out of selection(所选饮料已售完)和User correct change(使用合适零钱)的信息;从记录仪接收找回的零钱并返还给顾客;返还现钞;从分配器接收一罐饮料并把它交给顾客。
钱币记录仪负责:从前端获取顾客输入的信息(即选购的饮料的种类和现钞);更新现钞存储;如果缺少零钱将不让系统服务并在前端显示没有零钱;若零钱充足一切正常,找零钱。
分配器负责:检查选购的饮料是否还有货;分发一罐饮料。
类图描述:(注:该图只提供参考,参数和返回值可自行定义,方法也可以增加)UML顺序图在饮料售货机购买饮料的所有情况中,都需要顾客往前端放入金钱,由钱币记录仪判定钞票面额。
1、理想状态下买饮料(购买成功且不用找零)在理想状态下,顺序如下:1、顾客放入现钞inputMoney();2、前端接收现钞并将现钞传给钱币记录仪accept();3、钱币记录仪对现钞面额进行判断getCustomerInput();4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料checkForSoda();5、分配器向前端返回可购买饮料信息returnSodaFree();6、前端将可购买饮料显示给顾客displayPrompt();7、顾客选择饮料chooseSoda();8、前端将结果给分配器sendChooseToDis();9、分配器检查是否有该饮料checkAvailability();10、分配器向前端释放饮料releaseSoda();11、前端接收饮料并释放出来receiveSoda();12、购买结束顺序图如下:2、顾客要买的饮料售完在此情况下,顺序如下:1、顾客放入现钞inputMoney();2、前端接收现钞并将现钞传给钱币记录仪accept();3、钱币记录仪对现钞面额进行判断getCustomerInput();4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料checkForSoda();5、分配器向前端返回可购买饮料信息returnSodaFree();6、前端将可购买饮料显示给顾客displayPrompt();7、顾客选择饮料chooseSoda();8、前端将结果给分配器sendChooseToDis();9、前端检查是否有该饮料checkAvailability();10、没有该饮料了,返回消息“Out of selection”给前端returnUnavailability();11、前端显示消息“Out of selection”displayPrompt();12、前端向钱币记录仪发退钱信息sendReturnCashM();13、钱币记录仪返还钞票returnCashToFront();14、前端返还现钞returnCash();15、交易结束顺序图如下:3、需找零钱在此情况下,顺序如下:1、顾客放入现钞inputMoney();2、前端接收现钞并将现钞传给钱币记录仪accept();3、钱币记录仪对现钞面额进行判断getCustomerInput();4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料checkForSoda();5、分配器向前端返回可购买饮料信息returnSodaFree();6、前端将可购买饮料显示给顾客displayPrompt();7、顾客选择饮料chooseSoda();8、前端将结果给分配器sendChooseToDis();9、分配器检查是否有该饮料checkAvailability();10、分配器向前端释放饮料releaseSoda();11、分配器向钱币记录仪发送该饮料金额信息sendSodaPrice();12、钱币记录仪判断饮料金额是否小于顾客输入的现钞面值checkForChange();13、钱币记录仪根据差值提供找零releaseChange();14、前端接收饮料并释放出来receiveSoda();15、前端接收找零并返还给顾客receiveChange();16、购买结束顺序图如下:4、没有合适的零钱找给顾客在此情况下,顺序如下:1、顾客放入现钞inputMoney();2、前端接收现钞并将现钞传给钱币记录仪accept();3、钱币记录仪对现钞面额进行判断getCustomerInput();4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料checkForSoda();5、分配器向前端返回可购买饮料信息returnSodaFree();6、前端将可购买饮料显示给顾客displayPrompt();7、顾客选择饮料chooseSoda();8、前端将结果给分配器sendChooseToDis();9、分配器检查是否有该饮料checkAvailability();10、分配器向前端释放饮料releaseSoda();11、分配器向钱币记录仪发送该饮料金额信息sendSodaPrice();12、钱币记录仪判断饮料金额是否小于顾客输入的现钞面值checkForChange();13、钱币记录仪缺少对应面值零钱将信息“User correct change”返回给前端returnNoChange();14、钱币记录仪将现金返还给前端returnCashToFront();15、前端向顾客显示“User correct change”信息displayPrompt();16、前端将饮料返还给分配器returnSodaToD();17、前端接收现钞并返还给顾客returnCash();18、购买结束顺序图如下:5、完整顺序图(包含“买饮料”场景的所有正常和异常数据流)完整情况下,考虑顺序如下:1、顾客放入现钞inputMoney();2、前端接收现钞并将现钞传给钱币记录仪accept();3、钱币记录仪对现钞面额进行判断getCustomerInput();4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料checkForSoda();5、若金额面值过小,钱币记录仪将信息“User correct change”返回给前端returnNoChange();6、钱币记录仪将现金返还给前端returnCashToFront();7、前端向顾客显示“User correct change”信息displayPrompt();8、前端接收现钞并返还给顾客returnCash();9、交易结束End10、若面值足够,分配器向前端返回可购买饮料信息returnSodaFree();11、前端将可购买饮料显示给顾客displayPrompt();12、顾客选择饮料chooseSoda();13、前端将结果给分配器sendChooseToDis();14、分配器检查是否有该饮料checkAvailability();15、若没有该饮料,返回消息“Out of selection”给前端returnUnavailability();16、前端显示消息“Out of selection”displayPrompt();17、前端向钱币记录仪发退钱信息sendReturnCashM();18、钱币记录仪返还钞票returnCashToFront();19、前端返还现钞returnCash();20、交易结束End21、若有该饮料,分配器向前端释放饮料releaseSoda();22、分配器向钱币记录仪发送该饮料金额信息sendSodaPrice();23、钱币记录仪判断饮料金额是否小于顾客输入的现钞面值checkForChange();24、钱币记录仪缺少对应面值零钱将信息“User correct change”返回给前端returnNoChange();25、钱币记录仪将现金返还给前端returnCashToFront();26、前端向顾客显示“User correct change”信息displayPrompt();27、前端将饮料返还给分配器returnSodaToD();28、前端接收现钞并返还给顾客returnCash();29、购买结束End30、若钱币记录仪刚好有对应零钱,钱币记录仪根据差值提供找零releaseChange();31、前端接收饮料并释放出来receiveSoda();32、前端接收找零并返还给顾客receiveChange();33、购买结束End34、若不需要找零,前端接收饮料并释放出来receiveSoda();35、购买结束End完整顺序图如下:。
饮料销售机UML顺序图文档
引言
本文档为饮料销售机设计过程中的UML顺序图文档,编写成员为开发成员,目的是为了方便后续的开发更顺利并且便利的开展,了解系统功能顺序,对系统有一个更加直观的功能框架。
饮料销售机分析
在自动饮料售货机的“买饮料”场景中,假设饮料销售机有3个部分:前端(front)、钱币记录仪(register)以及分配器(dispenser)。
前端负责:接受顾客的选购和现钞;显示诸如Out of selection(所选饮料已售完)和User correct change(使用合适零钱)的信息;从记录仪接收找回的零钱并返还给顾客;返还现钞;从分配器接收一罐饮料并把它交给顾客。
钱币记录仪负责:从前端获取顾客输入的信息(即选购的饮料的种类和现钞);更新现钞存储;如果缺少零钱将不让系统服务并在前端显示没有零钱;若零钱充足一切正常,找零钱。
分配器负责:检查选购的饮料是否还有货;分发一罐饮料。
类图描述:
(注:该图只提供参考,参数和返回值可自行定义,方法也可以增加)
UML顺序图
在饮料售货机购买饮料的所有情况中,都需要顾客往前端放入金钱,由钱币记录仪判定钞票面额。
1、理想状态下买饮料(购买成功且不用找零)
在理想状态下,顺序如下:
1、顾客放入现钞inputMoney();
2、前端接收现钞并将现钞传给钱币记录仪accept();
3、钱币记录仪对现钞面额进行判断getCustomerInput();
4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料
checkForSoda();
5、分配器向前端返回可购买饮料信息returnSodaFree();
6、前端将可购买饮料显示给顾客displayPrompt();
7、顾客选择饮料chooseSoda();
8、前端将结果给分配器sendChooseToDis();
9、分配器检查是否有该饮料checkAvailability();
10、分配器向前端释放饮料releaseSoda();
11、前端接收饮料并释放出来receiveSoda();
12、购买结束
顺序图如下:
2、顾客要买的饮料售完
在此情况下,顺序如下:
1、顾客放入现钞inputMoney();
2、前端接收现钞并将现钞传给钱币记录仪accept();
3、钱币记录仪对现钞面额进行判断getCustomerInput();
4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料
checkForSoda();
5、分配器向前端返回可购买饮料信息returnSodaFree();
6、前端将可购买饮料显示给顾客displayPrompt();
7、顾客选择饮料chooseSoda();
8、前端将结果给分配器sendChooseToDis();
9、前端检查是否有该饮料checkAvailability();
10、没有该饮料了,返回消息“Out of selection”给前端returnUnavailability();
11、前端显示消息“Out of selection”displayPrompt();
12、前端向钱币记录仪发退钱信息sendReturnCashM();
13、钱币记录仪返还钞票returnCashToFront();
14、前端返还现钞returnCash();
15、交易结束
顺序图如下:
3、需找零钱
在此情况下,顺序如下:
1、顾客放入现钞inputMoney();
2、前端接收现钞并将现钞传给钱币记录仪accept();
3、钱币记录仪对现钞面额进行判断getCustomerInput();
4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料
checkForSoda();
5、分配器向前端返回可购买饮料信息returnSodaFree();
6、前端将可购买饮料显示给顾客displayPrompt();
7、顾客选择饮料chooseSoda();
8、前端将结果给分配器sendChooseToDis();
9、分配器检查是否有该饮料checkAvailability();
10、分配器向前端释放饮料releaseSoda();
11、分配器向钱币记录仪发送该饮料金额信息sendSodaPrice();
12、钱币记录仪判断饮料金额是否小于顾客输入的现钞面值checkForChange();
13、钱币记录仪根据差值提供找零releaseChange();
14、前端接收饮料并释放出来receiveSoda();
15、前端接收找零并返还给顾客receiveChange();
16、购买结束
顺序图如下:
4、没有合适的零钱找给顾客
在此情况下,顺序如下:
1、顾客放入现钞inputMoney();
2、前端接收现钞并将现钞传给钱币记录仪accept();
3、钱币记录仪对现钞面额进行判断getCustomerInput();
4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料
checkForSoda();
5、分配器向前端返回可购买饮料信息returnSodaFree();
6、前端将可购买饮料显示给顾客displayPrompt();
7、顾客选择饮料chooseSoda();
8、前端将结果给分配器sendChooseToDis();
9、分配器检查是否有该饮料checkAvailability();
10、分配器向前端释放饮料releaseSoda();
11、分配器向钱币记录仪发送该饮料金额信息sendSodaPrice();
12、钱币记录仪判断饮料金额是否小于顾客输入的现钞面值checkForChange();
13、钱币记录仪缺少对应面值零钱将信息“User correct change”返回给前端
returnNoChange();
14、钱币记录仪将现金返还给前端returnCashToFront();
15、前端向顾客显示“User correct change”信息displayPrompt();
16、前端将饮料返还给分配器returnSodaToD();
17、前端接收现钞并返还给顾客returnCash();
18、购买结束
顺序图如下:
5、完整顺序图(包含“买饮料”场景的所有正常和异常数据流)
完整情况下,考虑顺序如下:
1、顾客放入现钞inputMoney();
2、前端接收现钞并将现钞传给钱币记录仪accept();
3、钱币记录仪对现钞面额进行判断getCustomerInput();
4、钱币记录仪根据现钞面额给分配器发送消息检查该面额可购买的饮料
checkForSoda();
5、若金额面值过小,钱币记录仪将信息“User correct change”返回给前端
returnNoChange();
6、钱币记录仪将现金返还给前端returnCashToFront();
7、前端向顾客显示“User correct change”信息displayPrompt();
8、前端接收现钞并返还给顾客returnCash();
9、交易结束End
10、若面值足够,分配器向前端返回可购买饮料信息returnSodaFree();
11、前端将可购买饮料显示给顾客displayPrompt();
12、顾客选择饮料chooseSoda();
13、前端将结果给分配器sendChooseToDis();
14、分配器检查是否有该饮料checkAvailability();
15、若没有该饮料,返回消息“Out of selection”给前端returnUnavailability();
16、前端显示消息“Out of selection”displayPrompt();
17、前端向钱币记录仪发退钱信息sendReturnCashM();
18、钱币记录仪返还钞票returnCashToFront();
19、前端返还现钞returnCash();
20、交易结束End
21、若有该饮料,分配器向前端释放饮料releaseSoda();
22、分配器向钱币记录仪发送该饮料金额信息sendSodaPrice();
23、钱币记录仪判断饮料金额是否小于顾客输入的现钞面值checkForChange();
24、钱币记录仪缺少对应面值零钱将信息“User correct change”返回给前端
returnNoChange();
25、钱币记录仪将现金返还给前端returnCashToFront();
26、前端向顾客显示“User correct change”信息displayPrompt();
27、前端将饮料返还给分配器returnSodaToD();
28、前端接收现钞并返还给顾客returnCash();
29、购买结束End
30、若钱币记录仪刚好有对应零钱,钱币记录仪根据差值提供找零releaseChange();
31、前端接收饮料并释放出来receiveSoda();
32、前端接收找零并返还给顾客receiveChange();
33、购买结束End
34、若不需要找零,前端接收饮料并释放出来receiveSoda();
35、购买结束End
完整顺序图如下:。