例:希赛教育公司决定开发一个管理所有客户信息的交互式网络系统。系统的功能如下:
(1)浏览客户信息:任何使用Internet的网络用户都可以浏览电话公司所有的客户信息(包括 姓名、住址、电话号码等)。
(2)登录:电话公司授予每个客户一个帐号。拥有授权帐号的客户,可以使用系统提供的页面 设置个人密码,并使用该帐号和密码向系统注册。
(3)修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人 信息进行修改。
(4)删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。 系统采用面向对象方法进行开发,在开发过程中认定出的类如表2-4所示。
【问题1】
在需求分析阶段,采用UML的用例图描述系统功能需求,如图2-20所示。请指出图中的A、B、 C和D分别是哪个用例?
在UML中,重复度定义了某个类的一个实例可以与另一个类的多少个实例相关联。通常把它写 成一个表示取值范围的表达式或者一个具体的值。例如,图2-21中的类InternetClient和 CustomerList,InternetClient端的“0..*”表示:一个CustomerList的实例可以与0个或多个 InternetClient的实例相关联;CustomerList端的“1”表示:一个InternetClient的实例只能与一个 CustomerList的实例相关。
请指出图2-21中(1)到(4)处的重复度分别为多少?
解析:
【问题一】
A:浏览客户信息 B:修改个人信息 C:登录 D:删除客户信息
【问题二】
因为一个CustomerList的实例可以与0个或多个Customer的实例相关联;而一个Customer的 实例只能与一个CustomerList的实例相关。所以(1)应填“1”,(2)应填“0..*”。因为 Customer是CompanyCustomer相应的详细信息,所以(3)和(4)都应该填写“0..1”。
【问题三】
依赖:一个A的变化引起另一个类的变化。
关联:是类和类之间最常见的关系。即一个类的对象和另外一个类有联系。
聚合:表示整体和部分之间的关系。