行为图是描述系统 动态模型和对象组成的交换关系的图,包括状态图和活动图。活动图侧重描述业务实现用例的工作 流程,状态图侧重描述状态到 状态转换,常用于动态特性建模。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210513164053263.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTcwNjg1Ng==,size_16,color_FFFFFF,t_70)
状态图(state diagram)
什么是状态图?
通过建立类对象的生存周期模型来描述对象随时间变化的动态行为。
通俗来说,在系统分析员对某对象建模的时候,最直观的不是着眼于活动到活动的控制流,而是着眼于对象的状态到状态的转换。例如:按下电灯的开关,电灯改变了它的亮灭状态,拉上卧室的窗帘,屋子里的亮度状态发生改变,所以在UML图中,我们使用状态图展现状态的变化。
状态图是由什么组成的?
状态图=状态+转换
状态
状态:状态(state)是指在对象的生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。所有对象都具有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态发生变化。
转换
一个状态到另一个状态的变化过程。表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生而某个特定的条件满足时进入第二个状态。
引发转换的事件(条件):
- 信号事件,系统运行时,对象受到了来自系统的信号使得对象发生状态迁移的事件。例如:开电脑这个操作,我们按下开机键,外界压机系统通过开关将信号传入内部系统,电脑变为开机状态。
- 变化事件,对象的内部或者外部条件发生变化使得对象发生状态迁移。例如:对象执行某一行为时,当布尔条件的值为true时,对象状态因此发生迁移。
- 时间事件,对象的状态因系统设定的时间点或时间段而自动发生迁移。例如:你的身份证的有效身份状态由户籍系统设定的日期时间段控制,当日期过了之后自动变为失效状态。
- 调用事件,系统之外的其他系统通过接口等直接执行该系统内部的对象行为,引发状态迁移。例如:办公室计算机远程操控自己家的各种家用电器,使电器的状态发生迁移。
转换由五个部分组成:源状态,目标状态,触发事件,监护条件,动作。
状态图图标
椭圆或圆角矩形:表示对象的一种状态,椭圆内部填写状态名
箭头:表示从箭头出发的状态可以转换到箭头指向的状态
事件:引起状态转换的原因。事件名可在箭头线上方标出
条件:事件名后加方括号,括号内写状态转换条件
实心圆:初始状态
内部实心的同心圆:最终状态
使用范围
对反应型对象建模一般使用状态图。
反应型对象的特点:
1、响应外部事件,即来自对象语境之外的事件
2、有清晰的生命周期,可以被建模为状态,迁徙,事件的演化
3、当前行为和过去行为存在着依赖关系
4、对事件做出反应后**,他又回到空闲状态,等待下一个事件。**
活动图
什么是活动图?
活动图用于展现参与行为的类的活动或者动作。更加突出活动。
活动图和流程图的区别
- 流程图着重描述处理过程,有严格的时间关系,而活动图更加强调对象活动的顺序关系所遵守的准则。着重表现是系统的行为,而不是处理过程。
- 活动图可以并发
- 活动图是面向对象的,流程图是面向过程的。
活动图图标
事物
关系
有问题请指正。、
总结
UML行为图是一种用于描述系统或软件组件的行为和交互的图表。它们通过图形化方式展示了对象、类、组件之间的动态行为和交互,帮助开发人员更好地理解和分析系统的运行时行为。UML行为图主要包括以下几种类型:
-
用例图(Use Case Diagram):
用于描述系统的功能和用户之间的关系。它显示了系统的各个用例(功能点)以及用户和系统之间的交互关系。 -
活动图(Activity Diagram):
用于描述系统中的业务流程、活动或操作的执行顺序。它展示了各个活动之间的控制流、并发流和分支等。 -
状态图(State Diagram):
用于描述对象或系统在不同状态之间的转换和行为。它显示了状态、事件、转换条件以及状态之间的动态变化。 -
时序图(Sequence Diagram):
用于描述对象之间消息的传递顺序,展示了对象在一段时间内的交互和协作。 -
协作图(Collaboration Diagram):
类似于时序图,用于展示对象之间的交互和通信,强调对象之间的关联关系。 -
交互概览图(Interaction Overview Diagram):
结合了活动图和时序图的特点,用于描述活动之间的交互和执行流程。
这些UML行为图在软件开发过程中扮演着重要的角色,有助于清晰地展示系统的动态行为、用户交互以及对象之间的协作。通过使用这些图,开发人员能够更好地分析系统需求、设计系统逻辑、识别问题,从而在开发过程中做出更准确的决策和设计。