【UML面向对象分析与设计】浅析错题(二)——状态图与活动图

1、
在这里插入图片描述
这道题目选项中 的四个答案,好像似曾相识又好像根本没见过,翻课本无果,最后百度,了解了这四个事件的基本定义:对UML状态图转移事件的认识,原来这是状态图的转移事件!看到课本上的事件一节,大致如下:
在UML中,事件分为4类。
1.调用事件(call event):调用事件表示的是对操作的调用,指的是一个对象对调用的接收,这个对象用状态的转移而不是用固定的处理过程实现操作。操作的参数即是事件的参数。
2.变化事件(change event): 如果一个布尔表达式中的变量发生变化,使得该布尔表达式的值相应地变化,从而满足某些条件,则这种事称为变化事件。变化事件用关键字when表示。
3.时间事件(time event):指的是满足某一时间表达式的情况的出现,时间事件代表事件的流逝。
4.信号事件(signal event):表示的是一个对象(状态图所对应的对象)接收到了另一个对象的显示信号这种情况。用构造型< < singal > >表示。信号有明确的参数列表,信号的参数被声明为属性。信号事件一般是异步事件,调用事件一般是同步事件
关键是变化事件的一点,和题目中一模一样,果然还是看书看少了。


2、
在这里插入图片描述这个表达式的内容我见过,但是硬是没想起来是什么意思,我就觉得是“触发事件/效果列表(动作)”,其他没看出来什么,而且觉得这不是入口、出口事件,所以就是执行了一个内部转移,选了B。
看到课本状态一节举了例子对这个内容作了解释:
在这里插入图片描述
在这里插入图片描述
课本上的例子可以知道,在进入后会一直做blinkFivetimes的操作,我看到课本上解释event selfTest是被延迟的,defeer是什么意思?一百度
在这里插入图片描述
啊这。。那题目中的defer和这个特别像,是啥意思?再次百度:
在这里插入图片描述
所以。。合着课本上是打错字母了吧。。defer就是延迟的意思,所以这道题,事件后边有个defer,理所应当就是可延迟事件了。


3、
在这里插入图片描述
这两道题虽然没有写错,但是提及一下,在不同情况下完成的动作,就是不同情况在各种状态之间的转换,所以状态图会更合适。对工作流程这种一系列的东西建模,选择活动图更好。


4、
在这里插入图片描述
这道题再看一次应该是答案给错了,这个就是对的,引用课本上的话:
状态可以细分为不同的类型,例如初态、终态、中间状态、组合状态、历史状态等。一个状态图只能有一个初态,但终态可以有一个或多个,也可以没有终态
如果这道题把初态改成终态,那么确实是错的。


5、
在这里插入图片描述
这里直接给出老师的提示:“动作状态是原子的,活动状态是非原子的”


6、
在这里插入图片描述
这里直接给出老师的提示:“活动图的控制流是自动地顺序执行,状态图中的转换是事件驱动的


7、
在这里插入图片描述
再提及一题,子状态:串行子状态(顺序符合状态)、并行子状态(并发符合状态)、历史状态(保存上一次从这个组合状态离开时候的子状态,下一次进入这个组合状态时直接进入这个被保存的子状态,历史状态用一个圆圈,中间有H*来表示)。


8、
在这里插入图片描述我的答案如下:
在这里插入图片描述
老师的答案如下:
在这里插入图片描述
总结:else中虽然没有条件语句,但是还是要补充上去,条件要加上中括号,有或或者且不能写“||”或“&&”,用英文表示:or 或者 and。


9、
在这里插入图片描述
我的答案:
在这里插入图片描述老师答案:
在这里插入图片描述嗯,没啥问题

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值