阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某网上购物平台的主要功能如下:(1)创建订单。顾客(Customer)在线创建订单(Order),主要操作是向订单中添加项目、从订单中删除项目。订单中应列出所订购的商品(Product)及其数量(quantities)。(2)提交订单。订单通过网络来提交。在提交订单时,顾客需要提供其姓名(name)、收货地址(address)以及付款方式(form ofpayment)(预付卡、信用卡或者现金)。为了制订送货计划以及安排送货车辆,系统必须确定订单量(volume)。除此之外,还必须记录每种商品的名称(name)、造价(cost price)、售价(saleprice)以及单件商品的包装体积(cubic volume)。(3)处理订单。订单处理人员接收来自系统的订单,根据订单内容,安排配货,制订送货计划。在送货计划中不仅要指明发货日期(delivery date),还要记录每个订单的限时发送要求(Delivery Time Window)。(4)派单。订单处理人员将已配好货的订单转交给派送人员。(5)送货/收货。派送人员将货物送到顾客指定的收货地址。当顾客收货时,需要在运货单(delivery slip)上签收。签收后的运货单最终需交还给订单处理人员。(6)收货确认。当订单处理人员收到签收过的运货单后,会和顾客进行一次再确认。现采用面向对象方法开发上述系统,得到如图13—7所示的用例图和图13—8所示的类图。
问答题 根据说明中的描述,给出图13—7中A1~A3所对应的参与者名称和U1~U2处所对应的用例名称。
【正确答案】正确答案:A1:顾客 A2:订单处理人员 A3:派送人员 U1:收货 U2:派单
【答案解析】解析:由“顾客(Customer)在线创建订单(Order)”可知,A1为顾客。由“订单处理人员接收来自系统的订单”、 “当订单处理人员收到签收过的运货单后,会和顾客进行一次再确认”可知,A2为订单处理人员。A3负责送货,很显然,A3为派送人员。顾客创建好订单后,提交订单,由订单处理人员配货,然后进行派单,将已配好货的订单转交给派送人员,可见U2处的用例为“派单”。然后派送人员送货,顾客收货,因此U1为“收货”。
问答题 根据说明中的描述,给出图13—8中C1~C3所对应的类名以及(1)~(4)处所对应的多重度(类名使用说明中给出的英文词汇)。
【正确答案】正确答案:C1:Customer C2:Order C3:Product(1)1 (2)0...n或0...* (3)0..n或0...*: (4)1.-n或1...*
【答案解析】解析:类的UML表示是一个长方形,垂直地分为三个区。顶部区域显示类的名字。中间的区域列出类的属性。底部的区域列出类的操作。由题目提供的类图可知,C1有name属性和address属性;C3有name属性。C1单向关联C2,C1可以调用C2的公共属性和方法。C2和C3之间和聚合的关系,表示C2聚合C3,但是C3可以离开C2而独立存在。在C2和C3类之间的关联,产生了称为Order Product Quantity的关联类。C2是整个类图的中心,购物的所有活动都是围绕着订单展开的,C2为Order。订单中记录着所订购的商品,C3为Product。用户创建订单,需要调用订单的属性和方法,C1为Custom。UML中关联的多重度是指一个类的实例能够与另一个类的多少个实例相关联。具体取值的含义有: 0...1:0个或1个 1:只能1个 0...*:0个或多个 *:0个或多个 1...*:1个或多个 一个客户可以提交多份订单,一份订单只能是某一个客户的,当然,客户也可以不提交订单,当一个Customer实体存在时,可以有也可以没有Order实体与之关联;而当一个Order实体存在时,必然有一个Customer实体与之关联。显然(1)处多重度为l, (2)处为0...*。 (3)和(4)处要填入的是订单和商品实体之间的关联,订单中至少有一件商品,因此(4)处应填入1...*;商品和订单之间和聚合的关系,商品可以包含在订单中,商品也可以独立存在,不属于任何订单,因此(3)处应填入0...*。
问答题 根据说明中的描述,将类C2和C3的属性补充完整(属性名使用说明中给出的英文词汇)。
【正确答案】正确答案:C2:volume、delivety date、form.of payment C3:cubic volume、cost price、sale price
【答案解析】解析:C2是订单类,订单中应列出所订购的商品(Product)及其数量(quantities)。在提交订单时,顾客需要提供其姓名(name)、收货地址(address)以及付款方式(form.of payment)。为了制订送货计划以及安排送货车辆,系统必须确定订单量(volume)。0rder类聚合Product类,Product的属性中有商品的相关信息,关联类Order。Product Quantity中有quantity属性,因此0rder类中需要有付款方式(form of payment)属性、订单量(volume)属性。在送货计划中要指明发货日期(delivery date),因此Order类中还要有发货日期(delivery date)属性。C3是商品类,商品的属性有名称(name)、造价(cost price)、售价(sale price)以及单件商品的包装体积(cubic volume)。