【问题3】 类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。在面向对象建模中,提供了4种关系:依赖(Dependency)、概括(Generalization)、关联(Association)和聚集(Aggregation)。请分别说明这4种关系的含义,并说明关联和聚集之间的主要区别。
参考答案:
解析:(1) 4种关系的含义如下。 · 依赖表示类之间的使用关系。 · 概括(泛化)表示一般类和特殊类之间的关系。 · 关联和聚集都表示实例之间的结构关系。 (2) 关联和聚集的区别如下。 · 关联指明一个类的对象与另一个类的对象间的联系:两个类之间的关联表示了两个同等地位类之间的结构关系,这两个类在概念上是同级别的。 · 聚集是一种特殊的关联,它表示整体/部分关系。
[分析]: 本题考查UML用例图。UML类图中类间的关联重复度,以及UML相关概念。 用例图用于对系统的静态用例视图进行建模,主要支持系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。 根据题中描述,很容易确定用例A是“浏览客户信息”,用例D是“删除客户信息”。用例B与用例C哪个是登录呢注意到其间存在包含关系:B包含了C。因此根据语义,用例C应为“登录”,用例B为“修改个人信息”。亦即“修改个人信息”必须首先“登录”。 在UML中,重复度(Multiplicity)定义了某个类的一个实例可以与另一个类的多少个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。关联重复度详见考点链接3.1。 根据语义分析,类CustomerList实例显然是由多个类Customer实例组成的,而CustomerList只需一份即可。故空(1)应填“1”,空(2)应填“0..*”;Customer是CompanyCustomer的详细信息,因此空(3)和空(4)均为“0..1”。