UML概述及UML图详解

简介: UML概述及UML图详解

一、UML简介

(一)UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于
描述以用例为驱动,以体系结构为中心的软件设计的全过程。
(二)UML的定义包括UML语义和UML表示法两个部分。
  1.UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响;
  2.UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建
  模提供了标准


二、UML模型图的构成

(一)事物[Things] (4种):UML模型中最基本的构成元素,是具有代表性的成分的抽象

1.构件事物:UML模型的静态部分,描述概念或物理元素
类:具有相同属性相同操作相同关系相同语义的对象的描述
接口:描述元素的外部可见行为,即服务集合的定义说明
协作:描述了一组事物间的相互作用的集合
用例:代表一个系统或系统的一部分行为,是一组动作序列的集合
构件:系统中物理存在,可替换的部件
节点:运行时存在的物理元素
另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体


2.行为事物:UML模型图的动态部分,描述跨越空间和时间的行为

交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接
状态机:描述事物或交互在生命周期内响应事件所经历的状态序列


3.分组事物:UML模型图的组织部分,描述事物的组织结构

包:把元素组织成组的机制


4.注释事物:UML模型的解释部分,用来对模型中的元素进行说明、解释

注解:对元素进行约束或解释的简单符号


(二)关系[Relationships]:关系把事物紧密联系在一起

1.依赖[depedency]是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到  
  另一个事物(依赖事物)的语义
2.关联[association]是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系
3.泛化[generalization]是一种特殊/一般的关系。也可以看作是常说的继承关系
4.实现[realization]是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约


(三)图[Diagrams]:图是事物和关系的可视化表示

1.用例图[Use Case Diagram]:用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,
   用例是系统中的一个功能单元


深入学习,请阅读:用例图详解


2.类图[Class Diagram]:(1)类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、
   依赖、聚合等,也包括类的内部结构(类的属性和操作);(2)类图是以类为中心类组织的,类图中的其他元素
   或属于某个类或与类相关联

深入学习,请阅读:类图详解


3.对象图[Object Diagram]:对象图是类图的实例,几乎使用与类图完全相同的标识。
   他们的不同点在于对象图显示类的多个对象实例,而不是实际的类



4.顺序图[Sequence Diagram]:(1)顺序图显示对象之间的动态合作关系,他强调对象之间消息发送的顺序,

同时显示对象之间的交互;(2)顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,
   顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件


深入学习,请阅读:顺序图详解


5.协作图[Collaboration Diagram]:(1)协作图描述对象间的协作关系,协作图跟顺序图相似,
   显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及他们之间的关系
   (2)协作图的一个用途是表示一个类操作的实现


深入学习,请阅读:协作图详解


6.状态图[State Chart Diagram]:状态图是一个类对象所可能经历的所有历程的模型图。
   状态图由对象的各个状态和连接这些状态的转换组成


深入学习,请阅读:状态图详解

7.活动图[Activity Diagram]:(1)活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动    
  (2)活动图描述了一组顺序的或并发的活动


深入学习,请阅读:活动图详解


8.构件图[Component Diagram]:构件图为系统的构件建模型——构件即构造应用的软件单元

——还包括
  各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响


深入学习,请阅读:构件图详解


9.部署图[Deployment Diagram]:部署视图描述位于节点实例上的运行构件实例的安排。
  节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配


深入学习,请阅读:部署图详解


(四)各UML图的关系


三、UML语法描述


文章内容深入学习链接

用例图详解

类图详解

顺序图详解

协作图详解

状态图详解

活动图详解

构件图详解

部署图详解


相关文章
|
2月前
|
存储 测试技术 开发工具
软考中的UML图、数据流图等二十余种示例
软考中的UML图、数据流图等二十余种示例
181 0
|
5天前
|
Java uml
UML之组件图(构件图)
UML之组件图(构件图)
14 0
|
3月前
|
程序员 uml
UML图 | 时序图(顺序、序列图)绘制
UML图 | 时序图(顺序、序列图)绘制
130 0
|
4月前
|
测试技术 uml
UML—浅谈常用九种图
UML—浅谈常用九种图
53 0
|
6月前
|
设计模式 数据可视化 程序员
设计模式概述、UML图、软件设计原则
设计模式概述 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。 1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ra
43 0
|
8月前
|
uml Python
将python源码自动生成UML图——扩张包Graphviz+Pyreverse
将python源码自动生成UML图——扩张包Graphviz+Pyreverse
331 0
|
9月前
|
测试技术 数据库 uml
UML之旅—九种图
开始我按照自己的思考,将所有的用户、所有的用例都画在了一起,真心的很大、很乱,再加上刚开始画图就有一种抵触的冲动了,就让旁边的师傅给我说了说,她建议我将这些分开
|
9月前
|
开发框架 Java 测试技术
UML总结 九种图 UML 实例
UML总结 九种图 UML 实例
|
9月前
|
uml
UML 交互图(序列图 协同图)
UML 交互图(序列图 协同图)
49 0
|
9月前
|
uml
UML行为图(状态图 活动图)
UML行为图(状态图 活动图)
62 0