【问题标题】:Is there a standard diagram type with both state and activity?是否有同时具有状态和活动的标准图表类型?
【发布时间】:2014-11-04 11:25:07
【问题描述】:

我知道 UML 活动图描述了一种算法,因此从某种意义上说,它是流程图的现代版本,而 UML 状态图显示了对象或系统可以找到的所有可能(或有趣)状态,并显示这些状态之间所有可能的转换。

我也理解它们是正交模型:在状态图中连接两个状态的箭头代表一个算法,或者一个活动图;活动图的两个活动之间的一些(如果不是全部)箭头表示对象在连续动作之间发现的状态。

是否有一种标准图表类型(UML 或其他传统)为动作(算法步骤,包括分支、分叉/连接等)和动作之间的状态(仅设计者希望给出的那些状态)赋予不同的形状姓名)?

类似这样的:

begin --> (state: new) --> [action: save] --> (state: saved) --> [action: delete]...

【问题讨论】:

标签: uml diagram activity-diagram petri-net state-diagram


【解决方案1】:

不,没有,但 StateMachine 是一种行为定义类型,可以使用一些结构化编程功能来定义,例如决策(在状态机中称为选择)、叉子、连接。您可以定义在状态机的多个部分中执行的行为(如果需要,可以执行操作)。在转换期间、状态进入期间、状态执行期间和状态退出期间。在这种情况下,您可以结合对象的状态流并在一个图中指示行为执行。但是,为状态和转换定义的行为没有不同的形状,它被描述为转换名称和状态定义中的文本。有关详细信息,请参阅上层建筑文档 StateMachine 部分。

【讨论】:

  • 如果我的转换由几个步骤组成,中间有选择和其他动作怎么办?我必须为所有中间状态命名吗?
【解决方案2】:

是否有标准图表类型(UML 或其他传统) 为两种动作提供不同的形状(算法步骤,包括 分支、fork/join 等)和动作之间的状态(只有那些 说明设计师希望为其命名)?

类似这样的:

开始 --> (state: new) --> [action: save] --> (state: saved) --> [动作:删除]...

是的,使用Petri Nets,您可以使用transition-nodes 表示动作,使用place-nodes 表示状态;还支持分支和加入。 如果您可以访问,我建议您阅读Lectures on Petri Nets I: Basic Models(付费专区)。

【讨论】:

    猜你喜欢
    • 2018-03-09
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多