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