统一建模语言-UML

我们在进行项目的时候,通过使用 UML 的面向对象图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序等一些逻辑思维。


工具

  • Astah
  • StarUML
  • Visio
  • PowerDesigner(比较大)
  • Enterprise Archlitect
  • ProcessOn(在线建模工具,联网使用)

UML 介绍

1997年,OMG 组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。UML 是一种编制软蓝图的标准化语言,它的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML 提出了一套 IT 专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划。UML支持面向对象的技术,能够准确的方便地表达面向对像的概念,体现面向对象的分析和设计风格


UML 特点

1、面向对象
2、可视化,表达能力强
3、独立于过程
4、独立于程序设计
5、容易掌握使用


UML 面向对象的概念

  • 对象: 对象代表一个实体的基本构建块.
  • 类: 类是对象的蓝图.
  • 抽象化: 抽象代表现实世界中实体的行为.
  • 封装: 封装是将数据绑定在一起,并隐藏他们外部世界的机制。
  • 继承: 继承是从现有的机制作出新的类。
  • 多态性: 定义的机制来以不同的形式存在.

UML 模型

构成部分

事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象
关系(Relationships):关系把事物紧密联系在一起
图(Diagrams ):图是事物和关系的可视化表示


事物

事物是实体抽象化的最终结果,是 UML 构建块最重要的组成部分,事物的分类如下:

  • 结构事物
  • 行为事物
  • 分组事物
  • 注释事物

结构事物

结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素:

1、类

类是指具有相同属性、方法、关系和语义的对象的集合;


类 UML 图
2、接口

接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作;

接口UML 图

ios 中是没有接口一说的,只有个协议。

3、协作

协作定义元素之间的相互作用;

协作UML 图
4、用例

用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;

用例UML 图
5、组件

组件描述物理系统的一部分;


组件UML 图
6、节点

一个节点可以被定义为在运行时存在的物理元素;


统一建模语言-UML_第1张图片
节点UML 图

行为事物

行为事物指的是 UML 模型中的动态部分,代表语句里的 "动词",表示模型里随着时空不断变化的部分。

1、交互

交互被定义为一种行为,包括一组元素之间的消息交换来完成特定的任务。


交互UML 图
2、状态机

状态机由一系列对象的状态组成,它是有用的,一个对象在其生命周期的状态是很重要的。


状态机UML 图

分组事物

可以把分组事物看成是一个"盒子",模型可以在其中被分解。目前只有一种分组事物,即包(package)。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。

1、包

封装是唯一一个分组事物可收集结构和行为的东西。


包UML 图

注释事物

注释事物可以被定义为一种机制来捕捉UML模型元素的言论,说明和注释。注释是唯一一个注释事物。

1、注释

注释用于渲染意见,约束等的UML元素。


注释UML 图

关系

关系是另一个最重要的构建块UML,它显示元素是如何彼此相关联,此关联描述的一个应用程序的功能,UML中定义了四种关系

依赖关系
协作
泛化
实现

依赖关系

依赖是两件事物之间的语义联系,其中一个事物的变化也影响到另一个事物。


依赖关系 UML 图

协作

一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系);

协作UML图

泛化

泛化可以被定义为一个专门的元件连接关系与一个广义的元素,它基本上描述了在对象世界中的继承关系,是一种一般化-特殊化的关系

泛化UML 图

实现

类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约


实现UML 图

UML 图

UML 图的整个讨论的最终输出所有要素,关系用于使一个完整的UML图,图中表示的系统。
UML 图的视觉效果是整个过程中最重要的部分。

图是事物集合的分类,UML 中包含多种图:

1.类图:类图描述系统所包含的类、类的内部结构及类之间的关系;
2.对象图:对象图是类图的一个具体实例;
3.用例图:用例图从用户的角度出发描述系统的功能、需求,展
示系统外部的各类角色与系统内部的各种用例之间的关系;
4.顺序图:顺序图表示对象之间动态合作的关系;
5.协作图:协作图描述对象之间的协作关系;
6.活动图:活动图描述系统中各种活动的执行顺序。
7.状态图:状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件;
8.部署关系图:部署关系图定义系统中软硬件的物理体系结构;
9.组件图:组件图描述代码部件的物理结构以及各部件之间的依赖关系;


面向对象的概念和实施步骤

步骤可以被定义为:

OO Analysis --> OO Design --> OO implementation using OO languages

UML 分类

  • 结构图
  • 行为图

UML建模类型

结构建模

结构建模具有捕捉静态的功能,包括下列各项:

  • 类图
  • 对象图
  • 部署图
  • 包图
  • 复合结构图
  • 组件图

结构模型代表的是系统架构,包含所有其他组件存在的地方。
结构模型不能描述系统的动态行为。类图中是最广泛使用的结构图。

行为建模

行为建模描述了在系统中的相互作用,代表之间的交互的结构图,行为建模显示系统的动态性质,包括下列各项:

  • 活动图
  • 交互图
  • 用例图

显示一个系统中流动的动态序列

架构建模

架构建模表示的是一个系统的总体框架,它包含了系统的结构和行为的元素。架构建模可以被定义为整个系统的蓝图。包图是根据架构模型进行的。


UML 图介绍

UML 类图

1.类图是描述系统中的类,以及各个类之间的关系的静态视图,它包括:类、接口、关联和协作。
2.类图能够让我们在正确编写代码以前对系统有一个全面的认识。
3.类图是一种模型类型,确切的说,是一种静态模型类型。
4.活动类在类图来表示系统的并发性。
5.类图代表的面向对象的系统。

UML 对象图

对象图与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类,它描述的不是类之间的关系,而是对象之间的关系。从实际的角度来看,它们被用来建立一个系统的原型。

UML 组件图

1.组件图描述代码构件的物理结构以及各种构建之间的依赖关系
2.组件图用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。
3.组件图中,构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
4.在设计阶段的软件构件(类,接口等)的系统被安排在不同的组,这取决于他们的关系。这些组被称为组件。
5.组件图用于可视化的实现。

UML 部署图

1.部署图是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。
2.部署图的使用者是开发人员、系统集成人员和测试人员。
3.部署图是一组节点和它们之间的关系,这些节点部署这些组件的物理实体。
4.部署图用于可视化系统的部署视图。
注: 如果上述描述和用法仔细观察,这是很清楚的,所有的图表都彼此有某种关系。组件图是依赖的类,接口等类/对象图的一部分。再次部署图是取决于使用的组件,这些组件,以使一个组件图。

UML 用例图

1.用例图描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。
2.一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。
因此,用例图是用来描述的功能之间的关系和他们的内部/外部控制器,这些控制器是已知的参与者。

UML 交互图

UML 状态图

1.状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件
2.状态图可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。
3.状态图是用来表示的事件驱动的系统状态的变化。它基本上描述了类,接口状态变化等

  1. 状态图是用于可视化的反应系统内部/外部因素。

UML 活动图

1.活动图描述了在一个系统中的控制流。
2.活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。
3.活动图能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
4.活动图用于可视化的流量控制在一个系统中。这是准备系统将如何工作,在执行时有一个想法。
注: 在一个系统中很难捕捉到动态性质,而 UML 已经提供从不同的角度捕捉到动态系统的功能。序列图和协作图是同构的,它们之间的转换不会丢失任何信息。


UML 基本表示法

UML 中最重要的建模元素是符号是,一个完整的、有意义的模型要适当有效地使用符号,如果一个模型中的目的没有被正确描述,则该模型是无用的。

结构事物

1、类UML表示法 +注释

统一建模语言-UML_第2张图片
类注释UML 图

1、顶端部分被用来命名类。
2、第二个是用来显示类的属性。
3、第三部分是用来描述由类执行的操作。
4、第四部分是可选的显示附加组件。

2、对象UML表示法

统一建模语言-UML_第3张图片
对象UML 表示法

该对象表示以同样的方式作为类。唯一的区别是有下划线的名称

3、接口UML 表示法

统一建模语言-UML_第4张图片
接口UML 表示法

接口是用圆来表示,它有一个名称,一般写成下面的圆圈。

4、协作UML 表示法

统一建模语言-UML_第5张图片
协作UML 表示法

协作表示由 elipse 虚线。它有一个名字,里面写 elipse。

5、用例UML表示法

统一建模语言-UML_第6张图片
用例UML表示法

用例表示它里面的一个名字作为 ellipse。
用例是用来捕捉系统的高层次功能

6、角色UML表示法

统一建模语言-UML_第7张图片
角色UML表示法

某些内部或外部的与系统进行交互的实体,可以被定义为一个角色。
角色是在描述用例图内部或外部实体。

7、初始状态UML表示法

统一建模语言-UML_第8张图片
初始状态UML表示法

初始状态的表示法的用法是显示的一个过程的起点。

8、最终状态UML表示法

最终状态UML表示法

最终状态表示法的用法是显示一个过程的终止点。

9、活动类UML表示法

统一建模语言-UML_第9张图片
活动类UML表示法

活动类类似于一类具有扎实的边界,活动类一般是用来描述一个系统的并发行为。
活动类是用来表示在一个系统的并发性。

10、元件UML表示法

统一建模语言-UML_第10张图片
元件UML表示法

UML中的一个组件,如图所示名称里面。在必要时,可以添加额外的元素。
元器件是用来表示系统的任何部分的 UML 图。

11、节点UML表示法

统一建模语言-UML_第11张图片
节点UML表示法

UML 中的一个节点表示的一个方盒子,如下图所示,同一个名字。一个节点表示一个物理的系统组件。
节点用来表示物理系统的一部分,如服务器,网络等。

行为事物

动态部分是 UML 中最重要的元素之一。
UML 有一个强大的功能集,代表软件和非软件系统的动态部分。这些功能包括交互和状态机。
相互作用可分为两种类型:

  • 顺序(序列图)
  • 协作(协作图)

1、交互UML表示法

统一建模语言-UML_第12张图片
交互UML表示法

交互基本上是两个 UML 组件之间的信息交换,图表示交互中使用不同的符号

交互是用来表示一个系统的组件之间的通信。

2、状态机UML表示法

统一建模语言-UML_第13张图片
状态机UML 表示法

状态机描述的组件在其生命周期的不同状态。在上面的图中描述的符号。

状态机是用来描述一个系统组件的不同状态。状态可以是活动,空闲或任何其他根据情况。

分组事物

组织的 UML 模型设计的最重要的方面之一。 UML 中只有一个元件即可用于分组,也就是包。

包UML表示法

统一建模语言-UML_第14张图片
包UML表示法

注释事物

任一图表中说明的不同的元素和它们的功能是非常重要的。因此,UML 符号注释,以支持这一要求

注释UML表示法

统一建模语言-UML_第15张图片
注释UML表示法

UML关系

类型

  • Dependency(依赖)
  • Association (协作)
  • Generalization (泛化)
  • Extensibility (可扩展)

依赖UML表示法

统一建模语言-UML_第16张图片
依赖UML表示法

依赖关系用虚线箭头表示,如上所示。箭头代表的独立元素,另一端的依赖元素。

依赖是UML元素的一个重要方面。它描述了相关的元素和方向上依赖关系。
依赖关系是用来表示一个系统的两个元素之间的依赖。

协作UML表示法

统一建模语言-UML_第17张图片
协作UML表示法

联合两侧的箭头的虚线表示。两端代表两个相关联的元素,如图所示。在两端(1,*等)的多样性也提到多少对象相关。

协作介绍 UML 图中的元素相关联。简单的一句话,它介绍了多少个元素参与互动。
协作是用来表示一个系统的两个元素之间的关系。

泛化UML表示法

泛化UML表示法

泛化为代表的空心箭头,如图所示箭头的一端表示的父元素而另一端表示子元素。

泛化介绍了面向对象世界的继承关系。这是父与子的关系。
泛化是用来描述一个系统的两个元素的亲子关系。

可扩展性UML表示法

所有的语言(编程或模型)有某种机制来扩展与其功能类似的语法,语义等。 UML 具有以下机制来提供可扩展性功能。

  • 定型观念(代表新元素)
  • 标记值 (代表新的属性)
  • 约束 (代表界限)
统一建模语言-UML_第18张图片
可扩展性UML表示法

可扩展标记基本上是用来表示一些额外的系统行为的附加元素。这些额外的行为,不包括可用的标准符号。


如何画类图?

  • 1、类图中的名称应该是有意义的描述,并且是面向系统的。
  • 2、画类图前应先确定每个元素之间的关系。
  • 3、类图中的每个类职责(属性和方法)应该清晰标明。
  • 4、对于每个类的属性的最小数量应符合规定,不必要的属性将使+ 图表复杂。
  • 5、使用了以下注释有否要求来描述图中的某些方面。因为上面的附图,它应该是可以理解的开发者/编码器。
  • 6、最后,在最终版本之前,该图应绘制在普通纸上尽可能多次,使其纠正和返工。

类图目的

  • 分析和设计应用程序的静态视图。
  • 描述一个系统的责任。
  • 基地组件图和部署图。
  • 正向和逆向工程。

类图举例

统一建模语言-UML_第19张图片
类图举例图

系统中的两个要素是所有订单以及客户,他们有一个一对多的关系,因为一个客户可以有多个订单。
我们将保持 Order 类是一个抽象类,它有两个具体的类(继承关系)SpecialOrder 和 NormalOrder。
两个继承类 Order 类的所有属性。此外,他们有额外的功能 dispatch () 和 receive ().


如何绘制对象图

  • 首先,分析系统,并决定哪些情况下有重要的数据和关联。
  • 其次,只考虑那些实例将涵盖功能。
  • 第三,做一些优化实例的数量是无限的。
绘制对象图之前
+ 对象图的主要内容是对象。
+ 对象图中的链接是用来连接对象。
+ 对象和链接的两个要素,用于构造一个对象图。
在开始构建图前,下列事项要明确:
+ 对象图的名称要有意义,以表明其目的。
+ 最重要的要素是要确定。
+ 对象之间的关联,应该予以明确。
+ 不同元素的值需要捕获包含在对象图。
+ 添加适当的注释,需要更清晰点。

简单举例

统一建模语言-UML_第20张图片
顾客和多种订单对象图

图例场景
现在客户对象(C)是与三阶对象(O1,O2和O3)。与订单对象相关联的有特殊订单和一般订单对象(S1,S2和N1)。顾客具有以下三个具有不同数目的订单(12,32和40)在不同的时间可能会点不同的订单。
现在,客户可以在将来增加订单数量,在这种情况下对象图将反映。观察会发现,订单、特殊订单和正常秩订单对象那么,他们有一些值, 订单的值是12,32和40,这意味着,这些对象都拥有这些实例时,能够捕获特定时刻的值(这里是购买时的时刻被视为特定时间)。


如何绘制组件图

他描述的是在软件系统中遵从并实现一组接口的物理的、可替换的软件模块。

组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector)

目的

  • 可视化系统的组成部分。
  • 构建的可执行文件,使用正向和反向工程。
  • 描述的组织和组件的关系。

组件图是用来描述一个系统的物理构件。此神器包括文件,可执行文件,库等。
所以这张图的目的是不同的,组件图的作用阶段是应用程序的实施阶段。是提前可视化的实现细节。

所以在绘制组件图后的工件是清楚可辨:

  • 在系统中使用的文件。
  • 库和其他构件的申请有关。
  • 构件之间的关系。
统一建模语言-UML_第21张图片
订单系统组件图

图例介绍
这是订单管理系统的组件图,其中的构件是java文件。所以,该图显示了在应用程序的文件以及它们之间的关系。(在实际组件图还包含 dll 文件,库,文件夹等。)

一共有四个文件,Customer.java, order.Java,NormaOrder.java,SpecialOrder.java
他们都是Java file。

其实就是文件组成结构,这里也可以把Java file 换成一个特定的文件夹
这里的与components 连接的实线可以忽略掉。只是解释作用


如何绘制部署图

概述

部署图由节点以及节点之间的关系组成。
部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。
部署图通常用来帮助理解分布式系统,一个系统模型只有一个部署图。
部署图用于可视化的软件组件部署的系统中的物理组件的拓扑结构。
部署图是用来描述一个系统的静态部署视图。

元素

1、结点(Node)

结点是存在与运行时的代表计算机资源的物理元素,可以是硬件也可以是运行其上的软件系统,比如64主机、Windows server 2008操作系统、防火墙等。
结点用三维盒装表示,如下


统一建模语言-UML_第22张图片
结点
2、结点实例(Node Instance)

结点实例的命名格式:

Node Instance : node

它与结点的区别在于名称有下划线和结点类型前面有冒号,冒号前面可以有示例名称也可以没有示例名称,如下图:

统一建模语言-UML_第23张图片
结点实例
3、结点类型(Node Stereotypes)

结点类型有:cdrom、cd-rom、computer、disk array、pc、pc client、pc server、secure、server、storage、unix server、user pc,并在结点的右上角用不同的图标表示,如下图:


统一建模语言-UML_第24张图片
结点类型
4、物件(Artifact)

物件是软件开发过程中的产物,包括过程模型(比如用例图、设计图等等)、源代码、可执行程序、设计文档、测试报告、需求原型、用户手册等等。物件表示如下,带有关键字 artifact 和文档图标


物件
5、连接(Association)

结点之间的连线表示系统之间进行交互的通信路径,这个通信路径称为连接(Association),如下图所示,连接中有网络协议:

统一建模语言-UML_第25张图片
连接
6、结点容器(Node as Container)

一个结点可以包括其他的结点,比如组件或者物件,则称此结点为结点容器(Node as Container)。如下图所示,结点(Node)包容了物件(Artifact):

统一建模语言-UML_第26张图片
结点容器

目的

  • 可视化系统的硬件拓扑。
  • 描述用于部署软件组件的硬件组件。
  • 描述运行时处理节点。

如何绘制部署图

一个高效的部署图是非常重要的,因为它控制以下参数:

  • 性能
  • 可扩展性
  • 可维护性
  • 可移植性
    在绘制部署图前应确定以下构件:
  • 节点
  • 节点之间的关系

举例

部署图是一个样品给订单管理系统的部署视图的想法,已经表明的节点:

  • 监控
  • 调制解调器
  • 缓存服务器
  • 服务器
    假定应用程序是一个基于 Web 的应用程序部署在集群环境中使用服务器1,服务器2和服务器3。用户连接到使用互联网的应用程序。控制流从缓存服务器的集群环境中。
统一建模语言-UML_第27张图片
订单管理部署图

如何绘制用例图

概述

用例图捕捉了模拟系统中的动态行为,并且描述了用户、需求以及系统功能单元之间的关系。
用例图展示了一个外部用户能够观察到的系统功能模型图。
用例图由主角,用例和它们之间的关系组成。

目的

用例图的目的是捕捉到一个系统的动态方面。
用例图是用来收集系统的要求,包括内部和外部的影响。这些要求大多是设计要求。所以,分析一个系统时要收集其功能用例和确定参与者。

  • 用例图用来收集系统的要求。
  • 用例图用于获取系统的外观图。
  • 用例图识别外部和内部因素影响系统。
  • 用例图显示要求之间的相互作用是参与者。

绘制

用例图中应该有以下项目:

  • 功能被表示为一个用例
  • 参与者
  • 用例和参与者之间的关系。

确定上述项目后,我们必须遵循以下指导原则,绘制一个有效的用例图

  • 一个用例的名称是非常重要的。所以名的选择应以这样的方式,以便它可以识别执行的功能。
  • 给出一个合适的名参与者。
  • 图中清楚地显示关系和依赖性。
  • 不要试图包括所有类型的关系。由于该图的主要目的是确定要求。
  • 使用注意以往任何时候都需要阐明一些重要的点。

举例

订单管理系统


统一建模语言-UML_第28张图片
用例图

看图,我们会发现三个用例(订单,特殊订单和正常订单)和一个参与者:顾客。
SpecialOrder 和NormalOrder 从订单使用情况扩展。因此,他们扩展了关系。另外很重要的一点是确定系统边界,这是图中所示。参与者是客户以外的系统,因为它是系统的外部用户。


如何绘制UML 交互图

概述

  • UML 交互图描述的是对象之间的动态合作关系以及合作过程中的行为次序。
  • UML 交互图常常用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况,即一个用例的实现过程。
  • UML 交互图包括两种:序列图和协作图。

序列图 :显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互。
协作图 :描述对象之间的交互关系。

作用

UML 交互图主要包括对象和消息两类元素,创建交互图的过程实际上就是向对象分配任务的过程,是可视化系统的交互行为。
由于可视化的交互是一个困难的任务,所以要使用不同类型的模型来捕获不同方面的相互作用,这也是序列图和时序图的作用。
总而言之,对交互图的描述如下:

  • 交互图捕捉一个系统的动态行为;
  • 交互图用来描述该系统中的消息流;
  • 交互图用来描述对象的结构组织;
  • 交互图是为了描述对象之间的互动。

绘制

我们已经了解了交互图的作用就是捕捉系统的动态环节。因此,关于动态捕捉,我们需要知道一个动态的环节是如何实现可视化的。
动态环节可以定义为在一个特定的时刻运行的系统快照。
在绘制交互图之前,确定以下条件:

  • 参与互动的对象;
  • 对象之间的消息流;
  • 消息的顺序流程;
  • 对象的组织。

举例

序列图
统一建模语言-UML_第29张图片
序列图

序列图中包含了四个对象:客户、订单、特殊订单和正常订单。

关系图所示的是消息序列为 SpecialOrder 对象和 NormalOrder 对象在相同的情况下使用。重要的是要了解时间顺序的消息流,与消息流无关,使用一个对象的方法调用。
首先调用的是 sendOrder(),这是一个订单对象的方法;在下一次调用 confirm (),这是一个 SpecialOrder 对象的方法;最后调用 Dispatch (),它是一种方法的 SpecialOrder 对象。所以这里的图主要描述方法从一个对象到另一个对象的调用,在系统运行时这也是实际情况:

协作图
统一建模语言-UML_第30张图片
协作图

协作图显示对象的组织,如下图所示。
这里协作图的方法调用序列是用一些数字标示。
该数字表示方法调用顺序
这些调用方法类似序列图。但不同的是,序列图中未介绍对象组织,而协作图中展示出了对象的组织。


如何绘制状态图

概述

UML 状态图是图表本身的名称,主要用于描述对象具有的各种状态、状态之间的转换过程以及触发状态转换的各种事件和条件。
UML 状态图描述了一个状态机,可以被定义为一台机器,它定义了一个对象,这些状态控制外部或内部事件的不同状态。

目的

UML 状态图可以捕获对象、子系统和系统的生命周期,可以告知一个对象可以拥有的状态,并且事件(如消息的接收,时间的流逝、错误、条件为真等)会怎样随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标志状态和复杂行为的类;该图可以确定类的行为以及该行为如何根据当前的状态而变化,也可以展示哪些事件将会改变类的对象的状态。

状态图主要是为了模拟响应系统。

  • 为了模拟系统的动态环节。
  • 反应系统模型生命周期。
  • 一个对象来描述不同的状态,在其生命周期的时间。
  • 定义一个状态机模型状态的对象。

绘制

状态图是用来描述不同的对象在其生命周期的状态。因此,强调的是一些内部或外部事件的状态发生变化时,这些对象的状态要重要的分析和准确的贯彻落实。
状态图描述的状态是非常重要的。对象的状况,当发生特定事件时,可以被确定为状态。
绘制状态图之前,我们必须明确以下几点:

  • 识别对象,以进行分析。
  • 识别状态。
  • 识别的事件。

举例

统一建模语言-UML_第31张图片
状态图

第一个状态表示空闲状态的过程从哪里开始;接下来的状态表示到达的事件,如发送请求,确认请求,并调度顺序,这些事件负责订单对象的状态变化。
在对象的生命周期(这里为了对象)通过以下状态的时候有可能也存在一些不正常的退出。出现这种不正常的退出可能是由于系统中的一些问题。
整个生命周期完成时,它被视为完整的交易下文所述。


如何绘制UML活动图

概述

  • UML 活动图是 UML 的动态模型的一种图形,一般用来描述相关用例图。
  • UML 活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。
  • UML 活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。
  • UML 活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模
  • UML 活动图基本上是代表流程形成一个活动到另一个活动的流程图。活动可以被描述为一个系统的操作。

目的

UML 活动图能够捕捉到该系统的动态行为,UML 中其它的四个图是用来显示从一个对象到另一个消息流,但活动图是用来显示消息流从一个活动到另一个活动图。
活动图不仅用于可视化系统的动态性质,也可用于通过使用正向和逆向工程技术来构建可执行的系统。唯一缺少的东西在活动图的消息部分。
它并不显示任何消息流程从一个活动到另一个。活动图是一段时间视为流程图。虽然图中看起来像一个流程图,但事实并非如此。它显示不同的流程,如并行,分支,并发单。
以下是 UML 活动图目的描述:

  • 绘制活动流程系统。
  • 描述的顺序从一个活动到另一个。
  • 描述系统并行,分支,并发流。

绘制

活动图主要用于为流程图包括由系统执行的活动,但活动图是不完全的,因为他们有一些额外的功能流程图。这些额外的功能,包括分支,平行流,泳道等。
绘制活动图之前,我们得知道活动图的主要元素是活动本身,一个活动是由系统执行的功能。确定活动后,我们需要了解他们是如何相关的约束和条件。
所以在绘制活动图,我们应该确定以下要素:

  • 活动
  • 交互
  • 条件
  • 约束
    上述参数确定后,我们需要做一个心理布局整个流程。这种心理的布局转化成一个活动图。

你可能感兴趣的:(统一建模语言-UML)