第8章状态图和活动图.ppt_第1页
第8章状态图和活动图.ppt_第2页
第8章状态图和活动图.ppt_第3页
第8章状态图和活动图.ppt_第4页
第8章状态图和活动图.ppt_第5页
免费预览已结束,剩余61页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章状态图和活动图,因为对象参与系统的行为,所以他们会受到系统行为的影响。例如,每天驾车上班的时候状态的变化影响车的性能,当轮胎老化时,车子的制动和转弯不再像以前那么灵活,而油箱空的时候,汽车不能继续正常运转。,车胎磨损,油箱的油减少,行驶里程增加,汽车状态发生变化,8.1什么是状态图,状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。例如,手机,8.1什么是状态图,判别对象是否需要状态图来描述大多数对象都不需要建立状态图,因为他们只是被简单的创建、使用和析构,其状态和状态变化并不多也不复杂。有些对象出现在很多顺序图中,在每个顺序图中都有很多的箭头(消息)指向它,每条消息都是对该对象发出的命令,这些命令可以引起对象的变化,即出现在很多交互中并且是交互的目标的对象应该用状态图来表示例如,剧院的showSheat对象,用于显示剧院的座位列表,该对象被创建的时机各种各样,如演出被安排的时候、被客户选中的时候、用户取消座位时等。每个时机创建该对象的规则都不同。,8.1什么是状态图,对象的任何一个属性都是一个状态,全部状态构成一个庞大的状态空间。对象的哪个属性应该作为建模的依据明显影响对象行为的属性属性拥有较少的可能取值属性在这些值之间的转移有一定的限制例1,剧院的座位,有两个属性:一个为颜色,一个为状态(选中,未选中,预定,退订)例2,飞机,有属性:型号、使用状况、性能状况、累计飞行公里数和剩余使用年限。对飞机影响较大的是使用状况。可以建立“飞行”、“着陆”、“机场停放”、“维修”、“报废”状态。,8.2状态图中的基本概念,状态图的组成:状态(State)转移(Transition)事件(Event)动作(Action),8.2状态图中的基本概念,示意图:,8.2.1状态,状态指在对象的生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。对象在其生命周期内满足特定条件的存在,在此条件下,对象能执行特定的动作或等待事件的放生。状态是指对象当前的情形,通过对象的属性值反映出来状态图标最多可分三部分:名称内部转移状态变量,8.2.1状态,状态分类初态终态中间状态组合状态历史状态,初态,初态标志出对象的创建状态,它是一个伪状态,因为它不具备真实状态所具有的特征,但它使得状态图更加清晰初始状态代表状态图的起始位置,只能作为转换的源,而不能作为转换的目标。初始状态在一个状态图中只允许有一个。,终态,表示对象生命周期的终点。在该点对象的状态不再发生迁移。终止状态是模型元素的最后状态,是一个状态图的终止点。终止状态只能作为转换的目标,而不能作为转换的源。终止状态在一个状态图中可以有多个。,初态和终态,一个状态图只能有一个初态,但可以有多个终态或没有终态,8.2.2组合状态和子状态,组合状态(超状态)是可以包含一些嵌套的子状态的状态。被包含的状态称为子状态。组合状态可以使用“与”关系分解为并发子状态,或者通过“或”关系分解为互斥子状态。,1.互斥子状态,如果一个组合状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为互斥子状态。,2.并发子状态,有时组合状态有两个或者多个并发执行的子状态,此时称组成状态的子状态为并发子状态。,8.2.3历史状态,历史状态代表上次离开组合状态时的最后一个活动子状态,它用一个包含字母“H”的小圆圈表示。当转换到历史状态时,对象便恢复到上次离开该组合状态时的最后一个活动子状态。,8.2.3历史状态,当组合状态存在多层嵌套时的子状态时的分类:浅历史状态指的是对象返回最外层的子状态即可深历史状态意味着对象必须返回确切的子状态,而不管子状态处于什么层次(内层或外层),8.2.4转换,转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。,8.2.4转换,描述转移的格式:event-signatureguard-condition/action事件特征标记警戒条件动作事件特征标记的格式:event-name(comma-separated-parameter-list)事件名事件参数列表,8.2.4转换,警戒条件警戒条件是触发转换必须满足的条件,它是一个布尔表达式。从一个状态引出的多个转换可以有同样的触发器事件,但每个转换必须有不同的警戒条件。,8.2.4转换,转换组成:源状态目标状态触发事件警戒条件动作转换种类:外部转换内部转换完成转换复合转换,1外部转换,是一种改变对象状态的转换用从源状态到目标状态的箭头表示。,2内部转换,转换后的状态仍旧是它本身,不改变状态,不需要执行入口和出口动作。例如,某个聊天状态的入口动作是验证密码,出口动作是清空聊天记录。如果用户在聊天状态下只想改变除密码以外的个人信息,就可以使用内部转换,3完成转换,完成转换又称为自转换。完成转换没有标明触发器事件,是由状态中的活动的完成引起的转换。完成转换可以带一个监护条件,这个监护条件在状态中的活动完成时被赋值,而非活动完成后被赋值。,内部转换和自转换,内部转换和自转换(完成转换)不同:自转换是离开本状态后重新进入该状态,它会激发状态的入口动作和出口动作的执行。内部转换自始至终都不离开本状态,所以没有出口或入口事件,也就不执行入口和出口动作。,4复合转换,复合转换由简单转换组成,这些简单转换通过分支判定、分叉或接合组合在一起。除了两个分支的判定,还有多条件的分支判定。多条件的分支判定有分为链式的和非链式的分支。,4复合转换,链式分支:非链式分支:,8.2.5事件,事件是对一个在时间和空间上占有一定位置的有意义的事情的详细说明。它能够引起状态转换。事件产生的原因有发送信号、调用、时间段、满足条件的状态的出现、到达时间点等。,8.2.5事件,事件种类:调用事件变化事件时间事件信号事件延迟事件入口事件出口事件动作事件,1调用事件,调用事件是一个对象对调用的接收。调用事件的格式:event-name(com-separated-parameter-list)事件名事件参数列表,2变化事件,变化事件依靠特定属性值的布尔表达式所表示的条件的满足来触发状态的转换。变化事件表示了一种具有时间持续性的并且可能是涉及全局的计算过程。变化事件用关键字when表示。whentime=11:59,whenaltitude1000,2变化事件,警戒条件与变化事件的区别:警戒条件只是在引起转换的触发器事件触发时和事件接收者对事件进行处理时被赋值一次。变化事件则可以被多次赋值直到条件为真,多次赋值满足条件后转换也会被激发。,3时间事件,时间事件代表时间的流逝。既可以被指定为绝对形式(天数),也可以被指定为相对形式(从某一指定事件发生开始所经历的时间)。时间事件可以描述一个通知信息,自进入状态以来某个时间期限已到,时间事件就会激发状态的转换时间事件用关键字after和when表示,8.2.6动作,动作是一组可执行语句或者计算处理过程动作可以包括发送消息给另一个对象、操作调用、设置返回值、创建和销毁对象等。动作是原子的,不可中断的,动作或动作序列的执行不会被同时发生的其他动作影响或终止。,8.2.6动作,动作分类:入口动作表示进入这个状态所要执行的动作。格式:entry/要执行的动作出口动作表示退出这个状态所要执行的动作。格式:exit/要执行的动作活动表示在一个状态内执行的处理过程。格式:do/要执行的动作,8.3状态图建模技术,建模步骤:找出适合用模型描述其行为的类。确定对象可能存在的状态。确定引起状态转换的事件。确定转换进行时对象执行的相应动作。对建模的结果进行相应的精化和细化。,活动图,8.5活动图中的基本概念8.6活动图的用途8.7活动图的工具支持8.8状态图和活动图的比较,活动图,活动图用于描述系统的工作流程和并发行为。活动图被设计用于简化描述一个过程或操作的工作步骤。例如,可以用活动图对一个软件的开发过程建模;还可以对诸如求Fibnacci数列第n个数的数值之类的操作进行建模。活动图可看作状态图的特殊形式。特殊性在于活动图中的一个活动结束后将立即进入下一个活动而不需要事件触发活动的转移。,8.5活动图的基本概念,活动图的组成元素:活动(Activity)动作流(ActionFlow)分支(Branch)与合并(Merge)分叉(Fork)和汇合(Join)泳道(Swimlane)对象流(ObjectFlow),8.5.1活动,活动(activity)表示的是某流程中的任务的执行,它可以表示某算法过程中语句的执行。活动在活动图中表现为一个由一系列动作组成的非原子的执行过程。动作状态(ActionState)活动状态(ActivityState),1动作状态,动作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态。动作状态使用平滑的圆角矩形表示,动作状态所表示的动作写在圆角矩形内部。,2活动状态,活动状态是可分解的,不是原子的,其工作的完成需要一定的时间。可把动作状态看作活动状态的特例。活动状态的表示图标也是平滑的圆角矩形,并可以在图标中给出入口动作和出口动作等信息。,8.5.2动作流,所有动作状态之间的转换流称之为动作流。活动图的转换不需要特定事件的激发,一个动作状态执行完后自动转换到另外一个状态。活动图的转换用带箭头的直线表示。可用条件限制转换。,8.5.3分支与合并,分支一般用于表示对象类所具有的条件行为。条件行为用分支和合并表达。一个分支有一个入转换和两个带条件的出转换,出转换的条件应当是互斥的。一个合并有两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。例,,8.5.3分支与合并,8.5.3分支与合并,8.5.4分叉与汇合,分叉用于将动作流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。分叉可以用来描述并发线程。汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。例,,8.5.4分叉与汇合,8.5.5泳道,泳道将活动图中的活动化分为若干组,并把每一组指定给负责这组活动的业务组织,通常为对象。泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的。每个活动只能明确地属于一个泳道。泳道用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道上方可以给出泳道的名字或对象(对象类)的名字,该对象(对象类)负责泳道内的全部活动。泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。,8.5.5泳道,8.6活动的分解,一个活动可以分为若干个动作或子活动,这些动作和子活动本身可以组成一个活动图。一个包含子活动的活动和嵌套了子状态的组合状态类似,概念上也相对统一。一个不含内嵌活动或动作的活动称之为简单活动;一个嵌套了若干活动或动作的活动称之为组合活动,组合活动有自己的名字和相应的子活动图。,8.6活动的分解,8.7活动图的用途,对系统工作流程建模工作流:是一个良好定义的动作序列,执行时将产生一个可观察的值,或者产生一个个体或实体的对象。对具体操作建模,1.对系统工作流程建模,2.对具体操作建模,8.8活动图与状态图的比较,活动图与状态图的相同点:都是对系统的动态行为建模活动图与状态图的区别:两者描述的重点不同。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程;状态图着重描述对象从一个状态到另一个状态的流程,主要有外部事件的参与。两者使用的场合不同。如果想显示一个对象在其生命周期内的行为,则使用状态图较好;如果是为了分析用例或理解涉及多个用例的工作流程,或处理多线程应用等,则使用活动图较好。,8.9活动图建模技术,识别要对其工作流描述的类或对象。确定工作流的初始状态和终止状态,明确工作流的边界。对动作状态或活动状态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论