包括注册和登录的序列图

问题描述 投票:0回答:1

我正在尝试构建一个序列图,其中我向用户展示可以:

  • 如果详细信息正确,请登录到应用程序。如果详细信息正确,它们将被重定向到主仪表板
  • 如果详细信息不正确,他们将被重定向到注册页面,然后检查其详细信息以查看用户是否已在输入的电子邮件下注册。如果尚未注册,则会创建用户并将其重定向到主仪表板
  • 如果已经注册,则会显示“用户名或密码不正确”消息

我不确定这是否是显示注册和登录的正确或最佳方式,我觉得图表读取不正确。这很好地解释了这个场景吗?或者我还应该添加更多内容吗?

初始图:

根据答案进行修改: 这个修改后的图表能更好地解释这个场景吗?

使用嵌套 alt 进一步修改

最终修订版

uml diagram sequence-diagram
1个回答
3
投票

不幸的是,该图含糊不清且具有误导性。

  • Login screen
    向演员发送类似
    Redirect to AppDashBoard
    的消息。这是否意味着您的系统只是告诉用户他们应该转到 AppDashBoard?事实上,参与者是否对消息执行任何操作:无论用户在做什么,您的系统是否都会显示另一个窗口或另一个页面?你必须避免这种情况。
  • 更一般地,根据书本,参与者原则上不应该出现在序列图中,即使这是一种常见的做法。当您按照此处说明在序列图中使用参与者时,至少要小心与参与者交换的消息。如果您有一些与参与者提供的或由参与者提供的信息内容相对应的明确消息,则序列图仍然易于理解。但除此之外,这很快就只是一厢情愿,与 UML 语义无关。
  • 顺便说一句,图中的一个小问题:在
    alt
    片段(例如
    [if user authenticated]
    )中保护操作数的交互约束应覆盖应首先做出反应的生命线,如here所述。在你的情况下,这是一个小问题,因为我们可以很容易地发现它应该是帐户数据库。
  • 最后,如果
    Registration
    AppDashBoard
    是 UI 元素,那么将它们与用户不可见的其他元素区分开来将会很有帮助。例如,您可以使用诸如
    «Boundary»
    之类的刻板印象,或者甚至更具体的像
    «Dialogue window»
    «Webpage»
    之类的刻板印象(您可以在临时配置文件中自由定义它们)。

不完全清楚您希望此场景如何运作。我想知道是否不会有一个嵌套的

alt
块。

编辑:你的第二张图

您修改后的图表

修改后的图表更容易理解:用户的第一条消息现在对应于 UI 做出的反馈。然后它立即显示 UI 元素和幕后类之间的交互。最后,它还允许检查鲁棒性(请参阅维基百科链接:数据库协调场景背后的应用程序逻辑,它在 BCE 逻辑中是一个“控制器”,并且控制器不应该与参与者对话)。

现在,我认为您已准备好继续您的建模和项目。

一些进一步的建议

  • 我将第二个替换放在第一个替换操作数的 else 操作数(即虚线区域)的嵌套框中。这让关系更加清晰。
  • 然后我想知道用户是否无法点击“注册”而不是开始输入登录信息。我想知道如果有两个独立的(并且更容易阅读的图表)不会让事情变得更清楚。
  • 最后但并非最不重要的一点是,安全专家建议您永远不要说用户名正确但密码不正确。

它看起来有点像这样:

不要用UML设计UI

UML 太棒了!但这对于 UI 设计来说是错误的工具。这就像用锤子在键盘上输入文本:像这里这样非常简单的 UI 设计在 UML 中看起来非常复杂。

使用线框图、故事板或多种技术和易于理解的用户流程的组合设计用户旅程的大局。这将促进与更多利益相关者的讨论,并允许更快地显示用户界面元素和参与者之间的交互。然后,您可以在单独的步骤中用 UML 设计所涉及的类之间的交互。您可能更愿意关注更困难的交互以及边界和控件之间不太明显的交互,而不是在非常琐碎的交互上浪费太多时间。

© www.soinside.com 2019 - 2024. All rights reserved.