《RationalRose-状态机应用.ppt》由会员分享,可在线阅读,更多相关《RationalRose-状态机应用.ppt(37页珍藏版)》请在三一办公上搜索。
1、第6章 状态机图及其应用,Rational Rose 2003基础教程配套电子教案,内 容,基本概念 状态图 活动图 状态机共享的模型元素 活动图专有的模型元素 状态规范和活动规范 动作规范 转换规范 判断规范 同步规范,1.1理解状态机状态机图通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为,也可以用来描述用例、协作和方法的动态行为,它是展示状态与状态转换的图。状态机是一个类的对象所有可能的生命历程的模型。状态机包括状态图和活动图两种表示方法。状态图用于对系统的动态方面建模。活动图用于对计算流程和工作流程建模,展示的主要内容是对象的活动状态。状态图以状态为中心,活动图以活动为中心
2、。,1 基本概念,1 基本概念,1.2 状态机操作定义在UML规格文件中,状态机被定义为是一种行为,说明对象或交互在它们的声明周期中为响应事件所经历的状态序列,以及它们的响应和动作。创建一个状态图或活动图时,Rational Rose自动创建一个状态/活动模型。Rational Rose限定每个所有者只能拥有一个状态/活动模型。,1 基本概念,1.2 状态机操作创建一个状态/活动模型:单击BrowseState Machine Diagram,在左边的“State Machine”下面选择新创建的状态/活动模型所要放置的位置:双击New:在Title文本框中为图命名;指定要创建的图类型:活动图
3、(Activity)或状态图(Statechart);单击OK按钮。,2 状态图,状态图显示一个对象从创建到摧毁的整个生命周期。Rose可以对每个类创建一个或者多个状态图,在状态图中体现类的所有状态和各种过渡转换,状态变化是状态图显示的焦点。状态图可以帮助系统分析员、设计人员和开发人员理解系统中各个对象的行为。在Rose中,状态图和类图相互配合,以便完整描述类的特征。仅用类图是不够的,因为它只能描述类对象的静态特征,而状态图可以对类对象动态行为进行建模。,2 状态图,2.1 状态图所包含的内容 状态图主要显示以下3种内容:对象在生命周期中所经历的状态序列;诱发对象从一个状态转换到另一个状态的事
4、件;状态改变所导致的动作。,2 状态图,2.2 创建状态图步骤如下:在浏览器中,用鼠标右键单击模型元素(除了属性、关系和出现在构件视图中的模型元素);单击NewStatechart Diagram;或者,单击BrowseState Machine Diagram;单击New;在New State Machine对话框中选中Statechart Diagram复选框;输入状态图标题;单击OK按钮。,2 状态图,2.3 状态图工具箱13种常用的工具:可以定制;,3 活动图,3.1 使用活动图 活动图可以对多种不同类型的工作流建模。如果从更简单或者更具体的角度考虑,可以更容易理解活动图。即,活动图被
5、设计用于简化描述一个过程或操作的工作步骤。例如,软件公司可以用活动图对一个软件的开发过程建模;会计师事务所可以用活动图对任意数目的财务往来进行建模;公司可以用活动图对订单批准过程进行建模;还可以对诸如求Fibnacci数列第n个数的数值之类的操作进行建模。,3 活动图,3.2 活动图所包含的内容活动图包含的内容:判断(Decisions)状态(States)泳道(Swimlanes)同步(Synchronizations)对象(Objects)对象流(Object flows)转换(Transitions)活动(Activities)初始状态(Start state)终止状态(End stat
6、e),3 活动图,3.3 创建活动图步骤如下:在浏览器中,单击模型元素(除了属性、关系和出现在构件视图中的模型元素);单击NewActivity Diagram;在浏览器中对新建的活动图重命名,或者双击NewDiagram图标来显示活动图。,3 活动图,3.4 活动图工具箱19种常用工具可以定制,3 活动图,3.5 理解工作流 定义是一个良好定义的动作序列,执行时将产生一个可观察的值,或者产生一个个体或实体的对象。建摸目的理解一个组织的结构和动态特性;确保客户、最终用户和开发员对组织形成一致的理解;导出用于支持组织的系统需求。,3 活动图,3.5 理解工作流 识别工作流谁(who)或什么(wh
7、at)将对工作流负总责?要实现目标,需要执行哪些活动?谁(who)将对执行各种活动和状态负责?活动会创建或者修改对象吗?考察模型中的其他元素,活动和状态应该在何处出现?为什么这个活动或状态需要出现?,3 活动图,3.6 用活动图对工作流建模 步骤:识别工作流的目标:确定从起始状态到终止状态工作流的前置条件和后置条件;定义并识别为实现目标而必须发生的活动和状态,按逻辑顺序将它们放进模型图,并对它们命名;定义并画出所有要在模型图中创建和修改的对象,将这些对象和活动同对象流连接起来;按泳道决定谁(who)或什么(what)将对执行这些活动和状态负责;从主流程开始,用转换符号连接所有的元素;在流程可能
8、要分裂出一个候补流(alternate flow)的地方放置一个判断;评估模型图,看是否有并发工作流,如果有,用同步表示分叉(forking)和结合(joining);在每个模型元素的规范窗口中设置动作、触发器和监护条件。,4 状态机共享的模型元素,4.1 状态 定义状态(state)是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的条件(condition)或状况(situation)图形表示圆角矩形表示,状态的名称放在圆角矩形中,4 状态机共享的模型元素,4.2 起始状态和终止状态起始状态又称“初始状态”,在状态图中,起始状态显式地给出一个状态机执行的起始点,表示导致转换(t
9、ransition)的事件中的起始事件;在活动图中,起始状态显式地给出一个工作流的起始点。一个状态机只能有一个起始状态。,4 状态机共享的模型元素,4.2 起始状态和终止状态终止状态表示活动的结束或者一个最终状态,即对象从内存中删除之前所处的状态 状态图和活动图都可以有0个、1个或者多个终止状态。,4 状态机共享的模型元素,4.3 状态转换 说明一个处于源状态的对象将要执行某种(些)指定的动作,并且当特定的事件发生或者某种条件被满足时,将进入目标状态。状态转换是两个状态之间、两个活动之间或者一个活动和一个状态之间的关系。可以从一个状态发出一个或多个状态转换,前提是转换要唯一。从一个状态发出的转
10、换不能具有相同的事件,除非事件中有多个条件。转换既可以出现在状态图中,也可以出现在活动图中 图形表示:,4 状态机共享的模型元素,4.3 状态转换 状态转换通常采用如下的语法进行标记:事件名(参量)监护条件/动作目标.发送事件(参量)转换及转换动作,4 状态机共享的模型元素,4.4 转换到自身定义包含的源状态(活动)和目标状态(活动)相同,所包含的动作和事件与转换完全相同。图形表示,4 状态机共享的模型元素,4.5 判断定义表示工作流基于监护条件将出现分支的位置 图形表示判断在活动图和状态图中表示为一个棱形,4 状态机共享的模型元素,4.6 同步定义在活动图和状态图中,同步可视化地定义那些表示
11、并行工作流的分叉和结合在浏览器中并不显示同步 图形表示:一条粗的水平或垂直的棒条,4 状态机共享的模型元素,4.7 例子:机器人自动传输的状态图 起始状态终止状态超状态和子状态嵌套状态历史状态,5 活动图专有的模型元素,5.1 活动定义活动表示一个工作流中“任务”或“职责”的执行,也可以表示某个过程中一条语句的执行。一个活动类似于状态,但它表达了这样一种含义:在一个活动中没有明显的等待(事件)。图形表示,5 活动图专有的模型元素,5.2 泳道定义将活动图中的活动分组,每一组指明了谁(who)或者是什么(what)对执行活动或状态负责泳道的两个重要特点:指明了活动图中的活动主体转换可以跨越不同的
12、泳道在活动图中创建泳道:点击活动图工具箱中的泳道图标在活动图中要创建泳道的位置点击鼠标.删除泳道点击活动图中的泳道头(泳道名称)按Del键将泳道从活动图中删除;或者按Ctrl+D将泳道从模型中删除,5 活动图专有的模型元素,5.3 对象Rational Rose 2003不支持专门的对象图建模,但是允许对象出现在活动图、协作图和顺序图中 活动图中的对象可以表示活动之间的输入输出关系 对象可以以多种状态出现,5 活动图专有的模型元素,5.4 对象流在UML规格文件中,对象流是指将对象状态作为输入或输出的控制流。活动图中的对象流表示对象和一个活动的关系,对象可以创建一个对象流(作为输出),也可以使
13、用对象流(作为输入)。图形表示用虚线箭头来表示对象流,5 活动图专有的模型元素,5.5 理解对象和对象流 对象可以以不同的状态出现多次;活动可以改变对象的状态;对象通过对象流和活动相连。,6 状态规范和活动规范,状态(起始状态和终止状态)和活动的规范窗口都包含下列标签:General标签Actions标签Transitions标签Swimlanes标签1)General标签复选标记State/activity history:状态/活动历史,历史提供了一种通过子状态直接转换到最近访问过的状态的机制。,6 状态规范和活动规范,2)Actions标签Type:类型字段标识符栏列出了动作规范中指定的
14、动作种类Action Expression:列出了4种可能的时间选项,规定了一个动作执行的时机和被执行动作的类型。见动作规范的Detail标签,7 动作规范,7.1 创建一个新的动作 在状态图或活动图规范窗口的Actions标签中:单击鼠标右键,显示快捷菜单;单击Insert添加一个条目(entry)项;双击添加的“Entry/”项,显示动作规范窗口;在Name栏输入动作描述。如果该栏未被激活,在Tyep栏单击Action。,7 动作规范,7.2 状态和活动动作在一个状态或活动中,有以下4中可能的动作:On Entry On Exit Do On Event 1)On Event Event:
15、对一个在时间和空间上占有一定位置的有意义事情的规格说明Arguments:由所有与事件相关的可选参量组成 Condition:可能包含一个条件布尔表达式,8 转换规范,8.1 General标签8.2 Detail标签监护条件(Guard Condition)条件状态转换只有当条件表达式为真时才被触发。监护条件显示在转换的附近,表示在方括号内:事件名(参量)条件/动作目标.事件(参量)子状态之间的转换:当转换被放置在视图中隐藏的子状态,或者转换来自于视图中隐藏的子状态时,子状态之间的转换变得十分有用。From栏显示了转换出发时所在状态的状态名,To栏转换所指的状态名。From和To任何时候都处于激活(active)状态,9 判断规范,9.1 General标签9.2 Transitions标签9.3 Swimlanes标签,10 同步规范,10.1 General标签10.2 Transitions标签,