EA&UML日拱一卒-状态图::状态机

行为状态机概念


以下内容摘自UML2,今天的内容是说明状态机具有上下文类目的情况。


行为状态机可以用于定义下面的场景(不限于)

  • 主动类的类目行为

  • 一个行为化类目的除了类目行为以外的拥有行为。


如果状态机有某种行为类目上下文,那么这个类目定义了哪些信号和调用事件可以适用于那个状态机,也定义了哪些特征对状态机拥有的行为可用。状态机的信号触发条件和调用事件触发条件根据这个类目的接受和操作被分别定义。这些特征可以被用于定义状态机的消息事件触发条件。


--UML2.5 14.2.3.1 StateMachine(状态机)



用一个不是很严密,但是简单的说就是:状态机可以用于定义类目的类目的行为。这时,状态机可以调用上下文类目的行为,也可以将上下文类目中定义的事件用于定义状态机的触发条件。



示例


我们继续使用按钮式信号系统的例子。


定义上下文类目


在本例中就是一个类:TrafficLight.

TrafficLight类是一个主动类,主动类的行为就是状态机。

TrafficLight类有两个方法,SetCurrentLight和SetShuttingDownFlag。它们会在状态机中调用。


为类目添加状态机


打开【Project Browser】中TrafficLight的上下文菜单,选择【Add】-【State Machine】菜单项。



就可以得到一个状态机对象和一个状态图。



绘制状态图


接下来的内容就是我们前面讲过的了。以下是按钮式型号系统的状态图。



从图中可以看出以下不同:


状态图的外面包围着一个方框,表示这是一个状态机。

状态机的进入/退出行为,迁移的效应行为调用的是TrafficLight类的方法。


进入/退出行为的设定和表示方法


  1. 打开进入/退出行为对话框


  2. 选择【Behavior】属性页

  3. 在【Behavior】文本框中输入行为的详细内容

  4. 如果需要类类图中显示详细内容,则选择蓝色圆圈中的【Show Behavior in Diagram】项目。


参考资料:


14.2 Behavior StateMachines(1)--状态机概要

14.2 Behavior StateMachines (10) --记法


打开方法如下:

  1. 进入【面向对象思考】 公众号  

  2. 打开【UML】-【UML2.5中文译文】菜单

  3. 选择【状态图】分类

  4. 选择相关文章


以上就是今天的文章,欢迎点赞,关注并推荐给您的朋友!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】



  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值