说完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. eclipse注释模板设置(未整理)

    Window --> Java --> Code Style --> Code Templates --> Comments --> types --> Edit  ...

  2. iOS开发——代理与block传值

    一.代理传值的方法 1.Hehe1ViewController.h中 #import <UIKit/UIKit.h> @protocol Hehe1ViewControllerDelega ...

  3. iOS开发者的福利 — — iOS9+Xcode7免越狱免证书直接调试

    苹果发布Xcode7后, 开放了普通的AppleID也能真机调试( 非$99 或 $299, 只要能上AppStore下载应用的AppleID就行),下面教你具体做法,很简单的. 1.运行Xcode, ...

  4. DateFormat 竟然是非线程安全的?!!!!!

    今天撸代码忽然发现一个奇怪的一场抛出,经过一番排查发现有可能DateFormat 的多线程问题造成的,网上一查DateFormat竟然非线程安全.那我原先的代码...(细思极恐)

  5. IOS开发-ObjC-对象、封装

    C语言是基于过程的一种编程语言,而OC语言是基于对象的一种语言. C是和其他的面向对象的语言的区别在于C语言更注重地层操作,思维方式相比面向对象的语言而言更接近机器的思维方式,而面向对象的语言更接近于 ...

  6. java制作二维码的两种方式

    原博:http://www.importnew.com/15028.html Zebra Crossing(ZXing)是一个很棒的,几乎可以在所有平台(Android.JavaSE.iPhone.R ...

  7. java系列--集合

    ==比较地址,equals比较内容 一.常用集合框架: 1.List结构集合类:ArrayList类: LinkedList类:addFirst( ),addLast( ),remove( ), Ve ...

  8. python dataframe 针对多列执行map操作

    Suppose I have a df which has columns of 'ID', 'col_1', 'col_2'. And I define a function : f = lambd ...

  9. CSS border三角、圆角图形生成技术简介

    http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...

  10. ubuntu下常用的apt-get 命令参数

    apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明.大小.版本等 sudo apt-get install package ...