一、事物
分为结构事物、行为事物、分组事物、注释事物。
1.结构事物:
静态部分。包括类、接口、协作、用例、主动类、构件、制品、结点
2.行为事物:
动态部分。包括交互、状态机、活动
3.分组事物:
组织部分。最主要的分组事物是包
4.注释事物:
解释部分。注解
二、关系
关系分为:依赖、关联、泛化和实现
1.依赖:
是指两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)。(依赖画成一条可能有方向的虚线)
依赖事物A指向独立事物B:表示A依赖B
2.关联:
关联是一种结构关系,描述了一组链,链是对象之间的连接。
关联上可以标注重复度和角色(一条直线
聚集:
聚合(空心:部分和整体的生命周期不一致,整体消失了,部分依然存在,部分可以脱离整体而存在。(是聚集的其中一种形式
组合(实心:部分和整体的生命周期一致,整体消失了,部分也消失,部分不可以脱离整体而存在。
3.泛化:
子元素的对象可以替代父元素的对象。子元素共享父元素的结构和行为。(由子类指向父类
类似于继承的反关系

4.实现:

若类A仅在方法method1中定义并使用了类B的一个对象,类A其他部分代码都不涉及类B,那么A与B的关系为依赖
两个类之间可以有多个不同角色标识的。
聚合关系是一个对象包含其他对象
UML中关联的多重度指的是一个类的实例能够与另一个类的多少个实例相关联
两者之间存在多对多的关系就需要创建新类(关联类)
两个类之间可以有多个关联,但是每个关联都需要有角色标识
三、图
UML提供了13种图,分别为类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、组合结构图、部署图、包图、交互概览图和计时图。序列图、通信图、交互概览图和计时图均被称为交互图。

1.类图:
展现了一组对象、接口、协作和它们之间的关系。
通常包括类、接口、协作、依赖、泛化和关联关系。
类图用于系统的静态设计视图建模,这种视图主要支持系统的功能需求。
使用类图的方式:a.对系统的词汇建模 b.对简单的协作建模 c.对逻辑数据库模式建模
属性方法前一般都有权限修饰符
+:public 公有的
-:private 私有的
#:protected 守保护的
~:package 包的
重写就是覆盖
子类是父类的非直接对象
抽象类对象不能实例化,没有直接对象
2.对象图
展现了某一时刻一组对象以及它们之间的关系。描述了在类图中所建立的事物的实例的静态快照。
对象图中类仅仅包含类名和属性名(属性名的值一般会具体给出
3.用例图
展现了一组用例、参与者以及它们之间的关系。对系统的静态用例视图进行建模,主要支持系统的行为
使用用例图的方式:a.对系统的语境建模 b.对系统的需求建模
关联是参与者和用例之间的关系
拓展关系<extend> 包含关系<include>
a.包含关系:
用例和用例(椭圆)之间的关系(虚线+箭头,线上写<include>关键字,基本用例指向被包含用例
包含是必须要实行的,相当于实现某个功能之前的前提条件。
b.拓展关系:
用例和用例之间的关系(虚线+箭头,线上写<extend>关键字,箭头指向端为基本用例,另一端为拓展用例
一个用例执行的时候,可能会发生一些特殊的情况或者可选的情况,这种情况就是用例的拓展用例。
c.泛化关系:
一般元素和特殊元素之间的关系,父类子类。参与者与参与者、用例与用例的关系。
必须选择一个执行
在UML用例图中,参与者表示人、硬件或者其他系统可以扮演的角色,是外部实体。
4.交互图:
由一组对象和它们之间的关系组成,包含它们之间可能传递的消息。
交互图一般包含对象、链和消息
(1)、序列图/顺序图
是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。
序列图用于展示系统中一个用例和多个对象的行为。
特征:
有对象生命线(是一条垂直的虚线) ,对象可以在交互过程中撤销。
有控制焦点(是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段)

6.21
序列图中实现的方法:看图中的指向箭头,指向自己的就是它实现的方法。
(2).通信图/协作图
强调收发消息的对象的结构组织。强调参加交互的对象的组织。描述了发消息以及发消息的顺序。
用于显示系统中对象之间的消息流及其顺序。

对象名:类名
通信图的特性:1.有路径 2.有顺序号(表示一个消息的时间顺序)
每个消息都有唯一的顺序号。沿同一个链可以显示许多消息,可能发自不同的方向。
序列图和通信图是同构的,可以相互转换。
5.状态图
展现了一个状态图,由状态、转换、事件和活动组成。通常包括简单状态和组合状态(超状态)以及转换。一张状态图中只能有一个初态。可以有多个终态或者没有。是对反应型对象建模。
用于描述一个对象在多个用例中的行为,用于某些具有多个状态的对象而不是系统中大多数或全部对象,用于描述一个对象之间的交互,可以用于用户界面或控制对象。
状态是指对象的生命周期中某个条件或者状态。
状态:包括初态、终态和中间状态。一个状态代表系统的一种行为模式。
活动:有若干动作组成的。
转换:包括源状态和目标状态。事件触发转换。源状态箭头指向目标状态。
事件:是某个特定时刻发生的事情。是对引起系统做动作或者从一个状态转换到另一个状态的外界时间的抽象。
如果在箭头上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。

活动(动作)可以在状态内执行,也可以在状态转换时执行。
监护条件是一个bool表达式(bool表达式结果为true,false)
当某个事件发生后,对象的状态就会发生改变。
监护条件只有在相应的事件发生时才进行检查,
6.活动图
展现了在系统内从一个活动到另一个活动的流程。专注于系统的动态视图。

使用活动图的两种方式:1.对工作流建模 2.对操作建模
对一个复杂用例中的业务处理流程进行进一步建模的最佳工具是UML的活动图。
7.构件图/组件图
展现了一组组件/构件之间的组织和依赖。通常把构件映射为一个或多个类、接口或协作。

8.部署图
用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。对系统的静态部署视图进行建模。包含一个或多个部件。表示待开发软件系统中软件组件和硬件之间的物理关系。
采用UML进行面向对象开发时,部署图通常在实施阶段使用。
UML图中,对新开发系统的需求进行建模,规划开发什么功能或测试用例,采用用例图最合适。
四.不常考知识点
1.业务用例和参与者一起描述组织支持的业务过程,而业务对象模型描述业务结构以及结构元素如何完成业务用例。
2.UML中接口可用于声明对象类所需要的服务。
3.服务具体如何执行,有实现的具体类完成。
4.部署图中,部署组件之间的依赖关系类似于包依赖。其依赖关系类似于包图。