第1页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共7页饮料销售机UML顺序图文档引言本文档为饮料销售机设计过程中的UML顺序图文档,编写成员为开发成员,目的是为了方便后续的开发更顺利并且便利的开展,了解系统功能顺序,对系统有一个更加直观的功能框架。饮料销售机分析在自动饮料售货机的“买饮料”场景中,假设饮料销售机有3个部分:前端(front)、钱币记录仪(register)以及分配器(dispenser)。前端负责:接受顾客的选购和现钞;显示诸如Outofselection(所选饮料已售完)和Usercorrectchange(使用合适零钱)的信息;从记录仪接收找回的零钱并返还给顾客;返还现钞;从分配器接收一罐饮料并把它交给顾客。钱币记录仪负责:从前端获取顾客输入的信息(即选购的饮料的种类和现钞);更新现钞存储;如果缺少零钱将不让系统服务并在前端显示没有零钱;若零钱充足一切正常,找零钱。分配器负责:检查选购的饮料是否还有货;分发一罐饮料。类图描述:(注:该图只提供参考,参数和返回值可自行定义,方法也可以增加)UML顺序图在饮料售货机购买饮料的所有情况中,都需要顾客往前端放入金钱,由钱币记录仪判定钞票面额。1、理想状态下买饮料(购买成功且不用找零)在理想状态下,顺序如下:1、顾客放入现钞inputMoney();第2页共7页第1页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共7页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();第3页共7页第2页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共7页10、没有该饮料了,返回消息“Outofselection”给前端returnUnavailability();11、前端显示消息“Outofselection”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();第4页共7页第3页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第4页共7页14、前端接收饮料并释放出来receiveSoda...