uml状态图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
move up[ currentFloor=desiredFloor ] move down[ currentFloor>desiredFloor ]
作业1
绘制打印机的状态图
作业2
绘制网上书店系统中订单(order)的状态 图。
状态图的特性
Rose中,状态图不生成代码,但状态图在检查,调试和描 述类的动态行为时非常有用。
状态图适合于描述跨越多个用例的单个对象的行为,而不 适合描述多个对象之间的行为协作,因此,常常将状态图 与其它技术组合使用。 活动图适合于描述多个对象和多个用例的活动的总次序。 交互图适合于描述单个用例中的多个对象的行为。
当手机开机时,它处于空闲状态(idle) ,当用户使用电 话呼叫某人(call someone)时,手机进入拨号状态 (dialing)。如果呼叫成功,即电话接通 (connected),手机就处于通话状态(working); 如果呼叫不成功(can’t connect),例如对方线路有 问题,关机 、拒绝接听。这时手机停止呼叫,重新进入 空闲状态,手机进入空闲状态下被呼叫(be called ), 手机进入响铃状态(ringing),如果用户接听电话 (pick),手机处于通话状态;如果用户未做出任何反 应(haven’t acts ),可能他没有听见铃声,手机一直 处于响铃状态,如果用户拒绝来电(refused),手机 回到空闲状态(idle)。
状态图中的基本概念
State (状态) Action (动作) Transition (转移)
Event (事件)
Example
Turn Pc On Initializing
do/ BootUp
Working
shut down
Shuting Down
[ Time Out ]
keystroke or mouse movement
手机状态图
练习1
1、该图中有几种状态,分别为___________________________________ 2、请描述线程的基本运行过程_____________________________
练习2:电梯系统的状态图实例
电梯开始处于空闲状态(idle),当有人按下按钮要求使 用电梯时(事件 is required发生),电梯进入运行状态(run)。 如果电梯的当前楼层比想要的楼层高时(护卫条件 [currentFloor>desiredFloor]成立),电梯进入下降状态 (moving down);反之,如果电梯的当前楼层比想要的楼层 低时(护卫条件[currentFloor<desiredFloor成立]),电梯进入 上升状态(moving up);如果电梯的当前楼层与想要的楼层相同 时(护卫条件[else]成立),电梯门打开(door open)。在电梯上 升或下降期间,每经过一个楼层就判断护卫条件 (currentFloor=desiredFloor)是否成立,若不成立,继续移动, 若成立,就进入停止状态(stop),15秒后,电梯门自动打开 (door open),2分钟后,电梯门自动关上(door close),如果有 更多的电梯使用请求,进入运行状态(run),反之,则进入空闲 状态(idle)。
Faxing entry/ key in remote fax number exit/ complete transmission do/ add datestamp do/ timestamp
转移 (Transition)
一个转移是两个状态之间的一种关系, 表示对象将在第一个状态中执行一定 的动作,并在某个特定事件发生时进 入第二个状态。
状态建模技术
可以分为两步: 1、可以分成若干个场景,考虑每个场景的状态变 化: (1)找出适合用模型描述其行为的类 (2)确定对象可能存在的状态 (3)确定引起状态转换的事件 (4)确定转换进行时对象执行的相应动作 (5)对建模的结果进行相应的精化和细化 2、然后将这些复合成一个完整的状态图。
手机的状态图实例
事件 (Event)
一个事件是对一个在时间和空间上占有一定 位置的有意义的事情的详细说明。 事件产生的原因包括:调用、满足条件的状 态的出现、到达时间点或经历某一时间段、 发送信号等。
事件引发转移
对于一个给定的状态,最终只能产生一 个转移,因此从相同的状态出来的、事 件相同的几个转移之间的条件应该是互 斥的。 例:
Screensaving
状态(State)
一个状态是指在对象的生命期中的一 个条件或状况,在此期间对象将满足 某些条件、执行某些活动或等待某些 事件。
状态的特点
一个状态图只能有一个初态,而终态可以 有多个,也可以没有终态。 一个状态有以下几个部分:
Βιβλιοθήκη Baidu
状态名 入口动作(entry) 出口动作(exit) 动作(do)
可视化建模与UML
东软信息学院 计算机系
主要内容
什么是状态图(State Diagram) 状态图的应用 状态图中的基本概念 状态建模技术
Example
Turn Pc On Initializing
do/ BootUp
Working
shut down
Shuting Down
[ Time Out ]
电梯系统的状态图实例
[ is required ] run [ currentFloor>desiredFloor ] move up[ currentFloor<desiredFloor ] [ else ] [ more request ] door close [ time out ] [ no more request ] idle move down[ currentFloor=desiredFloor ] [ time out ] stop moving down [ currentFloor<desiredFloor ] door open moving up
keystroke or mouse movement
Screensaving
Review: 对象具有状态
对象的状态是由class中的属性代表的。
什么是状态图
状态图强调了从状态到状态的控制流。 规定了对象在生命周期中响应事件所 经历的状态的序列以及对象对这些事 件的响应。
状态图的应用
主要用于建立类的一个对象在其生存期 间的动态行为,表现一个对象所经历的 状态序列,引起状态转移的事件(event), 以及因状态转移而伴随的动作(action)。