UML和设计模式课件5 动态建模(2)-状态模型.ppt
文本预览下载声明
UML和设计模式 5 动态建模(2)状态模型 权 巍 主要内容 动态建模——状态模型 状态图 活动图与状态图的比较 UML和设计模式 * 5.1 动态建模——状态模型 UML和设计模式 * 活动图: 活动图(Activity diagram)用来表示完成一个操作所需要的活动,或者一个用例场景的活动。是一种流程图,描述了活动的序列,即系统从一个活动到另一个活动的控制流。 状态图: 状态图(Statechart diagram)用于描述一个对象在其生存周期内的动态行为, 表现一个对象所经历的状态序列, 引起状态转移的事件(event), 以及因状态转移而伴随的动作(action). UML和设计模式 * 5.2 状态图 UML和设计模式 * 起始状态 终止状态 状态 事件 迁移 某机器的状态图 状态图的建模元素 UML和设计模式 * (1) 状态 状态是对象在其生存期中的一种条件或状况,如进行某些活动、等待某种事件出现等。 状态通常由其属性值、与其它对象的链接来确定。 对象的状态的数量是有限的。 状态的图符分为长式、短式两种。 其中,状态变量是状态图所描述的类的属性; 活动是在该状态时要执行的事件和动作。 UML和设计模式 * UML和设计模式 * 一个设备使用状况的状态图 活动区中的事件和动作的语法: 事件名(参数表)/ 动作表达式 其中,事件可以是UML定义的事件,也可以是用户自定义的事件。 UML中的常用事件包括: entry、exit、do:入口、出口事件、状态中执行的事件 after:“after(时间表达式) / 动作” defer:“事件名 / defer” when:“when(逻辑表达式) / 动作” error:“error出错事件名” UML和设计模式 * UML和设计模式 * (2) 迁移 一个对象从某种状态变为另一种状态称为迁移。 对象所处的状态可因某种原因而改变,如:某种事件发生、满足某一条件、动作执行完毕等。 状态图的迁移上须注明引起迁移的事件、条件或动作。 UML和设计模式 * 描述迁移的语法格式: 事件 [条件] / 动作表达式 发送子句 事件:指已发生并可能引发某种活动的一件事; [条件]:由方括号围起的关系或逻辑表达式; 动作表达式:触发状态迁移时可执行的动作; 例: when(温度100)/ 停止加热 / 指示灯熄灭 发送子句:动作的一个特例,说明调用的事件名 (操作)是哪个对象的。 例如:[超时] / self.下降(第一层) UML和设计模式 * UML和设计模式 * UML和设计模式 * 两种形式的状态迁移示例 (3) 嵌套状态、历史状态 状态可以嵌套,在一个状态的图符内部可添加一个或多个子状态组成的子状态图,称为状态的嵌套。 历史状态是伪状态,其目的是记住从嵌套的状态中退出时所处的子状态, 当再次进入嵌套的状态时, 可以直接进入这个子状态, 而不是再从嵌套的状态的初态开始。 UML和设计模式 * UML和设计模式 * 描述设备(车床)状况的嵌套状态图 UML和设计模式 * 浅(shallow)历史状态, 只记录最外层组合状态的历史. 深(deep)历史状态, 可以记录任意深度的组合状态的历史. 历史状态指示器可以有进入它的迁移,但没有离开它的迁移. 历史状态分为两种:浅历史状态、深历史状态 UML和设计模式 * (4) 并发的状态 UML和设计模式 * 5.3 活动图与状态图的比较 相同点: 建模的图符基本一致。 描述系统或对象在生存期内的状态或行为。 可描述系统或对象在多进程操作中的并发行为。 可用条件分支描述系统或对象的行为控制流。 UML和设计模式 * UML和设计模式 * 描述网上商城“订单支付”用例的活动图 不同点 触发一个系统或对象的状态(活动)发生迁移的机制不同。 状态图:必须有事件触发才能发生迁移。 活动图:活动执行完毕自动发生迁移。 描述多个对象共同完成一个操作的机制不同。 状态图:针对一个系统或某一个对象描述在其生存期内的行为、所经历的状态序列、引起状态迁移的事件以及相应的动作。 活动图:描述几个对象共同完成一个操作或用例实例所需的活动。 UML和设计模式 * 活动图是一种流程图,描述了活动的序列,即系统从一个活动到另一个活动的控制流。 * ATM机状态图举例 * UML和设计模式 活动图是一种流程图,描述了活动的序列,即系统从一个活动到另一个活动的控制流。 * ATM机状态图举例 *
显示全部