试题二(15分)
阅读下列说明和图,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
【说明】某出版社拟开发一个在线销售各种学术出版物的网上商店(ACShop),其主要的功能需求描述如下:
(1)ACShop 在线销售的学术出版物包括论文、学术报告或讲座资料等。
(2)ACShop 的客户分为两种:未注册客户和注册客户。
(3)未注册客户可以浏览或检索出版物,将出版物添加到购物车中。未注册客户进行注册操作之后,成为 ACShop 注册客户。
(4)注册客户登录之后,可将待购买的出版物添加到购物车中,并进行结账操作。结账操作的具体流程描述如下:
①从预先填写的地址列表中选择一个作为本次交易的收货地址。如果没有地址信息,则可以添加新地址。
②选择付款方式。ACShop 支持信用卡付款和银行转账两种方式。注册客户可以从预先填写的信用卡或银行账号中选择一个付款。若没有付款方式信息,则可以添加新付款方式。
③确认提交购物车中待购买的出版物后,ACShop 会自动生成与之相对应的订单。
(5)管理员负责维护在线销售的出版物目录,包括添加新出版物或者更新在售出版物信息等操作。
现采用面向对象方法分析并设计该网上商店 ACShop,得到如图 3-1 所示的用例图和图 3-2 所示的类图。
图3-1 用例图信息表
参与者
可执行用例
未注册客户
浏览 / 检索出版物、添加出版物到购物车、注册
注册客户
浏览 / 检索出版物、添加出版物到购物车、结账
管理员
维护出版物目录
扩展关系:
1. 结账 扩展用例:添加新地址
2. 选择付款方式 扩展用例:添加新付款方式
图3-2 类图信息表
类名称
继承关系
关联对象
客户
父类
关联多个购物车
未注册客户
继承客户
无额外关联
注册客户
继承客户
多个地址、多个付款方式
出版物
无
和购物车多对多关联
购物车
无
关联客户、出版物
地址
无
归属注册客户
付款方式
无
归属注册客户
【问题2】(4分)根据说明中的描述,分别说明用例 “添加新地址” 和 “添加新付款方式” 会在何种情况下由图 3-1 中的用例(3)和(4)扩展而来?
参考答案1. 添加新地址:执行结账用例时,注册客户地址列表无可用收货地址,触发扩展用例添加新地址。 2. 添加新付款方式:执行选择付款方式用例时,注册客户没有预设信用卡或银行账号,触发扩展用例添加新付款方式。
解析:扩展用例属于条件触发,仅当主用例执行满足特定条件才执行,不是每次主用例运行都必须执行。