EA画UML状态图中如何实现状态机之间的同步

这篇文章主要为大家展示了“EA画UML状态图中如何实现状态机之间的同步”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“EA画UML状态图中如何实现状态机之间的同步”这篇文章吧。

创新互联公司专业为企业提供道里网站建设、道里做网站、道里网站设计、道里网站制作等企业网站建设、网页设计与制作、道里企业网站模板建站服务,10余年道里做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

首先还是回顾一下系统的构成。还是请出对象图。

EA画UML状态图中如何实现状态机之间的同步

这个系统的基本设计如下:

每个设备都拥有自己的状态机,在独立的线程中执行,这些状态机相互独立,互不干扰。

交通信号系统引擎TrafficSystemEngine也拥有状态机,也是运行在一个独立的线程中。它的职责是控制系统的到全体动作。

状态机之间的同步

在这个设计中,已经尽量减少了设备之间的耦合性,只留下TrafficSystemEngine和各个设备之间的交互。既然是多线程,那么就需要处理同步问题,具体是:

  1. 系统启动时,等所有的设备都准备好了以后,TrafficSystemEngine开始执行状态切换。

  2. 系统正常执行期间,状态机之间通过信号/事件进行交互,这一部分已经在前面的文章说明,本文省略。

  3. 系统停止时,所有设备的停止过程结束以后,整个系统停止。

说起来挺玄,画成状态图就是下面这样。

EA画UML状态图中如何实现状态机之间的同步

中间的的部分就是TrafficSystemEngine,不再说明。这里只说明其他两个状态:Setup状态用于等待所有设备初始化完成;Shutdown用于状态等待所有设备的Shutdown结束处理结束。

两个状态有意用了两种表达方式,在本例中表达的语义相同。

建模中的拆分和组装

对一个系统建模,一般需要经历一个拆分和组装的的过程。

拆分就是前面讲到的庖丁解牛,只不过分解的对象是交通信号系统。我们将系统拆分成各个子系统或者说模块,然后对它们分别建模。这样既可以降低建模的难度,又可以得到可复用的模块。

建模活动中的组装既是设计的一部分,也是检验设计的过程。在组装过程中可以发现各模块设计中的不足。否则的话这些问题恐怕就要等到结合测试时才能发现了。

以上是“EA画UML状态图中如何实现状态机之间的同步”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


当前名称:EA画UML状态图中如何实现状态机之间的同步
分享网址:http://azwzsj.com/article/gpsees.html