这篇文章主要介绍了EA画UML状态图中如何实现重画按钮状态图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
按钮处理模块的状态图,在前面的文章中已经说明过了,但是当我们对信号系统引擎建模时,发现当初的设计并不能满足需求,所以需要对已经完成的模型进行修改。
这样的修改在软件开发过程中经常出现,需要做的不是抑制这种修改,而是让这种修改尽量早的发生。这也是建模的一个作用。
在前面的例子中,希望将停止按钮和行人通过请求按钮用一个时序图表达出来,结果导致两种情况都不合适。本文采用另一种策略:
设计标准按钮处理的状态图,停止按钮可以适用该状态图
行人通过请求按钮模块对标准按钮模块进行扩展
标准按钮模块状态机
Work状态
装置工作状态,在这个状态中包含有效和无效两个子状态。Work状态中如果接受到Shutdown要求,则迁移到完了状态。从UML状态机的语义来讲,无论状态处于Working的那个子状态,上述迁移都有效。
Disable状态
设备不接受用户按钮操作。接受到DeviceEnable事件之后,向Enable状态迁移。
Enable状态
接受DeviceDisable事件以后,向Disable状态迁移;接收到按钮按下事件时,向Disable状态迁移,但同时发送按钮按下事件。
如果和之前的按钮装置状态图比较,应该可以看出这个方案更清晰,重点也更突出。
行人通过请求按钮状态机
首先和标准按钮模块状态图进行一下比较,可以看出区别在于Enable状态又进一步细化,同时相应的迁移也发生了变化。以下只说明增加的部分。
LaterReportWait状态
本状态中如果用户按下按钮,不会立即发送按钮按下事件,而是向CmdReady状态迁移。如果接收到SetInstantReport通知,则向InstantReportWait状态迁移。
InstantReportWait状态
本状态中接收到按钮按下事件时,向Disable状态迁移,但同时发送按钮按下事件。
CmdReady状态
进入本状态就意味着,用户按下了请求按钮。当接收到HandlerReady事件时,向Disable状态迁移,但同时发送按钮按下事件。
感谢你能够认真阅读完这篇文章,希望小编分享的“EA画UML状态图中如何实现重画按钮状态图”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。