软考下午题--UML建模练习(一)

例:希赛教育公司决定开发一个管理所有客户信息的交互式网络系统。系统的功能如下:

(1)浏览客户信息:任何使用Internet的网络用户都可以浏览电话公司所有的客户信息(包括 姓名、住址、电话号码等)。

(2)登录:电话公司授予每个客户一个帐号。拥有授权帐号的客户,可以使用系统提供的页面 设置个人密码,并使用该帐号和密码向系统注册。

(3)修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人 信息进行修改。

(4)删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。 系统采用面向对象方法进行开发,在开发过程中认定出的类如表2-4所示。

表2-4 开发过程中认定出的类

 

【问题1】

在需求分析阶段,采用UML的用例图描述系统功能需求,如图2-20所示。请指出图中的A、B、 C和D分别是哪个用例?

 

 

【问题2】

在UML中,重复度定义了某个类的一个实例可以与另一个类的多少个实例相关联。通常把它写 成一个表示取值范围的表达式或者一个具体的值。例如,图2-21中的类InternetClient和 CustomerList,InternetClient端的“0..*”表示:一个CustomerList的实例可以与0个或多个 InternetClient的实例相关联;CustomerList端的“1”表示:一个InternetClient的实例只能与一个 CustomerList的实例相关。

请指出图2-21中(1)到(4)处的重复度分别为多少?

 

【问题3】
类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建 模。在面向对象建模中,提供了四种关系:依赖(dependency)、概括(generalization)、关联 (association)和聚集(aggregation)。请分别说明这四种关系的含义,并说明关联和聚集之间的主要区别。

 解析:

【问题一】

A:浏览客户信息     B:修改个人信息    C:登录      D:删除客户信息

题目说明中提到了系统有4个功能:浏览客户信息、登录、修改个人信息、删除客户信息。这也就是4个用例,现在只需把它们对号入座即 可。根据题目说明可以知道,任何使用Internet的网络用户都可以浏览电话公司所有的客户信息,在 图2-20中符合这一条件的只有A了,所以A应填“浏览客户信息”。又因为只有公司的管理人员才能 删除不再接受公司服务的客户的信息,所以D应填“删除客户信息”。
剩下就只有“登录”和“修改个人信息”两个用例了,B和C考查的是这2个用例之间的关系。根 据“<<include>>”可知,这里是包含关系。根据常识我们知道,在修改个人信息之前需要登录, 因此,“修改个人信息”包含“登录”表,即B应填“修改个人信息”,C应填“登录”。

【问题二】

在UML中,重复度又称多重性,多重性表示为一个整数范围n..m,整数n定义所连接的最少对 象的数目,而m则为最多对象数(当不知道确切的最大数时,最大数用*号表示)。最常见的多重性 有0..1、0..*、1..1和1..*。 

因为一个CustomerList的实例可以与0个或多个Customer的实例相关联;而一个Customer的 实例只能与一个CustomerList的实例相关。所以(1)应填“1”,(2)应填“0..*”。因为 Customer是CompanyCustomer相应的详细信息,所以(3)和(4)都应该填写“0..1”。

【问题三】

依赖:一个A的变化引起另一个类的变化。

关联:是类和类之间最常见的关系。即一个类的对象和另外一个类有联系。

聚合:表示整体和部分之间的关系。

聚集是一种特殊的关联,它表示整体/部分关系。

 

 

 

 

posted @ 2021-05-25 15:05  洛飞  阅读(1538)  评论(0编辑  收藏  举报