行为建模--状态图

  • 状态机(State Machine)
  • 状态(State)
  • 转移
  • 状态机图的建模技术
    • 用户
      • 绘制用例机图
      • 新增运动员报名
      • 修改运动员报名
    • 管理员
  • 什么是活动图
  • 活动图的用途
  • 活动图的组成元素
  • 活动图的建模技术

采用方法:面向对象的设计方法(OOD)
静态结构设计:类和对象的设计,架构设计(设计模式),数据库设计、静态结构设计建模技术:类的建模(系统类图),对象的建模,组件图,配置图,数据库设计类图
动态结构设计:状态、行为的设计、动态结构设计建模技术:状态建模(状态机图),行为建模(顺序图、通讯图)

状态机图:状态机图展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移

  1. 状态机
  2. 状态
  3. 转移
  4. 状态机图的建模技术

状态机(State Machine)

1.状态机用于对具有事件驱动的特性的动态行为建模。
2.状态机由状态组成,各状态由转移链接在一起。
状态是对象执行某项活动或等待某个事件时的条件。
转移是两个状态之间的关系,它由某个事件触发,然后执行特定的操作或者评估,并导致特定结束状态。

状态机图的内容
1.状态机图通常包括如下内容:(1)状态(2)转换
2.在UML中,图形上每一个状态图都有一个初始状态(实心圆),用来表示状态机的开始还有一个终止状态(半实心圆),用来表示状态机的终止,其他的状态用一个圆角的矩形表示。

状态机的各种元素

状态(State)

状态是状态机的重要组成部分,它描述了状态机在对象动态行为的执行所产生的结果。一个完整的状态有5个组成部分:
(1)名字(name)
(2)入口/出口动作(entry/exit action)
(3)内部转换(Internal Transition)
(4)延迟事件(Deferred Event)
(5)子状态(Substate)

转移

转换是状态间的关联。它们用于对一个实体的不同状态间的关系建模:转换由5个部分组成,它们分别是:源状态、目标状态、触发事件、监护条件和动作
触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件。

状态机图例子

电话机的状态机图

复杂的状态机图

状态机图的建模技术

使用状态机图一般是对系统中反映型对象建模,特别是对类、用例和系统的实例的行为建模。
在使用状态图对系统反映型对象建模时,参照以下步骤进行:
(1)识别一个要对其生命周期进行描述的参与行为的类;
(2)对状态建模,即确定对象可能存在的状态;
(3)对事件建模,即确定对象可能存在的事件;
(4)对动作建模,即确定当转变被激活时,相应被执行的动作;
(5)对建模结果进行精化和细化。

绘图习惯提示:
根据阅读习惯,在绘制状态图的时候,把初始状态放置在左上角,把最终状态放置在右下角。

系统状态图的绘制步骤:
1.阅读需求规格说明书
2.读懂系统用例图
3.阅读用例描述文档
4.根据用例描述文档画出状态转换图

用户
绘制用例机图

阅读登录用例

根据“登录”用例描述,画出状态机图,如下:

新增运动员报名

新增运动员报名”用例描述

在已有的状态图上加入新的状态和转换

修改运动员报名

阅读“修改运动员报名”用例描述

在已有的状态图上加入新的状态和转换

管理员

阅读“新增用户”用例描述

在已有的状态图上加入新的状态和转换

阅读”修改用户”用例描述

在已有的状态图上加入新的状态和转换

以此类推………………
依次对“单位管理”、“运动员管理”、“报名管理”、 “竞赛项目管理” 、“赛事管理” 的用例描述进行阅读, 然后添加“状态”、“转换”。

最后得到完整的系统状态图

行为建模--活动图

  • 状态机(State Machine)
  • 状态(State)
  • 转移
  • 状态机图的建模技术
    • 用户
      • 绘制用例机图
      • 新增运动员报名
      • 修改运动员报名
    • 管理员
  • 什么是活动图
  • 活动图的用途
  • 活动图的组成元素
  • 活动图的建模技术

活动图(Activity Diagram)
1.什么是活动图
2.活动图的用途
3.活动图的组成元素
4.活动图的建模技术

什么是活动图

活动图是UML中描述系统动态行为的图之一,是描述系统或业务的一序列活动构成的控制流,它描述了系统从一种活动转换到另一种活动的整个过程。在本质上是一种流程图。

按照活动图表示的信息不同,将活动图分为:简单活动图、标识泳道的活动图、标识对象流的活动图、复合活动图。

活动图的用途

活动图用于对系统的动态行为建模,常用来描述业务或软件系统的活动轨迹。清晰而正确的活动图,可以帮助设计程序内部的结构,确定类之间的关系,函数或方法之间的关系。
主要应用于两个方面建模:
在业务分析阶段,对工作流程进行建模;
在系统分析和设计阶段,对操作流程进行建模。

活动图的组成元素

活动图的元素:初始节点、终点、活动节点、转换、分支、分岔与汇合。
其中,转换、分支、分岔与汇合把多个活动节点连接在一起。

活动图的表示
(1)初始节点和终点
初始节点表示活动的起点;终点表示活动的终结点。在活动图中,可能包含多个活动终点。

(2)活动节点
活动节点是活动图中最主要的元素之一,它用来表示一个活动,一个活动表示多个动作的集合。

可用文字,表达式,消息等描述活动节点。

(3)转换
当一个活动结束时,活动控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”。

(4)分支与监护条件
在实际应用中,有三种活动控制流,它们是顺序结构、分支结构、循环结构。当从一个活动节点到另一个活动节点的转换需要条件时,常用分支与监护条件来表示活动的分支结构。
分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件,用来表示满足某种条件时才执行该转换。

(5)分岔与汇合
在实际应用中,如果一些活动是并发执行的,我们就用分岔和汇合来表示并发活动
分岔线和汇合线都使用加粗的水平线或垂直线段表示。

分岔
每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。分岔用来表示两个或者多个并发活动的分支。
汇合
当两个或多个并发控制流都达到汇合点后,活动流程才能进入下一个活动节点。汇合则用于同步这些并发活动的分支,当且仅当所有的并发分支(活动)都到达汇合点后,活动流程才能进入下一个活动节点。

与流程图的区别就是:
活动图描述的是对象活动的顺序关系所遵循的规则,表现的是系统的行为,能够表示并发活动的情形,是面向对象的,而流程图是面向过程的,描述的是处理过程
(6)对象流
反映活动与对象之间的依赖关系,表示对象对活动的作用或活动对对象的影响,用依赖关系表示。

如果箭头从活动指向对象,表示活动对对象的创建、修改或撤销等的影响。
如果箭头从对象指向活动,表示该活动将使用所指向的对象。

活动图的建模技术

1.选择将要绘制活动图的用例,确定活动图的层面,是顶层活动图还是某个方法的活动图。
2.确定活动图中使用的每个对象,用泳道分开。
3.确定用例的边界范围,并绘制活动的开始节点和终止节点。
4.确定本用例中所有的活动,并绘制出来。
5.分析分支或分叉,并绘制出来。
6.确定动作流,并绘制出来。

注意:确定活动流,就是要思考活动与活动之间的关系,活动与对象之间的关系,以及活动流所传递的参数。
有时候还需要对活动图进行一定的补充,可以用表格的形式把每个活动中所操作的对象和参数给予补充说明。

一个活动图的例子:
一个考试的过程:
1.开始
2.学生进入考场。
3.监考教师核对检查证件。
4.学生对号入座。
5.监考教师发试卷
6.学生开始答题。
7.学生交卷。
8.监考教师收取试卷。
9.结束
活动图的表示

标识泳道的活动图
为了有效地表示各个活动由谁负责的信息,可以通过**泳道(Swimlane)**来实现。
每个泳道用一条垂直的线将它们分开,并且每个泳道都必须有一个唯一的名称。
例如本例中的监考教师和考生。
加入泳道的考试
从图中可以看出,每个活动节点,分支必须只属于一个泳道,而转换,分岔与汇合是可以跨泳道的。
通过泳道,不仅体现了整个活动控制流,还体现出了每个活动的实施者。

活动图的筛选
活动图的绘制也是在解读需求分析报告的基础上进行的,活动图的设计需要进行筛选和分析。
并不是所有的用例都需要绘制活动图,分析的要素包括:
对象数量
活动数量
事件流数量
判断频率
多项选择
不要画没必要的图。简单的不用画,代码级别的细节不要画,能够在类设计层面上起到指导作用就可以了。对于一些复杂的用例,最细是画到方法层面上,不要过多的把精力花费在细节方面。


学生教材购销系统的活动图

状态机图和活动图的区别
状态机图:用来描述对象,子系统,系统的生命周期。通过状态机图可以了解一个对象所能达到的所有状态,以及对象收到的事件对对象状态的影响。
活动图:显示动作及其结果。着重描述操作(方法)实现中所完成的工作以及用例实例或对象中的活动,它是状态图的一个变种。

状态机图与活动图的区别:活动图主要描述动作及对象状态改变的结果。状态机图主要描述的是事件对对象状态的影响

行为建模(状态图-活动图)相关推荐

  1. UML 建模步骤 用例图 类图 对象图 包图 顺序图/时序图 状态图 活动图 协作图

    统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言. UML是面向对象设计的建 ...

  2. 油田采油生产业务建模之活动图实践(EA使用入门)

    UML活动图(Activity Diagrams)是将低级系统行为描述为一系列控制和对象流路径,是阐明了业务用例实现的工作流程,活动图类似于流程图,在EA上可以使用泳道,每个活动图有一个起始点和结束点 ...

  3. UML建模工具——活动图

    [面向对象分析UML建模工具全部文章] UML建模工具(1)--用例图 UML建模工具(2)--活动图 UML建模工具(3)--类图 UML建模工具(4)--顺序图 UML建模工具(5)--通信图 U ...

  4. 系统分析与设计作业(五):业务建模与活动图图绘制

    系统分析与设计作业(五):业务建模与活动图图绘制 题目 题目 1. 根据订旅馆建模文档,Asg-RH.pdf: 绘制用例图模型(到子用例) 给出 make reservation 用例的活动图 2.根 ...

  5. UML建模(活动图状态图)

    活动图: 概念: 活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流. 活动图的作用: 描述用例,描述类的操作,另外,可以用来描述算法(单独使用). 活动图表示法:   ...

  6. UML建模之活动图介绍

    活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流.活动图在本质上是一种流程图.活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的 ...

  7. uml活动图 各个功能的操作流程和分支_UML建模之活动图介绍(Activity Diagram)

    一.活动图的组成元素 Activity Diagram Element 1.活动状态图(Activity) 2.动作状态(Actions) 3.动作状态约束(Action Constraints) 4 ...

  8. OOSE-5-用例图/顺序图/状态图/活动图

    文章目录 1 用例图 1.1 参与者 1.2 用例 1.3 用例描述 1.4 一个示例 2 顺序图 2.1 基本概念 2.2 组成部分 2.2.1 对象 2.2.2 生命线 2.2.3 激活 2.2. ...

  9. EA(Enterprise Architect) UML 建模之活动图

    http://www.cnblogs.com/echosong/p/3496747.html 一.活动图的概念作用 活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流. ...

最新文章

  1. ubuntu终端基础命令
  2. mqtt连接失败_Netty实战:如何让单机下Netty支持百万长连接?
  3. WebSocket的事件触发机制
  4. centos7下使用kubeadm安装k8s
  5. NYOJ 17 单调递增最长公共子序列
  6. 分享一个关于Java调用百度、高德API、ArcGIS地图获取逆地理的代码
  7. Dancing_Links总结 【by AbandonZHANG】
  8. 【转载保存】Java丨jsoup网络爬虫登录得到cookie并带上cookie访问
  9. java 生成静态html的一段代码
  10. 拳王虚拟项目公社:0成本的售卖高考资料的虚拟资源的其他最简单最轻松玩法
  11. Oracle数据库有用函数
  12. COM编程入门 第三部分(网文补充)
  13. c语言中32位整数用谁标识,int占几个字节
  14. svnadmin hotcopy
  15. yolo v5 代码阅读记录
  16. solidity教程:solidity语言入门
  17. A315-56 Compal LA-H801P LA-J801P宏基笔记本点位图
  18. 黑马程序员-ios入门初体验及个人体会
  19. java 计算球体积方法,球体体积计算公式 我计算求得的球体和球壳的转动惯量都是实际值的一......
  20. 2014武汉理工计算机专业李帅,武汉理工大学信息工程学院2014考研复试名单公示...

热门文章

  1. tos cos dscp 区别和作用
  2. 【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程
  3. 怀孕初期症状护理大全
  4. java drawimage报错,drawImage
  5. squish_Squish现在支持Eclipse Helios!
  6. Iterative Pruning
  7. 关于大数据最深刻解读
  8. 肿瘤类器官在药物筛选中的应用-MedChemExpress
  9. 调用opencv3.x 库,在MFC中显示图片
  10. android微信使用62数据免验证,微信62数据提取(非按键写法来个大神转换下!)...