阅读下列说明以及图3-1和图3-2,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。
[说明]
某电话公司决定开发一个管理所有客户信息的交互式网络系统。系统功能如下:
浏览客户信息:任何使用Internet的网络用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。
登录:电话公司授予每个客户一个账号。拥有授权账号的客户,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册。
修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。
删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。
系统采用面向对象方法进行开发,在开发过程中认定出的类如下表所示:
编号 |
类名 |
描述 |
1 |
InternetClient |
网络用户 |
2 |
CustomerList |
客户信息表,记录公司所有客户的信息 |
3 |
Customer |
客户信息,记录单个客户的信息 |
4 |
CompanyCustomer |
公司客户 |
5 |
InternalClient |
公司的管理人员 |
[问题1]
在需求分析阶段,采用UML的用例图(use case diagram)描述系统功能需求,如图3-1所示。请指出图中的A、B、C和D分别是哪个用例?
[问题2]
在UML中,重复度(Multiplicity)定义了某个类的一个实例可以与另一类的多少个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。例如图3-2中的类InternetClient和CustomerList,InternetClient 端的“0..*”表示:一个CustomerList的实例可以与0个或多个InternetClient的实例相关联;CustomerList端的“1”表示InternetClient的实例只能与一个CustomerList的实例相关。
请指出图3-2中(1)到(4)处的重复度分别为多少?
[问题3]
类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。在面向对象建模中,提供了四种关系:依赖(dependency)、概括(generalization)、关联(association)和聚集(aggregation)。请分别说明这四种关系的含义,并说明关联和聚集之间的主要区别。