1、第八章第八章 状态图状态图动态建模动态建模动态行为包括系统中对象生存期内可能的状态及动态行为包括系统中对象生存期内可能的状态及事件发生时状态的转移,对象间动态合作关系,对象事件发生时状态的转移,对象间动态合作关系,对象之间的交互过程以及交互顺序,描述了为满足用例要之间的交互过程以及交互顺序,描述了为满足用例要求所进行的活动及活动间的约束关系。求所进行的活动及活动间的约束关系。第八章第八章 状态图状态图:描述某个对象,子系统,系统描述某个对象,子系统,系统的生命周期。的生命周期。:描述操作实现中完成的工:描述操作实现中完成的工作以及用例实例或对象中的活动,活动图是状态图的一个作以及用例实例或对象
2、中的活动,活动图是状态图的一个变种。变种。:是一种交互图,描述对:是一种交互图,描述对象之间的动态合作关系以及合作过程中的行为次序,常用象之间的动态合作关系以及合作过程中的行为次序,常用来描述一个用例的行为。来描述一个用例的行为。:用于描述相互合:用于描述相互合作的对象间的交互关系,它描述的交互关系是对象间的消作的对象间的交互关系,它描述的交互关系是对象间的消息连接关系。息连接关系。包括包括4类图:类图:第八章第八章 状态图状态图状态图状态图(State Diagram)用来描述一个特定对象的所有可能的状用来描述一个特定对象的所有可能的状态及其引起状态转移的事件。态及其引起状态转移的事件。状态
3、图的构成要素是什么状态图的构成要素是什么?打印机的工作状态转换打印机的工作状态转换事件事件开始开始状态状态结束结束状态状态中间中间状态状态状态转移状态转移第八章第八章 状态图状态图 1.状态的概念状态的概念 状态状态(state):是指对象在其生命周期中是指对象在其生命周期中,满足某些条件、执满足某些条件、执行某些活动、或等待某些事件时的一个状况。行某些活动、或等待某些事件时的一个状况。2.状态的要素状态的要素 状态名,进入状态名,进入/退出动作,内部转移,子状态,延迟事件退出动作,内部转移,子状态,延迟事件 loginlogin time=current timeentry/type“log
4、in”do/get use namedo/get passwordhelp/display helpexit/login(use_name.password)状态名状态名状态变量状态变量活动活动login第八章第八章 状态图状态图 3.状态的类型状态的类型 初始状态初始状态 原子状态原子状态(简单状态简单状态)结束状态结束状态 组合状态和子状组合状态和子状态态子状态:被嵌套在另子状态:被嵌套在另外一个状态中的状态。外一个状态中的状态。组合状态:含有子状组合状态:含有子状态的状态。组合状态态的状态。组合状态也可以有初态和终态。也可以有初态和终态。组合组合状态状态子状态子状态第八章第八章 状态图状
5、态图组合状态中的子状态分类组合状态中的子状态分类:(1)顺序子状态顺序子状态:子状态之间具有互斥性子状态之间具有互斥性,子状态不能同时存在子状态不能同时存在.(2)并发子状态并发子状态:指一个对象在同一时刻可以处在多种状态。指一个对象在同一时刻可以处在多种状态。顺序子状态顺序子状态运行运行后退后退前进前进低速低速高速高速并发子状态并发子状态 记录组合状态退出时所处的子状态,以便再次进入从这个记录组合状态退出时所处的子状态,以便再次进入从这个状态开始工作。状态开始工作。第八章第八章 状态图状态图历史状态历史状态第八章第八章 状态图状态图状态图之间可以发送消息,用虚箭头表示。状态图之间可以发送消息
6、,用虚箭头表示。on/stopoffon/playoff()on()play()stop()off()/stop()CD playerRemote Controloffonon()off()stop()play()stop()play()off()on()第八章第八章 状态图状态图 4.转移的概念转移的概念第八章第八章 状态图状态图第八章第八章 状态图状态图 细化的状态表示细化的状态表示 UML给出了电梯细化的状态表示。给出了电梯细化的状态表示。状态名状态名状态变量状态变量活动活动On first floorGo up(floor)Moving updo/moving to floorGo u
7、p(floor)Idletimer=0do/increase timerarrivedMoving downdo/moving to floorGo down(floor)timer=timer-outMoving to first floorarrivedarrived第八章第八章 状态图状态图 5.转移的类型转移的类型 自转移自转移:源状态和源状态和目标状态为同一状态的目标状态为同一状态的转移。转移。自转移自转移 自动转移自动转移:一个一个 状状态根据本状态的有关情态根据本状态的有关情况,自动触发进入目标况,自动触发进入目标状态,在转移上没有事状态,在转移上没有事件。件。自动转移自动转移
8、条件转移条件转移:通过分通过分支判断所确定的转移。支判断所确定的转移。条件转移条件转移第八章第八章 状态图状态图6.事件的概念事件的概念 事件事件(event):是指在确定的时间和位置所发生的对对象起是指在确定的时间和位置所发生的对对象起作用的事情。事件的发生将引起一些动作,使对象发生状态的作用的事情。事件的发生将引起一些动作,使对象发生状态的转移。转移。动作:动作是对象类中一个操作的执行,动作具有原子和动作:动作是对象类中一个操作的执行,动作具有原子和不可中断特性。不可中断特性。entry/setMode(onTrack)exit/setMode(offTrack)7.事件的描述事件的描述事
9、件名称事件名称参数表参数表字符串,常为接收对象类中字符串,常为接收对象类中的一个操作。的一个操作。事件的形式参数事件的形式参数,可以省略,可以省略第八章第八章 状态图状态图1 入口事件:在进入状态时执行。是原子的,先于人和活动入口事件:在进入状态时执行。是原子的,先于人和活动/转换。转换。2 出口事件:在退出状态时候执行,是原子的,跟在所有内部活动之后,出口事件:在退出状态时候执行,是原子的,跟在所有内部活动之后,但先于所有的出口转换。但先于所有的出口转换。3 动作事件:动作事件:“Do事件事件”4 信号事件:信号是两个对象之间通信的媒介。信号事件:信号是两个对象之间通信的媒介。5 调用事件:
10、一个对象请求调用另一个对象的操作。调用事件:一个对象请求调用另一个对象的操作。6 修改事件:依靠特定属性值的布尔表达式所表示的条件的满足来触发状修改事件:依靠特定属性值的布尔表达式所表示的条件的满足来触发状态的转换。态的转换。7 时间事件:表示时间的流逝。绝对形式和相对形式。时间事件:表示时间的流逝。绝对形式和相对形式。8 延迟事件:在本状态不处理,要推迟到另外一个状态才处理的事件。延迟事件:在本状态不处理,要推迟到另外一个状态才处理的事件。第八章第八章 状态图状态图 调用事件:是表示调用事件:是表示对操作的调度。对操作的调度。调用事件调用事件修改事件:因满足某修改事件:因满足某种条件而引起的
11、事件种条件而引起的事件,变变化条件用化条件用when表示。表示。变化事件变化事件 时间事件:满足某一时间事件:满足某一时间表达式而引起的事时间表达式而引起的事件件,时间事件用时间事件用after,when表示。表示。时间事件时间事件第八章第八章 状态图状态图状态图的作用状态图的作用状态图状态图:用来描述一个对象在其生命周期中所表现出来的状态用来描述一个对象在其生命周期中所表现出来的状态和行为。和行为。当在系统建模过程中需要描述某个事物或对象的不同状态,以当在系统建模过程中需要描述某个事物或对象的不同状态,以及状态之间转移的事件和动作时,用状态图。及状态之间转移的事件和动作时,用状态图。但状态图
12、并不是对每一个对象都需要的。但状态图并不是对每一个对象都需要的。第八章第八章 状态图状态图状态图建模技术状态图建模技术(1)确定针对哪些对象画状态图确定针对哪些对象画状态图(2)确定对象所有可能存在的状态确定对象所有可能存在的状态(3)确定状态转换的事件确定状态转换的事件(4)确定状态转化时要执行的动作确定状态转化时要执行的动作(5)细化和完善细化和完善第八章第八章 状态图状态图图书管理系统的状态图图书管理系统的状态图New bookAvailableDeleteReservedBorrowedTime outBorrowReserveCancelBorrowReturn back书的状态图第八章第八章 状态图状态图New BorrowerAccount AvailableAccount UnavailableDelete AccountThe number of book is okthe number of book extends the limitreturn some books借阅者账户的状态图图书管理系统的状态图图书管理系统的状态图