绘制UML状态图

7
当绘制状态图时,如何知道哪些状态应放在框中,哪些状态是用于转换箭头的?我注意到转换本身也是状态。
我正在查看此页面上的图1。

enter image description here

4个回答

6
转换并不是状态。转换是将对象从一个状态移动到另一个状态的事件。状态由对象中变量的值和对象的行为定义。例如,一个学生对象具有“新等待批准”的值。这个学生不能注册或参加课程。但是,如果该值更改为“已批准”,那么同一学生可能被允许注册并参加课程。区别在哪里?实际上,学生对象有两种状态。
是什么导致学生对象从一个状态转移到另一个状态?也许是“批准到达”事件。因此,“批准到达”出现在两个状态之间的箭头上。

似乎是一个教职工状态机,而不是学生。 - Ister

2
在这个图表中,“转换箭头”并不是状态,它们代表的是“转换/动作/事件”。例如,在上述图表中,“Scheduled”是状态,“open”是在此状态下进行的动作,之后进入“Open for enrollment”状态。可以用更详细的“is being opened”替换这个“open”转换动作。 不幸的是,像scheduled/open这样的转换动作很容易被误认为是状态,但这并不是意图。

0

我同意一个观点,在规范中,有些示例中的转换看起来像状态。 状态图

对我来说,“selectAmount”不完全是状态名称...


0

首先,您需要识别系统中的对象。在这些对象中,您需要选择随时间可能发生变化的对象。然后,您需要分别为所有这些选定的对象绘制状态图。方框表示该对象的状态,箭头表示导致特定对象状态改变的活动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接