UML(六)状态机状态图

合集下载

UML状态机图

UML状态机图

面对目前大学生日益懒惰的现象,某企业计划开发一套针对大学食堂的网上自动订餐、派送、支付等功能的电子商务系统。

具体包括(但不限于):
1、任何人均可实名注册并登录系统;
2、当日菜品浏览和订餐;
3、可实时浏览订单状态。

如果尚未配送,可撤销菜单;
4、授权人员进行配送并更新状态;
5、支付方式可以是货到付款,可以是从订餐者个人校园卡中扣除(如果余额不足则支付和订餐失败),也可以是其他方式;
6、正常结束和异常结束;
7、系统可实现整体的查询和统计分析功能。

状态机图
说明:用户首先要注册账号,第一个状态为注册状态,在此状态中系统要检测用户名与密码是否符合规范,不符合则不合格(注册失败),否则合格(注册成功)。

注册成功后用户要登陆(登陆状态),同时系统要检测用户名是否存在并且与密码匹配,若匹配则登陆成功,否则登陆失败。

登陆成功之后进入菜品界面(菜品浏览状态),这时系统检测用户是否订餐,若为订餐,停留在此状态,若订餐,进入订餐状态,此时系统提示用户选择支付方式,提供货到付款与校园卡支付两种支付手段。

若用户选择校园卡支付,系统要检测校园卡余额,若余额不足,订餐失败,否则订餐成功(订餐成功状态)。

在此状态下用户可查询订单状态,若订单未配送,系统检测用户是否取消订单,若取消,希尔进入订单取消状态,否则返回上一状态。

UML状态图的画法

UML状态图的画法
当发生一个转移时,该转移进入的状态为活动状态,它将执行相应 的动作。当发生一个转移离开一个状态时,该状态变为非活动状态。
转移类型:简单转移、自转移、自动转移、复合转移等。
14
事件
事件(event是指某个时刻发生的事情 事件中最常见的是:
信号事件(signal event):从一个对象到另一个对象 的明确的单向信息流动。
购入项目 在店内
entry/ 令store = theStore本店)
弃置项目
租出项目 归还项目
已租出
租出项目
正常 entry/ 令store = null空值) 已出租do/ 每天检查到期时间
超过到期日子
过期 entry/ 通知会员
25
3.4.2 顺序子状态
顺序子状态:子状态是一个一个顺序转移的不是并发存在 的
源状态
目标状态1
源状态1
目标状态2
源状态2
目标状态
30
3.4.4 并发子状态—同步
在并发状态图中一个子状态图中 的子状态常常需要与另一个子 状态图中的子状态的行为同步 在UML中使示(伪状态,放 在分隔子状态的虚线上。
例:建筑住宅的并发状态图。 其中有二个子状态图,分别 代表主体工程施工和水电工程 施工,它们是并行进行的。
历史状态是一个伪状态的图形标记,只能作为组合状态中 的子状态,不能在顶层状态图中使用。
32
3.4.5 历史状态2
活动 停止
恢复
H
暂停
播发
中断
选择
影碟机对象工作的部分状态图
33
3.5 状态图的应用
状态图为一个对象的生命周期建立模型状态图可以表示一 个对象的历史引起一个状态向另一个状态转移的事件,以 及由于状态的转移而引发的动作。

UML的状态机图

UML的状态机图

UML的状态机图UML(Unified Modeling Language)是一种标准化的建模语言,用于描述软件系统中的各种构建块和交互关系。

UML的状态机图是其中一个最为重要的建模图之一。

什么是状态机图?状态机图是一种用于描述对象行为的UML图表。

它以有限状态机的形式描述对象或系统在不同状态下对事件以及其他因素产生的响应。

状态机图显示了对象的状态及其之间的转换。

状态机图主要由三个部分组成:状态、转移和事件。

状态表示对象或软件系统处于的状态,转移表示状态之间的转换,事件则表示导致状态转换的触发器或条件。

状态机图的建立过程在建立状态机图之前,需要先确定对象或软件系统的状态、转移和事件。

1. 确定状态首先需要确定对象或软件系统可能出现的所有状态。

每个状态都应该有一个名称、一个描述以及一个标识符。

状态可以是“初态”(启动状态)、“终态”(结束状态)或“中间态”(中间状态)。

2. 确定转移和事件根据对象或软件系统的实际情况,确定状态之间的转移以及导致转移的事件或条件。

每个转移都应该有一个名称、一个标识符以及一个触发器。

触发器可以是一些条件,例如键盘上的一个按键或计时器到期,也可以是上一个状态完成某些任务导致的条件。

例如,在一个自动售货机的状态机图中,售货机可能处于“待机”、“已付款”、“正在出货”、“出货完成”四种状态。

当用户选择购买商品并投入硬币时,售货机会从“待机”状态转移到“已付款”状态,并且会关闭“使用硬币”事件。

当售货机完成出货并关闭接口时,它会从“正在出货”状态转移到“出货完成”状态。

状态机图的用途状态机图有很多用途。

它可以用于描述产品或系统的交互设计,也可以用于演示API和网络安全策略的行为。

一些常见的用途包括:1. 软件开发状态机图可以在软件开发过程中用于确定软件的行为、处理错误和异常情况、定义状态转换以及帮助代码实现。

通过建立状态机图,可以更好地理解软件中各个状态的流转情况,从而提高软件开发效率。

状态机图(精品)

状态机图(精品)

状态机图1.概述状态机图(State Machine Diagram)是用来显示状态机的图,包括简单状态、转换和嵌套的复合状态等,一个典型的状态机图如图1所示:图1. 状态机图2.基本表示符号状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。

2.1状态(State)状态是对象生命周期中的一个条件或形态。

状态由对象的属性值、与其他对象的关系以及正在执行的活动来确定。

在UML中,状态用圆角矩形和状态名表示,初始状态用实心圆表示,终止状态用牛眼表示,如图2所示:图2. 状态状态可以有一个或多个分栏,这些分栏是可选的,包括名称分栏、嵌套区域、内部转换分栏等,如图3所示:图3. 带分栏的状态状态也可用圆角矩形上带有状态名称标签的方框表示,如图4所示:图4. 带有名称标签符号的状态2.2转移(Transaction)转移表示状态之间可能的路径,可以表示外部转换(用箭头表示),也可以表示内部转换(嵌套在状态内部)。

如图5所示:图5. 转移2.3事件(Event)事件是对,在特定时间和空间上,所发生的有意义的事情。

在状态机中,事件触发转移,事件或者显示在转换之上,或显示在状态以内。

共有四种类型的事件:信号事件、调用事件、时间事件、改变事件。

信号用于对象间异步传递的信息包,它没有任何操作,只有自身携带的信息。

信号事件是通过信号来触发的事件,在UML中,信号如图6所示:图6. 信号调用事件是请求在类语境的实例上调用特定的操作,在UML中,调用事件如图7所示:图7. 调用事件时间事件用关键字after表示,说明事件被触发的临界时间。

改变事件用关键字when表示,说明将事件改变所满足的条件。

如图8所示:图8. 时间事件和改变事件2.4伪状态(Pseudo State)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。

它是一个瞬时状态,用于构造转换的细节。

当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。

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)。

状态图

状态图

zhufei@
无人职守的电梯升降状态图
第一层楼 上升( 第n层 ) 向上移动
do/ 移动到第n层
到达 下降( 第n层 ) 移动到第一层 向下移动
do/ 移动到第n层
到达 等待命令
entry/ 计时器=0 do/ 计时器增值
上升( 第n层 )
到达
[计时器=超时]
zhufei@
事件
事件表示在某一特定的时间或空间出现的 能够引发状态改变的一种运动变化。 事件是一个激励的出现,它定义一个触发 子以触发对象改变其状态,任何影响对象 的事物都可以是事件。
事件
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ 事件种类: 入口事件 出口事件 动作事件 信号事件 调用事件 修改事件 时间事件 延迟事件
zhufei@
设备使用状况的状态图例子
zhufei@
嵌套状态
在一个状态图符的活动区还有一个或多个状态 图称为嵌套状态,被嵌套的状态称为子状态。 一个子状态还可以有嵌套状态 一个不含内嵌套的状态,称为简单状态。简单 状态对应一个动作,而嵌套状态中每个被嵌套 的状态图都对应于该嵌套状态内正在进行的一 个活动。
zhufei@
事件的种类


状态内部事件
入口事件entry 出口事件exit do事件 include事件 自定义内部事件
调用事件
信号事件Hale Waihona Puke 消息
时间事件 After事件 Defer事件 When事件 出错情况<<error>>等事件
zhufei@
状态图
示意图:
状态图的例子
统计付款金额
entry/ ^在屏幕上提示(合同编号No.1已经付款) do/ ^在屏幕上提示(No.1已经付款:100元) exit/ 已付款金额累加

第6章 状态机图

第6章 状态机图

14
例1:子状态之间“or”关系的例子。
例2:子状态之间“and”关系的例子。
15
History State(历史状态)


History State: A pseudostate whose activation restores the previously active state within a composite state. 使用历史状态,可以记住从组合状态中退出时 所处的子状态,当再次进入组合状态时,可直 接进入到这个子状态,而不是再次从组合状态 的初态开始。
7
状态(State)


定义:A state is a condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event. 一个状态是指在对象的生命期中的一个条件或 状况,在此期间对象将满足某些条件、执行某 些活动或等待某些事件。
22


说明: 在UML中,事件分为四类: (1) Call event (调用事件) (2) Change event (变化事件) (3) Time event (时间事件) (4) Signal event (信号事件)
23
(1) Call event: The event of receiving a call for an operation that is implemented by actions on state machine transitions. Call event的语法格式如下: 事件名 ( [逗号分隔的参数列表] ) 其中参数列表中的参数格式为: 参数名:类型 例:

UML状态图

UML状态图

UML状态图目录1、UML状态图概述 (1)2、状态图的作用 (2)3、UML状态图的目的 (3)4、UML状态图怎么画 (3)1、UML状态图概述UML状态图是图表本身的名称,主要用于描述对象具有的各种状态、状态之间的转换过程以及触发状态转换的各种事件和条件。

UML状态图描述了一个状态机,可以被定义为一台机器,它定义了一个对象,这些状态控制外部或内部事件的不同状态。

状态机由状态、转换、事件、活动和动作五部分组成。

状态:状态指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。

一个状态的生命周期是一个有限的时间阶段。

转换:转换指的是两个不同状态之间的一种关系,表明对象在第一个状态中执行一定的动作,并且在满足某个特定条件下由某个事件触发进入第二个状态。

事件:事件指的是发生在时间和空间上的对状态机来讲有意义的那些事情。

事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态,如信号、对象额度创建和销毁等。

活动:活动指的是状态机中进行的非原子操作。

动作:动作指的是状态机中可以执行的哪些原子操作。

所谓原子操作,指的是他们在运行的过程中不能被其他消息中断,必须一直执行下去,以至最终导致状态的变更或者返回一个值。

2、状态图的作用状态图的作用主要体现在以下几个方面。

状态图清晰地描述了状态之间的转换顺序,通过状态的转换顺序也就可以清晰地看出事件的执行顺序。

如果没有状态图我们就不可避免地要使用大量文字来描述外部事件的合法顺序。

清晰的事件顺序有利于程序员在开发程序时避免出现事件顺序错误的情况。

例如,对于一个网上销售系统,在用户处于登录状态前是不允许购买商品的,这就需要程序员开发程序的过程中加以限制。

状态图清晰地描述了状态转换时所必需的触发事件、监护条件和动作等影响转换的因素,有利于程序员避免程序中非法事件的进入。

例如,飞机起飞前半小时不允许售票,在状态图中就可以清晰地看到,可以提醒程序员不要遗漏这些限制条件。

uml建模状态机图PPT专业课件

uml建模状态机图PPT专业课件
4
例:CD播放器
5
一、状态(state)
2、状态的表示 状态名称 入口动作 出口动作 内部转换 内部活动 可推迟事件
状态示例
6
动作(Action)
可执行的原子计算。 不可中断,其执行时间可忽略不计。
两种特殊动作:
进入动作(entry action):进入某状态时执 行的动作,用“entry/要执行的动作”表示。
34
10.3 建立状态机图
1.寻找主要的状态 飞机票有以下4种状态:无预订、部分预订、
预订完、预订关闭。 (1)在刚确定飞行计划时,显然没有任何预订,
且在顾客预订机票之前都将处于“无预订”状态。 (2)对于订座而言,有“部分预订”和“预订完”
两种状态。 (3)当航班快要起飞时,要“预订关闭”。
35
11
(3)简单状态
组成: 状态名 进入/退出动作 内部转移----不导致状态改变的转换,不会
执行entry和exit动作。 内部活动 延迟事件----延迟到下一状态处理的事件。
12
EnterPassword
entry/ set echo * exit/ set echo normal event keypress/ handle character event help/ display help event save/ defer do/ get password
Maintaining The train stop
22
(2)内部转换
有一个源状态但没有目标状态,转换后的状态 仍是它本身。
23
(3)自动转换
在没有外部事件的作用下,对象执行了某些活 动后,自然而然地完成的转换。

UML(六)状态机状态图

UML(六)状态机状态图

AM will keep each application’s state:
CREATED
/ Termination
Application has these stable states: Created Initialized
INITIALIZED ACTIVATED
/ Termination
Activated Focused
个状态机建模,如:对象的创建、撤销
➢ 建模准则:
建模具有复杂行为并依赖于状态的对象而不是建模跟状态无关的对象 如电话对于按下某个按钮的反应,依赖于手机当前的状态
在过程控制、设备控制、协议处理和通信领域等,通常有许多的依赖于 状态的对象。
5
1. 基本概念
➢ 使用交互图建模共同工作的 对象群体的 行为
转移/迁移(transition): 是两个状态之间的一种关系。它指明对象 在某个状态中执行一定的动作,并当特定事件发生或特定的条件满足 时进入下一个状态。
1. 基本概念
➢ UML 状态的的图形表示 圆角 的矩形 初态、终态 转态迁移:带箭头的线
➢ 迁移的文字标记的格式如下:
触发事件[触发条件]/变迁动作 迁移的文字标记的三个部分以及文字标记本身都是可以省略的
➢ 课本p257, 图25-2,
该机器被设计成能分析与语法相匹配的字符流: ‘<‘ string ‘>’ string ’;’ (Note: <标记串> 消息体;)
代码生成
➢ class MessageParser {
public boolean put(char c) { switch (state) { case Waiting: if (c == '<') { state = GettingToken; token = new StringBuffer(); body = new StringBuffer(); } break; case GettingToken : if (c == '>') state = GettingBody; else token.append(c); break; case GettingBody : 。。。

UML之状态机图

UML之状态机图

UML之状态机图状态机图基本概念: 状态机图,UML 1.x规范中称状态图,是⼀个展⽰状态机的图。

状态机图基本上就是⼀个状态机中元素的投影,这也就意味着状态机图包括状态机的所有特征。

状态机图显⽰了⼀个对象如何根据当前状态对不同事件做出反应的动态⾏为。

状态机图主要由状态和转换两种元素组成。

状态机 状态机是⼀种⾏为,它说明对象在其⽣命周期中响应事件所经历的状态变化序列以及对那些时间的响应。

⼀般情况下,⼀个状态机依附于⼀个类,⽤来描述这个类的实例的状态及其转换,和对接收到的事件所做出的响应。

此外,状态机也可以依附于⽤例、操作、协作等元素上,描述它们的执⾏过程。

状态机从对象的初始状态开始,响应事件并执⾏某些动作,从⽽引起状态的转换;在新状态下⼜继续响应事件并执⾏动作,如此循环进⾏到对象的终结状态。

状态机主要由状态、转换、事件、动作和活动5部分组成。

1)状态表⽰对象的⽣命周期中的⼀种条件或情况。

2)转换表⽰两种状态间的⼀种关系。

3)事件表⽰在某⼀时间与空间下所发⽣的有意义的事情。

4)动作表⽰⼀个可执⾏的原⼦操作,是UML能够表达的最⼩计算单元5)活动表⽰状态机中的⾮原⼦执⾏,⼀般由⼀系列动作组成。

状态机图作⽤:状态机图⽤于对系统的动态⽅⾯进⾏建模,适合描述⼀个对象在其⽣命周期中的各种状态及状态的转换。

状态机图的作⽤主要体现在以下⼏点:1)状态机图描述了状态转换时所需的触发事件和监护条件等因素,有利于开发⼈员捕捉程序中需要的事件。

2)状态机图清楚地描述了状态之间的转换及其顺序,这样就可以⽅便地看出事件的执⾏顺序,状态机图的使⽤节省了⼤量的描述⽂字。

3)清晰的事件顺序有利于开发⼈员在开发程序时避免出现事件错序的情况。

4)状态机图通过判定可以更好地描述⼯作流在不同的条件下⽽出现的分⽀。

状态机图的组成: 简单状态、转换、伪状态。

简单状态 状态是状态机图的重要组成部分,它描述了⼀个对象稳定在的某⼀个持续过程或所处状况,与动态⾏为的执⾏所产⽣的结果。

状态机图

状态机图

9.2 状态图的表示
6.活动 活动
当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。 当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但 是某些时间,对象正在执行一序列动作, 对象做着某些工作, 是某些时间,对象正在执行一序列动作,即,对象做着某些工作,并一 直继续到被某个外部事件的到来,才中断这些工作,我们把对象处于某 直继续到被某个外部事件的到来,才中断这些工作, 个状态时进行的一序列动作称为活动。 个状态时进行的一序列动作称为活动。 如果对象处于某个状态进行一些动作,可能会需要一些时间, 如果对象处于某个状态进行一些动作,可能会需要一些时间,我们可以 用活动来描述这一序列动作。表示活动的方法是, 用活动来描述这一序列动作。表示活动的方法是,在状态的转换分栏中 添加一行“活动描述” 其格式为“ 动作名” 添加一行“活动描述”,其格式为“do/动作名”。 动作名 活动用来描述对象处于某个状态时,对象进行的一序列动作。 活动用来描述对象处于某个状态时,对象进行的一序列动作。
9.2 状态图的表示
7.理解简单状态图 理解简状态图
例如,我们描述一个烧水器在工作时的行为状态变化。可以采用如图 例如,我们描述一个烧水器在工作时的行为状态变化。可以采用如图96所示进行描述。 所示进行描述。 所示进行描述
•图9-6 烧水器的状态变化图 图
9.2 状态图的表示
9.2.3 分支的表示
9.1 状态机图的概念
1.状态机图 状态机图
状态机图描述对象在整 个生命周期内, 个生命周期内,在外部 事件的作用下,从一种 事件的作用下, 状态转换到另一种状态 的关系图。 的关系图。这种图的节 点是状态(包括初始状 点是状态 包括初始状 态和终止状态), 态和终止状态 ,关系 是转换。图9-1是一个 是转换。 典型的状态机图。 典型的状态机图。

UML学习复习—状态图

UML学习复习—状态图
转换可以标注与此转换相关的选项如事件、动 作和监护条件。
• Transition图例
说明: 状态的之间的转移通常是由事件触发的,此时应在转
Signal event的语法格式和Call event一样。 信号事件是一个异步事件,调用事件一般是一
个同步事件。

Signal(信号)
一个信号表示由一个对象异步地发送、并 由另一对象接收的一个已命名的对象。
说明:
信号用版型为<<signal>>的类图标表示。 信号之间可以具有泛化关系,形成层次结构。 在UML中,例外(exception)是信号的一种。

4.1 入口事件
入口事件表示一个入口的动作序列,它 在进入状态时执行。
入口事件的动作是原子的,并且先于内 部活动或转换。

4.2 出口事件
出口事件表示一个出口的动作序列,它 在退出状态时执行。
出口事件也是原子的,它跟在所有的内 部活动之后,但是先于所有的出口转换 。

4.3 动作事件
3.5 简单状态
简单状态是指不包含其他状态的状态。 简单状态没有子结构,但它可以具有内
部转换、入口动作和出口动作等。

3.6 组成状态
组成状态是可以包含一些嵌套的子状态 的状态。
组成状态可以使用“与”关系分解为并发子 状态,或者通过“或”关系分解为互相排斥 的顺序子状态。

3.6 组成状态
UML学习复习—状态图

状态图
1 状态机 2 状态图 3 状态 4 事件 5 转换 6 状态图建模技术 7 实例——图书馆管理系统的状态图

1 状态机
状态机是展示状态与状态转换的图,包含了一 个类的对象在其生命期间所有状态的序列以及 对象对接受到的事件所产生的反应。

uml系列(六)——行为图:活动状态

uml系列(六)——行为图:活动状态

uml系列(六)——⾏为图:活动状态说完uml的静态图了,说⼀下uml的动态的表⽰吧。

uml的⾏为图,uml的⾏为图主要⽤来设计程序的⾏为。

还是⽼规矩,先来张图:⾏为图包含活动图和状态图两种。

先来说下活动图:活动图是由活动的节点和流程构成的图。

⽐较清晰的表达了各个步骤的流程。

⾸先是起点和终点,活动图由⼀个实⼼圆表⽰起点,⼀个实⼼圆外加⼀个圆圈来表⽰终点。

然后是节点,节点这个词⽐较⾼⼤上,其实它很简单,就是说的流程进⾏的状态,进⾏到哪⼀步了。

上图的“⽤户下订单”、“⽣产送货单”等都是节点。

在⽤户选择⽀付⽅式的节点下边,有个菱形的图形,在这⾥根据⽤户是否取消订单的条件,将流程分成了两条路,这就是分⽀,⽽这⾥的条件,也有个⾼⼤上的名词:监护条件,感觉就像⼤⼈监护孩⼦⼀样,根据孩⼦的表现决定接下啦的动作。

在⽤户下订单的下⾯,和供应商供货之前,有个横条(竖条)这就是uml对数据的并发操作的描述。

不了解并发是啥?ok我来简单的介绍⼀下:并发就是两件事情⼀起进⾏。

⽐如说,⼩学的时候,⽼师经常让我们⽤“⼀边、、、⼀边、、、”造句,我们可能会说:“⼩明⼀边看电视,⼀边吃饭。

”这⾥的“看电视”和“吃饭”就是⼩明的并发操作。

这两个条是同步条,同步条肯定是同步出现的。

泳道,在这张图⾥,我们把各个活动的负责主体⽤⼀条竖线隔离,以便于我们分析系统你给的负责⼈。

这样,每个负责⼈的下⾯就形成⼀个类似游泳时的泳道⼀样的效果。

这就是我们说的泳道。

泳道⼀般是在系统分析后期以及系统设计阶段使⽤。

活动图⼀般⽤作对系统的⼯作流建模和对系统的操作建模。

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

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

状态机主要描述的是⼀个类的实例在接到消息时所作出的响应。

如上图所⽰,描述的就是⼀个热⽔器在⼯作时的⾏为。

是描述⼀个状态图的局部的对象的⾏为的视图,可以对状态图⾥的某个对象的⾏为精确的描述。

[UML]UML系列——状态机图statechartdiagram

[UML]UML系列——状态机图statechartdiagram

[UML]UML系列——状态机图statechartdiagram系列⽂章引⾔状态机图和顺序图、通信图有哪些区别?顺序图、通信图:描述多个对象间的交互状态机图:描述单个对象的状态及引起状态变化的原因实例分析:⼤学⽣学籍管理系统按国家招⽣规定录取的新⽣,持录取通知书,按学校有关要求和规定的期限到校办理⼊学⼿续。

因故不能按期⼊学者,应当向学校请假,假期⼀般不得超过2周。

未请假、请假未准或者请假逾期者,除因不可抗⼒等正当事由意外,视为放弃⼊学资格。

新⽣⼊学后,学校在三个⽉内按照国家招⽣规定对其进⾏复查。

复查合格者予以注册,取得学籍。

复查不合格者,学校区别情况予以处理,直⾄取消⼊学资格。

......学⽣有如下情况之⼀者,应予休学:(⼀)因伤病经学校指定医院诊断,须停课治疗、休养⼀学期1/3时间;(⼆)⼀学期请假缺课超过该学期总学时的1/3;(三)传染性肝炎、肺结核等传染性疾病;(四)因某种特殊原因,学校认为必须休学。

.....学⽣休学⾄少⼀学期,⼀般以⼀年为限。

学⽣复学后,休学之前已记⼊成绩档案的考核成绩继续有效,并作为学籍处理依据.学⽣复学按下列规定办理:(⼀)学⽣因伤病休学申请复学时,须持有⼆级甲等以上医院诊断书,证明⾝体健康,并经学校指定医院复查合格,⽅可复学;(⼆)学⽣休学期满后应于学期的注册期内持有关证明,经教务处核准后编⼊原专业相应班级选课学习;........学⽣有下列情况之⼀者,应予退学:(⼀)学⽣在读期间,3次出现在⼀学期中取得的课程学分不⾜10学分(不含重修和补考学分;毕业学期除外;第⼀次提出警告,第⼆次提出退学警告,由教务处公布名单,院系负责通知学⽣家长);(⼆)休学、保留学籍期满,在规定期限内不办理复学⼿续;(三)休学累计满⼆年,经复查不合格;(四)因伤病需要休学,经学校动员后仍不办理休学⼿续;(五)经学校指定医院确诊患有疾病,或意外伤残⽆法继续在校学习;(六)未请假离校连续2周末参加学校规定的教学活动;(七) 超过学校规定期限未注册⽽⼜⽆正当事由;(⼋)本⼈要求退学。

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

6
1. 基本概念
定义 状态(state): 是对象的生命期中的一个条件或状况 状态 在此期间,对象可以响应事件、执行某活动等 状态机(state machine) :说明对象在它的生命期中响应事件所经 状态机 历的状态序列以及它们对那些事件的响应。 状态图(state diagram):状态图可视化表示状态机。状态图强调 状态图 从状态到状态的转移。 事件(event): 是对一个在时间和空间上占有一定位置的有意义的事 事件 情的描述。 在状态机的语境中,一个事件是一个激励的发生,它能够触发状 态的转移。 转移/迁移 迁移( 转移 迁移(transition): 是两个状态之间的一种关系。它指明对象 在某个状态中执行一定的动作,并当特定事件发生或特定的条件满足 时进入下一个状态。
19
}
案例: 案例:Application Manager
Presentation Wap Browser Game (Other Application)
LCD screen
Life Cycle Manager
Service Center
Application Manager
Lifecycle Message Service Message Service
UML Unified Modeling Language
统一建模语言
Lecture六 状态机 图 六 状态机/图
杜育根 ygdu@
SEI OF ECNU
Outline
状态机 状态图 本讲重点 事件 状态 转移 状态图
2
事件、 事件、信号
事件 Event
是对一个在时间和空间上占有一定位置的有意义的事情的描述 一个事件是一次激励的发生,该激励导致状态的转移 UML 对4种事件进行建模 状态的一次变化 信号 调用 时间事件和变化事件
子状态是嵌套在另一个状态中的状态
idle
Activate
heating
activati ng
13
4. 子状态机
14
4. 子状态机
非正交子状态:转态不 相交,一次只能处于一 个子系统 正交子状态 在一个语境中,并 发地执行两个或多 个状态机
15
分岔和汇合 分岔:从一个外部状态直接迁移到一个或多个正交状态 从带有正交区域的组合状态内的任一状态离开的迁移导致控制离 开所有的其它正交区域 例如,发生错误,从而迫使所有并行计算都被中断
10
InstallLi ght bulbBroken switchOn[ NoPower ] Black swithOn[ withPower ] Bright
destro yLi ne
swi tch Off
powerEnd
自身转移 不同于内部转移
3. 高级状态和迁移
高级状态和迁移
进入动作(entry/….) 每当进入该状态时,就执行它的进入动作 退出动作(exist/….) 每当离开该状态时,就执行它的退出 注意:进入和退出动作 不可以有监护条件 如c++,构造函数 和析构函数
建模准则:
建模具有复杂行为并依赖于状态的对象而不是建模跟状态无关的对象 如电话对于按下某个按钮的反应,依赖于手机当前的状态 在过程控制、设备控制、协议处理和通信领域等,通常有许多的依赖于 状态的对象。
5
1. 基本概念
使用交互图建模共同工作的 对象群体的 行为 使用状态机,可以 对 单个对象的 或单个 ‘系统’的行为建模 描述对象在其生命期中,由事件所引起的状态序列变化以及 对这些事件的响应。 注意: 活动图是强调 从活动到活动的控制流 状态图是强调 对象潜在的状态和这些状态之间的转移
AM launches App1 using elementary lifecycle action initialize/activate/ givefocus according the present state of the App1. The goal is to give the focus to App1. So, the last part is the focus exchange between App2 and App1.
[ Door closed ]
Disabled do/ display("Close Door")
Door closed
Time out
Operating do/ display ("time left") entry/ heatingElement.powerOn() exit/ heattingElement.powerOff()
信号 Signal
信号是消息的类元,或类型 消息是一个具名的对象,它由一个对象异步地发送给另一个对象接收 信号是一个异步事件
3
事件、 事件、信号
时间事件 和 变化事件
时间事件 是表示一段时间的推移 用关键字after 后面跟着时间表达式 用关键字at 表示某个绝对时间点上发生的时间事件 变化事件 表示状态的一个变化或某些条件得到满足的事件 用关键字 when后跟一个布尔表达式,当条件满足,则引发变化 事件
7
1. 基本概念
UML 状态的的图形表示 圆角 的矩形 初态、终态 转态迁移:带箭头的线 迁移的文字标记的格式如下: 触发事件[触发条件 变迁动作 触发事件 触发条件]/变迁动作 触发条件 迁移的文字标记的三个部分以及文字标记本身都是可以省略的
终态 初态
NewState
event_name( arguments )[ guard_Cond ] / actionT obeT aken
11
3. 高级状态和迁移
高级状态和迁移
内部转换 内部转换不同于 自身转换 内部转换只执行内部的动作, 不执行进入/退出动作 Do 活动 当对象处于某一个状态时,执行的活动 UML 用特殊的do 转换来表示 延迟事件 处于状态A, 来了事件e, 在A中不处理。当系统到了状态B时, 处理消息e。
12
4. 子状态机
INITIALIZED
Original State
Before Reply
Initializing
exit/ ChangePrivateShoe entry/ ChangeInternalShoe event MeetMaster/ ShakeHand do/ discussionWithMaster event MeetChild/ SayHello
SampelState
9
2. 状态的迁移
迁移
在事件的刺激、触发下,对象从一个状态进入另一个状态。 一个迁移由5部分组成 源状态 source state 事件触发器 event trigger 监护条件 guard condition 效应(effect) 可执行的动作 目标状态 自身转移 如 switchOn[NoPower] 已经退出Black状态,然后满足 条件又进入Black状态
MSG_LAUNCHAPP_IND(App2, App1, Reply)
22
案例:Application Manager:状态表 案例: :
Original State Legal Action Reply From App New State Note
OK
INITIALIZED
AlreadyDoneAction Created Initialization Other Error
public boolean put(char c) { switch (state) { case Waiting: if (c == '<') { state = GettingToken; token = new StringBuffer(); body = new StringBuffer(); } break; case GettingToken : if (c == '>') state = GettingBody; else token.append(c); break; case GettingBody : 。。。
at(11:49PM) / selfTest() Active
after(2 second s) / dropConnection() Idle
when( altitude < 1000 )
4
1. 状态图
状态图建模的语境
状态机主要用于描述:对象的行为必须响应异步消息 它的当前行为依赖于过去的历史信息 简单、独立的行为,或当前的行为并不依赖它们的过去 时,不需要用一 个状态机建模,如:对象的创建、撤销
20
案例: 案例:Application Manager
Initial state = None First Initialization of mobile
AM will keep each application’s state:
CREATED
/ Initialization / Termination
Door open
17
- timer and heatingElements are additional objects - Power can be on or off - Time can be set after the power has been turned on
5. Example:特定字符串处理 状态机 :
And these transient state: INITIALIZING / Termination ACTIVATING DEACTIVATING FOCUSGAINING FOCUSLOSING /Deactivation TERMINATING
FOCUSED
21
案例: 案例:Application Manager
相关文档
最新文档