UML学习——状态图(四)

1.什么是UML状态图

  UML状态图是描述类对象可能经历的所有状态的模型图,描述了对象基于事件反应的动态行为。显示实体根据当时的状态做出具体的动作。

2.UML类图的作用。

  UML类图的作用是研究类对象,角色,子系统或者其他组件之间的实时行为。

3.UML状态图的绘制

  3.1 状态图的模型组成元素

    状态,转换,时间

  3.2状态的表示法

    状态由两部分组成:名称和内部动作

    名称:表示状态的名字

    内部动作:表示进入或者走出此状态的应该执行的动作。内部动作可以分为以下四种类型。

      entry:表示进入该状态时该进行的动作。

      exit:表示退出该状态时该进行的动作。

      do:表示该状态下进行的动作。

      on:表示该状态下,发生某件事件时发生的动作。

    一个状态可以包含多个内部动作。

    如图:

    

  3.3转换的表示法

    转换:原状态在满足一定的条件,或者触发某个事件时,执行完内部动作后,转到目标状态的过程。

    转换包含的元素:原状态,目标状态,触发事件,监护条件,执行动作。

    触发事件:引起状态转换的事件,如:信号,调用,时间等。

    监护条件:状态转化必须满足的条件,是一个Boolean值,不同转化的监护条件不同,但是触发事件可以相同。

    执行动作:一组可执行语句或者计算处理的过程。

  3.4 转换的分类

    转换通常分为内部转换,外部转换,完成转换,复合转换四种。

    内部转换:不离开状态本身,执行完动作后依旧在此状态。

    外部转换:最常见的转换,状态从原状态转换到目标状态、

    完成转换:或者叫自转换,无触发事件。

    复合转换:由简单转换组成,通过分支判断将简单转换组合起来。

  3.5状态的绘制

    初始状态:用一个实心圆表示,一个状态图中只有一个

    终止状态:用一个包含实心圆的空心圆表示。

    子状态:有子状态的状态称为复合状态。

  3.6状态图模型

    

  3.7子状态图表示

    

时间: 2024-10-10 03:01:25

UML学习——状态图(四)的相关文章

UML学习-状态图

1.状态图概述 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action).一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流.如下图例子,状态机描述了门对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作(Action). 2.状态图元素 1.状态(Sta

Thinking in UML 学习笔记(四)——UML核心视图之活动图

在UML中活动图的本质就是流程图,它描述了为了完成某一个目标需要做的活动以及这些互动的执行顺序.UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互. 活动图只是我们用来描述业务目标的达成过程并借此来发现对象的工具,它不是我们的分析目标,也不是编程的依据. 建立活动图: 一个登录过程的活动图如下: Thinking in UML 学习笔记(四)--UML核心视图之活动图

Thinking in UML 学习笔记(二)——UML核心视图之用例图

在UML中,需求模型又称为用例模型,它主要用于描述系统的功能性需求,即软件可以实现的功能,如登录.注册.入库.出库.查看库存报表.增加员工信息等.常规的用例建模一般包括两个组成部分:绘制用例图和编写用例文档. 用例图采用参与者和用例作为基本元素,以不同的视角展现系统的功能性需求. 一.业务用例视图 说明:使用业务主角和业务用例展现业务建模. 1.业务主角视角 作用:从业务的角度展示业务主角在业务中使用用例达成业务目标. 借阅人在借书管理系统中有借阅图书和办理借阅证两个业务目标. 2.业务模块视角

UML学习(类图和序列图等)

visio绘制UML图使用visio 提示此UML形状所在的绘图页不是UML模型图的一部分 请问这个问题怎么解决?新建->选择绘图类型->选择软件与数据库模板->选择UML模型图->注意:如果不选择UML模型图的话,可能会出现无法编辑形状文本,提示“此UML形状所在的绘图页不是UML模型图的一部分,该形状设计用于利用UML模型图模板创建的绘图”所以利用Visio绘UML图第一步就是选择绘图类型为软件中的UML模型图. 还可以参考百度云盘的UML学习资料 参考:UML中几种类间关系:

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能 说一下IHandle<T>实现多语言功能 因为Caliburn.Micro是基于MvvM的UI与codebehind分离, binding可以是双向的所以我们想动态的实现多语言切换很是方便今天我做一个小demo给大家提供一个思路 先看一下效果 点击英文  变成英文状态点chinese就会变成中文                          源码的下载地址在文章的最下边 多语言用的是资源文件建

代码管理工具 --- git的学习笔记四《重新整理git(1)》

1.创建版本库 mkdir  创建目录 cd  地址,到该地址下 pwd 显示当前目录 1.创建目录 $ mkdir startGit $ cd startGit $ pwd 显示当前目录 或者cd到桌面,然后再创建目录 2.初始化版本库 $ git init 初始化仓库 提示信息:Initialized empty Git repository in /Users/xingzai/Desktop/startGit/.git/ 建立一个空的git仓库在/Users/xingzai/Desktop

运维学习第四弹

运维学习第四弹之shell(bash): 一. hell可以翻译成壳,大多指能够对内部核心起到保护作用的一种装置或结构.在计算机科学中shell的实际意义为操作者提供的.能够通过系统调用或库调用使用整个计算机资源的访问接口. 它既是一种命令解析器又是一种程序设计语言.作为命令解析器,它可以解释和执行用户输入的命令,也可以自动地解释和执行预先编写好并保存在某个文本文件中的一系列的命令:作为程序设计语言,shell特别定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和条件分支

WebService学习总结(四)——调用第三方提供的webService服务

WebService学习总结(四)——调用第三方提供的webService服务 互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为例进行说明. 气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client).一. 调用

Flask 学习(四)静态文件

Flask 学习(四)静态文件 动态 web 应用也需要静态文件,一般是 CSS 和 JavaScript 文件.理想情况下你的服务器已经配置好提供静态文件的服务. 在开发过程中, Flask 也能做好这个工作. 静态文件引用 我们先来看下普通的 html 引用静态文件,如 css(js也同样,就不多加示例了),以下为一简单实例,直接打开html: flask 处理 —— static 若直接将该html 当成 flask 模板,相对路径自然就失效了,静态文件将不会被成功读取. 那在flask中