UML模型类图

类图

类图显示了任何面向对象系统的构建块。类图描绘了模型或模型的一部分的静态视图,描述了它具有的属性和行为,而不是详细说明实现操作的方法。类图在说明类和接口之间的关系时最有用。概括、聚合和关联在分别反映继承、组合或使用以及连接方面都很有价值。

下图说明了类之间的聚合关系。较轻的聚合表示“Account”类使用 AddressBook,但不一定包含它的实例。其他连接器的强复合聚合表明目标类对源类的所有权或包含,例如,Contact 和 ContactGroup 值将包含在 AddressBook 中。

类图

班级

类是定义对象能够生成的属性和行为的元素。行为由类能够理解的可能消息以及适用于每条消息的操作来描述。类也可能有约束、标记值和原型的定义。

类符号

类由矩形表示,矩形显示类的名称以及可选的操作和属性的名称。隔间用于划分类名、属性和操作。

在下图中,类在最上面的隔间中包含类名,下一个隔间详细说明属性,“中心”属性显示初始值。最后一个隔间显示操作 setWidth、setLength 和 setPosition 及其参数。属性或操作名称之前的符号表示元素的可见性:如果使用 + 符号,则属性或操作具有公共级别的可见性;如果使用 - 符号,则属性或操作是私有的。此外,# 符号允许将操作或属性定义为受保护,而 ~ 符号表示包的可见性。

类符号

接口

接口是实现者同意满足的行为规范;这是一份合同。通过实现接口,可以保证类支持所需的行为,这允许系统以相同的方式处理不相关的元素——即通过公共接口。

界面

接口可以以与类类似的样式绘制,并指定操作,如下所示。它们也可以画成一个没有详细明确操作的圆圈。当绘制为圆形时,与圆形符号的实现链接不带目标箭头。

接口 2

尽管不是基本 UML 的一部分,但表是可以使用构造型完成的示例。它在右上角用一个小表格图标绘制。表属性是原型«column»。大多数表都会有一个主键,它是一个或多个字段,形成用于访问表的唯一组合,加上一个被构造型为«PK»的主键操作。一些表将有一个或多个外键,即一个或多个字段一起映射到相关表中的主键,加上一个外键操作,它是原型«FK»。

表

协会

关联意味着两个模型元素具有关系——通常作为一个类中的实例变量实现。该连接器可能包括在每一端的命名角色、基数、方向和约束。关联是元素之间的一般关系类型。对于两个以上的元素,也可以使用菱形表示工具箱元素。当为类图生成代码时,命名的关联端成为目标类中的实例变量。因此,对于下面的示例,“playsFor”将成为“Player”类中的一个实例变量。

协会

概括

泛化用于指示继承。从具体分类器到一般分类器,泛化的含义是源继承了目标的特征。下图显示了泛化子类的父类。隐式地,Circle 类的实例化对象将具有属性 x_position、y_position 和 radius 以及方法 display()。请注意,“Shape”类是抽象的,名称以斜体表示。

概括

下图显示了相同信息的等效视图。

概括 2

聚合

聚合用于描述由较小组件组成的元素。聚合关系由指向目标或父类的白色菱形箭头表示。

一种更强的聚合形式 - 复合聚合 - 由黑色菱形箭头表示,用于一次最多可以包含一个组合的组件。如果组合聚合的父级被删除,通常它的所有部分都会随之删除;但是,可以从合成中单独删除一部分,而不必删除整个合成。组合是传递的、不对称的关系并且可以是递归的。

下图说明了弱聚合和强聚合之间的区别。通讯簿由多个联系人和联系人组组成。联系人组是联系人的虚拟分组;一个联系人可能包含在多个联系人组中。如果您删除通讯录,所有联系人和联系人组也将被删除;如果删除联系人组,则不会删除任何联系人。

聚合

关联类

关联类是允许关联连接具有操作和属性的构造。以下示例表明,将员工分配给项目不仅仅是在两个类之间建立简单的关联链接:员工在项目中担任的角色本身就是一个复杂的实体,包含不属于的细节在员工或项目类中。例如,一名员工可能同时从事多个项目,并且每个项目都有不同的职位和安全级别。

关联类

依赖关系

依赖关系用于对模型元素之间的广泛依赖关系进行建模。它通常会在设计过程的早期使用,其中已知两个元素之间存在某种联系,但要确切知道这种关系是什么还为时过早。在设计过程的后期,依赖关系将被定型(可用的定型包括«instantiate»、«trace»、«import»等),或者替换为更具体的连接器类型。

痕迹

跟踪关系是依赖关系的一种特殊化,它链接模型元素或跨模型表示相同想法的元素集。跟踪通常用于跟踪需求和模型更改。由于更改可能在两个方向上发生,因此这种依赖关系的顺序通常被忽略。关系的属性可以指定跟踪映射,但跟踪通常是双向的、非正式的并且很少可计算。

实现

源对象实现或实现目的地。实现用于表示模型中的可追溯性和完整性——一个业务流程或需求由一个或多个用例实现,这些用例又由一些类实现,这些类又由一个组件等实现。映射需求、类等贯穿您的系统设计,直至建模抽象层级,确保系统的大图记住并反映约束和定义它的所有小图和细节。实现显示为带有实线箭头的虚线。

实现

嵌套

嵌套是连接器,显示源元素嵌套在目标元素中。下图显示了内部类的定义,尽管在 EA 中更常见的是通过它们在项目视图层次结构中的位置来显示它们。

嵌套

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值