描述了一个具体对象的可能状态以及它们之间的转换。展现一个对象拥有的状态,还可以说明时间(如消息的接收、错误、条件变更等)如何随着时间的推移来影响这些状态。
先上一张导图看看状态图都有哪些内容吧!
①、状态(State):表示对象在其生命周期中的某个特定状态,如"待处理"、"进行中"、"已完成"等
②、状态转换(Transition):表示对象从一个状态转换到另一个状态的过程,通常用箭头表示。箭头上可以标注触发状态转换的事件或条件。
③、条件(Guard Condition):表示触发状态转换的条件,通常用方括号内的逻辑表达式表示。
④、动作(Action):表示状态转换发生时执行的动作或操作,通常用在状态转换的箭头上。
事件是触发状态转换的外部或内部事件,条件是触发状态转换的条件,动作是状态转换发生时执行的操作
描述一个过程或操作的工作步骤,描述系统的动态行为。与流程图很类似,但他们也有不同点。
活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程
比方说现在要登录机房收费系统:步骤分为输入用户名和密码,系统判断输入的密码是否正确,正确的话走哪一个活动,不正确的话又走哪一个活动。而活动图是把这些步骤用图形的方式表现出来了
活动(ActionState) |
动作的执行 |
|
起点(InitialState) |
活动图的开始 |
|
终点(FinalState) |
活动图的终点 |
|
对象流(ObjectFlowState) |
活动之间的交换的信息 |
|
发送信号(SignalSending) |
活动过程中发送时间,出发另一活动流程 |
|
接受信号(SignalReceipt) |
活动过程中接收事件,接收到信号的活动流程开始执行 |
|
泳道(SWimLane) |
活动的负责者 |
迁移(transition) |
活动的完成与新活动的开始 |
|
分支(junction point) |
根据条件,控制执行方向 |
|
分叉(fork) |
以下的活动可并发执行 |
|
结合(join) |
以上的并发活动再此结合 |
状态图和活动图是两种不同的图形化表示方法,用于描述系统或对象的行为。状态图关注对象的状态变化和状态之间的转换,而活动图关注对象的行为和活动之间的流程。它们在应用场景和表示形式上有所不同,但都能帮助开发人员可视化和理解系统或对象的行为
文章浏览阅读290次。之前有读者问了 Dubbo Cluster 集群的一些问题。那么本文聊一聊Dubbo 的 Cluster 集群和 Failover Cluster (失败自动切换)策略。如果没有特别说明..._sticky invoker
文章浏览阅读498次。generated for root@localhost: SQqy8#7#5PUK 临时密码。vi /etc/my.cnf 修改配置文件。3、创新用户与用户组以及修改权限。_安装mysql-8.0.20-linux-glibc
文章浏览阅读1.1k次。1.class_a()class_b()2.class_b使用class_a中的变量和函数3.变量class_a中:class_a.num=...函数class_b中:先实例化class_a(如果在class_a中有初始化,则此时还会初始化一次,为避免二次初始化可以把class_a中的初始化不写为初始化函数), 然后调用函数在调用函数中再调用的函数里用到的class_a的变量,也必须在class..._python 类a 调用类b的函数
文章浏览阅读983次,点赞24次,收藏21次。函数是一种可重复使用的代码块,是构建应用的一块基石。在本章我们将学习TypeScript 中如何定义函数。在JavaScript中,函数可以被定义、调用和传递给其他函数作为参数。函数可以用来组织代码,使其更加模块化和可读性,同时也提供了代码的重用性和灵活性。在TypeScript 使用函数的方法是直接定义函数所需参数的类型,也是最基本的用法//箭头函数写法需要注意的是 但我们的函数没有返回值时 ,就不能定义这个函数的返回值类型 (void除外)//正确写法//正确写法2。
文章浏览阅读1.4w次,点赞13次,收藏80次。1.使用u-center软件时请先检查驱动是否安装完成(如CH340/PL2303),后连接数据线等。2.打开u-center软件,在左上角选择正确的串口及波特率,一般NE0-M8默认波特率为115200.3.配置M8模块的功能,如选择北斗/GPS/GLONASS等功能左上角点message view 或者config view 或F9/CTRL+F9,进入配置页面。如图标红区域4.按F9进入CFG界面,选择UBX选项卡,有时候UBX没有弹出菜单,显示为灰色,这时候可以等十几秒在单击灰色的UB_u-center
文章浏览阅读722次。Oracle异常处理——ORA-01502:索引或这类索引的分区处于不可用状态参考自:https://www.cnblogs.com/lijiaman/p/9277149.html1、原因分析经过查证,发现是在删除分区的时候,导致分区表上的唯一性全局索引为不可用状态,导致新的数据无法正常插入,从而引发了该错误。是不是索引不可用会导致DML操作失败呢?经过验证,发现以下特点:(1)对于非唯一性索引,..._errorora-01502: 索引 'data168.pk_yunqu_call_sdr' 或这类索引的分区处于不可用
文章浏览阅读6.7k次。封装多线程模块-线程启动• 1、CreateThread• 2、线程_启动_句柄()• 3、线程_启动_逻辑()• 4、线程句柄• 5、线程ID• 6、易语言SHCreateThread511遇见易语言多线程大漠多线程SHCreateThread function | Microsoft Docs https://docs.microsoft.com/zh-cn/windows/desktop/api/shlwapi/nf-shlwapi-shcreatethread.版本 _易语言取线程句柄
文章浏览阅读3.5k次,点赞6次,收藏27次。TS算法求解TSP问题C++1、禁忌搜索算法1.1 基本思想及主要特点1.2 基本概念1.3 算法流程22.1 主函数1、禁忌搜索算法 禁忌搜索算法(tabu search/taboo search,TS)是一种模拟人类记忆功能特性的全局性搜索算法。它最初是由Glover提出的,主要用于解决组合优化问题,与局部优化法相比陷入局部极小值的概率更小,比遗传算法、模拟退火算法更易于利用问题的特殊信息。因此,它具有很强
文章浏览阅读942次,点赞15次,收藏22次。C++11 新特性:智能指针 shared_ptr 与 weak_ptr
文章浏览阅读157次。栈和队列一、栈1.栈的基本概念2.栈的顺序存储结构3.栈的链式存储结构4.栈的应用二、队列1.队列的基本概念2.队列的顺序存储结构3.队列的链式存储结构4.队列的应用三、特殊矩阵的压缩存储四、其他1.迷宫的"穷举求解":五、总结我有想过要不要把栈和队列和在一起讲,因为他们之间太多相似的地方了,但是我还是决定分开来写,这样复习梳理起来会更加的细致,如有不对的地方也请大家指出,多多包涵。一、栈1.栈的基本概念栈(stack)是只能在尾部添加数据或者删除数据的线性表。表尾,表顶:top,表头,栈底:b_csdn 嘻嘻子
文章浏览阅读2.5k次。基于运行与qemu上的CentOS 7.6 Arm虚拟机,在线安装配置Qt5.13开发环境(含Qt Creator),并进行所需的GCC环境配置、MySQL8环境配置,为开发环境准备CMake、Protobuf、Python、SVN客户端配置,并额外安装JDK8。_centos 7.6 arm
文章浏览阅读1k次。所以我熟悉randsrc并且我可以使用给定概率的整数随机字母表创建.所以我想说我有这个字母表alphabet={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};prob=[0.08167 0.01492 0.02782 0.04254 0..._字母随机排序成个单词的的概率高数