版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、状态图高天迎状态图n1 状态机n2 状态图n3 状态n4 事件n5 转换n6 状态图建模技术n7 实例图书馆管理系统的状态图1 状态机n状态机是展示状态与状态转换的图,包含了一个类的对象在其生命期间所有状态的序列以及对象对接受到的事件所产生的反应。n利用状态机可以精确地描述对象的行为。nUML用状态机对软件系统的动态特征建模。n组成:n状态(State):模型在其生存周期内的状况n转换(Transition):不同状态之间的联系n事件(Event):触发状态的转换n活动(Activity):一系列动作n动作(Action):2 状态图n状态图表示状态机。一个状态机可以用多个状态图描述。n状态图
2、表现从一个状态到另一个状态的控制流。 n状态图由表示状态的节点和表示状态之间转换的带箭头的直线组成。n组成:n状态(State)n转换(Transition)n初始状态(Start State)n终结状态(End State)n判定(Decision)2 状态图n示意图:状态图的用途状态图的用途nUML的状态图主要用于建立类的一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件事件(event)(event),以及因状态转移而伴随的动作动作(action)(action)。n状态图的目的是为具有以下两个特性的属性建模:n属性拥有很少的值;n属性在这些值之间的转移有一
3、定的限制。例:类SellableItem有两个属性salePrice:Money和status:Inspection。 其中salePrice的取值范围为正实数,status的取值为received, inInspection, accepted, rejected等,则应根据属性status建立状态图。说明:n状态图状态图是对系统的动态行为建模。n状态图描述了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。n状态图是显示状态机的一种方式,另一种显示状态机的方式是活动图活动图。nRose中,状态图不生成代码,但状态图在检查,调试和描述类的动态行为时非常有用。n状态图状态
4、图适合于描述跨越多个用例的单个对象的行为,而不适合描述多个对象之间的行为协作,因此,常常将状态图与其它技术组合使用。例如,交互图交互图适合于描述单个用例中的多个对象的行为,活动图活动图适合于描述多个对象和多个用例的活动的总次序。 3 状态n3.1 概述n3.2 状态名n3.3 内部转换n3.4 入口动作与出口动作n3.5 简单状态n3.6 组成状态n3.7 历史状态3.1 概述n一个状态是指在对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。n状态由一个带圆角的矩形表示。n状态图标可以分为三部分:n名称n内部转换n嵌套状态 3.1 概述n状态图中的状态一般
5、是给定类对象中的一组属性值,这组属性值是对象所有属性的子集。n在对系统建模时,我们可以只关心那些明显影响对象行为的属性以及由他们表达的对象状态,而不用理睬那些于对象行为无关的状态。 3.1 概述n状态种类:n简单状态(Simple State)n组成状态(Composite State)n状态组成:n状态名(Name)n活动(Activity)n入口动作(Entry Action)n出口动作(Exit Action)说明:n所有对象都具有状态,状态是对象执行了一系列活动的结果。当某个事件发生后,对象的状态将发生变化。n状态图中定义的状态有:初态初态、终态终态、中间状态中间状态、组合状态组合状态
6、、历史状态历史状态等。n一个状态图只能有一个初态,而终态可以有多个,也可以没有终态。3.2 状态名n状态名表示状态的名字,通常用字符串表示。n一个状态的名称在状态图所在的上下文中应该是唯一的。n状态允许匿名。 n状态的名字通常放在状态图标的顶部 3.3 内部转换 n内部转换只有一个源状态而没有目标状态,因此转换激发的结果并不改变状态本身。n如果一个内部转换带有动作,动作也要被执行,但是由于没有状态改变发生,因此不需要执行入口和出口动作。n内部转换和自转换不同,虽然两者都不改变状态本身,但是自转换会激发入口动作和出口动作的执行,而内部转换却不会。 3.4 入口动作与出口动作 n入口动作和出口动作
7、表示进入或退出这个状态所要执行的动作。n入口动作用“entry/要执行的动作”表达,而出口动作用“exit/要执行的动作”表达。 3.5 简单状态 n简单状态是指不包含其他状态的状态。n简单状态没有子结构,但它可以具有内部转换、入口动作和出口动作等。 3.6 组成状态n组成状态是可以包含一些嵌套的子状态的状态。n组成状态可以使用“与”关系分解为并发子状态,或者通过“或”关系分解为互相排斥的顺序子状态。3.6 组成状态n1. 顺序子状态n2. 并发子状态1. 顺序子状态n如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状
8、态称为顺序子状态。n当状态机通过转换从某种状态转入组成状态时,此转换的目的可能是这个组成状态本身,也可能是这个组成状态的子状态。 2. 并发子状态n有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。 n顺序子状态与并发子状态的区别在于后者在同一层次给出两个或多个顺序子状态,对象处于同一层次中来自每个并发子状态的一个时序状态中。 说明:n组合状态中也有初始状态和终结状态。n从源状态可以转移到组合状态本身,也可以直接转移到组合状态中的子状态。n子状态之间可分为“or”or”关系关系和“and”and”关系关系两种。“or”关系说明在某一时刻仅可到达一个子状态,“and”
9、关系说明复合状态中在某一时刻可同时到达多个子状态。例2:子状态之间“and”关系的例子。例1:子状态之间“or”关系的例子。组合状态、子状态组合状态、子状态n例:组合状态和子状态的例子。3.7 历史状态n历史状态代表上次离开组成状态时的最后一个活动子状态,它用一个包含字母“H”的小圆圈表示。n每当转换到组成状态的历史状态时,对象便恢复到上次离开该组成状态时的最后一个活动子状态,并执行入口动作。 3.7 历史状态nH和H*的区别:nH只记住最外层的组合状态的历史。nH*可记住任何深度的组合状态的历史。n例:历史状态的例子4 事件n事件表示在某一特定的时间或空间出现的能够引发状态改变的一种运动变化
10、。n事件是一个激励的出现,它定义一个触发子以触发对象改变其状态,任何影响对象的事物都可以是事件。n触发事件是能够引起状态转换的事件n触发事件可以是信号、调用、时间段等4 事件n事件种类:n入口事件n出口事件n动作事件n信号事件n调用事件n修改事件n时间事件n延迟事件4.1 入口事件n入口事件表示一个入口的动作序列,它在进入状态时执行。n入口事件的动作是原子的,并且先于内部活动或转换。 4.2 出口事件n出口事件表示一个出口的动作序列,它在退出状态时执行。n出口事件也是原子的,它跟在所有的内部活动之后,但是先于所有的出口转换。 4.3 动作事件n动作事件也称为“do事件”,它表示对一个嵌套状态机
11、的调用。n与动作事件相关的活动必定引用嵌套状态机,而非引用包含它的对象的操作。 4.4 信号事件n信号的接收是信号接受对象的一个事件。n信号分为异步单路通信和双路通信。n在异步单路通信中,发送者是独立的。n在双路通信模型中,至少在每个方向上都要有一个信号。n在信号事件中,发送者和接受者可以是同一个对象。 4.5 调用事件n调用事件是一个对象对调用的接收。n调用事件至少涉及两个以上的对象。n调用事件既可以为同步调用,也可以为异步调用。4.6 修改事件n修改事件依靠特定属性值的布尔表达式所表示的条件的满足来触发状态的转换。n修改事件表示了一种具有时间持续性的并且可能是涉及全局的计算过程。4.6 修
12、改事件n监护条件与修改事件的区别:n监护条件只是在引起转换的触发器事件触发时和事件接收者对事件进行处理时被赋值一次。n修改事件则可以被多次赋值直到条件为真,多次赋值满足条件后转换也会被激发。4.7 时间事件n时间事件代表时间的流逝。n时间事件既可以被指定为绝对形式(天数),也可以被指定为相对形式(从某一指定事件发生开始所经历的时间)。n时间事件可以描述一个通知信息,自进入状态以来某个时间期限已到,时间事件就会激发状态的转换 4.8 延迟事件n延迟事件是在本状态不处理,要推迟到另外一个状态才处理的事件。说明:n在UML中,事件分为四类:(1) Call event (1) Call event
13、(调用事件调用事件) )(2) Change event ( Change event (变化事件变化事件) )(3) Time event ( Time event (时间事件时间事件) )(4) Signal event ( Signal event (信号事件信号事件) )(1) Call eventCall event: The event of receiving a call for an operation that is implemented by actions on state machine transitions.nCall event的语法格式如下:事件名事件名 (
14、 ( 逗号分隔的参数列表逗号分隔的参数列表 ) )其中参数列表中的参数格式为:参数名:类型参数名:类型例:(2) Change eventChange event: The event of a Boolean expression becoming satisfied because of a change to one or more of the values it references.nChange event用关键字when表示。例nChange event和警戒条件(guard condition)的区别:n警戒条件只在所相关的事件出现后计算一次,如果值为false,则不进行状态
15、转移。(3) Time eventTime event: An event that denotes the satisfaction of a time expression, such as the occurrence of an absolute time or the passage of a given amount of time after an object enters a state.nTime event用关键字after或when表示。例:(4) Signal eventSignal event: An event that is the receipt by an
16、object of a signal sent to it, which may trigger a transition in its state machine.nSignal event的语法格式和Call event一样。n信号事件是一个异步事件,调用事件一般是一个同步事件。Signal(信号)n一个信号信号表示由一个对象异步地发送、并由另一对象接收的一个已命名的对象。n说明:n信号用版型为的类图标表示。n信号之间可以具有泛化关系,形成层次结构。n在UML中,例外(exception)是信号的一种。n例:信号之间泛化关系的例子。5 转换n转换表示当一个特定事件发生或者某些条件得到满足时
17、,一个源状态下的对象在完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。 n转换进入的状态为活动状态,转换离开的状态变为非活动状态。 5 转换n转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。n转换可以标注与此转换相关的选项如事件、动作和监护条件。nTransition图例说明:n状态的之间的转移转移通常是由事件事件触发的,此时应在转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移。nTransition的格式: event-signature guard-condition / action
18、其中event-signature的格式为: event-name ( comma-separated-parameter-list )n一个转移包括五部分:source state, event trigger, guard condition, action, target state. n对于一个给定的状态,最终只能产生一个转移,因此从相同的状态出来的、事件相同的几个转移之间的条件应该是互斥的。例:5 转换n5.1 外部转换n5.2 内部转换n5.3 完成转换n5.4 复合转换n5.5 触发事件n5.6 监护条件n5.7 动作5 转换n转换种类:n外部转换n内部转换n完成转换n复合转换n
19、转换组成:n源状态n目标状态n触发事件n监护条件n动作5.1 外部转换n外部转换是一种改变对象状态的转换,是最常见的一种转换。n外部转换用从源状态到目标状态的箭头表示。 UsedUnusedMaintainingThe train stopThe train go runningSomebody go intoSomebody go intoSomebody go out5.2 内部转换n内部转换有一个源状态但是没有目标状态,它转换后的状态仍旧是它本身。n内部转换的激发规则和改变状态的外部转换的激发规则相同。n内部转换用于对不改变状态的插入动作建立模型。5.3 完成转换n完成转换又称为自转换。
20、n完成转换是因为没有标明触发器事件的转换是由状态中的活动的完成引起的,是自然而然地完成的转换。n完成转换也可以带一个监护条件,这个监护条件在状态中的活动完成时被赋值,而非活动完成后被赋值。 内部转换和自转换n内部转换和自转换(完成转换)不同:n自转换是离开本状态后重新进入该状态,它会激发状态的入口动作和出口动作的执行。n内部转换自始至终都不离开本状态,所以没有出口或入口事件,也就不执行入口和出口动作。 5.4 复合转换n复合转换由简单转换组成,这些简单转换通过分支判定、分叉或接合组合在一起。n除了两个分支的判定,还有多条件的分支判定。n多条件的分支判定有分为链式的和非链式的分支。 5.4 复合
21、转换n链式分支:NewStateNewState2NewState3NewState4NewState5Event1 Condition1 / Action1 Condition2 / Action2 Condition3 / Action3 Condition4 / Action4 Condition5 / Action5 Condition6 / Action65.4 复合转换n非链式分支:NewState6NewState7NewState8NewState9NewState10Event1 Condition1&Condition3 / Action1,Action3Event
22、1 Condition1&Condition4 / Action1,Action4Event1 Condition2&Conditon5 / Action2,Action5Event1 Condition2&Conditon6 / Action2,Action65.5 触发事件n触发事件是能够引起状态转换的事件。n事件产生的原因包括:调用、满足条件的状态的出现、到达时间点或经历某一时间段、发送信号等。5.6 监护条件n监护条件是触发转换必须满足的条件,它是一个布尔表达式。 n监护条件只能在触发事件发生时被赋值一次,如果在转换发生后监护条件才由假变为真,那么转换也不会被触
23、发。 n从一个状态引出的多个转换可以有同样的触发器事件,但是每个转换必须具有不同的监护条件。 5.7 动作n动作是一组可执行语句或者计算处理过程。n动作可以包括发送消息给另一个对象、操作调用、设置返回值、创建和销毁对象等。n动作是原子的,不可中断的,动作或动作序列的执行不会被同时发生的其他动作影响或终止。n整个系统可以在同一时间执行多个动作。动作动作种类种类描述描述语法语法赋值对一个变量赋值Target:=expression调用调用目标对象的一个操作,等待操作完成,可能有返回值setname(arg)创建创建一个新对象new Student()销毁销毁一个对象Object.destroy()
24、返回为调用者指定返回值Return value发送创建一个信号实例并将其发送到目标对象OpertionComplete(arg)中止对象的自我销毁TerminateAction(动作)nAn action(action(动作动作) ) is an executable atomic computation.n一个动作动作是一个可执行的原子计算。说明:n动作是原子的,不可被中断的,其执行时间可忽略不计的。nUML并没有规定描述action的语言格式,一般建模时采用实际的程序设计语言来描述。 Rose中状态的Action Specification 对话框。On Entry On Exit Do On Event 6 状态图建模技术
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天津市苏教版初中生物第6章生物进化综合测试卷
- 2025-2026年天津市人教版初中物理八年级下册第4章同步练习题
- 2025-2026年软件测试技术基础专项训练题库
- 高中二年级心理健康教育主题班会教学设计:与情绪对话拒绝焦虑君的到访
- 译林版英语八年级上册 Unit 1 形容词比较级与最高级教学设计
- 小学三年级英语Unit 3 Lesson 4 Again,please单元复习课教学设计
- 高中地理高三一轮复习教学设计:环境保护政策专题复习与核心素养培育
- 高二英语教学设计:Unit 6 Period 3 Using Language(2) Listening
- 拔丝芋头制作劳动实践课教学设计:小学四年级劳动教育学科
- 初中八年级地理教学设计:河流湖泊水文特征与区域关联首课时
- Q-SY 02660-2024 煤层气水平井远距离穿针钻井作业规范
- 死亡游戏主题班会课件
- 2025年度建筑施工安全生产费用提取及使用计划
- 职业技术学院2024级新能源装备技术专业人才培养方案
- 全套电子课件:管理会计(第三版)
- 《管道焊接技术培训》课件
- KTV保安服务合同
- 背光异物改善8D
- DL∕T 1917-2018 电力用户业扩报装技术规范
- 九宫数独200题(附答案全)
- 再见深海合唱简谱【珠海童年树合唱团】
评论
0/150
提交评论