阅读以下关于UML建模技术在某前台销售子系统的应用说明,根据要求回答问题。
[说明]
某超市管理系统的前台销售子系统以最基本的方式处理销售业务。系统的功能需求如下。
(1)记录每种商品的编号、单价和现有数量。
(2)为顾客选购的商品计价、收费,并打印清单。
(3)帮助商家找出哪种商品将脱销,从而及时补充货源。
(4)随时按上级系统的要求报告当前的款货数量、增减商品的种类或修改商品定价。
(5)交接班时结算货款数目和商品数目。
每台收款机可以处理任何数目的销售事件,但一个销售事件只能由一台收款机处理。每个销售事件从收款机响应收款人员的指令开始,先向商品发送检索请求消息来查找将被出售的商品。如果该商品的数量少于下限,则向供货员发送缺货登记消息。每名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供。接着收款机发送计价和入账消息请求售出操作,再由销售事件发送记账消息给相应的账册,并控制流程返回收款机等待下一次销售操作。每本销售账册可以记录任何数目的销售事件,但一个销售事件只能由一本销售账册记录。
该销售子系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,图4-12是该系统类图中的一部分;系统的动态行为采用UML序列图表示,图4—13是销售事件部分的序列图。
[问题2]
识别关联的多重度是面向对象建模过程中的一个重要步骤。请根据说明中给出的描述,将图4-12中(1)~(8)空缺处的内容填写完整。
参考答案:由题干描述中给出的关键信息“每台收款机可以处理任何数目的销售事件……”和常识可知,每个超市有多台收款机,每个销售事件可能与一种或多种商品发生联系,商品可以到任何一台收款机付款,因此收款机与商品之间存在多对多(m:n)的关系,即(1)、(2)空缺处所填写的内容均是“1…*”。
由题干中关键信息“每名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供”可知,商品与供货员之间存在多对一(m:1)的关系,因此(3)空缺处所填写的内容是“1…*”,(4)空缺处所填写的内容是“1”。
由题干中关键信息“每台收款机可以处理任何数目的销售事件,但一个销售事件只能由一台收款机处理”可知,收款机与销售事件之间存在一对多(1:n)的关系,因此(5)空缺处所填写的内容是“1”,(6)空缺处所填写的内容是“1…*”。
由题干中关键信息“每本销售账册可以记录任何数目的销售事件,但一个销售事件只能由一本销售账册记录”可知,销售事件与账册之间存在多对一(n:1)的关系,因此(7)空缺处所填写的内容是“1…*”,(8)空缺处所填写的内容是“1”。
较完整的前台销售子系统类图如图4-22所示。