首页 > 其他分享 >UML 状态机图

UML 状态机图

时间:2023-10-26 10:56:57浏览次数:32  
标签:状态 转换 可以 状态机 事件 UML 下图

文章来源:http://tool.uml.com.cn/ToolsEA/state-diagram.asp

状态机图

状态机图对单个对象的行为进行建模,指定对象在其生命周期内为响应事件而经历的事件序列。

活动图示例如下所示。

门可以处于以下三种状态之一:“打开”、“关闭”或“锁定”。 它可以响应打开、关闭、锁定和解锁事件。 请注意,并非所有事件在所有状态下都有效; 例如,如果一扇门是打开的,在您关闭它之前您无法锁定它。 另请注意,状态转换可以附加一个保护条件:如果门打开,则只有在满足 doorWay->isEmpty 条件时才能响应关闭事件。 以下部分将全面讨论状态机图中使用的语法和约定。。

状态

一个状态由一个圆角矩形表示,其中写有状态的名称。

起点和终点

起点由实心黑色圆圈表示,并且可以标有名称。 终点由内部带有点的圆圈表示,也可以用名称标记。

过渡

从一种状态到下一种状态的转换用带箭头的线表示。转换可能有触发器、守卫和效果,如下所示。

“触发器”是转换的原因,可能是信号、事件、某些条件的变化或时间的流逝。“Guard”是一个条件,它必须为真才能使触发器引起转换。“效果”是一个动作,它将作为转换的结果直接在拥有状态机的对象上调用。

状态动作

在上面的过渡示例中,效果与过渡相关联。如果目标状态有许多到达它的转换,并且每个转换都有与之关联的相同效果,那么最好将效果与目标状态相关联而不是转换。这可以通过为状态定义一个进入动作来完成。下图显示了具有进入操作和退出操作的状态。

也可以定义在事件上发生的动作,或总是发生的动作。 可以定义任意数量的每种类型的动作。

自身转换

状态可以有一个返回自身的转换,如下图所示。 当效果与过渡相关联时,这是最有用的。

复合状态

状态机图可以包括子机图,如下例所示。

 

显示相同信息的另一种方法如下。

 

以上版本中的符号表示Check PIN子机的详细信息以单独的图表显示。

入口点

有时您不想在正常初始状态下进入子机。 例如,在下面的子机中,通常以“Initializing”状态开始,但如果由于某种原因不需要执行初始化,则可以通过以下方式以“Ready”状态开始过渡到指定的入口点。

 

下图显示了上一级的状态机。

出口点

以与入口点类似的方式,可以命名替代出口点。 下图给出了一个示例,其中在主处理状态之后执行的状态取决于用于转换出状态的路由。

选择伪状态

选择伪状态显示为一个菱形,其中一个转换到达,两个或多个转换离开。 下图显示,在选择伪状态之后到达的任何状态都取决于在执行前一个状态期间选择的消息格式。

结伪状态

结点伪状态用于将多个转换链接在一起。 单个结点可以有一个或多个传入和一个或多个传出转换; 可以将保护应用于每个转换。 连接点是无语义的。 将传入转换拆分为多个传出转换的结实现静态条件分支,而不是实现动态条件分支的选择伪状态。

终止伪状态

进入终止伪状态表明状态机的生命线已经结束。 终止伪状态用叉号表示。

历史状态

历史状态用于记住状态机被中断时的先前状态。下图说明了历史状态的使用。该示例是属于洗衣机的状态机。

在这种状态机中,当洗衣机运行时,它会从“Washing”经过“Rinsing”再到“Spinning”。如果停电,洗衣机将停止运行并进入“关机”状态。然后当电源恢复时,在“历史状态”符号处进入运行状态,这意味着它应该从上次停止的地方恢复。

并发区域

一个状态可以被划分为包含多个同时存在和执行的子状态的区域。下面的例子表明,在“Applying Brakes”状态下,前后制动器将同时独立运行。注意 fork 和 join 伪状态的使用,而不是选择和合并伪状态。这些符号用于同步并发线程。

 

标签:状态,转换,可以,状态机,事件,UML,下图
From: https://www.cnblogs.com/ITnoteforlsy/p/17788843.html

相关文章

  • Unity基于状态机的架构与设计
    我们做游戏的时候经常会有流程控制,流程控制的方法有很多,行为决策树,状态机等。本质差别都不大,就是把每一段执行逻辑做成一个一个的节点,根据条件执行某个节点,切换到某个节点。今天给大家分享一下基于状态机来做游戏流程的控制。 1一个简单的状态机案例 我们先来拆解一个使用......
  • uml中类与类之间的关系
    0关联关系:  ......
  • spring 状态机demo
    spring状态机demo<dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-core</artifactId><version>2.0.1.RELEASE</version>......
  • 设计模式02 —— UML
    设计模式02——UML本教程参考:菜鸟教程-学的不仅是技术,更是梦想!(runoob.com)参考书:《图解设计模式》本系列为本人学习笔记,和课程学习笔记,资料和参考均源自互联网,希望各位大佬多多指点!UML的概念UML的全称是UndefinedModelingLanguage(统一建模语言)是让系统可视化,让规格......
  • UML中的关系
    目录类和接口的关系实现(enable)对象和对象的关系继承(is)关联关系依赖(use)聚合(have)组合(contain)和聚合关联的区别类和接口的关系实现(enable)接口提供一组功能的描述,而实现就是编写接口的代码部分DriverenableDrivable,Driver实现了DrivableclassDriverimple......
  • 《算法学习专栏》—— DP问题之状态机模型
    2023年10月13日更新于2023年10月13日一、前言本栏,为状态机模型,题目主要来源日常,目前主要来源于Acwing的提高课。希望以后做到状态机的题目,也能加进来,不断完善。使用的分析方法均为闫式DP分析法。字臭。。。希望能用手写板慢慢写的好看。二、状态机模型2.1对于状态机的考虑......
  • UML五大视图
    树形图总结分开介绍1、用例视图--用例视图强调从系统的外部参与者(主要是用户)的角度看到的或需要的系统功能2、逻辑视图--逻辑视图从系统的静态结构和动态行为角度显示如何实现系统的功能3、进程视图--侧重于系统的运行4、开发视图(实现视图)--侧重于软件模块的组织和管理......
  • UML相关知识复习
    1、耦合标记耦合--->参数传递;访问另一个模块的内部数据-->内部耦合;模块之间关联程度最高的是内部耦合;2、内聚内聚程度由高到低:功能聚合-->顺序聚合-->瞬时聚合-->逻辑聚合;3、数据流图(DFD)数据流图包括:外部实体、数据流、加工、数据存储;4、设计模式的根本目的复习相似问题......
  • 软考学习之UML相关知识复习
    1、六大关系复习1、泛化--即子类继承父类,在图中用extends标识2、实现--在图中用implements标识,指实现某个接口3、关联--指一个类和另一个类有关系4、聚合--弱拥有关系,即B包含于A,但是B并不属于A5、组合--是一种强拥有关系,体现了严格的整体和部分的关系6、依赖--两个类之......
  • UML简介6活动(Activity)图
    6活动图活动图侧重于将程序处理建模为系统。它规定了实现活动所需的各个步骤--操作--之间的控制流和数据流。在UML2中,活动图使用面向流程的语言概念,这些概念起源于定义业务流程的语言。活动图也基于用于描述并发通信过程的既定概念,如Petri网的标记概念。活动图的特点是既支持......