阅读下列说明和图,回答问题,将解答填入答题纸的对应栏内。
【说明】
某公司欲开发一个管理选民信息的软件系统。系统的基本需求描述如下:
每个人(Person)可以是一个合法选民(Eligible)或者无效的选民(Ineligible)。
每个合法选民必须通过该系统对其投票所在区域(即选区,Riding)进行注册(Registration)。每个合法选民仅能注册一个选区。
选民所属选区由其居住地址(Address)决定。假设每个人只有一个地址,地址可以是镇(Town)或者城市(City)。
某些选区可能包含多个镇;而某些较大的城市也可能包含多个选区。
现采用面向对象方法对该系统进行分析与设计,得到如下图所示的初始类图。
类图
【问题1】(5分)
根据说明中的描述,给出上图中C1~C4所对应的类名(类名使用说明中给出的英文词汇)
【问题2】(5分)
根据说明中的描述,给出上图中M1~M6处的多重度。
【问题3】(5分)
现对该系统提出了以下新需求:
(1)某些人拥有在多个选区投票的权利,因此需要注册多个选区;
(2)对手满足(1)的选民,需要划定其“主要居住地”,以确定他们应该在哪个选区进行投票。
为了满足上述需求,需要对上图所示的类图进行哪些修改?请用100字以内文字说明。
【问题1】(5分) C1:Address C2:Riding C3:Ineligible C4:Eligible 【问题2】(5分) M1:1,M2:*,M3:*,M4:1,M5:*,M6:1 【问题3】(5分) (1)将M1修改为1..*,在Registration类中增加address属性,指明注册时使用的是哪个地址。 (2)增加一个类“主要居住地”,作为类Address的子类;类Person与类"主要居住地"是关系联系,且每个人只有一个主要居住地。