UML活动图与状态图

article/2025/10/1 22:24:08

笔记基于《UML和模式应用》教材

  • UML活动图

    •  基本的UML表示法


      基本的UML活动图表示法,包括动作、分区、分叉点、连接点和对象节点等。分区有助于观察多个参与者以及业务过程中涉及的并行动作,对象节点可以描述动作周围移动的事物。

    • 其他UML活动图表示法

      • 耙子,决策,合并


        当某个活动需要在另外一个活动图中展开时,如何表示?可以使用耙子符号来表示。
        如何表示条件分支?决策符号。与之相关的是合并符号,用来表示分支流能够汇合到一起。
      • 信号


        当你需要对时间触发动作或取消请求等诸如此类的事件建模时,信号非常有用。
    • 数据流图与UML活动图
      从20世纪70年代开始,数据流图(DFD)就已经成为数据流建模的流行方法。
      数据流图(DFD)用于对软件系统过程中所涉及的主要步骤和数据进行可视化。
      尽管理论上讲DFD可以用于业务过程建模,但其通常用于表示计算机系统中的数据流。
      对于文档化和探索来说,DFD模型所提供的信息都具有效用,但UML中并没有包含DFD表示法。幸运地是,UML活动图能够满足同一目的---用于数据流建模,从而代替传统的DFD表示法。注意,除对象节点 (object node)以外,UML数据存储节点(datastore node)也适用于表示数据流。
      • 数据流图(DFD)
  • UML状态图

    • 基本UML状态图表示法

      • 事件(event)
        是指-一件值得注意的事情的发生。
        例如:·电话接线员拿起话筒。
      • 状态( state)
        是指对象在事件发生之间某时刻所处的情形。
        例如:·接线员挂机之后再次拿起话简之前电话处于“idle”状态。
      • 转换(transition)
        是两个状态之间的关系。它表明当某事件发生时,对象从先前的状态转换到后来的状态。
        例如:·当事件“off hook”发生时,电话从“idle”状态转换为“active”状态。
    • 更多UML状态图表示法

      • 转换动作和监护


        1.转换可以触发动作。在软件实现中,这可能意味着状态机图所表示对象的某个方法的调用。
        ​2.转换可以有一个条件监护逻辑测试—-或布尔测试。只有测试通过时,转换才发生。
      • 嵌套状态


        一个状态允许嵌套,以包含子状态﹔子状态继承其父状态的所有转换。
        例如,当发生某个到“active”状态的转换,“PlayingDialTone”状态被创建,并自动转换到该状态。无论对象处于“active”状态的哪一个子状态,当“on hook”事件发生时,则发生向"Idle”状态的转换。
    • 如何应用状态图

      • 状态无关和状态依赖对象
        如果一个对象对某事件的响应总相同,则认为此对象对于该事件状态无关。
        如果,对于所有事件,对象的响应总是相同的,则该对象是一个状态无关对象。相反,状态依赖对象对事件的响应根据对象的状态或模式而不同。
        只有对于这些复杂的状态依赖的问题,状态机图才有助于人们对某些方面的理解和文档化。
      • 对状态依赖对象建模
        • 1)对复杂的事件交互对象建模。
        • 2)对操作协议和语言规范的合法序列建模。
          • 示例——NextGen用例的状态机图


            上图用一个状态机图展示了用例操作的合法序列。
          • 示例——使用状态机进行UI导航建模


            用状态表示页面,事件表示引起从一个页面向另外一个页面转换的用户事件,例如按钮被按下。

思维导图


http://chatgpt.dhexx.cn/article/uu6a834I.shtml

相关文章

UML状态图和活动图

转载于https://www.cnblogs.com/jingwhale/p/4230235.html UML状态图和活动图 UML状态图和活动图 统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在…

UML图之『状态图』就是这么简单搞定

UML图之状态图 状态图的组成元素: 初始状态 初始状态是状态机的起始位置,它不须要事件的触发。由黑色实心圆点来表示 状态 状态是对象运行某项活动或等待某个事件的条件。 状态用圆角矩形表示 复合状态 复合状态是具有子状态(或称为嵌…

UML 状态图 statechart diagram

1. 什么是状态图 状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成。说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件的响应。 2. 状态图的作用 1). 状态图描述了状态之间的转换顺序&#x…

UML状态图

状态图(Statechart digram)是系统分析的一种常用工具,系统分析员在对系统建模时,最先考虑的不是基于活动之间的控制流,而是基于状态之间的控制流,因为系统中对象的状态变化最易被发现和理解。 状态机…

使用EA绘制UML状态图

1.创建包,并命名 2.右击包,创建图 3.创建状态图并命名 3.拖入需要的元素,并命名 4.将Initial与State联系起来 点击Initial,旁边会出现一个向上的小箭头,点击小箭头,将其与State连在一起 5.选择Initial和S…

UML状态图详解

先放目录,一共四部分: 什么是UML状态图? UML状态图的组成 UML状态图实例 UML状态图怎么画? 一、什么是UML状态图? 状态图(UML 1.x规范中的称呼),是一种展示状态机的图&#xff…

UML 状态图

在系统分析员对某对象建模时,最自然的方法并不是着眼于从活动到活动的控制流,而是着眼于从状态到状态的控制流。 状态机 定义: 状态机是展示状态与状态转换的图。在计算机科学中,状态机的使用非常普遍:在编译技术中通…

时序图、流程图、状态图、协作图之间的区别

时序图 时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序. 当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件. 在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的…

UML之状态图

一、状态图概要 状态图是一种行为图。描述一个特定对象的所有可能的状态以及引起状态转换的事件。 在面向对象的软件系统中,一个对象无论多么简单或者多么复杂,都必然会经历一个从开始创建到最终消亡的完整过程,这个过程通常被称为对象的生命…

一张图阐述UML状态图的画法【软件工程】

文章目录 I.介绍状态图II.一图搞定状态图画法 I.介绍状态图 状态图展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。 它有两大特征: 1️⃣所有的变化都是针对某一个特定的对象,这个对象会触发各种的状态。 2️⃣触发的…

UML状态图 几种状态图

目录 1、状态图模型要素 2、 几种类型 2.1初态(start state) 2.2终态 (end state) 2.3 中间状态 2.4组合状态 2.5历史状态(History state) 3、状态图建模步骤 4、几种状态图举例 1、状态图模型要素…

UML--状态图

一、 概述 状态图(State Diagram)用来描述一个特定对象在其生命周期中的各种状态以及状态之间的转换。这些对象可以是类、接口等等 二、作用 -状态图清晰地描述了状态之间的转换顺序,通过状态的转换顺序可以清晰看出事件的执行顺序。如果没有状态图就不可避免的要使…

DBSCAN聚类算法(商场数据分析)

DBSCAN聚类算法(商场数据分析) 引入库邻域半径,最少点数目参数数据最佳参数分析选择最佳参数,查看结果 引入库 from sklearn.cluster import DBSCAN邻域半径,最少点数目参数 from itertools import producteps_value…

机器学习-DBSCAN聚类算法

文章目录 DBSCAN算法原理DBSCAN算法流程DBSCAN的参数选择DBSCAN优缺点总结 K-Means算法和Mean Shift算法都是基于距离的聚类算法,基于距离的聚类算法的聚类结果是球状的簇,当数据集中的聚类结果是非球状结构时,基于距离的聚类算法的聚类效果并…

DBSCAN聚类算法实例

1.实验目标 算法:DBScan,基于密度的聚类算法 输入: D:一个包含n个数据的数据集 r:半径参数 minPts:领域密度阈值 输出:基于密度的聚类集合 2.实验步骤 标记D中所…

DBSCAN聚类算法原理和伪代码

1.DBSCAN算法 K-means聚类算法基于距离的聚类算法,其中的局限性在于,在凸集中进行聚类,但是在非凸集聚类效果不佳。如图: 对于下图,进行聚类,传统的聚类算法效果不佳,使用DBSCAN则效果更佳。 D…

Python学习2——DBSCAN聚类算法

一、原理 参考博文: DBSCAN聚类算法Python实现_徐奕的专栏-CSDN博客_dbscan pythonhttps://blog.csdn.net/xyisv/article/details/88918448DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样…

DBSCAN聚类算法——MATLAB实现

声明:本文修改自《数学建模清风》老师的代码 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够…

DBSCAN聚类算法实用案例

目录 1、DBSCAN算法介绍4、DBSCAN 的参数选择5、Scikit-learn中的DBSCAN的使用核心参数:属性:1、DBSCAN算法介绍 下图中,左边的图形可以使用K-Means算法进行聚类,右边两个有交叉部分【噪音】,故需要使用密度聚类(DBSCAN)算法 K-Means和层次聚类算法,是基于对象之间的距…

DBSCAN 聚类算法详解

参考: https://www.cnblogs.com/zhengxingpeng/p/6670486.htmlhttps://www.cnblogs.com/chaosimple/p/3164775.htmlhttps://www.jianshu.com/p/e8dd62bec026 1. DBSCAN简介: DBSCAN(Density-Based Spatial Clustering of Applications with …