uml系列(六)——行为图:活动&状态
说完uml的静态图了,说一下uml的动态的表示吧。
uml的行为图,uml的行为图主要用来设计程序的行为。还是老规矩,先来张图:
行为图包含活动图和状态图两种。
先来说下活动图:活动图是由活动的节点和流程构成的图。比较清晰的表达了各个步骤的流程。
首先是起点和终点,活动图由一个实心圆表示起点,一个实心圆外加一个圆圈来表示终点。
然后是节点,节点这个词比较高大上,其实它很简单,就是说的流程进行的状态,进行到哪一步了。上图的“用户下订单”、“生产送货单”等都是节点。
在用户选择支付方式的节点下边,有个菱形的图形,在这里根据用户是否取消订单的条件,将流程分成了两条路,这就是分支,而这里的条件,也有个高大上的名词:监护条件,感觉就像大人监护孩子一样,根据孩子的表现决定接下啦的动作。
在用户下订单的下面,和供应商供货之前,有个横条(竖条)这就是uml对数据的并发操作的描述。不了解并发是啥?ok我来简单的介绍一下:并发就是两件事情一起进行。比如说,小学的时候,老师经常让我们用“一边、、、一边、、、”造句,我们可能会说:“小明一边看电视,一边吃饭。”这里的“看电视”和“吃饭”就是小明的并发操作。这两个条是同步条,同步条肯定是同步出现的。
泳道,在这张图里,我们把各个活动的负责主体用一条竖线隔离,以便于我们分析系统你给的负责人。这样,每个负责人的下面就形成一个类似游泳时的泳道一样的效果。这就是我们说的泳道。泳道一般是在系统分析后期以及系统设计阶段使用。
活动图一般用作对系统的工作流建模和对系统的操作建模。
描述行为的除了活动图外还有一种图是状态图。
状态图主要强调的是状态,表示的是在某个时间段内,某个对象会保持在某个状态中,在发生某个事件后,状态就会改变。
状态机主要描述的是一个类的实例在接到消息时所作出的响应。如上图所示,描述的就是一个热水器在工作时的行为。是描述一个状态图的局部的对象的行为的视图,可以对状态图里的某个对象的行为精确的描述。
一个状态图包含以下部分:源状态、目标状态、触发事件、监护条件和动作等。在上图中,off就是源状态,turnOn就是触发的事件,当收到这个消息后,监护条件就需要判断是否有水,如果没有,就不执行打开的操作,如果有水就允许操作执行。等进行验证后,变成了On的状态就是目标状态的实现。在turnOn转换完成后,就结束了么?这些都是状态的改变,如果定义了在On的状态,就一直给水加热,那么,在这个状态实现后,就一直给水加热,这就是烧水的动作。
状态图的绘制,状态图的绘制有以下步骤:
3.细化状态内部的活动与装换。
状态图的作用:
状态图主要对对象的生命周期建模:状态机图是单个对象在整个系统中的行为的建模,主要描述的是对象的能响应的事件,响应事件后对行为的影响。
状态图对反应型对象建模:描述一个对象从一个状态到另一个状态装换时所需的触发事件。以及事件发生时发生的动作。
uml系列(六)——行为图:活动&状态的更多相关文章
- [UML]UML系列——活动图activity diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- [UML]UML系列——状态机图statechart diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- [UML]UML系列——时序图(顺序图)sequence diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- [UML]UML系列——协作图(通信图)collaboration diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- UML系列图--用例图
UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言. 在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展示 ...
- UML用法及状态图,活动图介绍
统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制 ...
- UML系列图--用例图(转)
UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言. 在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展 ...
- [UML]UML系列——类图Class
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...
- [UML]UML系列——类图class的关联关系(聚合、组合)
关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...
- [UML]UML系列——类图class的依赖关系
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列—— ...
随机推荐
- 防止多个UIAlertView重叠弹出
http://www.jianshu.com/p/7ac398ef4532 项目中可能会遇到这种情况,好几个alertView因为逻辑关系全部弹出,用户需要一个个的点击才能将所有的alertView取 ...
- HUST 1605 Gene recombination
简单广搜.4进制对应的10进制数来表示这些状态,总共只有(4^12)种状态. #include<cstdio> #include<cstring> #include<cm ...
- php字符串压缩
在PHP中偶尔遇到字符串的压缩,比如一个长字符串,数据库开始设计的字段存不下,但是又不想改数据库字段存储长度,就可以用压缩的方式降低数据字段字符串的长度数量级,把几百个字符的字符串压缩到几十个字符.总 ...
- Tsinsen-A1490 osu! 【数学期望】
问题描述 osu!是一个基于<押忍!战斗!应援团><精英节拍特工><太鼓达人>等各种音乐游戏做成的一款独特的PC版音乐游戏.游戏中,玩家需要根据音乐的节奏,通过鼠标 ...
- Java中的 List Set Map
类层次关系如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └W ...
- 【转】IntentService的原理及使用
在Android开发中,我们或许会碰到这么一种业务需求,一项任务分成几个子任务,子任务按顺序先后执行,子任务全部执行完后,这项任务才算成功.那么,利用几个子线程顺序执行是可以达到这个目的的,但是每个线 ...
- 安卓handler、thread实现异步任务
[转]http://blog.csdn.net/lanpy88/article/details/6659630 一Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. ...
- iOS 之 时间格式与字符串转换
这个知识点涉及到三个类:NSDate.NSString,另外是一个最重要的类NSDateFormatter.它起到格式转换的作用,至于方法查看头文件就好了.时间格式注意下:yyyyMMddHHmmss
- [项目回顾]基于Annotation与SpringAOP的缓存简单解决方案
前言: 由于项目的原因,需要对项目中大量访问多修改少的数据进行缓存并管理,为达到开发过程中通过Annotation简单的配置既可以完成对缓存的设置与更新的需求,故而设计的该简易的解决方案. 涉及技术: ...
- #图# #SPFA# #Tarjan# ----- BZOJ1179
SPFA算法 SPFA(Shortest Path Faster Algorithm)(队列优化)算法是求单源最短路径的一种算法. 判负环(在差分约束系统中会得以体现).如果某个点进入队列的次数超过N ...