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

问答题 [问题1]
请将图4—12中的类商品、类特价商品和类计量商品三者之间的联系补充完整。
[*]
[*]
【正确答案】在UML类图中,“”表示其相连的两个类之间存在泛化(generalization)关系。这种关系描述了一般事物与该事物中特殊种类之间的关系,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系,还可以增加或者覆盖父用例的行为。子用例可以出现在父用例出现的任何位置。
在图4-12所示的类图中,类特价商品和类计量商品是类商品的子类,它们将继承类商品的所有属性和操作,并且又有自己特殊的属性和操作。因此这三者之间的联系是泛化关系,如图4-21所示。
【答案解析】
问答题 [问题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所示。
【答案解析】
问答题 [问题3]
请使用[说明]中给出的词语,将销售事件序列图中的(A)~(D)空缺处的内容填写完整。
【正确答案】由题干给出的关键信息“①记录每种商品的编号、单价和现有数量”和“如果该商品的数量少于下限,则向供货员发送缺货登记消息”可知,类商品有5个属性,即编号、名称、单价、数量和下限。
由题干中关键信息“③帮助商家找出哪种商品将脱销,从而及时补充货源”、“接着收款机发送计价和入账消息请求售出操作……”和“……先向商品发送检索请求消息来查找将被出售的商品……”可知,类商品有3个操作,即检索、补充和售出。
由题干中关键信息“④随时按上级系统的要求报告当前的款货数量、增减商品的种类或修改商品定价”可知,类商品还具有两个操作,即种类增删和价格更新。
由题干中给出的关键信息“每个销售事件从收款机响应收款人员的指令开始,先向商品发送检索请求消息来查找将被出售的商品……”可知,收款机将向商品对象发送“检索”这一触发消息,因此(A)空缺处所填写的内容是“检索”。
由题干中关键信息“接着收款机发送计价和入账消息请求售出操作,再由销售事件发送记账消息给相应的账册……”可知,收款机将向销售事件发送“计价”、“入账”触发消息,其中,“入账”消息将被销售事件转变为“记账”消息送给账册对象,因此(B)空缺处所填写的内容是“计价”,(c)空缺处所填写的内容是“记账”。
由题干中关键信息“再由销售事件发送记账消息给相应的账册,并控制流程返回收款机等待下一次销售操作”可知,记账操作完成时即可表示本次销售事件入账操作结束,账册对象将发送“入账”结束消息给收款机,以触发收款机等待下一次销售操作,因此(D)空缺处所填写的内容是“入账”。
【答案解析】
问答题 [问题4]
顶层架构是UML分析与设计的阶段成果的承载体。UML包图是表示顶层架构的适当机制。结合你的系统架构设计经验,请列举3种常见的顶层架构模式,并简要说明每种架构模式的特点。
【正确答案】顶层架构的主要目的是为后续的分析和设计活动建立一种结构和分划,以便开发人员在不同的开发阶段,以及同一开发阶段的不同开发人员,能够聚焦于系统的不同部分。顶层架构是分析和设计的阶段成果的承载体。随着开发过程的推进,框架中的内容不断丰富和翔实,最终演进为完整的面向对象软件结构。UML包图是表示顶层架构的适当机制。
建立软件系统顶层架构的基本方法是,结合实际需求,从既往的架构设计经验模型中选取适当者,再进行微调或局部改造。目前有如下几种主要的架构模式。
(1)流程处理模式。流程处理系统以算法和数据引进中心,其系统功能由一系列的处理步骤构成,相邻的处理步骤之间以数据流通管道相互连接。该模式仅适合于采用批处理方式的软件系统,不适合于交互式系统。
(2)客户/服务器模式。客户端负责用户输入和处理结果的呈现,服务器端则负责后台的业务逻辑处理。
(3)模型—视图—控制器(MVC)模式。该模式将整个软件系统划分为模型、视图和控制器3个部分。模型负责维护并保存具有持久性的业务数据,实现业务处理功能,并将业务数据的变化情况及时通知视图;视图负责呈现模型的业务数据,响应模型变化通知,更新呈现形式,并向控制器传递用户的界面动作;控制器负责将用户的界面动作映射为模型中业务处理功能并实际调用之,然后根据模型返回的业务处理结果选择新的视图。MVC模式特别适合于分布应用软件,尤其是Web应用系统。
(4)分层模式。该模式将整个软件系统分为若干层次,最顶层直接面向用户提供软件系统的操作界面,其余各层为紧邻其上的层次提供服务。层次划时分的主要原则是:较易变化的软件部分(例如用户界面、与业务逻辑紧密相关的部件)置于较高层次,较稳定的软件部分(例如公共的技术服务部件)则位于较低层次;每一层次尽量只访问其紧邻下层提供的服务,避免越级访问,尤其要避免逆向访问(上层模块为下层模块提供服务);在许多情况下,可以将目标软件系统的外部接口置入较低层次,目标软件系统其余部分对外部系统的访问或操作均通过这些外部接口所提供的公共服务来完成。分层模式可以有效地降低软件系统的耦合度,因此其应用十分普遍。
【答案解析】