某城市拟开发一个基于Web城市黄页,公开发布该城市重要的组织或机构(以下统称为客

admin2022-08-02  56

问题 某城市拟开发一个基于Web城市黄页,公开发布该城市重要的组织或机构(以下统称为客户)的基本信息,方便城市生活。该系统的主要功能描述如下:(1)搜索信息:任何使用Internert的网络用户都可以搜索发布在城市黄页中的信息,例如客户的名称、地址、联系电话等。(2)认证:客户若想在城市黄页上发布信息,需通过系统的认证。认证成功后,该客户成为系统授权用户。(3)更新信息:授权用户登录系统后,可以更改自己在城市黄页中的相关信息,例如变更联系电话等。(4)删除客户:对于拒绝继续在城市黄页上发布信息的客户,有系统管理员删除该客户的相关信息。系统采用面向对象方法进行开发,在开发过程中认定出如表3-1所示的类。系统的用例图和类图分别如图3-1和图3-2所示。表3-1类列表【问题1】(5分)根据说明中的描述,给出图3-1中A1和A2处所对应的参与者,UC1和UC2所对应的用例以及(1)处的关系。【问题2】(7分)根据说明中的描述,给出图3-2中C1~C5所对应的类名(表3-1中给出的类名)和(2)~(5)处所对应的多重度。【问题3】(3分)认定类是面向对象分析中非常关键的一个步骤。一般首先从问题域中得到候选类集合,在根据相应的原则从该集合中删除不作为类的,剩余的就是从问题域中认定出来的类。简要说明选择候选类的原则,以及对候选类集合进行删除的原则。

选项

答案

解析 【问题1】
A1网络用户;A2授权用户;UC1更新信息;UC2认证;
(1)<<include>>
【问题2】
C1:InternetClient;C2:CustomerList;C3:Administrator;C4:RegisteredClient
C5:Customer;
(2)1;(3)0…*;(4)0..1;(5)0..1
【问题3】
候选类的选择运用了良性依赖原则“不会在实际中造成危害的依赖关系,都是良性依赖”和接口隔离原则(ISP)。
本题考查面向对象分析中的类图、用例图。
【问题1】
用例图中,A1可以搜索信息,A2由A1派生且A2参与了两个用例,根据题中的说明(1)和(2),可知A1为网络用户,A2为授权用户;由用例UC1和登录用例之间存在关系,可知UC1为更新信息,因为更新信息前必须登录,所以更新信息用例包含登录用例,它们之间的关系为include。
【问题2】
本问题查考类图。考查类图的层次结构和多重度。
首先根据C2和C5之间存在聚合关系,满足要求的类应该是客户与客户集,又因为其中C2为整体,C5为部分,所以C2为客户集,C5为客户信息。
又因为图中更有两个非常明显的继承结构,即C3和C4继承与C1,且C1与C2是多对一的关系,根据C2为客户集,又因为说明(1)中任何网络用户都可以搜索客户信息,即C1为网络用户,由此很明显得出C3和C4在授权用户和系统管理员中选取。再由C4和C5之间的关联关系,且C5为客户信息,通过题意可以了解到客户信息是由其成为授权用户之后,自己发布与管理的,而管理员在此并未进行职责描述(管理员对客户的删除,可以通过其父类对客户集进行操作),可以不管他。用户C4显然就是授权用户,由此得出C3为管理员。由此(2)~(5)的多重度就显而易见,(2)为1,(3)为0…*,(4)为1,(5)为1。
【问题3】
候选类的选择运用了良性依赖原则“不会在实际中造成危害的依赖关系,都是良性依赖”和接口隔离原则(ISP)。ISP:使用多个专门的接口比使用单一的总接口要好。一个类对另外一个类的依赖性应当是建立在最小的接口上的。一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。“不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。
转载请注明原文地址:https://tihaiku.com/congyezige/2410284.html

最新回复(0)