阅读以下说明和图,根据要求回答问题1~问题4。
[说明]
某电子商务公司开办了在线电子商务网站,主要为各注册的商家提供在线商品销售功能。为更好地吸引用户,该公司计划为注册的商家提供商品(Commodity)促销(Promotion)功能。商品的分类(Category)不同,促销的方式和内容也会有所不同。
注册商家可发布促销信息。商家首先要在自己所销售商品的分类中,选择促销涉及的某一具体分类,然后选出该分类的一个或多个商品(一种商品仅属于一种分类),接着制定出一个比较优惠的折扣政策和促销活动的优惠时间,最后由系统生成促销信息并将该促销信息公布在网站上。
商家发布促销信息后,网站的注册用户便可通过网站购买促销商品。用户可选择参与某一个促销 (Promotion)活动,并选择具体的促销商品(Commodity),输入购买数量等购买信息。系统生成相应的一份促销订单(POrder)。只要用户在优惠活动的时间范围内,通过网站提供的在线支付系统,确认在线支付该促销订单(即完成支付),就可以优惠的价格完成商品的购买活动,否则该促销订单失效。
系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,如图6-18所示是该系统类图中的一部分;系统的动态行为采用UML序列图表示,如图6-19所示是发布促销的序列图。
[问题2] 请从表6-12中选择相应的方法名,填写到图6-19所示中(7)~(10)空缺处的对应位置中。
|
参考答案:
解析:[问题2] 这是一道要求读者用UML序列图对系统的行为进行分析和建模的综合分析题。本题的解答思路如下。 序列图描述对象间的消息交互,刻画系统的行为。根据题目的描述:商家(Businessman)在发布促销信息时,要先浏览自己所销售商品的分类及分类中的具体商品信息;商家通过(7)空缺处所填入的 getCategories消息将浏览请求提交给类CatagoryManager实例,再由类CatagoryManager的实例通过(8)空缺处所填入的getCommodities消息请求类Category(商品分类)实例获得其分类中该商家的所有商品;类Category的实例通过getCommodityinfo消息请求类Comodity(商品)的实例返回商品的详细描述信息。 当把商家所销售的商品分类及分类中的具体商品信息返回给商家之后,商家在其中选择要促销的一个或多个商品,并输入一些促销信息,通过(9)空缺处所填入的CreatePromotion消息请求类PromotionManager实例生成促销信息。类PromotionManager实例通过Create消息创建一个促销(Promotion)对象,并通过 (10)空缺处所填入的addCommdities消息向新建的促销对象中添加要促销的商品对象。