2个实体可以在数据流图(DFD)中使用相同的过程吗?

时间:2017-02-23 07:29:38

标签: entity-framework dataflow-diagram

我正在学习如何为系统设计数据流图(DFD)。我有一个问题,我无法自己回答。让我给出一个场景: -

在系统中,培训师想要查看他/她自己的个人资料信息,而实习生也想查看他/她自己的个人资料信息。

两个实体都可以使用该流程(检索配置文件信息): -

DFD 2 Entities 1 Process

或者必须分开,因为他们没有查看相同的数据: -

DFD 2 Entities 2 Processes

那么,哪一个是对的?

3 个答案:

答案 0 :(得分:0)

凯达琳,

据我了解,您定义的关键是“和”一词。 您还可以看到受训者和培训者不在查看相同的数据...

如果流程涉及多个实体,这些实体提供不同的信息片段以处理共同的输出,则更可能应用单个流程。

享受设计,

安德烈斯

答案 1 :(得分:0)

第二个模型更灵活,因为流程具有更高的内聚力,并且可以更好地重用,因为耦合更低。

建议不仅要查看流程的功能,还要查看可重用性和维护性。在第二种解决方案中,如果 Trainee 对象的数据结构发生变化,您不必测试检索 Trainer profile 过程。

答案 2 :(得分:0)

这个问题的问题是数据存储和实体被称为特定实例:

  • 培训师 A 查看培训师 A 文件中的个人资料
  • 受训者 B 查看受训者 B 文件中的个人资料
  • 但是训练师 C 会发生什么?他/她还会看到培训师 A 的个人资料吗?还是只是培训师 C 的个人资料?

作为第一步,您需要澄清数据存储:如果每个培训师都有自己的文件,请调用数据存储 Individual trainer file 以澄清存在一对一映射。如果这些文件集中存储在某处或可由多人访问,请调用数据存储 Trainer profile storeTrainer repository 以说明该进程可以同时访问许多文件(并且需要选择正确的)。最后,如果培训师和受训者资料包含相同的数据,但只是属于不同的人,则合并两个数据存储(例如,如果它是组合所有资料的数据库表)。

另一个问题是叙述只呈现了一个特定的场景:在给定的时刻,Trainer 想要查看培训师资料,而 Trainee 想要查看学员资料。但该过程通常允许什么? Trainer 是否应该只能查看培训师资料,或者如果他/她愿意,还可以查看学员资料?仅他/她的学员还是所有学员?

要绘制正确的图表,您必须概括您的场景和实体并提供上述答案。

取决于结果:

  • 如果流程只允许一类实体查看某种数据,请选择选项 2。
  • 如果流程允许某些实体查阅多种数据,请选择选项 1。然后流程规范需要阐明谁有权访问什么。
  • 如果配置文件数据属于同一类型,并且只是所有者更改,则选择选项 3:一个数据存储,一个流程,但不同的实体,流程规范阐明了哪些实体可以访问哪些配置文件。