What is the UML analogue to the Data Flow Diagram from Structured Analysis?
Asked Answered
A

8

34

Back in the Dark Ages (mid-1980s), I used Data Flow Diagrams from Structured Analysis a fair amount, and found them very useful.

My current employer loves UML. I normally use BOUML, which doesn't do non-UML drawings.

What is the UML drawing that corresponds to the Data Flow Diagram?

If there isn't one, what is the recommended UML diagram to present the corresponding data?

Agrology answered 10/10, 2011 at 17:3 Comment(0)
M
25

Probably the closest thing is the activity diagram. It's not quite the same; more influenced by flow chart than dfd. However: you can do some of the useful things in DFDs, e.g. ADs do support concurrency and differentiate control flow from dataflow.

More details on comparisons & differences in this question.

[fwiw, I still use DFDs: they're simpler and more elegant in many circumstances]

hth.

Mass answered 10/10, 2011 at 17:59 Comment(7)
Looks like no other answers are forthcoming.Agrology
I am not a UML expert but my understanding is that UML diagrams work best for for Object Oriented Design. OOD de-emphasizes pure data flow and brings front objects and their relationships. So you will not be able to find a corresponding diagram in UML. I hope this helps.Humphrey
@OrcunC: yes, UML is OO-centric. However: you can blend DFDs to define processing with class diagrams for structure and state diagrams for control. That's exactly what Shlaer-Mellor OOA did back in the early 90s.Mass
So if I understand you right, you are suggesting using class diagrams, activity diagrams for DFDs. And unlike a regular class diagram for instance, there will be no class level relationship (such as generalization or inheritance) but each class will represent just plain data and associations between classes will indicate data flow. I am not saying that it is not doable but I would prefer not doing it for the sake of avoiding blending mismatching concepts. All I am saying is that UML as a concept is very different than DFD. I would suggest using Visio rather than UML modelling tool for this.Humphrey
@John R. Strohm: You only waited 11 hours! We may not all be in your time-zone - some of use were asleep!Ferruginous
@Orcunc: not quite. I'm suggesting that you can get something approaching DFDs using Activity Diagrams. Activity Diagrams allow you to show object flow (dataflow) among activities (processes). When all's done, I'd say stick with DFDs if they meet your needs. If your employer needs convincing, show him how simple the DFD looks in comparison with the equivalent Activity Diagram! ctd...Mass
@Orcunc: For what it's worth, The Shlaer-Mellor thing may have confused matters. SM preceded UML; I mentioned it to show that DFDs could be used successfully in an OO context, not a UML one. I didn't mean you could use a combination of class diags + state diags + activity diagrams to implement dfds). Apologies for any confusion.Mass
P
13

UML 2 has a very good analogue to a data flow diagram: the "information flow diagram".

Information flow diagrams are explained here: https://web.archive.org/web/20121118061853/http://www.uml-diagrams.org/information-flow-diagrams.html

Note that UML 2.5 has information flows and information items, but the term "information flow diagram" is not part of official UML 2.5 diagram taxonomy. So formally, you just create a class or component diagram with lots of information flows in it to obtain your "information flow diagram". I do this all the time, using information items of UML to represent my data.

Poplin answered 23/6, 2017 at 7:2 Comment(3)
Don't know why you got a downvote for an IMHO correct answer, upvoted yours.Expectant
I'm reading the UML v2.5.1 specification, clause "20 InformationFlows". It looks like it's fully part of UML but people keep saying that it's not part of the UML diagram taxonomy. I don't get it. Where can I see this?Teyde
After taking a look at the UML v2.4.1 specification, it looks like the Information Flow diagram was in an auxiliary package but that it's now (in v2.5.0 and v2.5.1) part of the UML taxonomy. I would love to get more info on this if anybody has some.Teyde
D
4

There is no equivalent model in OOD. The emphasis on DFD's is data separated from the function. This is most helpful when dealing in a procedural way. DFD's scale much better than OOD, if you try to scale out (to the world view) using OOD you end up using Use Case diagrams, which are useful for capturing essences. I loved DFD's they are so high level, and yet can be expanded by opening up a DFD box and calling it level 1 etc.

I am currently in the process of learning the Go programming language, this does not use Objects whatsoever and in some respects I feel that DFD modelling would suit it much better.

I too am looking for a diagram that could do this sort of work. In Go structs are used intensively which are basic data types. You can have a primitive extension method attached to it which resembles OO but in fact if you look at the Assembly code it appears to be syntax sugar for a function, who's first parameter is the struct you wish the function to operate on.

My advice, is that if you're doing OO code, then use OOD. They map better, and do help in the thinking about a system. It takes a while to get your head out of Procedural code, especially if you're coming from programming from the 80's/90's. Once you're in the zone with thinking about objects then the OOD methods work fine. Its not strictly a methodology as there is no straight answer to which parts you use, just thinking in objects I find to be the hardest part. A good book on this is "Object Thinking--David West"...it helps to think about objects first. Once you start its very difficult to stop, you may even like some end up getting trapped in the kingdom of the nouns which is a horrible place to be, because you write endless boiler plate code, just so that the system is described perfectly. This is a form of coding hell which I have stayed clear of for many years.

If you are coding in a language that allows procedural code, or even mixed OO/Procedural, you need to decide your paradigm before you start coding, for example in both Python and Object Pascal (Delphi) you can go either route of OO or procedural coding mixing the code up into a mess of paradigms. This will decide which diagramming tools that should be used, and how you are going to analyze the system.

Recently there have been shifts in Java and c# to provide functional programming techniques. These I have discovered don't fall into either category of programming (OO or procedural). Trying to map functional programming code into an object is a nightmare.

I am sorry I haven't provided an answer, but it depends on what code you are writing.

Darwindarwinian answered 15/5, 2013 at 15:53 Comment(2)
"if you look at the Assembly code it appears to be syntax sugar for a function, who's first parameter is the struct you wish the function to operate on." what do you think member functions in java or c++ are?Burkey
Different people think differently. I've seen many instances where OO was used under the premise that procedural style is outdated; and the result was something as a mess. The palm d'or goes to a teacher I know, who explained inheritance using as example... a hierarchy of plants. Seriously, a tomato object? The "Information Flow Diagram" cited by @user7665665 is a bright suggestion (for your boss). I'd say, try not to use a tomato (u see what I mean) where a traditional function does the job. Finally, multi-paradigm exists because it's useful: deal with it, and add a DFD.Olshausen
F
3

There is no direct analogue, since UML emphasises OO design wheras DFD comes from structured systems analysis and design (SSAD). In UML a number of diagrams, specifically those in the with interaction diagrams group have characteristics that might model elements of data flow and processing. A Communication Diagram can be used to reflect most aspects of a DFD in general, while a sequence diagram may model specific sequences of flow. If you wanted to suggest DFD semantics then you could use stereotyped objects for data process and data store, and use actors for external entities.

It may be worth noting that Sparx Systems Enterprise Architect, while primarily a UML tool includes DFD as an extension.

Ferruginous answered 11/10, 2011 at 14:23 Comment(0)
N
2

Similar diagrams would be:

  1. information flow diagram
  2. communication diagram
  3. sequence diagram
Nostalgia answered 7/8, 2018 at 20:57 Comment(0)
F
0

Theoretically, new diagram kinds can be defined in UML, optionally extending of one or more conventional diagram kinds. The canonical diagram kinds defined in UML are essentially defined as a part of the UML metamodel itself.

Formally, a definition of the UML metamodel is provided in the UML specification published by the Object Management Group (OMG), as well as the corresponding meta-metamodel defined of MOF - to which there is also a corresponding specification - moreover as accompanied with the formal OCL specification, as with regards to definitions of constraints in UML models in applications of the OCL language in UML - and then there's the XMI specification, as with regards to specifications for how UML models may be stored in machine-readable format.

Ostensibly, all of these specifications may be combined for application as though "Under the hood" of any single framework for UML modeling - whether in applications of the Ecore subset of the UML metmodel, or in canonical UML.

Reviewing a short academic presentation about Data Flow Diagrams -although somewhat in departing from formal definitions of UML diagram kinds, but nonetheless in a broader context of applications of the MOF meta-metamodel - perhaps the canonical BPMN metamodel - in its conventional, graphical abstract syntax - perhaps BPMN may serve to provide something of an analogy to Data Flow Diagrams?

Of course, modeling practices may vary by vendor and by application environment.

Faddish answered 30/4, 2016 at 9:0 Comment(0)
T
0

I consider a Data Flow Diagram as a Sequence Diagram, with Data Producers and Data Consumers creating, using and destroying Data objects by means of synchronous and/or asynchronous messages.

Transformation answered 11/9, 2017 at 14:51 Comment(0)
L
0

I use Enterprise Architect 'Dynamic View' Analysis diagram.
Control = Process
Information = Data Store
In many ways their Analysis diagram is much better than a data flow diagram, as you can also show events in the form of sending and receiving and there is a process symbol too but I prefer Control. It includes object and decision.

Loni answered 3/3, 2020 at 8:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.