uml - 系统序列图 - 系统可以请求 Actor 输入吗?

标签 uml sequence-diagram user-interaction

在uml - 系统时序图中,系统是否可以请求参与者的输入(见附图)

example

在我的例子中,场景是:系统提示用户输入确认信息,用户输入输入内容。

想知道这是否是它的正确表示?我一如既往地问,我用相反的方式来做,在这种方式中, Actor 向系统提供输入,系统根据输入返回输出...

最佳答案

初步评论

在交互图中显示参与者的做法已被广泛接受并且很普遍。

然而,原则上,UML 交互图(例如序列图)应该显示生命线之间的交互 ​​within an enclosing classifier :

  • Actor 在您的系统外部,它不是您系统中任何封闭分类器的一部分。
  • 因此,只有当您的模型范围大于 IT 系统时,这才是有效的 UML,即您为使用您的 IT 系统的组织建模。
  • 此外,消息语义没有为人类参与者明确定义,这正是您问题背后的问题

保持一致

如果您选择继续您的建模方法并将 Actor 视为任何其他分类器,那么您的 Actor 实例应该像任何其他对象一样表现。

流量messages显示哪个对象是消息的发送者以及哪个对象响应。您应该始终如一地保持此逻辑,就像您在图表中所做的那样。顺便说一下,这将是您模型中罕见的地方之一,您可以在其中显示系统是此特定交互的起源而不是用户。 (提示:不要忘记生命线上的 execution specification:它会增加可读性)

如果你通过相反方向的箭头/消息来具体化 Actor 的自由意志,你只会进一步增加歧义:这会给人一种印象,即 Actor 是消息的主动者,而且 Actor 可以发送完全不同的信息。而且我不确定您的系统是否设计用于响应来自用户的任意消息。

另一种选择?

一个不那么模糊的替代方案可能是显示系统核心元素和表示 UI 的元素之间的交互:UI 元素充当用户的代理,但由于它和其他任何对象一样,消息流的解释是明确的。

这是 ECB 背后的想法之一。分解,C 是特定于用例的 Controller (因此它将此交互与需求相关联),B 是暴露给特定类型参与者的 UI 边界(无需进入 UI 细节)。

关于uml - 系统序列图 - 系统可以请求 Actor 输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63084215/

相关文章:

architecture - 如何在单个页面中制作多个图表

c++ - 时序图 : Thread processing over messages in queue

python - 与 Matplotlib 图中的曲线交互

diagram - 是否有免费的(如啤酒中的)COBOL 代码流程图生成器?

iphone - ELCUI应用程序超时问题

c - Ncurses:如何在不丢失当前位置的情况下刷新菜单?

polymorphism - 在 UML 类图中描述静态多态性

enums - 有没有办法将枚举文字与 UML 类图中的类关联起来?

uml - 描述键/值数据存储的 UML 方法?

uml - 如何在UML中正确使用nonunique?