保存前验证的UML序列

时间:2016-07-06 10:38:18

标签: entity-framework uml

我是UML的新手,但我的任务是绘制一些描述我们系统中某些复杂部分的UML图。

其中一个部分是保存数据库中的数据,以及所述数据在实际保存之前经过的步骤。

这些大致涉及的步骤:

  1. 用户想保存
  2. App验证所有必填字段都设置了值
  3. 如果无效,应用会显示一条消息。如果有效,应用会发送帖子请求
  4. 控制器将dto映射到域模型对象并将其传递给服务层
  5. 服务层根据业务规则验证模型。如果无效,则抛出验证异常
  6. 如果有效,模型将向下移动到数据访问层,其中EF用于将更改提交到db
  7. 在尝试提交时,EF可能会抛出验证异常(映射)或数据库异常(从db本身冒出来)
  8. 如果提交成功,模型将传递给控制器​​,控制器将其映射回其dto对应部分并显示给用户
  9. 如果抛出验证或数据库异常,则会向用户显示这些异常
  10. 到目前为止,这是我想出的:

    Sequence Diagram

    这是否足以显示上述步骤,或者图表是否有改进?

2 个答案:

答案 0 :(得分:1)

如果你在序列图上放了一些东西,那就意味着它必须无条件地应用(即在每次运行时你需要有ValidationErrors消息和DatabaseErrors消息,这可能不是你想要的)。 实际上,您的图表上没有正路径(DataAccess Layer的“OK”在收到2个异常后出现,从数据库返回到Entity Framework同样如此。 此外,OccurenceEvent应始终从消息/信号接收开始。在你的图表上,其中一些开始没有任何实际的触发器。

阅读片段,特别是组合片段(UML规范中的17.6 / 17.6.3.3,但我建议使用一些更友好的文档类型,如uml-diagrams.org或一些关于UML的书籍)。

此外,我不确定SO是否是此类问题的最佳位置。它应该放在一些讨论小组(论坛)上,因为你没有特定的问题,但更愿意验证你的图表。

答案 1 :(得分:0)

在序列图中,我们展示了类或对象之间的交互。在绘制序列图之前,我们需要识别类及其方法(行为)。在序列图中,有三种类型。

  1. 边界班
  2. 控制类
  3. 实体类
  4. Boundry类表示系统的视图(用户界面)。 实体类显示数据库表(实体) 控制类保留在边界类和实体类之间。并在它们之间传递消息。

    • 在您的图表中,我认为数据库不应该是类名。那么你 不能在序列图中定义它。(你可以为特定的表定义相关的类)
    • 您需要指定要传递给其他类的数据 一个方法。例如:

      保存(USER_NAME,年龄)

    • 您可以将用户显示为演员而不是显示为班级。

    • 当前图表未显示系统的状况(如果不是 条件)。你可以使用" alt"显示条件。

    • 当您在类之间传递消息时,应该在接收类中定义方法名称。