我需要了解它们之间的差异,以便正确地使用它们。
DFD和活动图之间的区别是什么?
我需要了解它们之间的差异,以便正确地使用它们。
DFD和活动图之间的区别是什么?
明确偏见: 我是DFDs支持者。
@John正确指出活动图可以用来表示对象流。@pax同样正确地指出它们很少被使用。
对我来说,DFD有两个巨大的优势:
与对象模型相关联。DFD上的数据存储提供了一种非常好的方式来将所产生/消耗的数据与对象模型链接起来。这对于一致性和确保思维连贯非常有用。
它们弱化了控制流。设计经常会过度约束顺序。活动图确实支持并发-但需要用户去记住和使用。因此,默认情况下过度串行化。 DFD则不需要。它们在没有任何额外的用户努力下展示了真正的序列依赖关系。因此,也更容易看到因果关系。如果进程a和b都需要数据输入D,则在图表上显而易见。因此,并行活动是显而易见的。
别误会我的意思-我并不反对活动图。在控制流是主要考虑因素的情况下,我会选择AD而不是DFD。但是根据经验,我会认为在约70-80%的情况下,DFD是一个更有用的工具。
当然,你的情况可能有所不同。
我认为,对于那些需要向高级管理层和CIO解释流程(无论是计算机还是手动流程)的人来说,简单明了最好,并且在被要求提供详细信息时,数据流图可以更好地传达信息。尽管如此,更好的方法始终是练习故事情节并用简单的答案回答问题。
关于工具和产品的年龄,最后一个评论是,记住大多数情况下它们都在运营业务且表现良好。格言“你打破它(或替换它),你就拥有它”可能会让你成为英雄,也可能让你成为小丑。
我们有一个CIO希望替换所有主机应用程序,理由仅仅是它们是旧技术。人们必须权衡后果并理解替换是否能够处理工作负载。你是否想过为什么JPMC,Credit Swiss,Walmart和Bank of America等公司仍然在运行主机?
对于使用的任何分析工具,我的道歉,确保文档化替换的所有方面,包括工作负载,I/O,并发用户,采用曲线和可扩展性。
数据流程
代表一个模块或独立代码内的流程。然而,时序图
代表不同模块之间活动的时序。
在某些点上它们可能传递相同的信息。
我基本上在接口文档中使用时序图
,这将与其他模块/元素共享,然而在低级设计文档中将使用DFD
,以便于开发一个模块或网络元素的代码。
程序员过去常将线程视为活动,但如果我们仔细观察,会发现当一个线程准备好执行时,它会排队等待处理器,只有当一个空闲的处理器切换到该线程时,真正的执行才开始。这与任务在线程池上执行的情况类似。因此,从简化的角度来看,线程是一种活动,而从更严格的角度来看,线程是一种数据令牌,唯一真正的活动是物理处理器。这表明活动令牌与数据令牌并没有区别。实际上,我们可以忽略节点追踪活动的路径,将数据流节点本身视为一个活动,当其所有边缘(输入)都包含数据时,它立即开始工作。