【问题标题】:Is it allowed to use DECISION NODE after INITIAL NODE in activity diagram?是否允许在活动图中的 INITIAL NODE 之后使用 DECISION NODE?
【发布时间】:2020-09-04 06:49:43
【问题描述】:

我正在为一个项目建模活动图。直接在初始节点之后可以使用决策节点。我只是用谷歌搜索它。但我什至找不到类似的例子。 例如:- 想象一个人可以搜索狗名选择类别动物,然后选择狗,同样在最开始......

我的一个队友提到,根据上面的例子,这是两个不同的活动,我们应该为它创建两个活动图。

【问题讨论】:

    标签: uml activity-diagram


    【解决方案1】:

    你的队友没有错。这是一个设计问题,应该事先澄清。活动是用例内部的功能部分。它们代表了诸如“晴天”之类的场景、各种错误场景等。再一次,用例代表了所考虑的系统对其主要参与者所代表的附加值。

    现在从您的示例中很难判断该系统应该是什么。 Search for dog name 可能是一个用例,但在哪种情况下?是给新狗命名还是在数据库中搜索现有的狗? Select animal category(然后是狗?)也一样。两者作为用例都没有多大意义。一旦你提出了有意义的用例,你就可以准确地知道活动应该有哪些步骤作为行动。只有这样,您才有必要做出决定。决定哪个用例在系统外实际使用它,您不会看到为它完成的步骤。

    作为建议:Bittner/Spence 有一本关于用例的优秀书籍(与 UML 规范不同)很有意义。还有其他知名作家(与 Ivar Jacobson 一起)在同一所学校任教。

    【讨论】:

      【解决方案2】:

      这是有条件的。

      关于决策节点的输入流的规则是(formal 2017 § 15.3.3.6 决策节点第 390 页):

      一个DecisionNode应该至少有一个和 最多两个传入的 ActivityEdge,以及至少一个传出的 ActivityEdge。 ...如果DecisionNode只有一个 入边,则它是主要的入边。如果 DecisionNode 的主要传入边缘是 ControlFlow, 那么所有的出边都应该是控制流,如果主要的入边是一个对象流,那么所有的出边 应该是 ObjectFlows。

      也知道(第 15.3.3.1 节初始节点第 ​​387 页):

      InitialNode 的传出 ActivityEdges 必须都是 ControlFlows。

      这意味着在你的情况下,假设 DecisionNode 没有其他输入边,DecisionNode 的所有输出边都应为 ControlFlows,否则这是不允许的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-27
        • 1970-01-01
        • 2020-05-12
        • 1970-01-01
        相关资源
        最近更新 更多