用于对系统中的各种概念进行建模,并描绘出它们之间关系的图,它描述了系统的静态结构
类元:类、接口、数据类型、构件
模型元素:类(Class)接口(Interface)依赖关系(dependency)泛化关系(Generalization)关联关 系(Association)实现关系(Realization)
1) 名称
必须拥有的元素;尽可能明确表达需要描述的事物;第一个字母要大写,合成的每个单词首字母都要大写
简单名称:不包含冒号的字符串。 路径名:用类所在的包的名称作为前缀的类名
2) 操作
描述了在软件系统中所代表的对象具备的动态部分的公共特征的抽象至少由一个返回类型、一个名称以及 参数表来描述:
1 可见性
名称 |
关键字 |
Rational rose中的图标 |
语义 |
公有类型 |
Public |
一个砖头 |
允许在类的外部使用或查看该操作 |
受保护类型 |
Protected |
一个钥匙一个砖头 |
经常和泛化关系等一起使用,子类允许访问父类中受保护类型的操作 |
私有类型 |
Private |
一个锁一个砖头 |
只有类本身才能访问操作,外部一概访问不到 |
实现类型 |
Implementation |
一个锤子一个砖头 |
该操作仅仅在被定义的包中才能够可见 |
2 操作名称
由行为动词或动词短语构成;第一个字母小写,如果有多个单词,除第一个都大写
3 返回类型
至多一个,如果没有返回类型则用一个关键字void来表示
4 属性字符串
用来附加一些冠以操作的除了预定义元素之外的信息(不懂)
5 参数表
操作或方法被调用时接收传递过来的参数值得变量,(也不是很懂)
3) 属性
描述了在软件系统中所代表的对象具备的静态部分的公共特征抽象
组成:
1 可见性
Public private protected
2 名称
必须有一个名字,由名词或名词短语构成,命名规则同操作
3 属性字符串
任何希望添加在属性定义字符串中但又没有合适地方可以加入的规则,都可以放在属性字符串中
4 初始值
首先用来保护系统的完整性,其次为用户提供易用性
5 属性类型
一般记住一些典型类型就可以:Boolean、Integer、Byte、Date、String、Long
4) 约束
指定了该类所要满足的一个或多个规则,在UML中是用一个大括号括起来的文本信息
5) 职责
指的是对该类的所有对象所具备的相同属性和操作共同组成的功能或服务的抽象
1) 实现关系
将一种模型元素与另一种模型元素连接起来,用于说明和其实现之间的关系。(不是很理解)用一条虚线 加一个空三角组成
2) 泛化关系
用来描述类的一般和具体之间的关系,描述的是“is a kind of”(是。。。的一种),用一个带有空三角的 实线指向父类来表示
用途:
1 用来定义可替代性原则,即当一个变量被声明承载某个给定类的值时,可使用类的实例作为值
2 使得多态操作成为可能,即操作的实现是由它们所使用的对象的类,而不是由调用者确定的
3 在共享祖先所定义的成分的前提下允许它自身定义增加的描述,这被称作继承
3) 依赖关系
通俗理解就是动物需要水,没有水动物就无法存活,但并不是一直喝水,解渴的时候才去喝水,所以理解 就是一个功能的实现需要另一个功能的参加,但无法成为一体,用一段虚线加箭头表示,箭头指向所依赖 的一部分
4) 关联关系
1 组成关系
一种形式很强的关联,在整体中拥有管理部分的特有职责,有时也被称之为为强聚合关系。自己理解:不 能从整体中拆下来
2 聚集关系
将一组元素通过关联组成一个更大、更复杂的单元,是一种“has a”的关系,能从整体中拆下来,但都拆下 来整体也就不复存在了
备注:关联关系和依赖关系的区别
依赖是对象间短暂的一种关系,在这个短暂的关系中,被调用类表现为调用类的局部变量、方法的参数、 以及调用类调用被调用类的静态方法,在这些情况下,我们说调用类和被调用类之间就属于依赖关系。
关联是对象间长期的一种关系,在这个长期的关系中,被调用类表现为调用类的引用、或者调用类的属性 在这些情况下,我们说调用类和被调用类之间就属于关联关系。
<strong><span style="font-size:24px;"> // 1、作为调用类的局部变量 Class A { Void MethodA() { B b = new B(); b.MethodB(); } } // 2、作为调用类方法的参数 Class A { Void MethodA(B b) { b.MethodB(); } }</span></strong>
描述的是系统在某一个特定时间点上的静态结构,是类图的实例和快照,即类图中的各个类在某一个时间 点上的实例及其关系的静态写照
1.对象
多对象表示多个对象的类元角色表明操作或信号是应用在一个对象集而不是单个对象上的。
主动对象是拥有一个进程(或线程)并能启动控制活动的一种对象,是主动类的实例 对象使用带有下划线 的实例名将它作为个体区分开来,顶部显示对象名和类名
2.链
链是两个或多个对象之间的独立链接,是关联的实例。
通过链可以将多个对象连接起来,形成一个有序列表,称为元组。
链可以用于导航,表示形式为一个或多个相连的线或圆弧