如何绘制多阶段用例的序列图?

时间:2016-05-04 06:51:47

标签: model-view-controller uml use-case sequence-diagram

在当前系统中,某些功能/用例可能需要多个阶段才能完成整个过程。示例类似于用户注册,其可包含两个阶段:在数据库上插入用户记录和电子邮件激活。或者对于网上银行的汇款,它需要在实际交易发生之前填写转账信息和短信验证的阶段。我想知道如何绘制这种功能/用例的序列图。

更具体地说,我使用MVC模式绘制了用户注册示例的序列图,该模式显示在底部。在该图中,两个阶段被红线分开。此外,我跳过处理故障或异常的逻辑,例如数据库中已存在的无效输入或用户名,以使其更简单。看来这个图中涉及的对象太多了,我应该用这种方式绘制序列图吗?或者每个阶段使用2个序列图更好?

1 个答案:

答案 0 :(得分:5)

一般来说,图表越小越好。如果您是为了文档/通知目的,那么清晰度应该是您的首要任务。

a)将其分解

在您的特定示例中,将其分解为(至少)两个序列图将是一个不错的选择,因为这些活动通常在不同的时间执行。

你可以这样看待:

  • 第一个图表用作输入未注册用户并生成未经验证的用户
  • 第二个图表作为输入未经验证的用户并生成已验证的用户

这样你就不用担心连接这两个图,因为它们实际上不是那种依赖。

b)使用交互概述

话虽如此,UML有交互概览图http://www.uml-diagrams.org/interaction-overview-diagrams.html),允许您将各种图表一起播种,因此您可以将其拆分为两个,然后以不同方式连接它们。或者您可以使用状态机图来跟踪用户的变异 - UML词汇表相当大,所以不需要仅限于一种类型。