问答题 某城市拟开发一个基于Web的城市黄页,公开发布该城市重要的组织或机构(一下统称为客户)的基本信息,方便城市生活。该系统的主要功能描述如下:
(1)搜索信息:任何使用Internet的网络用户都可以搜索发布在城市黄页中的信息,例如客户的名称、地址、联系电话等。
(2)认证:客户若想在城市黄页上发布信息,需通过系统的认证。认证成功后,该客户成为系统授权用户。
(3)更新信息:授权用户登录系统后,可以更改自己在城市黄页中的相关信息,例如变更联系电话等。
(4)删除客户:对于拒绝继续在城市黄页上发布信息的客户,有系统管理员删除该客户的相关信息。
系统采用面向对象方法进行开发,在开发过程中认定出如下表所示的类。系统的用例图和类图分别如图1和图2所示。
类列表
类名 说明
InternetClient 网络用户
CustomerList 客户集.维护城市黄页上的所有客户信息
Customer 客户信息,记录单个客户的信息
RegisteredClient 授权用户
Administrator 系统管理员

问答题 根据说明中的描述,给出图1中A1和A2出所对应的参与者,UC1和UC2所对应的用例以及处的关系。
【正确答案】A1网络用户A2授权用户UC1认证UC2更新信息 (1)extend
【答案解析】[解析] 本题考查面向对象分析中的类图、用例图。用例图描述了一组用例、参与者及他们之间的关系。包括以下几个部分:用例(Case)、参与者(Actor)。用例视图中的参与者与系统外部的一个实体以某种方式参与了用例的执行过程;用例是一个叙述型文档,用来描述参与使用系统、完成某个事情时发生的顺序。
用例图中,A1可以搜索信息,A2由A1派生目.A2参与了两个用例,根据题中的说明(1)和(2),可知Al为网络用户,A2为授权用户;由用例UC1和登录用例之问存在关系,可知UCI为认证用例,因为用户登录必须先认证,所以登录用例是认证的扩展,所以他们之间的关系为extend。对于授权用户还可以更新信息,故UC2为更新信息用例。
问答题 根据说明中的描述,给出图2中C1~C5所对应的类名(表中给出出的类名)和空格处所对应的多重度。
【正确答案】C1: InternetClieni C2: Customer
C3: RegisteredClient C4: Administrator
C5: CustomerList
1 0...* 1 0...*
【答案解析】
问答题 认定类是面向对象分析中非常关键的一个步骤。一般首先从问题域中得到候选类集合,在根据相应的原则从该集合中删除不作为类的,剩余的就是从问题域中认定出来的类。简要说明选择候选类的原则,以及对候选类集合进行删除的原则。
【正确答案】候选类的选择运用了良性依赖原则“不会在实际中造成危害的依赖关系,都是良性依赖”和接口隔离原则(ISP)。
【答案解析】[解析] 候选类的选择运用了良性依赖原则“不会在实际中造成危害的依赖关系,都是良性依赖”。通过分析不难发现,本原则的核心思想是“务实”,很好地揭示了极限编程(Extreme Programming)中“简单设计”和“重构”的理论基础。本原则可以帮助我们抵御“面向对象设计五大原则”以及设计模式的诱惑,以免陷入过度设计( Overengineering)的尴尬境地,带来不必要的复杂候选类的删除使用的是接口离原则候选类的删除运用了接口隔离原则(ISP):不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。这个说得很明白了,再通俗点说不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。