在当前系统中,一些功能/用例可能需要多个阶段才能完成整个过程 . 示例类似于用户注册,其可包含两个阶段:在数据库上插入用户记录和电子邮件激活 . 或者对于网上银行的汇款,它需要在实际交易发生之前填写转账信息和短信验证的阶段 . 我想知道如何绘制这种功能/用例的序列图 .
更具体地说,我已经使用MVC模式绘制了用户注册示例的序列图,该模式显示在底部 . 在该图中,两个阶段被红线分开 . 此外,我跳过处理故障或异常的逻辑,例如数据库中已存在的无效输入或用户名,以使其更简单 . 看来这个图中涉及的对象太多了,我应该用这种方式绘制序列图吗?或者每个阶段使用2个序列图更好?
1 回答
一般来说,较小的图表越好 . 如果您正在进行文档/通知目的,那么清晰度应该是您的首要任务 .
a)分手
在您的特定示例中,将其分解为(至少)两个序列图将是一个不错的选择,因为这些活动通常在不同的时间执行 .
你可以看到这个的方式是:
第一个图作为输入 unregistered user 并产生 unverified user
第二个图作为输入 unverified user 并产生 verified user
这样你就不必担心连接这两个图,因为它们实际上并不依赖于它们 .
b)使用交互概述
话虽这么说,UML有交互概览图(http://www.uml-diagrams.org/interaction-overview-diagrams.html),允许您将各种图表一起播种,因此您可以将其拆分为两个,然后以不同方式连接它们 . 或者您可以使用状态机图来跟踪用户的变异 - UML词汇表相当大,因此不需要仅限于一种类型 .