
OOM面向对象模型
组件图
对于现代的大型应用程序而言,一般不仅是单独一个类或单独一组类所能完成的,一般会由一个或多个可部署的组件组成。对Java程序而言,可复用的组件一般打包成一个JAR、WAR等文;对C/C++应用而言,可复用的组件一般是一个函数库,或者一个DLL(动态连接库)文件。并发
组件图提供系统的物理视图。它的用途是显示系统中的软件对其余软件组件(例如 库函数)的依赖关系。组件图能够在一个很是高的层次上显示,从而仅显示粗粒度的组件,也能够在组件包层次上显示。函数
组件图用来创建系统中各组件之间的关系, 各组件经过功能组织在一块儿,组件图能够用来设计系统的总体构架。spa
实例1:操作系统
实例2:设计
部署图
部署图用于描述软件系统如何部署到硬件环境中。它的用途是显示软件系统不一样的组件将在何处物理地运行,以及它们将如何彼此通讯。对象
由于部署图是对物理运行状况进行建模,因此系统的生产人员就能够很好地利用这种图来安装、部署软件系统。生命周期
部署图中的符号包括组件图中所使用的符号元素,另外还增长了几个符号,主要是增长了节点的概念:节点是各类计算资源的通用名称。资源
节点: 指组件运行的环境。能够是软件(操做系统、其余等)或硬件资源(计算机,其余硬件)。部署
通讯关联: 节点经过通讯关联创建彼此的关系,采用从节点到节点绘制实线来表示关联。同步
实例1:
实例2:
包图
包图: 由包和包之间的关系组成. 包的图标就如同一个带标签的文件夹.
包提供了一种用于组织各类元素的分组机制. 在 UML 中, 包用来对元素进行分组, 并为这些元素提供命名空间. 包所拥有的或者引用的全部元素称为包的内容, 包没有实例.
时序图
用于描述对象之间消息的传递时间顺序, 是显示对象之间交互的图,这些对象是按时间顺序排列的。时序图中显示的是参与交互的对象及其对象之间消息交互的顺序。
时序图中包括的建模元素主要有:
对象(Actor)
生命线(Lifeline)
控制焦点(Focus of control)
消息(Message)
对象: 时序图中对象使用矩形表示, 而且对象名称下有下划线. 将对象置于时序图的顶部说明在交互开始时对象就已经存在了. 若是对象的位置不在顶部, 表示对象是在交互的过程当中被建立的.
生命线: 生命线是一条垂直的虚线. 表示时序图中的对象在一段生命周期内的存在. 每一个对象底部中心的位置都带有生命线.
消息: 两个对象之间的单路通讯. 从发送方指向接收方. 在时序图中不多使用返回消息.(若是有返回则能够使用虚线表示)
激活: 时序图能够描述对象的激活和钝化. 激活表示该对象被占用已完成某个任务. 钝化指对象处于空闲状态, 等待消息. 在 UML 中, 对象的激活时将对象的生命线拓宽为矩形来表示的. 矩形称为计划条或控制期. 对象就是在激活条的顶部被激活的. 对象在完成本身的工做后被钝化.
对象的建立和销毁: 在时序图中, 对象的默认位置是在图的顶部. 这说明对象在交互开始以前就已经存在了. 若是对象是在交互过程当中建立的, 那么就应该将对象放到中间部分. 若是要撤销一个对象, 在其生命线终止点处放置 “ X” 符号.
协做图
协做图(也叫合做图)是一种交互图.
时序图主要侧重于对象间消息传递在时间上的前后关系, 而协做图表达对象间的交互过程及对象间的关联关系。
时序图与协做图都表示对象之间的交互做用,只是它们的侧重点有所不一样:
时序图描述了交互过程当中的时间顺序,但没有明确地表达对象之间的关系。
协做图描述了对象之间的关系,但时间顺序必须从顺序号得到。
两种图的语义是等价的,能够从一种形式的图转换成另外一种形式的图,而不丢失任何信息。
活动图
活动图本质上就是流程图. 它用于描述系统的活动, 断定点和分支等.
活动图中的菱形框是判断标志,表示条件转移。
活动图对表示并发颇有用。在活动图中使用一个称为同步条的水平粗线能够将一条转移分为多个并发执行的分支,或将多个分支合为一条转移。此时,只有输入的转移所有有效才能执行后面的活动。
状态图
状态图: 经过创建对象的生存周期模型来描述对象随时间变化的动态行为。