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

类名说明
CustomerInformationSystem客户信息管理系统
IndividualCustomer个人客户
InstitutionalCustomer集团客户
Contact联系人
描述该客户信息管理系统UML类图如图2-26所示

图2-26 客户信息管理系统UML类图
【问题1】
请使用说明中术语,给出图2-26中类Customer和类Person属性
【问题2】
识别关联多重度是面向对象建模过程中一个重要步骤。根据说明中给出描述,完成图中(1)~(6)
【问题3】
根据说明中叙述,抽象出如表2-6所示方法,请指出图2-26中类CustomerInformationSystem和InstitutionalCustomer应分别具有其中哪些方法
表2-6 抽象出方法

正确答案及解析
正确答案
解析
【问题1】
Customer属性:客户标识
Person属性:姓名、住宅电话、E-mail
【问题2】
(1)1(2)0..*(3)1
(4)1(5)1(6)1..*
【问题3】
CustomerInformationSystem方法:addCustomer,getCustomer,removeCustomer
InstitutionalCustomer方法:addContact,getContact,removeContact
【解析】
根据题目描述得知,客户信息管理系统功能是管理个人用户和集团用户,个人用户和集团用户区别在于集团用户有自己联系人,而个人用户没有。
【问题1】
问题1要求考生给出类Customer和Person属性。在图2-26中,Customer表示客户类,IndividualCustomer和InstitutionalCustomer都是Customer子类,IndividualCustomer是个人客户,InstitutionalCustomer是集团客户。既然Customer是个人客户类和集团客户类父类,则它必有两者共同点。由于集团客户和个人客户都有客户标识,所以Customer属性为"客户标识"。Contact是联系人,只有集团客户才有联系人。Person类是Contact类父类,同时又与IndividualCustomer有关联,所以Person类应具有Contact与IndividualCustomer共同点,它们共同点就是联系人与个人客户都有自己基本信息:姓名、住宅电话和E-mail。因此,Person属性有:姓名、住宅电话和E-mail。
【问题2】
类CustomerInformationSystem表示是客户信息管理系统,Customer表示是客户类,一个客户信息管理系统中应有多个客户。所以CustomerInformationSystem与Customer之间关系应是1:*。IndividualCustomer与Person其实是个人客户与该客户基本信息之间关系,显然一个客户只有一个基本信息,所以它们也是1:1关系。最后是InstitutionalCustomer与Contact之间关系,这也就是集团客户与联系人之间关系,由于一个集团客户可有多个联系人,同时至少需要有一个联系人(如果联系人数量为0,则此客户为个人客户)。所以InstitutionalCustomer与Contact之间关系应为1:1..*。
【问题3】
一个原则就可以解决这个问题:与客户操作相关为CustomerInformationSystem方法,而与联系人相关操作是InstitutionalCustomer方法。
你可能感兴趣的试题

-
- A.V(S2)和P(S4)
- B.P(S2)和V(S4)
- C.P(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案

-
- A.V(S1)P(S2)和V(S3)
- B.P(S1)V(S2)和V(S3)
- C.V(S1)V(S2)和V(S3)
- D.P(S1)P(S2)和V(S3)
- 查看答案

-
- A.P(S4)和V(S4)V(S5)
- B.V(S5)和P(S4)P(S5)
- C.V(S3)和V(S4)V(S5)
- D.P(S3)和P(S4)V(P5)
- 查看答案

-
- A.P(S3)和V(S4)V(S5)
- B.V(S3)和P(S4)P(S5)
- C.P(S3)和P(S4)P(S5)
- D.V(S3)和V(S4)V(S5)
- 查看答案

-
- A.P(S2)和P(S4)
- B.P(S2)和V(S4)
- C.V(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案