状态图是以状态为核心表达,圆角矩形表示状态,在转移线上写的内容,对应的是活动图的活动。
活动图是以活动为核心表达,圆角矩形表示活动,转移线上通常不写内容,只是在进行判断的时候,要在线上写出判断的条件。
状态图也叫状态机图,是状态机的表现形式。状态图利用状态机可以精确描述对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。
有限状态机,又称有限状态自动机,简称状态机,状态机可以将复杂的逻辑简化为有限个稳定状态,在稳定状态中判断事件。
状态机用于对模型元素的动态行为进行建模,或者对系统中受事件驱动的方面进行建模,描述一个对象或一个交互在其生命周期内响应时间所经历的状态序列。
状态机涉及到其它一些元素,如状态、转移、事件和动作等。从对象的初始状态起,开始响应事件并执行某些动作,这些事件引起状态的转移,对象在新状态下又开始响应事件和执行动作,如此连续进行直到终止状态。
支持多人在线同屏创作,还可以设置分享链接,信息实时传递。
只需输入一句话,就自动生成所需图形,还可以对图形风格自动美化。
内置多种主题风格,也可以自由设计你喜爱的风格样式。
支持插入图标、图片、标签、备注LaTex公式、代码块、链接、附件等多种形式组件。
支持导出PNG、VISIO、PDF、SVG等格式,支持导入VISIO、Mermaid格式。
文件实时存储,多端设备云同步,历史版本可追溯,数据安全有保障。
状态图是以状态为核心表达,圆角矩形表示状态,在转移线上写的内容,对应的是活动图的活动。
活动图是以活动为核心表达,圆角矩形表示活动,转移线上通常不写内容,只是在进行判断的时候,要在线上写出判断的条件。
状态是指对象在其生命周期中,满足某些条件、执行某些活动或等待某些事件时的一个状况,用圆角矩形表示。
初始状态:代表状态机图的开始,使用实心圆表示,一个状态机图只有一个初始状态。
结束状态:表示状态机图的结束,使用实心的圆环表示,一个状态机图可以有多个结束状态。
组合状态:组合状态是状态内部嵌套有子状态的状态,根据状态是否同时存在,分为顺序子状态和并发子状态。
历史状态:历史状态是一种伪状态,它表示在状态再次转移到该组合状态时,应处于上一次退出时的一个子状态,而不是从组合状态的初态开始。
转移是两个不同状态之间的一种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警界条件满足时,进入目标状态。
触发事件:是转移的诱因,可以是一个信号,事件、条件变化和时间表达式。
警戒条件:是一个逻辑表达式,触发事件发生且警戒条件为真时,转移才会被激活。
动作:可以是一个赋值操作或算术运算,也可以是一个动作序列,包括给另外一个对象发送消息、调用一个操作、设置返回值、创建或销毁对象等。
信号事件:是指一个对象接收到信号的事件,该接收信号的事件会导致其状态的转换。
时间事件:代表时间的流逝,当时间条件被满足时可能要触发某个事件,时间可以是相对的也可以绝对的。
改变事件:指依赖特定属性值的逻辑表达式所表示的条件满足时,事件发生。
调用事件:表示一个对象接收到一个对调用的请求,这个对象用状态的转移而非特定的处理过程来实现操作。
控制器:如电梯控制系统
用户界面流程:如登录流程
生命周期管理:如订单、任务、请求等
一个状态机图只有一个初始状态,可以有多个结束状态。
顺序子状态:在组合状态的生命周期中,任何时刻只能处于一个子状态,即多个子状态之间是互斥的关系,不能同时存在。
并发子状态:在组合状态的生命周期中,多个子状态可以同时存在。
二者不是一个意思。
历史状态一般存在于组合状态中,它是一种伪状态,表示在状态再次转移到该组合状态时,应处于上一次退出时的某个子状态。
内部转移是指不会导致状态改变的转移,表示方法:事件(参数名)[警戒条件]/动作。
我们需要在某状态下处理一些无需离开该状态的事件,可以定义一个内部转移。
各种动作的种类及相关语法可描述如下:
(1)赋值:target:=expression
(2)调用:opname(arg1,arg2)
(3)创建对象:new Cname(arg1,arg2)
(4)销毁对象:object.destroy()
(5)返回值:return value
(6)向对象发送消息:sname(arg1,arg2)
(7)对象自我终止:terminate
(8)不可中断动作:[用语言说明]
不要把普通动作当作状态,如:“点击按钮”不是状态。
状态图不能直接表示多个对象之间的关系,状态图主要针对单个对象或单个类的行为建模。如果多个对象间有交互,可用时序图、协作图或活动图来表示。
可以。对于复杂系统,一个对象的行为可能被拆分为多个视角或维度的状态图,也可以将多个子状态图嵌入为复合状态图。
事件是触发器,指触发状态转移的外部信号,如:用户点击“提交”按钮;
动作是反应,指在状态转移时或状态中执行的操作,如:发送确认邮件、计时、验证密码。