目录
一、UML顺序图(Sequence Diagram)
UML顺序图(Sequence Diagram)是一种用于描述系统中对象之间交互的动态建模工具,它通过时间顺序展示对象之间的消息传递和行为响应。顺序图的核心在于清晰地表达系统中各个组件(如用户、机器前端、分配器等)在特定场景下的交互流程,帮助开发者理解系统的运行逻辑并优化设计。
下面我们根据一个具体问题来分析绘画UML顺序图
二、问题原型
在饮料自动销售系统中,顾客选择想要的饮料。系统提示需要投入的金额,顾客从机 器的前端钱币口投入钱币,钱币到达钱币记录仪,记录仪更新自己的选择。正常时记录仪通 知分配器分发饮料到机器前端,但可能饮料已售完,也可能用完了找给顾客的零钱而无法销 售饮料。先写出“买到饮料”的场景、“饮料已售完”的场景以及“机器没有合适的零钱” 的场景,然后根据场景,用 UML 分别表示出“买到饮料”“饮料已售完”以及“无法找零” 的顺序图。
三、顺序图分析与绘画
场景一:买到饮料
场景描述
在理想情况下,顾客能够成功购买到所需的饮料。这一过程包括顾客选择饮料、投入钱币、系统验证金额并分配饮料,最后返还零钱。
详细流程
选择饮料:顾客在机器的前端界面上选择想要的饮料。
检查库存:机器前端向分配器发送请求,检查所选饮料的库存情况。
返回库存信息:分配器查询库存后,将库存信息返回给机器前端。
查询饮料价格:机器前端向分配器请求所选饮料的价格信息。
提示饮料价格:分配器返回价格信息后,机器前端提示顾客所需支付的金额。
投币:顾客根据提示金额,从机器前端的钱币口投入钱币。
查看投币金额:钱币到达钱币记录仪,记录仪计算并记录投币的总金额。
计算金额:钱币记录仪验证投币金额是否满足饮料价格要求。
确认选择的饮料:如果金额足够,钱币记录仪向分配器发送信号,确认顾客的选择。
分配饮料:分配器接收到信号后,将选定的饮料分配到机器的取货口。
返回找零:钱币记录仪计算应找零的金额,并通过机器前端返还给顾客。
找零完成:顾客取走饮料和零钱,交易完成。
顺序图分析
对于“买到饮料”场景,顾客从机器的前端钱币口投入钱币,然后选择想要的饮料, 钱币到达钱币记录仪,记录仪通知分配器分发饮料到机器前端。钱币记录仪向顾客返还零钱。
买到饮料顺序图如下图所示:
场景二:饮料已售完
场景描述
当顾客选择的饮料库存不足时,系统需要能够及时检测并通知顾客,避免不必要的交易步骤。
详细流程
选择饮料:顾客在机器前端选择想要的饮料。
检查库存:机器前端向分配器发送库存查询请求。
返回库存信息:分配器检查后发现库存为零,将此信息返回给机器前端。
提示饮料已售完:机器前端接收到库存不足的信息后,提示顾客所选饮料已售完,并建议选择其他饮料或结束交易。
顺序图分析
对于“饮料已售完”场景,顾客从机器的前端钱币口投入钱币,然后选择想要的饮料,钱币
到达钱币记录仪,记录仪通知分配器分发饮料到机器前端。分配器通知机器前端饮料已售完。
记录仪返还零钱。
饮料已售完顺序图如下图所示
场景三:无法找零
场景描述
在顾客投入的钱币超过饮料价格,而系统无法提供合适的零钱时,需要能够及时检测并处理这种情况,避免交易失败。
详细流程
选择饮料:顾客选择饮料后,机器前端检查库存。
检查库存:分配器返回库存信息,确认饮料可用。
获取饮料价格:机器前端获取饮料价格,并提示顾客所需金额。
提示投币金额:顾客根据提示投入钱币。
投币:钱币到达钱币记录仪。
查看投币金额:钱币记录仪计算投币总额。
计算金额:记录仪验证金额是否满足饮料价格。
提示无法找零:钱币记录仪发现无法提供合适的零钱,向机器前端发送信号。
返还钱币:机器前端提示顾客无法完成交易,并返还已投入的所有钱币。
顺序图分析
对于“无法找零”的场景,顾客从机器的前端钱币口投入钱币,然后选择想要的饮料,钱币
到达钱币记录仪,记录仪没有合适的零钱,向用户返还已投入的钱币。
无法找零顺序图如下图所示
四、总结
在饮料自动销售系统中,我们通过三个典型场景(“买到饮料”“饮料已售完”和“无法找零”)展示了顺序图的实际应用。例如,在“买到饮料”场景中,顺序图详细描述了顾客选择饮料、投入钱币、系统验证金额并分配饮料的完整流程;在“饮料已售完”场景中,顺序图展示了系统如何及时检测库存不足并通知顾客;而在“无法找零”场景中,顺序图揭示了系统如何处理零钱不足的问题并返还顾客投入的钱币。
通过以上三个场景的详细分析,我们可以看到饮料自动销售系统在不同情况下的工作流程。这些顺序图不仅帮助我们理解系统的交互逻辑,还为优化系统功能提供了依据。