UML建模语言及其开发工具Rose

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

事件(参数)[监护条 件]/动作 entry/进入动作 exit/退出动作
外部转换:最普通的转换,是一种改变活动状态的转换。它 用从源状态到目标状态的箭头表示,其他特征以文字串附加 在箭头旁。
进入转换:当进入一个状态时,执行某个动作; 退出转换:退出某个状态时,执行某个动作。 内部转换:用来处理一些不离开该状态的事件。例:用 户在登录界面上单击清空按钮
在对象的整个生命周期中,它的状态是会发生变化的, 状态机用来表示一个对象在其的生命周期中所具有的各 种状态和这个对象从一种状态到另一种状态的转换,以 及引起状态转换的事件。 状态机图,也称状态图,就是用来展示状态机的,重点 在于描述状态之间的变化的控制流。

状态:指对象在生命周期中的一个条件和或情况,在这种状 态中,对象满足某些条件、执行某些活动或等待某些事件。 状态类型细分有初态、终态、组合状态、历史状态等。在一 个状态机图中只能有一个初态、可以有一个或多个终态,也 可以没有终态。 一个状态可包含:名称、进入/退出活动、内部转换、子状 态和延迟事件等。


活动:有时,对象在处于一个状态的同时,还做着某些 工作,并一直继续到被某个事件中断。这种情形就是一 个正在进行的活动。

语法:do/动作

延迟事件:延迟事件是一种特殊的事件,它是指该事件 不会触发状态的转换,当对象处于该状态时事件不会丢 失,但会被延迟执行。

语法:事件/defer
活动
延迟事件
订单对象处于 "等待到款"或 "等待受理"状态时,用户可取 消交易,由此订单对象转换为“取消”状态; 订单对象处于 "等待受理"状态,若书店销售管理员受理了 订单,则更新订单状态,订单对象转换为"已受理"状态; 订单对象处于 "已受理"状态,书店发货,销售管理员更新 订单状态订单对象转换为"已发货"状态; 用户收到货物,书店确认后"交易成功" 。
Lighting
entry/ turnOn do/ blinkFivetiomes event powerOff/ powerSupplySelf exit/ turnOff event selfTest/ defer
复合状态:包含一个或多个嵌套状态机的
状态,它所包含的状态称为子状态。复合 状态也称为组合状态。 复合状态可以使用‘与’关系分解为并发 子状态,或者通过‘或’关系分解为互斥 的顺序子状态。

状态机:UML中的状态机模型是用来展示状态与状态之 间转换的图。 对象往往具有多个属性,被状态机建模的属性特性: 属性拥有较少的可能取值 属性在这些值之间的转移有一定的限制 例 设备管理系统中,类“设备” 的属性 使用时间:整型,随时候变动会有很多的取值,对设 备管理意义不大。 设备状况:枚举型,使用中、维修中、闲置和报废。 取值有限,且每个取值的变换都受到发生事件的限制, 因此应根据“设备状况”建模。


核心元素 用圆角矩形表示的状态(初态、终态除外) 转换:状态之间的、包含一些文字描述的有向箭头线
事件
监护条件
动作
目标状态
withdraw( amt )[ amt>bal ] / bal- =amt
Overdrawn


源状态:受转换影响的状态 目标状态:转换完成后对象的状态 (触发)事件:任何能够影响对象的东西都可称为事件,用来为 转换定义一个事件,包括调用、改变(或称变化)、信号、 时间四类事件。 调用事件:例如,使用某对象的成员方法就是调用事件 改变事件:指依赖属性值的布尔表达式得到满足 信号事件:例如,键盘和鼠标的操作均属于此类事件 时间事件:指满足某一时间表达式的情况的出现
1、顺百度文库复合状态图 当复合状态被激活时,只有一个子状态会被激活。
2、并发复合状态图
当进入并发复合状态时,每个并发区中都有一个直接的子状态被 激活。
3、子状态机通信
Exit/ exam=true
[exam]
4、历史状态 历史状态代表上次离开复合状态时的最后一个子状态, Active 它用一个圆圈中加上字母’H’表示。每当转换到历史 H Forward 状态时,对象便恢复到上次离开时的最后一个子状态。
转换
源状态
事件
监护条件
动作
目标状态
InCredit
withdraw( amt )[ amt>bal ] / bal- =amt
Overdrawn
转换



监护条件:通常是布尔表达式,决定是否激活转换。要区别 变化事件和监护条件 动作:转换激活时的操作,它可以是一个赋值语句、简单的 算术运算、发送信号、调用操作、创建和销毁地象、读取和 设置属性值,甚至是一个包含多个动作的活动。 转换:事件(参数)[监护条件]/动作


步骤:寻找主要的状态,确定状态之间的转换,细化状态 内的活动与转换,用复合状态来展开细节 订单对象有确认订单、等待到款、等待受理、已受理、已 发货、交易成功和取消7种状态,状态间转换如下:


"确认订单"后根据付款方式决定向下一个状态的转换。 ① 付款方式=网银支付,订单对象进入"等待到款" 状态;用 户付款成功后,订单对象由 "等待到款" 状态转换为 "等待受 理"状态; ② 付款方式=货到付款,订单对象进入"等待受理"状态;
第9 章
状态机图
9.1 概述
9.2 简单状态图
9.3 包含复杂转换的状态图 9.4 包含复合状态的状态机图
9.5 状态机图的应用
9.6 状态机图建模实例

在系统运行的某一时刻,每个对象都处于某种状态中, 该状态表示对象执行了前一个活动或动作的结果,它通 常由属性值和与其他对象的链接来确定。 例如,火车(对象)已出站(状态),张三(对象)在 读博士(状态)等等。
Resume interupt Play Pause
Back
状态机图是一个用来描述局部信息的建模工具,它的主 要应用有两种:一是对对象生命周期建模,二是对反应 型对象建模。 1、对对象生命周期建模:使用状态机为目的对象(主 要是类和用例的实例)的生命周期建模。主要描述对象 能够响应的事件、对这些事件的响以及过去对当前行为 的影响 2、对反应型对象建模:这个对象可能处于的稳定状态、 从一个状态到另一个状态之间的转换所需的触发事件, 以及每个状态改变时发生的动作


细化状态内部的转换和活动

使用复合状态
创建状态图 状态工具栏按钮介绍 增加初态和终态 添加状态 添加转换 增加复合状态 添加历史状态

复习思考题




1.使用状态机对对象建模时,应在选择什么样的对象属性上 建模? 2.引发状态转换的事件有哪几种? 3.在状态图中,状态可以由哪几部分组成? 4.复合状态可分为哪两种类型,区别是什么?并举例说明。 5.某电梯从第一层开始启动,他能上下移动。如果电梯在某 一层上处于空闲状态,则当超时事件出现时,它就返回到第 一层,请为其绘制简单的状态图。 6.某销售POS即,它的工作流程是:当客户到收银台后,兽 医院注意输入用户购买的商品,输入完后,计算出总金额, 然后等待用户付款,确定支付成功后,完成收银,等待下一 个用户。请为其绘制出相应的状态图。 7.请根据第4章习题6的描述,绘出相应系统的状态图集。 8.请根据第4章习题7的描述,绘出相应系统的状态图集。
转换类型
描述
语法
外部转换 对事件做出响应,引起状态变化或 事件(参数)[监护条 自身转换,同时引发一个特定动作, 件]/动作 如果离开或进入状态将引发进入转 换、离开转换 内部转换 对事件做出响应,并执行一个特定 的活动,但并不引起状态变化或进 入转换、离开转换 进入转换 当进入某一状态时,执行相应活动 退出转换 当离开某一状态时,执行相应活动
相关文档
最新文档