UML概述

1 概述

在这里插入图片描述

1.1 简介

统一建模语言(Unified Modeling Language,UML)又称标准建模语言,它是由格雷迪Booch、伊瓦尔·雅各布森和詹姆斯·鲁博在1994-1995年在Rational软件公司开发。1997年晚些时候,该标准被采纳为行业标准。
UML是一种用广泛接受的图形符号表达软件组件设计的方法。在使用任何文本编程语言开始编写模型本身之前,拥有图形模型通常很好。稍后,该模型也可用于文档目的。UML的用处可以通过以下现实场景来描述:当我们加入新开发人员时,我们不希望他们阅读每一行代码并猜测它的全部内容; 我们想给他们一个整个系统的概述。同样,当我们希望他们处理某个功能时,我们不希望他们只是口头上的简要介绍; 我们希望它们具有所需特征的蓝图,因此使用UML图。
UML最初是在白板上的草图,具有最少量的细节,以便与团队成员进行设计讨论。在最终确定决策时,将相关草图放在更复杂的工具上,最终结果将作为程序员使用的蓝图。

1.2 功能

UML 提出了一套 IT 专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划。UML支持面向对象的技术,能够准确的方便地表达面向对像的概念,体现面向对象的分析和设计风格。
UML 统一了Booch、OMT、OOSE和其他面向对象方法所涉及的基本概念和建模符号。

1.3 特点

  • 面向对象
  • 可视化,表达能力强
  • 独立于过程
  • 独立于程序设计
  • 容易掌握使用

1.4 构成

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

1.5 核心

UML 的核心是图表,大致可以将这些图归类为结构图和行为图。
结构图是静态图,如:

  • 类图
    类图是唯一可以直接映射到面向对象的语言UML图。因此,它被广泛应用于开发者社区。
  • 对象图
    对象图用于原型设计,逆向工程和实际场景建模。
  • 组件
    组件图包括物理组件,如库,档案,文件夹等。正向和逆向工程技术的使用,使可执行文件组件图。
  • 部署图
    一个高效的部署图是应用软件开发的一个组成部分。
  • 包图
  • 复合结构图
  • 部署图

行为图是动态图,如:

  • 用例图
  • 活动图
  • 序列图
  • 状态图
  • 通讯图
  • 时序图
  • 交互概述图

1.6 工具

对于建模,可以用纸笔完成,但是工程需要严谨、可追溯,也就必须文档化。下面介绍专业工具

  • Microsoft Visio
    桌面/在线 会员
  • PlantUML
    IDE插件/扩展/在线 免费
  • 语雀
    在线 免费/会员

2 构成详解

构成UML的有:事物、关系、图

2.1 事物

事物是是实体抽象化的最终结果,是 UML 构建块最重要的组成部分,事物的分类有结构事物、行为事物、分组事物、注释事物

2.1.1 结构事物

机构事物是模型中的静态部分,呈现概念或实体的表现元素。


  • 类是指具有相同属性、方法、关系和语义的对象的集合;
    在这里插入图片描述
  • 接口
    接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作;
    在这里插入图片描述
  • 协作
    协作定义元素之间的相互作用;
  • 用例
    用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;
    在这里插入图片描述
  • 组件
    组件描述物理系统的一部分;
    在这里插入图片描述
  • 节点
    一个节点可以被定义为在运行时存在的物理元素;
    在这里插入图片描述

2.1.2 行为事物

行为事物指的是模型中的动态部分,代表语句里的 “动词”,表示模型里随着时空不断变化的部分,包含两类:交互和状态机

  • 交互
    交互被定义为一种行为,包括一组元素之间的消息交换来完成特定的任务。
    在这里插入图片描述
  • 状态机
    状态机由一系列对象的状态组成,它是有用的,一个对象在其生命周期的状态是很重要的。
    在这里插入图片描述

2.1.3 分组事物

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


  • 封装是唯一一个分组事物可收集结构和行为的东西。
    在这里插入图片描述

2.1.4 注释事物

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

  • 注释
    注释用于渲染意见,约束等的UML元素。
    在这里插入图片描述

2.2 关系

关系是UML中一个最重要的构建块,它显示元素是如何彼此相关联,此关联描述的一个应用程序的功能,UML中定义了四种关系:依赖、协作、泛化、实现

2.2.1 依赖

依赖是两件事物之间的语义联系,其中一个事物的变化也影响到另一个事物。
在这里插入图片描述

2.2.2 协作

一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系)。
在这里插入图片描述

2.2.3 泛化

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

2.2.4 实现

类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
在这里插入图片描述

2.3 图

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

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

3 架构

UML 是由视图(View)、图(Diagrams)、模型元素(Model elements)和通用机制等几个部分构成。

  • 视图用来表示被建模系统的各个方面。由多个图构成,它不是一个图片,而是在某一个抽象层上,对系统的抽象表示。如果要为系统建立一个完整的模型图,只需定义一定数量的视图,每个视图表示系统的一个特殊方面就可以了。视图还把建模语言和系统开发时选择的方法或过程连接起来。
  • 图由各种图片构成,用来描述一个视图的内容。UML语言定了9中不同的图的类型,把它们有机地结合起来就可以描述系统的所有视图。
  • 模型元素代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常用概念。
  • 通用机制用于表示其他信息,比如注释、模型元素的语义等。它还提供扩展机制,使UML语言能够适应一个特殊的方法(或过程)、或扩充至一个组织或用户。

UML 系统可以由不同的用户使用,用户可以是开发人员、测试人员、商务人士、分析师等等,所以要设计一个系统的体系结构,最重要的是做到从不同的角度来看,实现可视化系统,这样也可以让我们自己更好的了解系统,让它达到一个更好的效果。

从不同的角度使用 UML 定义一个系统的起着重要的作用,这些角度是:

  • 设计
  • 实现
  • 处理
  • 部署
    该中心是连接所有这四个用例视图,一个用例代表了系统的功能。因此,其他的角度连接使用的情况下:
  • 系统设计包括类,接口和协作。 UML类图,对象图支持。
  • 实现定义的组件组装在一起,使一个完整的物理系统。 UML组件图是用来支持实施的角度。
  • 流程定义了系统的流动。因此,在设计中所用的相同的元件也可用来支持当前角度看。
  • 部署代表物理节点的硬件系统构成。 UML部署图是用来支持这个角度来看。

4 UML建模类型

UML建模可以把复杂世界的很多细节抽象出来。为了区分 UML 模型, UML 建模用不同类型的不同的图。下面介绍三个重要类型的UML建模:

4.1 结构建模

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

  • 类图
  • 对象图
  • 部署图
  • 包图
  • 复合结构图
  • 组件图
    结构模型代表的系统架构,这个框架的所有其他组件存在的地方。因此,类图,组件图和部署图的部分结构建模。它们都代表的元素和机制将它们组装。类图是最广泛使用的结构图。

4.2 行为建模

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

  • 活动图
  • 交互图
  • 用例图
    所有上述的显示在一个系统中流动的动态序列。

4.3 架构建模

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

5 基本表示方法

UML 中最重要的建模元素是符号,恰当的使用符号才能正确描述模型思路。

6 标准图

UML中图分为两类:结构图和行为图
结构图:类图、对象图、组件图、部署图

  • 类图
    类图是描述系统中的类,以及各个类之间的关系的静态视图,它包括:类、接口、关联和协作。类图能够让我们在正确编写代码以前对系统有一个全面的认识
  • 对象图
    对象图与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类,它描述的不是类之间的关系,而是对象之间的关系。从实际的角度来看,它们被用来建立一个系统的原型。
  • 组件图
    组件图描述代码构件的物理结构以及各种构建之间的依赖关系。
    组件图用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。
    组件图中,构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
    在设计阶段的软件构件(类,接口等)的系统被安排在不同的组,这取决于他们的关系。这些组被称为组件。
    组件图用于可视化的实现。
  • 部署图
    部署图是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。
    部署图的使用者是开发人员、系统集成人员和测试人员。
    部署图是一组节点和它们之间的关系,这些节点部署这些组件的物理实体。
    部署图用于可视化系统的部署视图。

行为图:用例图、序列图、协作图、状态图、活动图

  • 用例图
    用例图描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。
    一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。
    因此,用例图是用来描述的功能之间的关系和他们的内部/外部控制器,这些控制器是已知的参与者。
  • 序列图
    序列图是一种交互图。
    序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。
    序列图可以用来展示对象之间是如何进行交互的。
    序列图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
    从实施和执行的角度来看是非常重要的系统组件之间的交互。
    因此,在一个系统中执行一个特定的功能的调用序列的序列图是用于可视化。
  • 协作图
    协作图和序列图相似,是另一种形式的交互图;如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图。
    协作图代表了一个系统的组织结构和发送/接收的消息。组织结构由对象和链接。
    协作图的目的是类似的序列图。但是,协作图的具体目的是可视化的组织对象及其相互作用。
  • 状态图
    状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。
    状态图可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。
    状态图是用来表示的事件驱动的系统状态的变化。它基本上描述了类,接口状态变化等
    状态图是用于可视化的反应系统内部/外部因素。
  • 活动图
    活动图描述了在一个系统中的控制流。
    活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。
    活动图能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
    活动图用于可视化的流量控制在一个系统中。这是准备系统将如何工作,在执行时有一个想法。

6.1 结构图

6.1.1 类图

类图是描述系统中的类,以及各个类之间的关系的静态视图,它包括:类、接口、关联和协作。类图能够让我们在正确编写代码以前对系统有一个全面的认识。类图的目的是模拟出一个应用程序的静态视图。
UML 类图是软件行业经常需要的一项技能。许多项目立项文档、需求分析等文档中,都会有关UML类图的涉及,所以,学习UML类图的绘制至关重要。

目的

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

画类图要点

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

示例

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

6.1.2 对象图

对象图可以被想象成正在运行的系统在某一时刻的快照。
例如一个正在运行的列车,某一刻快照显示如下:
这是一个特别的运行状态
一个特定的乘客数量。如果捕捉在不同的时间,这将在不断改变。

目的

  • 正向和逆向工程。
  • 一个系统的对象间的关系
  • 一个交互的静态视图。
  • 了解对象的行为和他们的关系从实用的角度来看

绘制对象图的策略

  • 首先,分析系统,并决定哪些情况下有重要的数据和关联。
  • 其次,只考虑那些实例将涵盖功能。
  • 第三,做一些优化实例的数量是无限的。

绘制对象图的要点

  • 对象图的主要内容是对象。
  • 对象图中的链接是用来连接对象。
  • 对象和链接的两个要素,用于构造一个对象图。
  • 对象图的名称要有意义,以表明其目的。
  • 最重要的要素是要确定。
  • 对象之间的关联,应该予以明确。
  • 不同元素的值需要捕获包含在对象图。
  • 添加适当的注释,需要更清晰点。

示例

订单管理系统
确定有哪些对象

  • 顾客
  • 订单
  • 特殊订单
  • 一般订单

现在客户对象(C)是与三阶对象(O1,O2和O3)。这些订单对象相关联的特殊订单和一般订单对象(S1,S2和N1)。顾客具有以下三个具有不同数目的订单(12,32和40),用于所考虑的特定的时间。
现在,客户可以在将来增加的订单数量,在这种情况下对象图将反映。如果订单、特殊订单和正常秩订单对象那么观察会发现,他们有一些值。
订单的值是12,32和40,这意味着,这些对象都拥有这些实例时,捕获特定时刻的值(这里是购买时的时刻被视为特定时间)。
相同特别订订单和正常订单对象所具有的订单数分别为20,30和60。如果被认为是一个不同的时间购买,那么这些值将发生相应的变化。
因此,下面的对象图已经绘就考虑到所有上述提到的几点:
在这里插入图片描述

应用范围

  • 使一个系统的原型。
  • 逆向工程。
  • 造型复杂的数据结构。
  • 从实用的角度了解系统。
  • 捕捉实例和链接。
  • 详细描述瞬态图。

6.1.3 组件图

组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector)
UML 组件图给提供了将要建立的系统的高层次的架构视图,这将帮助开发者开始建立实现的路标,并决定关于任务分配及(或)增进需求技能。
组件图用于可视化在一个系统中的物理组件。这些组件包括库,程序包,文件等。

目的

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

应用范围

UML 组件图经常是一个架构师在项目的初期就建立的非常重要的图,它是无价的,因为它们模型化和文档化了一个系统的架构。

  • 组件建模的一个系统。
  • 模型的数据库架构。
  • 模型的应用程序的可执行文件。
  • 模型系统的源代码。

6.1.4 部署图

概述

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

元素

  • 结点(Node)
    结点是存在与运行时的代表计算机资源的物理元素,可以是硬件也可以是运行其上的软件系统,比如64主机、Windows server 2008操作系统、防火墙等。
    结点用三维盒装表示,如下图所示:
    在这里插入图片描述
  • 结点实例(Node Instance)
    结点实例的命名格式:Node Instance : node。它与结点的区别在于名称有下划线和结点类型前面有冒号,冒号前面可以有示例名称也可以没有示例名称,如下图:
    在这里插入图片描述
  • 结点类型(Node Stereotypes)
    结点类型有:cdrom、cd-rom、computer、disk array、pc、pc client、pc server、secure、server、storage、unix server、user pc,并在结点的右上角用不同的图标表示,如下图:
    在这里插入图片描述
  • 物件(Artifact)
    物件是软件开发过程中的产物,包括过程模型(比如用例图、设计图等等)、源代码、可执行程序、设计文档、测试报告、需求原型、用户手册等等。物件表示如下,带有关键字 artifact 和文档图标
    在这里插入图片描述
  • 连接(Association)
    结点之间的连线表示系统之间进行交互的通信路径,这个通信路径称为连接(Association),如下图所示,连接中有网络协议:
    在这里插入图片描述
  • 结点容器(Node as Container)
    一个结点可以包括其他的结点,比如组件或者物件,则称此结点为结点容器(Node as Container)。如下图所示,结点(Node)包容了物件(Artifact):
    在这里插入图片描述

目的

部署图是用来描述软件组件部署的硬件组件;而组件图是用来描述组件和显示了它们是如何在硬件中部署。

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

绘制考虑事项

部署图对系统工程师是非常有用。绘制前要确定节点和节点之间的关系。

  • 性能
  • 可扩展性
  • 可维护性
  • 可移植性

示例

一个样品给订单管理系统的部署图思路,已经确定的节点

  • 监控
  • 调制解调器
  • 缓存服务器
  • 服务器
    假定应用程序是一个基于 Web 的应用程序部署在集群环境中使用服务器1,服务器2和服务器3。用户连接到使用互联网的应用程序。控制流从缓存服务器的集群环境中。
    所以下面的部署图已经制定考虑到所有上述提到的几点:
    在这里插入图片描述

应用范围

  • 为了模拟一个系统的硬件拓扑。
  • 嵌入式系统建模。
  • 为了模拟一个客户机/服务器系统的硬件的详细信息。
  • 为了模拟硬件的分布式应用程序的细节。
  • 正向和逆向工程。

6.2 行为图

6.2.1 用例图

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

目的

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

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

绘制原则

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

示例

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

应用范围

  • 需求分析和高水平的设计。
  • 模拟系统的上下文。
  • 逆向工程。
  • Forward engineering.

6.2.2 交互图

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

作用

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

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

绘制条件

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

示例

订单管理系统。

  • 序列图
    序列图中包含了四个对象:客户、订单、特殊订单和正常订单。
    下面的关系图所示的消息序列为 SpecialOrder 对象和 NormalOrder 对象在相同的情况下使用。现在重要的是要了解时间顺序的消息流,与消息流无关,使用一个对象的方法调用。
    首先调用的是 sendOrder(),这是一个订单对象的方法;在下一次调用 confirm (),这是一个 SpecialOrder 对象的方法;最后调用 Dispatch (),它是一种方法的 SpecialOrder 对象。所以这里的图主要描述方法从一个对象到另一个对象的调用,在系统运行时这也是实际情况:
    在这里插入图片描述
  • 协作图
    协作图显示对象的组织,如下图所示。
    这里协作图的方法调用序列是表示,由一些数字技术,如下所示。
    该数字表示方法如何被称为此起彼伏。我们已经采取了相同的订单管理系统,协作图来描述。
    这些调用方法类似的序列图。但不同的是,序列图中未介绍的对象组织,而协作图中示出的对象的组织。
    现在选择这两个图表之间主要强调的是需求类型。如果时间序列是很重要的,那么序列图中被使用,并且,如果需要的组织,那么使用协作图。
    在这里插入图片描述

应用范围

  • 按时间顺序的控制流建模。
  • 为了模拟流结构组织控制。
  • 对于正向工程。
  • 逆向工程。

6.2.3 状态图

概述

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

目的

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

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

示例

先确定如下几点:

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

应用范围

  • 为了模拟一个系统的对象的状态。
  • 为了模拟响应系统。反应体系由反应物。
  • 为了找出事件负责任的状态变化。
  • 正向和逆向工程。

6.2.4 活动图

概述

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

目的

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

示例

先确定要素:活动、交互、条件、约束
订单管理系统的活动图,所述四个主要活动:

  • 由客户发送订单
  • 收到订单
  • 确认订单
  • 分发订单

收到订单后请求状态进行检查,以检查它是否是正常的或特殊的顺序。不同的顺序确定之后,执行调度活动,并标记为终止进程。
在这里插入图片描述

应用范围

  • 使用业务建模工作流程。
  • 建模的业务需求。
  • 高层次的理解系统的功能。
  • 调查在后一阶段的业务需求。

资料汇总

  • 《UML distilled》fowler 著 [3rd Edition] 英文版
  • 《UML和模式应用》Larman 著,fowler 大力推荐
  • 《UML用户指南》作者 UML3个老爹, 乃UML思想之结晶
  • 《UML对象设计与编程》北美程序员刘润东 著, 示例经典
  • 《UML 教程》(w3cschool)
  • real-world-plantuml

参考

1、PlantUML官网
2、PlantUML类图的写法
3、工欲善其事,必先利其器之—使用PlantUML画UML图
4、使用PlantUML和VS Code轻松实现UML
5、UML Made Easy with PlantUML & VS Code
6、PlantUML在线
7、uml的学习–书籍
8、UML最全面的总结,全网或许就这一篇!
9、《UML 教程》(w3cschool)
10、语雀–PlantUML

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读