什么是结构化分析的数据流图的UML模拟?

时间:2011-10-10 17:03:04

标签: uml dataflow-diagram

回到黑暗时代(20世纪80年代中期),我使用Data Flow Diagrams Structured Analysis相当数量的{{3}},发现它们非常有用。

我现在的雇主喜欢UML。我通常使用BOUML,它不会执行非UML绘图。

与数据流图对应的UML图是什么?

如果没有,推荐的UML图表会显示相应的数据吗?

8 个答案:

答案 0 :(得分:16)

可能最接近的是activity diagram。它不太一样;流程图比dfd更受影响。但是:你可以在DFD中做一些有用的事情,例如: AD确实支持并发并将控制流与数据流区分开来。

有关比较的更多细节& this question中的差异。

[fwiw,我仍然使用DFD:在许多情况下它们更简单,更优雅]

第h

答案 1 :(得分:4)

OOD中没有等效的模型。对DFD的强调是与功能分离的数据。在以程序方式处理时,这是最有用的。如果你尝试使用OOD向外扩展(到世界观),DFD的规模要比OOD好得多,你最终会使用用例图来捕捉精华。我喜欢DFD它们是如此高水平,但可以通过打开DFD盒并将其称为1级等来扩展。

我目前正在学习Go编程语言,这不会使用任何对象,在某些方面我觉得DFD建模更适合它。

我也在寻找可以做这种工作的图表。在Go中,结构是密集使用的,它们是基本数据类型。你可以附加一个类似于OO的原始扩展方法,但实际上如果你看看汇编代码它似乎是函数的语法糖,谁的第一个参数是你希望函数操作的结构。

我的建议是,如果您正在使用OO代码,那么请使用OOD。它们映射得更好,并在思考系统时提供帮助。从程序代码中解脱出来需要一段时间,特别是如果你来自80年代/ 90年代的编程。一旦你在考虑对象的区域,那么OOD方法可以正常工作。它不是严格意义上的方法论,因为对于你使用的部件没有直接的答案,只是在我认为最困难的部分中思考。一本关于此的好书是“对象思维 - 大卫·韦斯特”......它有助于首先考虑对象。一旦你开始它很难停止,你甚至可能会喜欢最终被困在名词王国这是一个可怕的地方,因为你写了无尽的锅炉板代码,只是为了系统被完美描述。这是一种编码地狱的形式,我已经清楚多年了。

如果您使用允许过程代码的语言进行编码,或者甚至是混合OO / Procedural,则需要在开始编码之前确定您的范例,例如在Python和Object Pascal(Delphi)中,您可以选择OO或程序编码将代码混合成一堆范例。这将决定应该使用哪些图表工具,以及如何分析系统。

最近,Java和c#已经发生了变化,以提供函数式编程技术。我发现的这些不属于任何一种编程类型(OO或程序)。尝试将函数式编程代码映射到对象中是一场噩梦。

对不起,我没有提供答案,但这取决于你所写的代码。

答案 2 :(得分:3)

UML 2与数据流图非常相似: “信息流图”。

此处说明信息流程图: https://web.archive.org/web/20121118061853/http://www.uml-diagrams.org/information-flow-diagrams.html

请注意,UML 2.5具有信息流和信息项,但术语“信息流图”不是官方UML 2.5图表分类法的一部分。所以,正式地,您只需创建一个包含大量信息流的类或组件图,以获取“信息流图”。 我一直这样做,使用UML的信息项来表示我的数据。

答案 3 :(得分:2)

没有直接的模拟,因为UML强调OO设计,而DFD来自结构化系统分析和设计(SSAD)。在UML中,许多图表,特别是带有交互图组的图表具有可能模拟数据流和处理元素的特征。通信图可以用于反映DFD的大多数方面,而序列图可以模拟特定的流序列。如果您想建议DFD语义,那么您可以使用构造型对象进行数据处理和数据存储,并将actor用于外部实体。

值得注意的是Sparx Systems Enterprise Architect,主要是UML工具,包括DFD作为扩展。

答案 4 :(得分:1)

类似的图应该是:

  1. 信息流程图
  2. 通讯图
  3. 序列图

答案 5 :(得分:0)

理论上,可以在UML中定义新的图表种类,可选地扩展一种或多种传统的图表种类。 UML中定义的规范图种类本质上被定义为UML元模型本身的一部分。

形式上,对象管理组(OMG)发布的UML specification中提供了UML元模型的定义,以及MOF定义的相应元元模型 - 其中还有一个{{ 3}} - 而且伴随着正式的corresponding specification,就像UML中OCL语言应用中UML模型中约束的定义一样 - 然后就是OCL specification,关于如何以机器可读格式存储UML模型的规范。

从表面上看,所有这些规范可以结合起来应用,就好像#34;引擎盖下#34;用于UML建模的任何单一框架 - 无论是在UML元模型的Ecore子集的应用程序中,还是在规范UML中。

回顾XMI specification - 尽管在某种程度上偏离了UML图表类型的正式定义,但是在更广泛的MOF元元模型的应用环境中 - 也许是规范的a short academic presentation about Data Flow Diagrams元模型 - 在其常规中,图形抽象语法 - 也许BPMN可以用来提供数据流图的类比?

当然,建模实践可能因供应商和应用程序环境而异。

答案 6 :(得分:0)

我将数据流图视为序列图,数据生成器和数据使用者通过同步和/或异步消息创建,使用和销毁数据对象。

答案 7 :(得分:0)

我使用Enterprise Architect的“动态视图”分析图。
控制=过程
信息=数据存储
从许多方面来说,它们的Analysis图都比数据流程图好得多,因为您还可以以发送和接收的形式显示事件,并且也有一个过程符号,但我更喜欢Control。它包括对象和决策。