我基本上有一个如下所示的类:
class Stack {
...
push()
pop()
isEmpty()
...
class StackIterator extends Iterator {
...
hasNext()
next()
...
}
}我想为迭代器创建一个UML状态图。我的想法是使用依赖箭头和堆栈调用来建模迭代器状态,如下所示:

对于这样的情况,这是一个有效的、工业验证的、完全可以理解的UML状态图吗?
发布于 2020-04-09 18:40:15
状态机可以是操作的行为,但是将状态机与类相关联是非常奇怪的,并且不符合UML,因为类没有行为。
状态机之间的依赖在UML中没有预定义的含义。您希望指示类之间的继承关系,但是虽然状态机不必与类关联,但这种依赖关系并不相关
编辑
对于那些对状态机可以作为操作行为的事实持怀疑态度的人,我建议您看看规范:
注意操作的行为也可以被支持,因为活动也是一种行为
发布于 2020-04-09 19:42:44
为了显示堆栈的行为,您应该简单地使用活动图。填充/空状态是多余的,您可以很容易地使用[size >=1 ]条件获得pop的保护。
顺便说一句。没有什么是没有尽头的。推送应该有[size < max]或类似的东西。
https://stackoverflow.com/questions/61119080
复制相似问题