说完uml的静态图了,说一下uml的动态的表示吧。

uml的行为图,uml的行为图主要用来设计程序的行为。还是老规矩,先来张图:

行为图包含活动图和状态图两种。

先来说下活动图:活动图是由活动的节点和流程构成的图。比较清晰的表达了各个步骤的流程。

首先是起点和终点,活动图由一个实心圆表示起点,一个实心圆外加一个圆圈来表示终点。

然后是节点,节点这个词比较高大上,其实它很简单,就是说的流程进行的状态,进行到哪一步了。上图的“用户下订单”、“生产送货单”等都是节点。

在用户选择支付方式的节点下边,有个菱形的图形,在这里根据用户是否取消订单的条件,将流程分成了两条路,这就是分支,而这里的条件,也有个高大上的名词:监护条件,感觉就像大人监护孩子一样,根据孩子的表现决定接下啦的动作。

在用户下订单的下面,和供应商供货之前,有个横条(竖条)这就是uml对数据的并发操作的描述。不了解并发是啥?ok我来简单的介绍一下:并发就是两件事情一起进行。比如说,小学的时候,老师经常让我们用“一边、、、一边、、、”造句,我们可能会说:“小明一边看电视,一边吃饭。”这里的“看电视”和“吃饭”就是小明的并发操作。这两个条是同步条,同步条肯定是同步出现的。

泳道,在这张图里,我们把各个活动的负责主体用一条竖线隔离,以便于我们分析系统你给的负责人。这样,每个负责人的下面就形成一个类似游泳时的泳道一样的效果。这就是我们说的泳道。泳道一般是在系统分析后期以及系统设计阶段使用。

活动图一般用作对系统的工作流建模和对系统的操作建模。

描述行为的除了活动图外还有一种图是状态图。

状态图主要强调的是状态,表示的是在某个时间段内,某个对象会保持在某个状态中,在发生某个事件后,状态就会改变。

状态机主要描述的是一个类的实例在接到消息时所作出的响应。如上图所示,描述的就是一个热水器在工作时的行为。是描述一个状态图的局部的对象的行为的视图,可以对状态图里的某个对象的行为精确的描述。

 
         一个状态图包含以下部分:源状态、目标状态、触发事件、监护条件和动作等。在上图中,off就是源状态,turnOn就是触发的事件,当收到这个消息后,监护条件就需要判断是否有水,如果没有,就不执行打开的操作,如果有水就允许操作执行。等进行验证后,变成了On的状态就是目标状态的实现。在turnOn转换完成后,就结束了么?这些都是状态的改变,如果定义了在On的状态,就一直给水加热,那么,在这个状态实现后,就一直给水加热,这就是烧水的动作。

状态图的绘制,状态图的绘制有以下步骤:

                      1.寻找主要状态。
                      2.确定状态之间的转换。
            
         3.细化状态内部的活动与装换。

状态图的作用:

 
         状态图主要对对象的生命周期建模:状态机图是单个对象在整个系统中的行为的建模,主要描述的是对象的能响应的事件,响应事件后对行为的影响。
 
         状态图对反应型对象建模:描述一个对象从一个状态到另一个状态装换时所需的触发事件。以及事件发生时发生的动作。

uml系列(六)——行为图:活动&状态的更多相关文章

  1. [UML]UML系列——活动图activity diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  2. [UML]UML系列——状态机图statechart diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  3. [UML]UML系列——时序图(顺序图)sequence diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  4. [UML]UML系列——协作图(通信图)collaboration diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  5. UML系列图--用例图

    UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言. 在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展示 ...

  6. UML用法及状态图,活动图介绍

    统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制 ...

  7. UML系列图--用例图(转)

    UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言. 在UML系统开发中有三个主要的模型:  功能模型: 从用户的角度展 ...

  8. [UML]UML系列——类图Class

    相关文章       [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...

  9. [UML]UML系列——类图class的关联关系(聚合、组合)

    关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...

  10. [UML]UML系列——类图class的依赖关系

    相关文章          [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列—— ...

随机推荐

  1. lwip移植到stm32上-enc28j60,103mcu(2)

    前面小玩了一下ucos和lwip,但是都还不是真正的网络多任务,真正的网络多任务应该是什么样子的呢?应该是有一个专门的任务负责网络的通讯,他负责将数据发送出去,将数据接收回来,而其他的需要用到网络的任 ...

  2. iOS开源库--最全的整理

    youtube下载神器:https://github.com/rg3/youtube-dl我擦咧 vim插件:https://github.com/Valloric/YouCompleteMevim插 ...

  3. memcache数据组织

    转自:原链接 使用命令 set(key, value) 向 memcached 插入一条数据, memcached 内部是如何组织数据呢 一 把数据组装成 item memcached 接受到客户端的 ...

  4. angular中ui calendar的一些使用心得

    ui calendar是封装fullcalendar的一款angular指令插件 官方地址:http://angular-ui.github.io/ui-calendar/ fullcalendar ...

  5. iOS开发~CocoaPods使用详细说明 分类: ios相关 2015-04-01 16:45 68人阅读 评论(0) 收藏

    iOS开发-CocoaPods使用详细说明 一.概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来 ...

  6. [转载] centos6.x x64 安装python2.7

    本文转载自: http://www.centoscn.com/image-text/install/2016/0323/6906.html CentOS的设计理念中有一点是:持久可用.要达到这个目的, ...

  7. HTML5 EventSource的用法

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. FlexGrid简单demo

    1.首先加入以下代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...

  9. 继续PHP

    2014-04-08 09:44:43 继续PHP. 邵杨继续回来 工作,安卓还是交给他.

  10. 1.1.Core Data是什么(Core Data 应用程序实践指南)

    Core Data是个框架,把数据当作对象来操作. 由Core Data提供的数据对象叫托管对象(managed objecgt),而Core Data 位于程序和持久化存储区之间. 托管对象模型里有 ...