- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IUML状态机图介绍
UML状态机图
状态机图的作用
状态机图是用来为对象的状态及造成状态改变的事件建模。
状态机图表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,又在新状态下响应事件,执行动作,引起转移到另一个状态,如此继续,直到终结状态。
状态机图的基本元素
状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。状态图由状态(state,圆角矩形)与转换(transition,连接状态的箭头)组成。引起状态改变的触发器(trigger)或者事件(event)沿着转换箭头标示。如图所示灯光有2个状态:off与on。当lift switch或者lower switch事件被触发时,灯光状态会改变。
图表 1 状态图的基本元素
状态图通常有初始伪状态(initial pseudostate)和最终状态(final state),分别表示状态机的开始和结束。初始状态用实心圆表示,终止状态用牛眼表示
图表 2状态图中的初始伪状态与最终状态
状态(state)
图表 3 带分栏的状态
在状态图的下面部分包括事件和动作(event/action)。Entry和exit事件是标准的,任何一个进入状态的转换都将会调用entry动作,任何一个退出状态的转换都将会调用exit动作,而且也可以添加自己的事件。
图表 4状态的
例如,咖啡机正在煮咖啡的状态(Brewing),并且可以把行为写在状态内。
图表 5状态中do的行为细节
转换(transition)
图表 6状态图为触发器、监护条件和转换行为之一建模
触发器(trigger)是能够引起转换的事件,在图表5处理用户输入的系统里,keystroke触发器可引发系统状态从Gathering input改变到Processing input。
监护条件(guard)是允许或封锁转换的一个Boolean条件。如果条件为真,接受该转换;否则,封锁该转换,停留在原状态。示例中,在按键盘键后,触发器运行,如果该输入少于要求的长度,guard可以用来封锁该转换。
转换行为(transition behavior)是转换发生时所执行的连续活动。例如,状态从Gathering input改变到Processing input时执行submit input的动作。图5也显示状态可以转换成自身,即self-transition。
伪状态(Pseudo State)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。它是一个瞬时状态,用于构造转换的细节。当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。伪状态用来连接转换段,到一个伪状态的转换意味着会自动转换到另一个状态而不需要事件来触发。
伪状态包括:初始状态、入口点、出口点、选择和合并、结合和分叉、连接、终止和历史状态。
入口点是状态内的一个外部可见的伪状态,外部转换可以将它作为目标。包含入口点的状态将成为转换的有效目标状态,在UML中,用状态符号边框的空心圆表示。出口点也是状态内的一个外部可见的伪状态,外部转换可以将它作为源,它代表状态内的一个终态,在UML中,用状态符号边框的十字交叉圆表示。
图表 7入口点与出口点
选择,根据节点后的警戒条件动态计算选择转换路径,在UML中,用菱形表示,其输出必须包含警戒条件且不能有触发器。合并表示两个或者多个可选的控制路径汇合在一起,在UML中用菱形表示。
图表 8选择伪状态
分叉和结合表示。在UML中,用一段粗线表示。
图表 9分叉与结合伪状态
连接是状态机中表示整体转换为部分的一种伪状态。在UML中,连接用小的实心圆表示
图表 10连接伪状态
历史伪状态,用于表示退出所属的复合状态后,它会记录复合状态之前处于活动的子状态。历史伪状态包括浅度历史伪状态和深度历史伪状态。浅度历史伪状态用带字母H的圆表示,深度历史伪状态用带字母H和*的圆表示
UML中的复合状态(composite state)允许并发(concurrent)的状态,即处在某个状态的对象同时在做一个或多个事情。每个组成状态包含一个或多个状态图的状态,每个图属于一个区域,各区域以虚线分隔,区域内的状态被称为组成状态的子状态。
图表 11复合状态包含一个或多个状态图
状态
图表7表示CD播放器的状态图,包括了不同的状态及转换。通过分析这个例子,观察触发器与监护条件如何用来为不同类型的状态改变建模。
如果指定了触发器,但是没有监护条件。当触发器被触动时,接受转换。当press stop发生时,CD播放器从Playing状态变为Stopped状态。
如果指定了触发器和监护条件,当触发器被触动,并且监护条件为真时,接受转换。在press play发生,并
文档评论(0)