第12章-动态建模课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第12章-动态建模课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 动态 建模 课件
- 资源描述:
-
1、2/68动态建模用来描述系统的动态行为动态行为,显示对象在系统运行期间不同时刻的动态交互动态交互。UML中用状态机图状态机图、活动图活动图、顺序图顺序图、通信通信图图和协作图协作图来建立动态模型。3/68 状态机图状态机图 活动图活动图 顺序图顺序图 通信图通信图4/68 活动图活动图 顺序图顺序图 通信图通信图5/68状态机图通常是对类描述的补充类描述的补充,它说明该类的对象所有可能的状态所有可能的状态,以及哪些事件将导致状态的改变导致状态的改变。状态机图描述了对象的动态行为,是一种对象生存周期对象生存周期的模型。6/681)列出对象具有的所有状态 状态分为起始状态起始状态、结束状态结束状态
2、和中间状态中间状态。一张状态机图可以有一个起始状态和若干个(可以为0)结束状态。2)标识导致状态转换的事件事件 当一个对象接收到某个事件时,会导致从一个状态转换到另一个状态,称为状态迁移状态迁移(transition)。3)为状态和迁移定义状态变量状态变量和动作动作 在状态迁移和/或处于某个状态中时都可能需要执行一些相应的动作,综合这些动作,使得对象完成相应的功能。7/68状态名状态名状态变量状态变量活动活动状态状态迁移迁移起始状态起始状态结束状态结束状态状态机图的基本符号状态机图的基本符号8/68电梯升降的状态机图电梯升降的状态机图Moving updo/moving to floorMov
3、ing downdo/moving to floorIdletimer=0do/increase timerarrivedarrivedgo down(floor)Moving to First floorgo up(floor)timer=time-outarrivedgo up(floor)Onfirst floor9/68一个状态由状态名状态名、状态变量状态变量和活动活动三部分组成。状态变量是状态机图所显示的类的属性类的属性,也可以是临时变量临时变量。活动部分列出了处于该状态时要执行的事事件和动作件和动作。10/68有三个标准事件:entry,exit和do。Entry和exit事件用于
4、指明进入进入和退出退出该状态 时的特定动作。do事件用于指明在该状态中该状态中时执行的动作。活动区中事件的语法如下:event-nameopt (argument list)opt guard-condition opt/activity-expressionopt 其中,事件名事件名可以是包括三个标准事件(entry,exit,do)在内的任何事件,参数表参数表表示该事件所需的参数,警戒条件警戒条件是一布尔表达式,动作动作表达式表达式是该事件将被执行的动作。11/68loginlogin time=current timeentry/type“login”do/get use_namedo/
5、get passwordhelp/display helpexit/login(use_name,password)login状态状态12/68自动售货机状态机图自动售货机状态机图idleCollecting moneyCoins in(amount)/add to balancetest and computeDo:test item and compute changeDo:dispense itemDo:make changeSelect(item)change 0change=013/681.状态迁移状态迁移 引起状态迁移的原因通常有两种:当标在迁移箭头上的事件出现事件出现时会引起状态
6、的迁移。此时,首先执行引起迁移的事件中的动作,然后迁移到新的状态,执行新状态中的内部动作(包括entry、exit、do以及用户定义的动作)。在执行do或用户定义的动作时,可以被外部的事件(将导致该状态的迁移)中断,但entry动作和exit动作是不能被中断的,并且它们总是要执行完的。14/68 当状态机图中相应的迁移上未指明事件时,表示当位于迁移箭头源头的状态中的内部动作(包括entry、exit、do以及用户定义的动作)全部执行完后全部执行完后,该状态迁移被自自动触发动触发。15/68自动售货机状态机图自动售货机状态机图idleCollecting moneyCoins in(amount
7、)/add to balancetest and computeDo:test item and compute changeDo:dispense itemDo:make changeSelect(item)change 0change=016/68状态迁移的语法如下:event-name opt (parameter-list)opt guard-condition opt /effect-listopt其中:事件名及其参数表事件名及其参数表指出触发迁移的事件,参数表的语法与“操作”中定义语法相同。警戒条件警戒条件是一个布尔表达式。如果状态迁移中既有事件特征又有警戒条件,则表示仅当这个事件
8、当这个事件发生发生并且警戒条件为真警戒条件为真时才触发相应的状态迁移;如果状态迁移上只有警戒条件只有警戒条件,则表示当该条件该条件变为真变为真时,触发状态迁移。17/68 effect-list是当该迁移触发时执行的过程表过程表 达式达式,即动作表达式动作表达式。表达式中可引用相应对 象中的属性、操作,或者事件特征中的参数。动作可以包括调用调用、发送发送和其它种类的动作其它种类的动作。一个状态迁移上可以有多个用/符号分隔动作表达式,它们按从左到右的次序依次执行依次执行。不允许有嵌套的或递归的动作表达式。18/68timer=time-out/go down(first floor)电梯升降的状
9、态机图电梯升降的状态机图Moving updo/moving to floorMoving downdo/moving to floorIdletimer=0do/increase timerarrivedarrivedgo down(floor)go up(floor)go up(floor)Onfirst floor19/68事件是指已发生并可能引发某种活动引发某种活动的一件事 类类数字手表类及其状态机图数字手表类及其状态机图inc/hours:=hours+1Digital_Watchmode_button()inc()do/displayminutesSet minutesdo/dis
10、play hoursSet hoursdo/displaycurrent timeDisplaymode_buttonmode_buttoninc/minutes:=minutes+1mode_button状态机图状态机图20/68事件的种类事件类型描述调用事件call event收到一条被一个对象外部同步调用的请求改变事件change event布尔表达式值的改变信号事件signal event收到供对象间异步通信用的一个外部的、被命名的信号(实体)时间事件time event到达一个绝对时间或经过一段相对的时间量21/68IdleinputSenddo/send(input)to corr
11、espondingclassThe signal could be an object of the following classes:Keyboard,Left Mouse Button,Right Mouse Button,Voice Recognitionsignalinputabstractdevice:Devicetime:TimesignalKeyboardcharacter:Charup:Booleandown:BooleansignalVoice Recognitioncommando:stringsignalMouseabstractup:Booleandown:Boole
12、anxPos:intyPos:intsignalRight MouseButtonsignalLeft MouseButton信号类层次信号类层次22/68 状态机图之间状态机图之间可通过动作(如在发送子句中指明接收者)或图间的虚线箭头向其他状态机其他状态机图发送消息。当采用虚线箭头时,状态机图必须画在矩形框中。在图间的消息箭头有两种画法:从表示源对象的状态机图中的从表示源对象的状态机图中的状态迁移状态迁移上上画虚线箭头画虚线箭头到表示目标对到表示目标对象的状态机图的边框上;象的状态机图的边框上;在两个状态机图的在两个状态机图的边框间画虚线箭头边框间画虚线箭头,表示源对象在其执行期间的,表示源
13、对象在其执行期间的某时刻发送该消息。某时刻发送该消息。在状态机图之间发送消息时,在目标对象的状态机图中应画有一个捕获这个消息的相应的迁移相应的迁移。23/68On()Off()Remote ControlPlay()Stop()OffOnOn()Off()Play()Stop()OffOn/StopOn/PlayOff()/Stop()CD PlayerOn()Off()Stop()Play()状态机图之间的消息发送状态机图之间的消息发送24/68 一个简单状态没有子结构,一个组合状态组合状态被分解 成区域,每个区域中包含一或多个直接子状态一或多个直接子状态。下面给出了UML中的主要状态种类
展开阅读全文