Composite State with History

 

The Composite State with History Pattern describes an entity (e.g. Class, Actor, Use Case or Test Case) from the point of view of the important states that it exhibits. An Entry is an optional behavior that is executed whenever a tate is entered regardless of the transition taken to reach the state.

Figure 1. A state machine diagram showing two states and two transitions and an initial Psuedostate and a Final State. A number of Sub-states have been defined that are nested in the enclosing State. A History State serves to return to the Sub State that was active at the time the exiting transition (Transition A) fired.  The Transition exiting the History psuedostate is a default in the event that the machine can not identify which Sub State was active.

 

历史复合状态图

除非另有指定,bai当转移进入复合状态时,嵌du套状态机的操作将从zhi初始状态开始重新执行(dao除非转移直接以子状态为目标)。历史状态使状态机可以重新进入在它退出复合状态之前的最后一个活动子状态。

当软件工程师想要定义或描述类或其他元素可能显示的一组离散状态时,可以使用该模式。它们通常用于分析系统某些部分的行为,通常是因为难以理解或其行为复杂。

下面列出了使用此模式时可能需要执行的一些操作:

1.重命名包、状态机和关系图以适合该方案。

2.重命名图中的状态和转换,以适应计划。

3.通过从工具箱或项目浏览器拖到图表上来创建新的状态、其他元素和转换。

4.将显示更改为状态表。

作用是创建有助于将图表中包含的信息传播给其他团队成员的文档。

Nested States

 

The Nested States pattern describes a Class or other element that has a number of States one or more of which themselves have states (sub states). The pattern allows these states to be displayed on the same diagram.

嵌套的状态

嵌套状态模式描述了一个类或其他元素,该类或元素具有多个状态,其中一个或多个状态本身具有状态(子状态)。模式允许这些状态显示在同一个图表上。

其目的是允许软件工程师和其他涉众在一个图表上创建两个(或更多)状态转换级别的可视化表示。

当执行转换的遍历以了解所属元素的行为时,或者当将嵌套状态放置在同一个图上时,这种表示通常很有用,无需单击组合图就可以更容易地理解状态之间的转换。

重命名图中的状态和转换以适合计划。

新状态、其他元素和连接器可以从工具箱或项目浏览器拖到图表上。

Complete State Machine

 

The Complete State Machine Pattern describes an entity (e.g. Class, Actor, Use Case or Test Case) from the point of view of the important states that it exhibits. When a state is entered an entry Action can be fired and while in the state a do action can be fired and upon leaving the state an exit action can be fired.

完整状态机

完整状态机模式从它所展示的重要状态的角度描述了一个实体(例如,类、参与者、用例或测试用例)。当进入一个状态时,一个进入动作可以被触发,而在这个状态下一个do动作可以被触发,离开状态时可以触发一个退出动作。

提供一种机制来表示系统工程师或其他涉众认为在块或其他元素的生命周期中很重要的条件(状态)。它描述了状态相关的行为,显示了元素如何从一个状态转换到另一个状态,以及在元素处于该状态期间调用了哪些活动。

当软件工程师想要定义或描述块或其他元素可能显示的一组离散状态时,使用该模式。它们通常用于分析系统某些部分的行为,通常是因为难以理解或其行为复杂。

用于:

1.重命名图中的状态和转换以适合您的计划。

2.新状态、其他元素和连接器可以从工具箱或项目浏览器拖到图表上。

One Class Executable State Machine

 

The One Class Executable State Machine pattern creates elements and diagrams that model the important states in the lifetime of a Class allowing code to be automatically generated that can be included in the implementation of a system in a range of programming languages.

一类可执行状态机:

单类可执行状态机模式创建元素和图表,这些元素和图表为类生命周期中的重要状态建模,从而允许自动生成代码,这些代码可以包含在一系列编程语言的系统实现中。

模式的目的是对类中的重要状态建模,并以各种语言生成编程代码,这些语言可以被合并到系统中。可以模拟状态机,允许各种利益相关者可视化机器如何、为什么以及何时从一种状态转换到另一种状态。

模式通常是在一个计划的分析或实现阶段创建的,该计划用于在系统中的一个或多个重要类的生命周期中建模状态。但是,它也可以在支持阶段使用,以尝试和理解在测试或生产中运行的系统中存在的复杂问题。

在可执行模拟中可视化转换的能力允许建模者或设计者对复杂且通常难以解决的问题进行推理。

下面是在使用此模式时可能需要做的一些事情的列表:

1.更改类的名称和类(属性)的实例,以适应该主动性。

2.更改状态和事件的名称,并根据需要重新指导转换,以适应计划。

GA001-181-21的更多相关文章

  1. 1.18-1.21 Oozie Coordinator调度

    一.时区问题 1.修改系统时区 ## [root@hadoop-senior hadoop-2.5.0-cdh5.3.6]# rm -rf /etc/localtime [root@hadoop-se ...

  2. Apache commons-net用法的一个示例

    jar: commons-io-2.4.jarcommons-net-3.3.jar Code: import java.io.File; import java.io.FileInputStream ...

  3. SVG:中国地图

    中国地图 <svg height="578" version="1.1" width="718" xmlns="http:/ ...

  4. Suricata的规则解读(默认和自定义)

    不多说,直接上干货! 见suricata官网 https://suricata.readthedocs.io/en/latest/rules/index.html 一.Suricata的规则所放位置 ...

  5. blog主题——黑夜

    blog主题,存储一下 /* Author: Io_oTI*/ /*Public*/ * { margin: 0; padding: 0; box-sizing: border-box; trans ...

  6. 人工神经网络(从原理到代码) Step 01 感知器 梯度下降

    版权声明: 本文由SimonLiang所有,发布于http://www.cnblogs.com/idignew/.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 感知器 ...

  7. centos-Linux静态IP地址配置

    首先在VMware菜单中点击编辑-->虚拟网卡编辑器,查看NAT网段(子网掩码.网关.起止IP地址) 1.用nmcli命令配置IP地址 [root@Core ~]# nmcli connecti ...

  8. Android 性能优化(21)*性能工具之「GPU呈现模式分析」Profiling GPU Rendering Walkthrough:分析View显示是否超标

    Profiling GPU Rendering Walkthrough 1.In this document Prerequisites Profile GPU Rendering $adb shel ...

  9. 2014.1.21 DNS大事故(dns原理、网络封锁原理)

    1.21那天发生了什么,由1.21联想补充……  很多网站都上不去,域名解析都到了65.49.2.178这个IP地址 先科普,再深挖  dns查询类型 递归查询,迭代查询   DNS解析过程,这里使用 ...

  10. 21天学通PythonPDF高清完整版免费下载|百度云盘

    百度云盘:21天学通PythonPDF高清完整版免费下载 提取码:nqa9 豆瓣评分: 书籍封面: 内容简介  · · · · · · <21天学通Python>全面.系统.深入地讲解了P ...

随机推荐

  1. 从IL角度彻底理解回调_委托_指针

    从IL角度彻底理解回调_委托_指针 目录 从IL角度彻底理解回调_委托_指针 1.创作此文的背景 1.1.委托能帮助代码更好地封装 1.2.委托能随时随地更方便地运行其他类中的方法 1.3.委托非常适 ...

  2. python之requests.session()使用

    背景:使用requests.session会话对象先登录至豆瓣网,再进入“我的豆瓣”. 首先说一下,为什么要进行会话保持的操作? requests库的session会话对象可以跨请求保持某些参数. 说 ...

  3. js中的选择排序和冒泡排序

    var arr = [12,25,8,16,14]; console.log("排序前数组,",arr) //选择排序:第一轮,找出数组中最小的数,将第一项和最小的数互换位置.第二 ...

  4. Book of Shaders 02 - 矩阵:二维仿射变换练习

    0x00 一些废话 如果要深入学习 CG (Computer Graphics,计算机图形学),必然要学习相关的数学知识.CG 涉及到多个不同的领域,根据所研究领域的不同,也会涉及到不同的数学分支.但 ...

  5. DASH流媒体MPD中的segmentTemplate

    SegmentTemplate利用MPD中的属性代入公式计算可以得到相关通配符的数值,来提供给客户端进行相关地址解析.相较于segmentList,使用 SegmentTemplate 的方式,能够很 ...

  6. 知识全聚集 .Net Core 技术突破 | 如何实现一个模块化方案一

    简介 模块化的介绍一共2篇 这一篇我们实现一个功能非常简单的StartupModules模块化. 第二篇我们来实现一个ABP的模块化效果. 思考 其实来简单想一下模块化的实验思路,写个接口=>模 ...

  7. mysql 事务、隔离级别

    一.事务的四大特性(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...

  8. Java源码赏析(三)初识 String 类

    由于String类比较复杂,现在采用多篇幅来讲述 这一期主要从String使用的关键字,实现的接口,属性以及覆盖的方法入手.省略了大部分的字符串操作,比如split().trim().replace( ...

  9. ZooKeeper 【不仅仅是注册中心,你还知道有哪些?】

    什么是 ZooKeeper Apache ZooKeeper 是一个开源的实现高可用的分布式协调服务器.ZooKeeper是一种集中式服务,用于维护配置信息,域名服务,提供分布式同步和集群管理.所有这 ...

  10. mybatis基础使用

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .20 ...