绘制UML状态图

绘制UML状态图,uml,diagram,state-diagram,Uml,Diagram,State Diagram,在绘制状态图时,您如何知道哪些状态放在框中,哪些状态用于过渡箭头?我注意到转换也是状态 我看到的是图1: 转换不是状态。转换是将对象从一个状态移动到下一个状态的事件。状态由对象中变量的值和对象的行为定义。例如,一个学生对象的值为“newwaitingforapproval”。那个学生不允许注册或上课。但如果该值更改为“已批准”,则同一学生可以注册并上课。有什么区别?学生对象实际上有两种状态 是什么导致学生对象从一个状态移动到下一个状态?可能是“批准到达”事件。因此,批准到达在两个状态之间的箭头上

在绘制状态图时,您如何知道哪些状态放在框中,哪些状态用于过渡箭头?我注意到转换也是状态

我看到的是图1:


转换不是状态。转换是将对象从一个状态移动到下一个状态的事件。状态由对象中变量的值和对象的行为定义。例如,一个学生对象的值为“newwaitingforapproval”。那个学生不允许注册或上课。但如果该值更改为“已批准”,则同一学生可以注册并上课。有什么区别?学生对象实际上有两种状态


是什么导致学生对象从一个状态移动到下一个状态?可能是“批准到达”事件。因此,批准到达在两个状态之间的箭头上。图中的“过渡箭头”不是状态,而是“过渡/动作/正在发生”。例如,在上述图中,“计划”是状态,打开是操作,之后进入“开放注册”状态。此“打开”转换可以更详细地替换为“正在打开”
不幸的是,像scheduled/open这样的转换操作也很容易与状态混淆,但这不是目的

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

我同意一点,在规范中,在某些示例中,转换看起来像状态。


对我来说,“selectAmount”并不完全是一个州名…

它似乎是一个教员状态机,而不是学生。