我正在尝试构建一个序列图,其中我向用户展示可以:
我不确定这是否是显示注册和登录的正确或最佳方式,我觉得图表读取不正确。这很好地解释了这个场景吗?或者我还应该添加更多内容吗?
初始图:
不幸的是,该图含糊不清且具有误导性。
Login screen
向演员发送类似 Redirect to AppDashBoard
的消息。这是否意味着您的系统只是告诉用户他们应该转到 AppDashBoard?事实上,参与者是否对消息执行任何操作:无论用户在做什么,您的系统是否都会显示另一个窗口或另一个页面?你必须避免这种情况。alt
片段(例如 [if user authenticated]
)中保护操作数的交互约束应覆盖应首先做出反应的生命线,如here所述。在你的情况下,这是一个小问题,因为我们可以很容易地发现它应该是帐户数据库。Registration
和 AppDashBoard
是 UI 元素,那么将它们与用户不可见的其他元素区分开来将会很有帮助。例如,您可以使用诸如 «Boundary»
之类的刻板印象,或者甚至更具体的像 «Dialogue window»
或 «Webpage»
之类的刻板印象(您可以在临时配置文件中自由定义它们)。不完全清楚您希望此场景如何运作。我想知道是否不会有一个嵌套的
alt
块。
修改后的图表更容易理解:用户的第一条消息现在对应于 UI 做出的反馈。然后它立即显示 UI 元素和幕后类之间的交互。最后,它还允许检查鲁棒性(请参阅维基百科链接:数据库协调场景背后的应用程序逻辑,它在 BCE 逻辑中是一个“控制器”,并且控制器不应该与参与者对话)。
现在,我认为您已准备好继续您的建模和项目。
它看起来有点像这样:
UML 太棒了!但这对于 UI 设计来说是错误的工具。这就像用锤子在键盘上输入文本:像这里这样非常简单的 UI 设计在 UML 中看起来非常复杂。
使用线框图、故事板或多种技术和易于理解的用户流程的组合设计用户旅程的大局。这将促进与更多利益相关者的讨论,并允许更快地显示用户界面元素和参与者之间的交互。然后,您可以在单独的步骤中用 UML 设计所涉及的类之间的交互。您可能更愿意关注更困难的交互以及边界和控件之间不太明显的交互,而不是在非常琐碎的交互上浪费太多时间。