描述过程的流程图或序列图?

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

我来描述一下登录过程,其中涉及一些步骤。虽然每个步骤可能是异步交互,例如http 请求和响应,整个步骤按顺序发生。

看来流程图和序列图都可以完成这项工作。哪一种更适合什么情况?我指的不是 UML 图,而是一般意义上的流程图和序列图。

现在我只有一个简单的规则,如果我有几个分支逻辑,流程图似乎更合适,因为它更直接。但对于登录过程来说,分支逻辑很简单,例如:如果账户不存在,则跳转到注册流程; b.如果帐户/密码不匹配,允许用户重置密码然后重新登录; C。登录后,根据帐户首选项向用户呈现不同的页面。

那么如果分支逻辑很简单,这只是一种偏好还是还有其他规则可以应用?

sequence-diagram flowchart
2个回答
4
投票

正如您在问题中已经指出的那样,这两个图都适合描述一系列操作或活动。

这实际上取决于您想要展示系统的哪个方面:

序列图适合显示两个或多个对象之间的交互。这通常涉及一些请求和响应消息以及可能的参数。

相比之下,流程图适合显示一个进程的控制流,重点关注决策(if-then-else)和并行处理(分叉)等内容。

因此,对于您的登录过程示例,如果您需要描述客户端和服务器进程以及数据库之间的消息序列,您应该使用序列图。但是,如果您需要描述用户体验到的系统行为并且不显示与其他组件的交互,那么您可能应该使用流程图。


0
投票

在提出这个问题一年多之后,对于大多数高级设计文档来说,我更喜欢序列图而不是流程图。因为在 HLD 中,我主要想展示设计中的关键组件以及它们之间的交互(who does what)。如果交互中有一些分支逻辑我可以在里面添加注释。

我引用《单页应用:从单体到模块化》这篇文章中的序列图(我也强烈推荐这篇文章给对SPA感兴趣的人)。因此控制流程以文字和环回箭头显示。

我看到有些人可能称之为“泳道流程图”或“跨职能流程图”。但如果没有免费的工具和适当的版本控制,我必须坚持使用序列图(并使用mermaid)。顺便说一句,美人鱼有一个关于 swimlane 的开放问题

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