问答题 [说明]
某超市管理系统的前台销售子系统以最基本的方式处理销售业务。系统的功能需求如下:
①记录每种商品的编号、单价和现有数量;
②为顾客选购的商品计价、收费,并打印清单;
③帮助商家找出哪种商品将脱销,从而及时补充货源;
④随时按上级系统的要求报告当前的款货数量、增减商品的种类或修改商品定价;
⑤交接班时结算货款数目和商品数目。
每台收款机可以处理任何数目的销售事件,但一个销售事件只能由一台收款机处理。每个销售事件从收款机响应收款人员的指令开始,先向商品发送检索请求消息来查找将被出售的商品。如果该商品的数量少于下限,则向供货员发送缺货登记消息。每名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供。接着收款机发送计价和入账消息请求售出操作,再由销售事件发送记账消息给相应的账册,并控制流程返回收款机等待下一次销售操作。每本销售账册可以记录任何数目的销售事件,但一个销售事件只能由一本销售账册记录。
该销售子系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,图1-11是该系统类图中的一部分;系统的动态行为采用UML序列图表示,图1-12是销售事件部分的序列图。

问答题 [问题1]
根据题干的[说明]及图1-11、图1-12的相关信息,类商品除了售出和缺货登记操作之外,还应具有哪些主要操作? (请使用[说明]中给出的词语回答问题)
【正确答案】[问题1]
由题干给出的关键信息“①记录每种商品的编号、单价和现有数量”和“如果该商品的数量少于下限,则向供货员发送缺货登记消息”可知,类商品有5个属性,即编号、名称、单价、数量和下限。
由题干中关键信息“③帮助商家找出哪种商品将脱销,从而及时补充货源”、“接着收款机发送计价和入账消息请求售出操作……”和“……先向商品发送检索请求消息来查找将被出售的商品……”可知,类商品有3个操作,即检索、补充和售出。
由题干中关键信息“④随时按上级系统的要求报告当前的款货数量、增减商品的种类或修改商品定价”可知,类商品还具有两个操作,即种类增删和价格更新。
【答案解析】
问答题 [问题2]
请将图1-11中类商品、类特价商品和类计量商品3者之间的联系补充完整。
【正确答案】[问题2]
在UML类图中,“[*]”表示其相连的两个类之间存在泛化 (generalization)关系。这种关系描述了一般事物与该事物中特殊种类之间的关系,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系,还可以增加或者覆盖父用例的行为。子用例可以出现在父用例出现的任何位置。
在图1-11类图中,类特价商品和类计量商品是类商品的子类,它们将继承类商品的所有属性和操作,并且又有自己特殊的属性和操作。因此这3者之间的联系是泛化关系,如图1-20所示。
[*]
【答案解析】
问答题 [问题3]
识别关联的多重度是面向对象建模过程中的一个重要步骤。请根据说明中给出的描述,将图1-11中 (1)~(8)空缺处的内容填写完整。
【正确答案】[问题3]
由题干描述中给出的关键信息“每台收款机可以处理任何数目的销售事件……”和常识可知,每个超市有多台收款机,每个销售事件可能与1种或多种商品发生联系,商品可以到任何一台收款机付款,因此收款机与商品之间存在多对多(m:n)的关系,即(1)、(2)空缺处所填写的内容均是“1…*”。
由题干中关键信息“每名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供”可知,商品与供货员之间存在多对一(m:1)的关系,因此(3)空缺处所填写的内容是“1…*”,(4)空缺处所填写的内容是“1”。
由题干中关键信息“每台收款机可以处理任何数目的销售事件,但一个销售事件只能由一台收款机处理”可知,收款机与销售事件之间存在一对多(1:n)的关系,因此(5)空缺处所填写的内容是“1”,(6)空缺处所填写的内容是“1…*”。
由题干中关键信息“每本销售账册可以记录任何数目的销售事件,但一个销售事件只能由一本销售账册记录”可知,账册与销售事件之间存在一对多(1:n)的关系,因此(7)空缺处所填写的内容是“1”, (8)空缺处所填写的内容是“1…*”。
较完整的前台销售子系统类图如图1-21所示。
[*]
【答案解析】
问答题 [问题4]
请使用[说明]中给出的词语,将销售事件序列图中的(A)~(D)空缺处的内容填写完整。
【正确答案】[问题4]
由题干中给出的关键信息“每个销售事件从收款机响应收款人员的指令开始,先向商品发送检索请求消息来查找将被出售的商品……”可知,收款机将向商品对象发送“检索”这一触发消息,因此(A)空缺处所填写的内容是“检索”。
由题干中关键信息“接着收款机发送计价和入账消息请求售出操作,再由销售事件发送记账消息给相应的账册……”可知,收款机将向销售事件发送“计价”、“入账”触发消息,其中,“入账”消息将被销售事件转变为“记账”消息送给账册对象,因此(B)空缺处所填写的内容是“计价”,(C)空缺处所填写的内容是“记账”。
由题干中关键信息“再由销售事件发送记账消息给相应的账册,并控制流程返回收款机等待下一次销售操作”可知,记账操作完成时即可表示本次销售事件入账操作结束,账册对象将发送“入账”结束消息给收款机,以触发收款机等待下一次销售操作,因此(D)空缺处所填写的内容是“入账”。
【答案解析】