【UML】状态图和活动图

【状态图】
哈哈看到这个的时候不知道今天你的状态好不好,好或者不好都来看看这篇文章吧!

状态图:使系统分析的一种常用工具,它通过建立类对象的生存周期模型来描述对象随时间变化的动态行为;一个状态图表示一个状体机,主要用于表现从一个状态到另一个状态的控制流。
举个栗子:早上起床后,你是一种睡眼惺忪的状态,洗了把脸,刷了个牙,精神了许多,还是少点什么,感觉有点饿,就吃了早饭,开启了美好的一天去工作了,在早上起床到上班的一系列感受动作都是一种状态

状态图内容组成:状态和转换
1.状态:描述了状态机所在的对象动态行为的执行所产生的结果,一个完整的状态由5个组成部分

Name Academy
名字 字符串构成,状态可以没有名字
入口 表示进入/退出这个状态所执行的动作,动作可以是原子动作、动作序列
内部转换 不引起状态的改变,此转换不会导致状态的入口/出口动作被执行,比如:更改文件的文件名
延迟事件 事件的一个列表,此列表内的事件当前状态下不会处理,在系统进入其他状态时在处理
子状态 包含在某状态内部的状态,即嵌套结构

2.转换:状态图通过对象的状态以及状体间的转换建模来展现系统动态行为;转换是状态间的关联。
转换由5部分构成:源状态、目标状态、触发事件、监护条件、动作。

Name Academy
源状态 转换被激发之前,对象所处的状态就是转换的源状态,是被转换影响的状态
目标状态 目标转换完成后活动的状态
触发事件 引起转变的事件,具有事件驱动的动态行为
监护条件 一个方括号括起来的布尔表达式,放在触发事件的后面,可以引用对象的属性值和触发事件的参数,当一个触发事件被出发时,布尔表达式被赋值
动作 一个可执行的原子计算,也可以是一个动作序列,但是不会被同时发生的其他动作所影响

状态图举例(机房收费系统)
【UML】状态图和活动图

【活动图】

活动是某件事情正在进行的状态,即可以是现实生活中正在进行的某项工作,也可以是软件系统中某个类对象的一个操作。
还用早起起床来说,洗漱的过程,吃早饭的过程等都是活动,程序和我们的生活很贴近

活动图组成元素:动作状态、活动状态、动作流、分支与合并、分叉与汇合、泳道和对象流等

Name Academy
动作状态 执行指定动作,在此动作完成后通过完成变迁转向另一个状态
活动状态 可以理解为一个组合,它的控制流由其他活动状态或动作状态组成,用平滑的圆角矩形表示
动作流 一系列动作的组合
分支与合并 描述了软件在不同的判断结果下所执行的不同动作,用空心小菱形表示
分叉与汇合 一将多个运行的并发流分开和合并,一条粗的水平线来表示
泳道 将活动图的活动状态分组,每一组表示负责那些活动的业务组织

活动图举例:机房收费系统
【UML】状态图和活动图
感谢大家的阅读,有什么问题请多加指教!