关于UML学习的总结
UML的组成 :
四种事物:构建事物,行为事物,分组事物,注释事物。
四种关系:
- 泛化(是一般事物(父类)与该事物的较为特殊的种类(子类)之间的关系)【带有空心箭头的实线,实线指向父类】
- 关联(一个对象与另一个对象之间的关系)【一条直线】
- 实现(类之间的语义关系,其中一个类指定了另一个类必须执行的约定)【带有空心箭头的虚线】
- 依赖(其中一个元素的(独立元素)变化会印象另一个元素(依赖元素)的语义)【一条由方向的虚线】
UML中的图:
类型 | 包含 |
---|---|
静态图 | 类图,对象图,包图,组合结构图 |
行为图 | 状态机图,活动图 |
用例图 | 用例图 |
交互图 | 时序图,通信图,定时图,交互概览图 |
实现图 | 构件图,部署图 |
用例图
(从用户的角度去描述系统功能,并指出个系统的操作者)
用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成
参与者( 参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等)
用例(是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。)
系统边界(系统边界是用来表示正在建模系统的边界。边界内表示系统的组成部分,边界外表示系统外部。系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面)
箭头(箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系)
用例之间的关系:
- 包含
- 扩展
-
泛化
- 分组
类图(描述一个系统的设计部分)
名称(用于区分的类的名称。)
属性(+表示公有,-表示私有,#表示受保护)描述类在软件系统中代表的事物多具备的特征。
操作(类所能作的事物的抽象)
职责(说明了类的职责)
约束( 约束是一种形式化的方法)
对象图
(对象图是类图的实例,显示了一组对象和他们之间的关系。)
类之间的关系
类图 | 对象图 |
---|---|
在类中包含三部分,分别是类名、类的属性和类的操作 | 对象包含两个部分:对象的名称和对象的属性 |
类的名称栏只包含类名 | 对象的名称栏包含“对象名:类名” |
类的属性栏定义了所有属性的特征 | 对象的属性栏定义了属性的当前值 |
类中列出了操作 | 对象图中不包含操作内容,因为对属于同一个类的对象,其操作是相同的 |
类中使用了关联连接,关联中使用名称、角色以及约束等特征定义 | 对象使用链进行连接,链中包含名称、角色 |
类代表的是对对象的分类所以必须说明可以参与关联的对象的数目 | 对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性。 |
状态机图
(用于描述一个实体基于事件反应的动态行为,显示该实体如何根据当前所处的状态对不同的事物做出的反应)
状态( 对象在其生命周期中的条件和状况 )
转移(对象状态之间的转移)
状态为圆角矩形
活动图(记录单个操作,方法的逻辑,或者单个业务的逻辑,描述系统中各种活动的执行顺序)
基本元素:
状态
转移(某一状态到后续状态)
分支(《》一个分支有一个进入转移和两个或者多个输出转移)
汇合和分叉(两个或者多个并发的控制流 )
泳道(将活动图中的活动化为若干组,并把每一组指定给负责这组活动的业务组织。)
对象流(依赖关系和对象的应用)
顺序图
(描述对象之间动态的交互关系)
参与者(可以是人或者其他的的系统或者子系统。)
对象
生命线(代表对象在顺序图中一段时间存在)
激活周期(对象在一段时间内获得了焦点)
消息(对象之间某种形式的通信)
消息包括(简单消息,同步消息,异步消息,返回消息,阻止消息,超时消息)
通信图
(显示组件及交互关系的空间组织结构)
活动者(发出主动操作的对象)
对象(负责发送和接收消息)
链接(表示两个对象共享消息)
消息(对象之间某种形式的通信)
顺序图和通信图的区别:
- 侧重点不同:顺序图强调消息的时间顺序的交互图,图象是一张表,对象沿X轴排列,消息沿Y轴按时间顺序排列,;通信图强调发送者和接收消息的对象之间的组织结构 的 交互图,图形上的定点和弧相结合
- 顺序图可以反应对象的创建,激活,销毁等生命周期,通信图没有
- 通信图能反映动作路径,消息必须有顺序号,但是顺序图没有。
- 顺序图是按时间组织的,通信图是按对象组织的
构件图
(描述代码部件的物理结构以及各部件之间的依赖关系)
构件
关系 (依赖,实现)
接口 (示出接口:构件实现的接口 , 引入接口:构件使用的接口)
部署图
(描述系统中硬件和软件的物理部署情况和系统体系结构)
节点(代表一项计算机资源的物理元素)
组件()
关系(依赖,泛化,关联,实现)
包图(展现模型要素的基本组织单元)
组合结构图(描述系统某一部分的内部内容)
定时图(显示交互过程中的真实时间信息)
交互概览图(与活动图类似,将活动图中的动作元素改为交互概览图中的交互关系)