UML状态图与活动图

合集下载

时序图、活动图、状态图、协作图的区别

时序图、活动图、状态图、协作图的区别

时序图、活动图、状态图、协作图的区别时序图时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序.当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件.在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上下排列.ATM 用户成功登陆的时序图时序图中的基本概念对象: 时序图中对象使用矩形表示, 并且对象名称下有下划线. 将对象置于时序图的顶部说明在交互开始时对象就已经存在了. 如果对象的位置不在顶部, 表示对象是在交互的过程中被创建的.生命线: 生命线是一条垂直的虚线. 表示时序图中的对象在一段生命周期内存在. 每个对象底部中心的位置都带有生命线.消息: 两个对象之间的单路通信. 从发送方指向接收方. 在时序图中很少使用返回消息.激活: 时序图可以描述对象的激活和钝化. 激活表示该对象被占用以完成某个任务. 钝化指对象处于空闲状态, 等待消息. 在 UML 中, 对象激活时将对象的生命线拓宽为矩形来表示的. 矩形称为计划条或控制期. 对象就是在激活条的顶部被激活的. 对象在完成自己的工作后被钝化.对象的创建和销毁: 在时序图中, 对象的默认位置是在图的顶部. 这说明对象在交互开始之前就已经存在了. 如果对象是在交互过程中创建的, 那么就应该将对象放到中间部分. 如果要撤销一个对象, 在其生命线终止点处放置 “ X” 符号.练习:孙中山的……活动图在 UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等.活动图中的基本概念动作状态: 原子的, 不可中断的动作, 并在此动作完成之后向另一个动作转变. 在 UML 中动作状态用圆角矩形 表示, 动作状态所表示的动作写在圆角矩形内部.分支与合并: 分支在软件系统中很常见. 一般用于表示对象类所具有的条件行为. 用一个布尔型表达式的真假来判定动作的流向. 条件行为用分支和合并表达.在活动图中, 分支用空心小菱形 表示. 分支包括一个入转换和两个带条件的出转换, 出转换的条件应该是互斥的, 须保证只有一条出转换能够被触发. 合并包含两个带条件的入转换和一个出转换.状态图状态图: 通过建立对象的生存周期模型来描述对象随时间变化的动态行为.状态图中的基本概念状态: 用圆角矩形表示. 状态名称表示状态的名字, 通常用字符串表示. 一个状态的名称在状态图所在的上下文中应该是唯一的.转换: 用带箭头的直线表示. 一端连着源状态, 一端连着目标状态.初始状态: 每个状态图都有一个初始状态. 此状态代表状态图的起始位置. 初始状态只能作为转换的源, 不能作为转换的目标, 并且在状态图中只能有一个. 初始状态用一个实心圆表示.终止状态: 模型元素的最后状态, 是一个状态图的终止点. 终止状态在一个状态图中可以有多个.协作图协作图(也叫合作图)是一种交互图.时序图主要侧重于对象间消息传递在时间上的先后关系, 而协作图表达对象间的交互过程及对象间的关联关系。

UML中的活动图和状态图的区别与实际应用案例解析

UML中的活动图和状态图的区别与实际应用案例解析

UML中的活动图和状态图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的图形符号和规范,帮助开发人员更好地理解和设计软件系统。

在UML中,活动图和状态图是两种常用的图形表示方式,用于描述系统中的活动流程和对象状态。

本文将探讨这两种图形的区别,并通过实际应用案例来解析它们的具体应用。

活动图是一种用于描述系统中活动流程的图形表示方式。

它主要由活动(Action)、控制流(Control Flow)和决策节点(Decision Node)等元素组成。

活动图可以清晰地展示系统中的各种活动以及它们之间的关系和顺序。

活动图通常用于描述业务流程、系统交互和软件系统中的算法等。

例如,在一个在线购物系统中,我们可以使用活动图来描述用户选择商品、添加到购物车、填写订单信息、确认支付等流程。

通过活动图,我们可以更好地理解和设计系统中的各个步骤,从而提高系统的可靠性和可维护性。

与活动图相比,状态图主要用于描述系统中对象的状态和状态之间的转换。

状态图由状态(State)、转移(Transition)和事件(Event)等元素组成。

状态图可以清晰地展示对象在不同状态之间的转换和触发条件。

状态图通常用于描述系统中的状态机、对象的生命周期和系统中的并发操作等。

例如,在一个自动售货机系统中,我们可以使用状态图来描述售货机的工作状态,如待机状态、售货状态和故障状态等。

通过状态图,我们可以更好地理解和设计系统中对象的状态变化,从而提高系统的可靠性和性能。

活动图和状态图在应用上有一些区别。

活动图主要用于描述系统中的活动流程,强调活动之间的顺序和关系。

它更适合于描述系统中的业务流程和交互流程等。

而状态图主要用于描述系统中对象的状态和状态之间的转换,强调对象状态的变化和触发条件。

它更适合于描述系统中的状态机和对象的行为。

下面通过一个实际应用案例来进一步解析活动图和状态图的具体应用。

第9讲UML概要设计建模活动图状态图

第9讲UML概要设计建模活动图状态图

2.分岔和联结 分岔用来表示并行活动的分支处理,联结用来把并行活动的汇
集到同步处理。 分岔和联结在UML中的表示方法相似,都用粗黑线表示。分岔
具有一个转移人口,两个或者多个转移出口。分岔描述了单向处 理控制流分成了多个控制流。联结与此相反,联结具有两个或者 多个转移人口,只有一个出口。联结描述了不同的处理控制流合 并到一起形成一个单向处理,如下图所示。
4. 综合运用 现在已经学习了活动图的4种主要标记符,下面综合运用这
些标记来生成一个活动图,如下图所示。
5、 决策 决策是基于判断条件选择控制流继续的方向。决策的UML符号
是一个小菱形标记符,然后从这里再按条件控制分支转移到满足条 件的活动,如下图所示。
例 描述教师记录学生成绩用例的活动图
6. 泳道 泳道可以使活动图非常整洁,因为它们在很大程度上增强了
三、活动图的基本元素
活动图保留了许多传统的流程图 的特征,包含如下元素。
•活动 •操作 •状态 •转移 •对象流 •分岔 •决策 •联结
活动图示意
1. 活动 活动在活动图中,用来指示要完成某项工作的动作或表示工作 流的步骤。其UML标记符是一个带有圆角的矩形,如下图所示。
在确定活动名称时应该恰当地命名,选择准确描述所发生 动作的几个词。例如,Save File或者 Create New Document 就是比较恰当的活动名称,而Run或者Update 对读者而言是 不完整的名称。
例内部和用例之间的路径;它也可以向读者说明需要满足什么条件 用例才会有效,以及用例完成后系统保留的条件或者状态。 。 2.理解工作流程
活动图对理解业务处理过程十分有用。可以画出描述业务工作流 的活动图与领域专家进行交流,明确业务处理操作是如何进行的, 将会有怎样的变化。 3.描述复杂过程的算法

6.状态机图(状态+活动)

6.状态机图(状态+活动)

课堂练习(电梯系统的状态图)
带有复杂转换的状态图
补充说明(状态图)
适用情况:
适用于描述跨越多个用例的单个对象行为 不适合描述多个对象之间的行为协作 故需与其他技术(类图、对象图)结合使用
注意事项:
不要花费大量时间和精力为系统中的每个类都 画对应的状态图 开发人员只关心关键类的行为,只需为这些类 建立状态图,帮助理解所研究的问题
方法二:
先对活动进行全局的分析 再将活动分配各具体的对象
建议:
两种方法各有利弊 根据个人习惯和具体情况而定
分类(1.简单活动图)
分类(1.简单活动图)
分类(2.标识泳道的活动图)
泳道(SwimLane):用于有效 地标识每个活动的实施者。 表示方法:
用一条垂直的线将活动分开 每个泳道都有一个唯一的名称 每个活动节点、分支必须只属 于一个泳道;而转换,分叉与 汇合是可以跨泳道的。
状态机图(State machine Diagram)
状态(state):
定义对象在其生命周期中的一种条件或状况 比如:满足某些条件、执行某些活动或等待某些事件 例子:灯的开闭、人的梦醒、学生的课上与课下
理解
状态的存在:对象在任何时刻都会处于某种状态之中 状态的转移:事件使对象从一个状态转向另一个状态 当面对所检测到的事件或所接收到的消息时,对象所 处的状态不同,做出的反应也不同
细化状态内的活动与转换
状态图(航班预订3)
使用复合状态
课堂练习
绘制电脑工作时的状态转换图
课堂练习
绘制手机工作时的状态转换图
课堂练习(电梯系统的状态图)
电梯开始处于空闲状态(idle),当有人按下按钮要求使用电梯时 (事件is required发生),电梯进入运行状态(run)。如果电梯的 当前楼层比想要的楼层高时(监护条件[currentFloor>desiredFloor] 成立),电梯进入下降状态(moving down);反之,如果电梯的当 前楼层比想要的楼层低时(监护条件[currentFloor<desiredFloor] 成立),电梯进入上升状态(moving up);如果电梯的当前楼层与 想要的楼层相同时(监护条件[currentFloor=desiredFloor]成立), 电梯门打开(door open)。在电梯上升或下降期间,每经过一个楼 层就判断监护条件[currentFloor=desiredFloor]是否成立,若不成 立,继续移动,若成立,就进入停止状态(stop),15秒后,电梯门 自动打开(door open),2分钟后,电梯门自动关上(door close), 如果有更多的电梯使用要求,进入运行状态(run),反之,则进入 空闲状态(idle)。

图书管理系统状态图与活动图(UML)

图书管理系统状态图与活动图(UML)

学号 **********
统一建模语言UML B
实验报告
实验4 状态图和活动图
学生姓名黄源
专业、班级14软件(2)班
指导教师高天迎
成绩
计算机与信息工程学院
年月日
一、实验目的
在熟悉状态、活动概念与应用的基础上,掌握状态图和活动图的建立。

1.理解什么状态和状态图。

2.掌握状态图的建立。

3.掌握活动图的建立。

二、实验内容
1.建立图书管理系统的状态图。

2.建立图书管理系统的活动图。

三、实验思想
1.分析:根据图书管理系统的需求分析和用例模型,对系统中的用例进行动态建模。

2.在Rational Rose工具中绘制状态图和活动图。

四、实验结果
1.状态图:
(1)登陆
(2)增添新书
(3)借阅者
2.活动图
(1)借阅者(2)图书管理员
(3)系统管理员管理借阅者信息(4)系统管理员维护图书信息
五、实验心得
这次实验学习的是状态图和活动图,感觉这次实验和前面实验相比较要容易一些,这些图按顺序来的,感觉会和我们传统的思维模式比较吻合,用心去绘制就很容易画出来。

UML状态图和活动图

UML状态图和活动图

状态图的建模方法(续)
因此,Grade对象的状态图具有如下描述保存功 能的开始状态和结束状态:
Information Entered 开始状态。 Destroy 结束状态。
状态图的建模方法(续)
3.确定与每一个实体相关的事件
事件用来最终完成实体的功能。要想确定实体的事件,需要 知道事件的任务。对于Grade对象,它的任务是保存分数。进一 步了解事件的任务之后,就可以确定Grade对象的事件包括接受 数据、成功地保存数据和不成功地保存数据。
活动图的符号
如果一个处理在其他处理之前到达了联结,它将会等待, 直到所有的处理都准备好之后才会向联结传递控制权。
活动图的符号
左例演示了分叉中的一 个处理时间长于另一个的 情况。当然,这完全是由 每一个处理中的活动数假 定的。由于我们不知道每 一个活动有多长,因此不 能保证哪一个首先完成。 为此,我们在让用户访问 应用程序之前插入了一个 联结,以便确保两个独立 的处理彼此连接在一起。
在确定活动名称时应该恰当地命名,选择准确描述所发生 动作的几个词。例如,Save File或者 Create New Document 就是比较恰当的活动名称,而Run或者Update 对读者而言是不 完整的名称。
活动图的符号
2. 操作
可以用操作在活动中增加更多详细的步骤。操作是活动中执 行的小步骤。在下列情况下发生: • 进入活动时发生的操作,标有entry字样。 • 活动进行时发生的操作,直到离开活动,标有do字样。 • 离开活动时发生的操作,标有exit字样。 • 特定事件发生时的操作,标有event字样和事件名。
状态图的动作和事件
条件用来描述状态转移的前提。事件用来指示什么触发了转 移,动作用来说明当转移发生时会产生什么情况。事件、条件 和动作是转移的三个选项,其定义格式见下图所示。

解析uml活动图和状态图的作用和区别

解析uml活动图和状态图的作用和区别

本文和大家重点讨论一下UML活动图和状态图的概念,这两种图都有各自的特点和作用,那么他们之间有什么区别和联系呢,请看本文详细介绍。

UML活动图和状态图一、UML活动图:◆流程图常被用来建立算法模型◆UML活动图与流程图类似,不同在于它支持并行活动.◆缺点:不能清楚的表示二、作用:1、描述一个操作的执行过程中所完成的工作或者动作2、描述对象内部的工作3、描述用例的执行4、处理多线程5、显示如何执行一组相关的动作,以及这些动作如何影响周围对象三、以下情况不用UML活动图1、显示对象之间的合作2、显示对象在其生命周期内的运转情况。

这两点是通过序列图和协作图完成的。

四、UML活动图的基本要素:◆活动状态◆活动状态之间的转移(箭头)◆判断(决策点)◆保证条件◆同步条:活动之间的同步◆起点和终点--起点有且只有一个,终点可以有n个。

五、泳道:用于对UML活动图中的活动进行分组,用于描述对象之间的合作关系。

----所谓泳道技术,就是将活动用线分成一些纵向区域,这些纵向区域称为泳道。

UML状态图一、状态图:◆描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转换。

例如呼叫中心系统。

◆状态图符--状态:矩形(四角圆弧)--转移--起点--终点1、状态机:◆一种行为:描述了一个对象或一个交互在生命周期内响应事件所经历的状态序列。

◆单个类或者一组类之间协作的行为可以用状态机来描述◆一个状态机涉及到一些其他元素,包括状态、转换、事件2、状态:在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件活状况。

1)名称2)进入协作和退出动作3)内部转换4)子状态5)延迟事件3、转换:两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作并在某个特定事件发生而某个特定条件满足时进入第二个状态。

1)源状态2)事件触发3)监护条件4)动作5)目标状态例子:电话机状态图二、UML活动图与状态图的区别:状态:行为的结果活动:行为的动作在uml中图符不一样。

第五课时:状态图、活动图和协助图

第五课时:状态图、活动图和协助图
• 活动是某件事情正在进行的状态。 • 活动在状态机中表现为一个由一系列动作组成的非原 子的执行过程。 • 活动图是一种描述系统行为的图,它用于展现参与行 为的类所进行的各种活动的顺序关系。 • 活动图与状态图都是状态机的表现形式。 • 活动图与状态图的区别: ① 活动图着重表现从一个活动到另一个活动的控制流, 是内部处理驱动的流程。 ② 状态图着重描述从一个状态到另一个状态的流程,主 要有外部事件的参与。
活动图(activity diagram)
活动图(activity diagram) 泳道
• 泳道将活动图中的活动化分为若干组,并把每一组指 定给负责这组活动的业务组织即对象。 • 泳道区分了负责活动的对象,明确地表示了哪些活动 是由哪些对象进行的。 • 每个活动只能明确地属于一个泳道。 • 泳道用垂直实线绘出,垂直线分隔的区域就是泳道。 在泳道上方可以给出泳道的名字或对象(对象类)的 名字,该对象(对象类)负责泳道内的全部活动。 • 泳道没有顺序,不同泳道中的活动既可以顺序进行也 可以并发进行,动作流和对象流允许穿越分隔线。
状态图(state diagram) 入口动作和出口动作
• 入口动作和出口动作表示进入或退出这个状态所要执行的 动作。 • 入口动作用“entry/要执行的动作”表达,而出口动作用 “exit/要执行的动作”表达。
状态图(state diagram) 简单状态
• 简单状态是指不包含其他状态的状态。 • 简单状态没有子结构,但它可以具有内部转换、入口动作 和出口动作等。
线表示,箭头的方向指向转入的方向。
活动图(activity diagram)
分支与合并
• • • • 分支一般用于表示对象类所具有的条件行为。 条件行为用分支和合并表达。 在活动图中分支与合并用空心小菱形表示。 一个分支有一个入转换和两个带条件的出转换,出转换的 条件应当是互斥的,这样可以保证只有一条出转换能够被 触发。 • 一个合并有两个带条件的入转换和一个出转换,合并表示 从对应的分支开始的条件行为的结束。

UML中包括九种图

UML中包括九种图

UML中包括九种图:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图。

1)用例图(Use Case Diagram)它是UML中最简单也是最复杂的一种图。

说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂。

说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单。

用例图表示了角色和用例以及它们之间的关系。

2)类图(Class Diagram)是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。

通过关系和类表示的类图,可以图形化的方式描述一个系统的设计部分。

3)对象图()对象图是类图的实例,几乎使用与类图完全相同的标识。

它们的不同点在于对象图显示类的多个对象实例,而不是实例的类。

一个对象图是类图的一个实例。

由于对象存在生命周期,因此对象图只能在系统某一时间段存在。

4)状态图描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。

通常创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。

5)时序图又称顺序图,描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。

顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。

顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。

消息用从一务垂直的对象生命线指向另一个对象的生命线的水平箭头表示。

图中还可以根据需要增加有关时间的说明和其他注释。

6)协作图协作图用于显示组件及其交互关系的空间组织结构,它并不侧重于交互的顺序。

协作图显示了交互中各个对象之间的组织交互关系以及对象彼此之间的链接。

与序列图不同,协作图显示的是对象之间的关系。

另一方面,协作图没有将时间作为一个单独的维度,因此序列号就决定了消息及并发线程的顺序。

协作图是一个介于符号图和序列图之间的交叉产物,它用带有编号的箭头来描述特定的方案,以显示在整个方案过程中消息的移动情况。

uml报告三-状态图与活动图

uml报告三-状态图与活动图

天津理工大学
计算机与通信工程学院
实验报告
2013 至2014 学年第二学期
事件流的描述,可在活动图中绘制如下图。

其中,当点击点击
点击图标然后在
Step 8:保存结果
【扩展练习】
练习一:对选课系统中的课程类(对象)(Course)的状态变化过程如下:课程对象被
创建,添加到数据库中。

管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修人数超过指定人数,就不再允许学生选这门课。

学期结束,课程的状态终止。

根据以上描述,绘制课程类(Course)的状态图。

附录(可包括源程序清单或其它说明)心得体会。

活动图与状态图

活动图与状态图

系统分析 在系统分析系统阶段用状 态图和活动图为对象动态模型 中的状态模型建模。 系统设计 在系统设计阶段阶段对已 经建立的对象动态模型(状态 实现 图、活动图、顺序图和协作图) 采用迭代式的方式进一步细化 测试 和完善。
部署
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.2.2 状态图组成
2. 状态 状态是指在对象的生命期中的一个条件或状况, 在此期间对象将满足某些条件、执行某些活动或等待 某些事件。
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.2.2 状态图组成
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.1 动态建模概述
5.状态图做什么?
状态图(State Diagram)主要用来描述对象、子系统、系 统的生命周期。通过状态图可以表现系统中一个对象所具有的 各种状态和这个对象从一种状态到另一种状态的转换(迁移), 以及影响对象这些状态的事件(如收到消息、时间已到、报错、 条件为真)等。它主要描述某个对象从一个状态到另一个状态 变化迁移的控制流。
第10章 状态图与活动图
10.2.2 状态图组成
理解状态的特征: (1)进入/退出动作:对象本身的一个操作。如果在电梯里是一个 状态的话,那员工进电梯和出电梯就是状态“在电梯里”的进 入/退出动作。 (2)内部转换:例如员工在去等电梯的时候发现钥匙没带,此时 我们不用在“等电梯”以后,而是在“准备回家”的状态中就 去拿钥匙了。虽然整体的状态没有发生变化,但对于对象本身 来说,前后是不一样的,一个是有钥匙,一个是没有钥匙。 (3)子状态:如果需要进一步描述员工对象在电梯里聊天、打电 话等状态时,这些状态就是该对象的“在电梯里”状态的子状 态。 (4)延迟事件:现在不立即产生的事件,该事件是在一段时间以 后才产生的事件。员工必须等待到达17:50的时候,才能下班。

软件工程---UML动态分析-活动图

软件工程---UML动态分析-活动图

Make Plan
entry/ SetGoal
2020/5/4
26
动作流
与状态图不同,活动图的转换一般都不需要特 定事件的触发。
一个动作状态执行完本状态需要完成的动作后 会自发转换到另外一个状态。
2020/5/4
27
动作流
一个活动图有很多动作或者活动状态,
活动图通常开始于初始状态,然后自动转换到 活动图的第一个动作状态,一旦该状态的动作 完成后,控制就会不加延迟地转换到下一个动 作状态或者活动状态。
7
活动图与流程图的区别
⑴ 流程图着重描述处理过程,它
的主要控制结构是顺序、分支 和循环,各个处理过程之间有 严格的顺序和时间关系
找饮料 [ 发现咖啡 ]
活动图描述的是对象活动的顺序
把咖啡放入 滤器
关系所遵循的规则,它着重表 将滤器放入 现的是系统的行为,而非系统 机器
的处理过程。
往容器里加 水
开机器
活动图着重表现从一个活动到另一个活动的控制流, 是内部处理驱动的流程。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
[ 没有可乐 ]
开机器 冲咖啡
倒咖啡
喝饮料
2020/5/4
12
活动的图形表示
在UML中,活动表示成圆角矩形,与状态的圆角矩 形相比,活动的矩形的圆角更柔和,看上去接近椭 圆。
不能中断,一直运行到结束。 ⑶ 动作状态是瞬时的行为,它所占用的处理时
间极短,有时其至可以忽略。
2020/5/4
19
动作状态
动作状态有如下特点:

第9章 状态图和活动图

第9章 状态图和活动图

9.1 状态图概述
9.1.1 状态机
状态机视图是一个类对象所可能经历的所有历程的 模型图。状态机由对象的各个状态和连接这些状态 的转换组成。 状态机视图通过对类和对象的生存周期建立模型来 描述对象随时间变化的动态行为。 状态机主要用于描述类的行为。 状态机是一个类的对象所有可能的生命历程的模型。 状态机是一个对象的局部视图 。
9.2 状态图元素
变化change事件 –用关键字When,后面跟布尔表达式 –When(temperature>120)/alerm() –变化事件的意图是要频繁测试表达式,只要表 达式由假变为真,事件就会发生。
9.2 状态图元素
时间(time)事件 –时间事件是指在绝对时间或在某个时间间隔内发生的 事情所引起的事件。 –例如到达某一时间或经过了某一时间段。用关键字 When 或After表示。
9.2 状态图元素
接收到input信号 这一事件发生
9.2 状态图元素
调用call事件 •表示一个操作的调度。请求调用另一个对象 的操作
•信号是一个异步事件,而调用事件一般是同 步的。也就是说,当对象调用另一对象的操作 时,控制就从发送者传送到接收者,该事件触 发转换,完成操后,接收者转换到一个新的状 态,控制返还给发送者。
9.2 状态图元素

CD Player
需要stop状态吗?
9.2 状态图元素
中间状态的组成(除初态终态外,最常见 的状态) •状态名(name) •入口/出口动作(entry/exit action) •内部转化(internal transition) •子状态(substate) •延迟事件(deferred event)
9.4 状态图应用
9.4.1 状态分析 • 接下来分析转换事件: 参加高考:高考后进入“学前”状态 录取:学生被录取后变成“在校”的学生 生病:学生长时间生病则进入“休学”状 态 康复:学生再回到学校转为“在校”状态 完成学业:学生毕业进入“毕业”状态 学籍处理:学生被学籍处理,进入“退学” 状态

uml建模-状态图和活动图

uml建模-状态图和活动图
l 状态图表示某个类所处的不同状态和该类的状态转换信息。 虽然每个类都有状态,但在系统活动期间仅对具有三个或 更多潜在状态的类才画一个状态图,进行状态图描述。用 状态图对一个对象按事件排序的方法建模,状态图是强调 从状态到状态的控制流的状态机的简单表示。
l 使用状态图的最常见的是对反应型对象、尤其是对类、 用例或整个系统的实例的行为建模。反应型对象是指 这个对象可能处于的稳定状态、从一个状态到另一个 状态之间的转换所需的触发事件,以及每个状态改变 时发生的动作。反应型对象具有如下的特点:
活动图的符号集与状态图中使用的符号集类似。像状态图 一样,活动图也从一个连接到初始活动的实心圆开始。 活动是通过一个圆角矩形(活动的名称包含在其内)来 表示的。活动可以通过转换线段连接到其他活动,或者 连接到判断点,这些判断点连接到由判断点的条件所保 护的不同活动。结束过程的活动连接到一个终止点(就 像在状态图中一样)。活动图中的基本要素包括状态、 转移、分支、分叉和汇合、泳道、对象流等。
l ⑹把动作附加到这些转换上,并且附加到这些状态上; l ⑺考虑通过使用子状态、分支、汇合和历史状态,来简化状态图; l ⑻核实所有的状态都是在事件的某种组合下可达的; l ⑼核实不存在死角状态,即不存在那种不能转换出来的状态; l ⑽通过手工或通过使用工具跟踪状态机,核对所期望的事件序列以及它
们的响应。
::new book 借书
::availห้องสมุดไป่ตู้ble 还书
::delete
一个图书对象从它的起始点 开始,首先是“新书”状态
(new book),然后是“可 以借阅”(available)的状 ::borrowed 态,如果有读者将书借走, 则该书的状态为“已借出”
状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于

第7章 状态图和活动图

第7章 状态图和活动图

图7.1 图书馆书籍的状态图
一个图书对象从它的起始点 开始,首先是“新书”状态 (new book),然后是“可 以借阅”(available)的状 态,如果有读者将书借走, 则该书的状态为“已借出” 状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于 “删除”状态(delete),最 后到达“终止”状态。
7.2.1 活动图概述
在用例模型中,可以利用文本来描述用例的业务流程, 但如果业务流程较为复杂的话,则可能会难以阅读和 理解,这时需要用更加容易理解的方式(图形)来描 述业务过程的工作流,在UML中将这类描述活动流程 的图形称为活动图(Activity Diagram)。 活动图被设计用于简化描述一个过程或者操作的工作步 骤。活动用圆角矩形表示,接近椭圆。一个活动中的 处理一旦完成,则自动引起下一个活动的发生。箭头 表示从一个活动转移到下一个活动。和状态图类似, 活动图中的起点用一个实心圆表示,终点用一个实心 圆外加一个圆圈表示。在一个活动图中,只有一个起 始状态,可以有零个或多个终止状态。
第7章 状态图和活动图
7.1状态图
状态图,用于UML中建立动态模型,主要描述系
统随时间变化的行为,这些行为是用从静态视图中抽 取的系统的瞬间值的变化来描述的。在对象的生命期 建模中,状态图显示了一个状态机,展示的是单个对 象内从状态到状态的控制流。状态图通过对类的对象
的生存周期建立模型来描述对象随时间变化的动态行
7.2.7分叉和汇合
对象在运行时可能会存在两个或多个并发运行的控制流, 为了对并发的控制流建模,UML中引入了分叉与汇合的概 念。分叉用于将动作流分为两个或多个并发运行的分支, 而汇合则用于同步这些并发分支,以达到共同完成一项事 务的目的。 在UML中使用分叉和汇合表示并行发生的事件流。分叉表 示把一个单独的控制流分成两个或多个并发的控制流。一 个分叉可以有一个进入转移和两个或多个输出转移,每一 个转移表示一个独立的控制流。 汇合表示两个或多个并发 控制流的同步发生,一个汇合可以有两个或多个进入转移 和一个输出转移。分叉和汇合应该是平衡的。分叉和汇合 在图形上都使用同步条来表示,同步条通常用一条粗的水 平线表示。

UML的十种视图

UML的十种视图

三、UML的十种视图1.用例图(use case diagram)从系统的外部用户的观点看系统应具有的功能。

它只说明系统实现什么功能,而不必说明如何实现。

用例图主要用于对系统,子系统或类的行为进行建模。

2.类图(class diagram)描述系统的静态结构,类图的节点表示系统中的类及其属性和操作,边表示类之间的联系(包括继承(泛化)、关联、聚集)。

3.对象图(object diagram)类图的一种变形,所使用的符号与类图基本相同。

在对象名下面要加下划线。

(图略)4.包图(packet diagram)包是基于模型元素的含义或作用将模型元素分组的一种机制。

通过分组,可提高模型的维持性。

包之间的关系包括继承、构成与依赖。

5.顺序(时序)图(sequence diagram)交互图之一。

描述了在时间上对象交互的安排,展现了多个交互对象以及信息交流的序列。

时序图包含对象、对象的生命线、按顺序对象间的信息交流、控制焦点(可选的)。

6.合作(协作)图(collaboration diagram)交互图之二,强调发送和接收消息的对象间的结构组织,它与顺序图是等价的。

在图形上,协作图是顶点和弧的结合。

协作图包含对象、链、消息。

(图片来自《软件工程(第二版)》齐治昌、谭庆平、宁洪)7.状态图(statechart diagram)状态图描述类的对象的动态行为。

它包含对象所有可能的状态、活动图描述系统为完成某项功能而执行的操作序列,这些在每个状态下能够响应的事件以及事件发生时的状态迁移与响应动作。

操作序列可以并发和同步。

8.活动图(activity diagram)活动图中包含控制流和信息流。

控制流表示一个操作完成后对其后续操作的触发,信息流则刻画操作之间的信息交换。

提供了对工作流进行建模的途径,活动图中的活动,表示执行工作流中一组的动作。

一旦结束,控制流将自动转移到下一个活动,或通过转换进入下一个状态。

9.构件图(component diagram)提供当前模型的物理视图,对系统的静态实现视图进行建模。

状态图与活动图

状态图与活动图
收到商品 [部分商品 缺货]
收到商品[ 全部商品都有 ]
等待
取消 取消 已发货
收到商品 [部分商品 缺货]
检查
do/ 检查商品
[ 全部商品已检查完且全部商品都有 ]
办理发货
do/ 启动发货
[ 全部商品已经检查完,但部分商品缺货 ]
收到商品[ 全部商品都有 ]
[未检查完 全部商品]/结状态

判定:判定是在状态图中的一个特定的位置, 工作流在此按保安条件的取值而发生分支 判定用空心小菱形表示
[人员齐备]
制定计划 实施
[人员未齐备]
招聘人员

同步:同步可视化地定义了并发工作流的分 劈(fork)与接合(join)
分劈是一个源状态分为两个或两个以上的目标
状态 接合是两个以上的源状态连接为一个目标状态 同步在状态图中用一条粗短线表示,成为同步 杆
活动
点燃 咖啡炉 冲调咖啡
熄灭咖啡炉
终点
倒咖啡 喝饮料
活动图的基本要素
活动; 泳道; 分支; 分叉和汇合; 对象流; 注释体和注释连接。

活动
活动:活动是某件事情正在进行的状 态,表现为由一系列动作组成的非原 子的执行过程。 UML中的表示:

泳道
泳道是活动图中的区域划分,每个 泳道代表一个责任区,一个泳道可由一 个或多个类实现。

什么是活动图

活动图是系统的一种行为视图,它描述参 与行为的对象类的活动的顺序,包括依赖 于条件的行为和并发行为
判断条件
人 找饮料
[没有咖啡] [找到咖啡]
判定活动
[没有可口可乐] [找到可 口可乐]
同步条件
将咖啡放到 过滤器中 把过滤器放 到咖啡炉上

UML各种图总结-精华

UML各种图总结-精华

UML各种图总结-精华UML(UnifiedModelingLanguage)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

一、基本概念如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。

静态图分为:用例图,类图,对象图,包图,构件图,部署图。

动态图分为:状态图,活动图,协作图,序列图。

1、用例图(UseCaseDiagrams):用例图主要回答了两个问题:1、是谁用软件。

2、软件的功能。

从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

2、类图(ClassDiagrams):用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。

在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖2.1.泛化【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

2.2.实现【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

2.3.关联【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量2.4.聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件开发生命周期与统一建模语言
8.5 实例
静态模型 动态模型
软件开发生命周期与统一建模语言
8.5 实例 ——“餐馆订餐”系统的用例图
静态模型
软件开发生命周期与统一建模语言
“记录预约”用例的事件路径如下:
静态模型 动态模型
1.接待员输入要预约的日期 2.系统显示该日的预约 3.有一张合适的餐桌可以使用,接待员输入顾客的姓名和 电话号码、预约的时间、用餐人数和餐桌号
软件开发生命周期与统一建模语言
对象流(objectFlow)
静态模型 动态模型
软件开发生命周期与统一建模语言
8.2.2 活动的分解
静态模型 动态模型
一个活动可以分为若干个动作或子活动,这些动作和子活动 本身可以组成一个活动图; 一个包含子活动的活动和嵌套了子状态的组合状态类似,概 念上也相对统一。 一个不含内嵌活动或动作的活动称之为简单活动;一个嵌套 了若干活动或动作的活动称之为组合活动,组合活动有自己 的名字和相应的子活动图。
静态模型 动态模型
软件开发生命周期与统一建模语言
泳道(swimlane)
静态模型 动态模型
对活动图中的活动分组,并把每一组指定给负责这组活动的 业务组织即对象; 泳道区分了负责活动的对象,明确地表示了哪些活动是由哪 些对象进行的; 每个活动只能明确地属于一个泳道; 泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并 发进行,动作流和对象流允许穿越分隔线。
静态模型 动态模型
第8章 状态图与活图
软件开发生命周期与统一建模语言
回顾
静态模型 动态模型
协作图的定义 协作图的建模过程
软件开发生命周期与统一建模语言
学习目标
静态模型 动态模型
状态图的定义
状态图的建模
活动图的建模
软件开发生命周期与统一建模语言
8.1 状态图(Statechart Diagram)
软件开发生命周期与统一建模语言
8.1.1 基本概念
静态模型 动态模型
CD播放器(正常状态下)
软件开发生命周期与统一建模语言
动作
静态模型 动态模型
Action
可执行的原子计算; 不可中断,其执行时间可忽略不计;
两种特殊动作(只要进入或离开状态都会执行该动作): 进入动作(entry action)
延迟到下一状态中处理的事件
软件开发生命周期与统一建模语言
3、组合/嵌套状态
静态模型 动态模型
含有子状态的状态被称为组合状态
状态名(name)
进入/退出动作(entry/exit action)
软件开发生命周期与统一建模语言
3、组合/嵌套状态
静态模型 动态模型
两种类型:
与子状态
或子状态
一个状态机只能有一个初态,因为每一个执行都是从相同的 地方开始。如果一个状态机是由多个状态图描述,则多张图 用同一个初态; 嵌套状态中可以使用新的初态;
终态(end state)
表示一个最后的或者终端状态; 终态的数目可以是不确定的(可以不用画出来)
软件开发生命周期与统一建模语言
2、中间状态组成
软件开发生命周期与统一建模语言
动作流(transition)
静态模型 动态模型
所有动作状态之间的转换流称之为动作流。 与状态图的转换相同,活动图的转换也用带箭头的 直线表示,箭头的方向指向转入的方向。
软件开发生命周期与统一建模语言
决策(decision)
静态模型 动态模型
用于表示对象类所具有的条件行为(警戒条件 ); 条件行为用分支和合并表达; 一个分支有一个入转换和两个带条件的出转换,出 转换的条件应当是互斥的,这样可以保证只有一条 出转换能够被触发; 一个合并有两个带条件的入转换和一个出转换,合 并表示从对应的分支开始的条件行为的结束;
8.1.3 状态图
静态模型 动态模型
订单处理系统
软件开发生命周期与统一建模语言
8.3 状态图建模技术
静态模型 动态模型
为什么要对状态图进行建模?
1. 对象可能会有不同的状态,某些行为依赖于这些状态。例
如,按下开关按钮时,电灯将改变当前的状态(由关变开
或由开变关),因此:
1. 2. 3. 需要记录对象当前的状态 发生了某种事件才会引起状态间的转移 由一个状态转到另一个状态的过程通常通过方法调用实现
建模主事件流
静态模型 动态模型
软件开发生命周期与统一建模语言
建模扩展事件流
静态模型 动态模型
软件开发生命周期与统一建模语言
划分游泳道后的活动图
静态模型 动态模型
软件开发生命周期与统一建模语言
8.6 活动图实例
静态模型 动态模型
1、图书馆系统管理员通过图书管理系统对读者的 借阅进行管理(查询、添加、删除和更新借阅信 息),请画出系统管理员维护借阅者账户信息的活 动图。
活动图用来建模某个过程的活动序列,以活动为中心;
状态图用来建模对象生命周期中的所有阶段,以状态为中心;
软件开发生命周期与统一建模语言
8.2 活动图
静态模型 动态模型
存款
软件开发生命周期与统一建模语言
8.2.1 基本概念
静态模型 动态模型
活动 决策 同步 泳道 对象流和对象
软件开发生命周期与统一建模语言
4、历史状态
静态模型 动态模型
History state
使用历史状态,则可以存储给退出组合状态时所处的子状态, 则返回组合状态时可以直接回到相应的子状态;
软件开发生命周期与统一建模语言
8.1.3 状态图
静态模型 动态模型
订单处理系统
软件开发生命周期与统一建模语言
- 进入状态时执行的动作
- Entry/setMode(onTrack)
退出动作(exit action)
- 退出状态时执行的动作
- Exit/setMode(offTrack)
软件开发生命周期与统一建模语言
转移
静态模型 动态模型
Transition
两个状态之间的一种关系,表示对象在第一个状态 执行一定的动作,并在某个特定事件发生而且满足 某个条件时进入第二个状态。
的目的;
理解: 汇合代表两个或多个并发控制流同步发生,当所有的控制
流都达到汇合点后,控制才能继续往下进行。每个汇合可以 有两个或多个输入转换和一个输出转换;
分叉可以用来描述并发线程,每个分叉可以有一个输入转
换和两个或多个输出转换,每个转换都可以是独立的控制流;
软件开发生命周期与统一建模语言
同步(synchronization)
软件开发生命周期与统一建模语言
决策(decision)
静态模型 动态模型
软件开发生命周期与统一建模语言
同步(synchronization)
静态模型 动态模型
显示业务用例的工作流程中的并行线程;
分叉用于将动作流分为两个或者多个并发运行的分支; 汇合则用于同步这些并发分支,以达到共同完成一项事务
8.4 状态图实例
静态模型 动态模型
书的状态图:
软件开发生命周期与统一建模语言
8.4 状态图实例
静态模型 动态模型
借阅证的状态图:
软件开发生命周期与统一建模语言
8.2 活动图
静态模型 动态模型
Activity Diagram
提供了建模业务工作流的一种方法;
是一种特殊的状态图;
同状态图的区别:
格式:
事件(参数)[条件] / 动作
help[length(password)< >6] / verifyPassword.help()
软件开发生命周期与统一建模语言
事件
静态模型 动态模型
Event
是对一个时间和空间上占有一定位置的有意义的事情的规格 说明;
事件触发状态的转移;
四类主要事件
3a) 没有合适的餐桌可以使用 3a1) 用例终止
4.系统记录并显示该预约
4a) 输入的预约人数多于餐桌能容纳的人数 4a1) 系统发出一个警告信息,询问用户是否想要继续预约 4a1a) 如果回答“否”,用例将不进行预约而终止 4a1b) 如果回答“是”,预约将被输入,并附有一个警告标志
软件开发生命周期与统一建模语言
软件开发生命周期与统一建模语言
泳道(swimlane)
静态模型 动态模型
软件开发生命周期与统一建模语言
对象流(objectFlow)
静态模型 动态模型
对象流是动作状态或者活动状态与对象之间的依赖 关系,表示动作使用对象或者动作对对象的影响。 对象流中的对象特点:
① 一个对象可以由多个动作操纵; ② 一个动作输出的对象可以作为另一个动作输入的对象; ③ 在活动图中,同一个对象可以多次出现,它的每一次出现表 明该对象正处于对象生存期的不同时间点;
软件开发生命周期与统一建模语言
8.6 活动图实例
静态模型 动态模型
软件开发生命周期与统一建模语言
8.6 活动图实例
静态模型 动态模型
图书管理员的日常工作主要是通过图书管理系统处 理借书与还书,借阅者借阅书籍的数量是受限制的, 超过还书期限需要缴纳罚金。请给出图书管理员的 活动图
软件开发生命周期与统一建模语言
8.2.3 活动图
静态模型 动态模型
软件开发生命周期与统一建模语言
8.5 活动图建模技术
静态模型 动态模型
① ② ③ ④ ⑤ ⑥
识别要对其工作流描述的类或对象。 确定工作流的初始状态和终止状态,明确工作流的边界。 对动作状态或活动状态建模。 对动作流建模。 对对象流建模。 对建立的模型进行精化和细化。
相关文档
最新文档