阅读以下UML类图及其说明,根据要求回答问题1~问题4。 [说明] 某客户信息管理系统中保存着两类客户的信息: ①个人客户。对于这类客户,系统保存了其客户标识(由系统生成)和基本信息(包括姓名、住宅电话和E-mail)。 ②集团客户

admin2010-01-15  13

问题 阅读以下UML类图及其说明,根据要求回答问题1~问题4。
   [说明]
   某客户信息管理系统中保存着两类客户的信息:
   ①个人客户。对于这类客户,系统保存了其客户标识(由系统生成)和基本信息(包括姓名、住宅电话和E-mail)。
   ②集团客户。集团客户可以创建和管理自己的若干名联系人。对于这类客户,系统除了保存其客户标识(由系统生成)之外,也保存了其联系人的信息。联系人的信息包括姓名、住宅电话、E-mail、办公电话以及职位。
   该系统除了可以保存客户信息之外,还具有以下功能:
   ①向系统中添加客户(addCustomer);
   ②根据给定的客户标识在系统中查找该客户(getCustomer);
   ③根据给定的客户标识从系统中删除该客户(removeCustomer);
   ④创建新的联系人(addContact);
   ⑤在系统中查找指定的联系人(getContact);
   ⑥从系统中删除指定的联系人(removeContact)。
   该系统采用面向对象方法进行开发。在面向对象分析阶段,根据上述描述,得到如表5-20所示的类。

描述该客户信息管理系统的UML类图如图5-12所示。

选项

答案由试题关键信息“……对于这类客户(个人客户),系统保存了其客户标识……对于这类客户(集团客户),系统保存了其客户标识……”可知,“客户标识”是个人客户和集团客户的共同属性,因此该标识也必然是类“客户”的一个属性。据此可先排除(1)空缺处的选项B和选项D。而选项C的“办公电话、职位”是类InstitutionalCustomer(集团客户)的属性,如果它们也是类“客户”的属性,那么类 IndividualCustomer(个人客户)也必然继承这两个属性,而试题中对于类“个人客户”无此相关描述,可见选项C不是正确答案。因此依据试题的描述,类Customer(客户)的属性只有“客户标识”。因此(1)空缺处的正确答案是选项A。 在UML类图中,“[*]”表示其相连的两个类之间存在泛化关系,即在图5-12中类Person(人)是类Contact(联系人)的基类;“[*]”表示其相连的两个类之间存在关联关系,即在图5-12中类Person与IndividualCustomer(个人客户)之间具有关联关系。由试题关键信息“对于这类客户(个人客户),系统保存了其客户标识和基本信息(包括姓名、住宅电话和E-mail)”,以及对(1)空缺处解析中类“个人客户”继承了类“客户”的“客户标识”属性,可见类“个人客户”还有“姓名、住宅电话和E-mail”属性没有体现,在图5-12中这些属性应该从类Person(人)中进行关联。 从试题关键信息“联系人的信息包括姓名、住宅电话、E-mail、办公电话和职位”可知,类Contact (联系人)除了从类“人”中继承了“姓名、住宅电话和E-mail”属性之外,还追加了“办公电话、职位”属性。这一点分析也证明了类Person(人)具有“姓名、住宅电话和E-mail”的属性。因此(2)空缺处的正确答案是选项B。

解析
转载请注明原文地址:https://kaotiyun.com/show/ZcDZ777K
0

最新回复(0)