软件设计师UML练习题和答案 下载本文

好地吸引用户,S 公司计划为注册的商家提供商品(Commodity)促销(Promotion)功能。商品的分类(Category)不同,促销的方式和内容会有所不同。

注册商家可发布促销信息。商家首先要在自己所销售的商品的分类中,选择促销涉及 的某一具体分类,然后选出该分类的一个或多个商品(一种商品仅仅属于一种分类),接着制定出一个比较优惠的折扣政策和促销活动的优惠时间,最后由系统生成促销信息并将 该促销信息公布在网站上。

商家发布促销信息后,网站的注册用户便可通过网站购买促销商品。用户可选择参与 某一个促销(Promotion)活动,并选择具体的促销商品(Commodity),输入购买数量等购买信息。系统生成相应的一份促销订单(POrder)。只要用户在优惠活动的时间范围内,通过 网站提供的在线支付系统,确认在线支付该促销订单(即完成支付),就可以优惠的价格完成商品的购买活动,否则该促销订单失效。

系统采用面向对象方法开发,系统中的类以及类之间的关系用 UML 类图表示,图 3-1 是该系统类图中的一部分;系统的动态行为采用 UML 序列图表示,图 3-2 是发布促销的序列图。

[问题 1](6 分)

识别关联的多重度是面向对象建模过程中的一个重要步骤。根据说明中给出的描述,完成图 3-1 中的(1)~(6)。 [问题 2](4 分)

请从表 3-1 中选择方法,完成图 3-2 中的(7)~(10)。

表 3-1 可选消息列表

功能描述 向促销订单中添加所选的商品 向促销中添加要促销的商品 查找某个促销的所有促销订单信息列表 生成商品信息 生成促销信息 生成促销订单信息 查找某个分类的所有促销信息列表 查找某商家所销售的所有分类列表 查找某个促销所涉及的所有商品信息列表 方法名 buyCommodities addCommodities getPromotionOrders createCommodity createPromotion createPOrder getCategoryPromotion getCategories getPromotionCommodities 查找某个分类中某商家的所有商品信息列表 getCommodities [问题 3](5 分) 关联(Association)和聚集(Aggregation)是 UML 中两种非常重要的关系。请说明关联和聚集的关系,并说明其不同点。 试题三

8`I[问题1](1)0..* (2)1 (3)0..* (4)1..* (5)1 (6)0..* [问题2]

(1) getCategories (2) getCommodities (3) createPromotion (4) addCommodities [问题3]

关系:聚集(聚合)是关联的特例。不同点:聚集表示部分与整体关系的关联。

试题三(共15分)2007上

阅读下列说明和图,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。 [说明]

某图书管理系统的主要功能如下:

1.图书管理系统的资源目录中记录着所有可供读者借阅的资源,每项资源都有一个唯一的索引号。系统需登记每项资源的名称、出版时间和资源状态(可借阅或已借出)。

2.资源可以分为两类:图书和唱片。对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD 或者磁带)。

3.读者信息保存在图书管理系统的读者信息数据库中,记录的信息包括:读者的识别码和读者姓名。系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息。

现采用面向对象方法开发该图书管理系统。识别类是面向对象分析的第一步。比较常的识别类的方法是寻找问题描述中的名词,再根据相关规则从这些名词中删除不可能成为类的名词,最终得到构成该系统的类。表 3-1 给出了[说明]中出现的所有名词。

通过对表 3-1 中的名词进行分析,最终得到了图 3-1 所示的 UML 类图(类的说明如表 3-2 所示)。