Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Differences between DFD (Data Flow Diagram) and activity diagram

Tags:

I need to know this differences in order to undestand how to use them right.

Which are the differences of DFD and Activity diagram?

like image 344
llazzaro Avatar asked Sep 03 '10 03:09

llazzaro


People also ask

What are the difference between data flow diagram and data flow chart?

Data flow diagram shows the flow of data between the different entities and datastores in a system while a flow chart shows the steps involved to carried out a task. In a sense, data flow diagram provides a very high level view of the system, while a flow chart is a lower level view (basically showing the algorithm).

What is the purpose of activity flow diagram and data flow diagram?

An activity diagram visually presents a series of actions or flow of control in a system similar to a flowchart or a data flow diagram. Activity diagrams are often used in business process modeling. They can also describe the steps in a use case diagram. Activities modeled can be sequential and concurrent.

What is the difference between DFD and context diagram?

Data flow diagrams contain additional information about a system that a context diagram doesn't. They focus on how your system works (the inputs, outputs, and processes) to offer more detail and depth. It helps teams visualize the four main components of a system: the entities, processes, data stores, and data flows.

What is the difference between DFD and UML?

While a DFD illustrates how data flows through a system, UML is a modeling language used in Object Oriented Software Design to provide a more detailed view.


2 Answers

Actually, it's reasonably logical. You only have to look at the names.

In data flow diagrams, the lines between "boxes" represent data that flows between components of a system. Because these only show the flow of data, they do not give an indication of sequencing.

In activity diagrams, those lines are simply transitions between activities and do not represent data flow at all. They more represent the sequencing of activities and decisions. You can tell from these what order things happen in.

That's a simplistic explanation but should be a good starting point. Further information can be garnered from Wikipedia for DFDs and activity diagrams.

like image 192
paxdiablo Avatar answered Oct 18 '22 19:10

paxdiablo


Explicit bias: I'm a DFDs proponent.

@John is correct that Activity diagrams can be used to represent object flow. @pax equally correct they seldom are.

Two big DFD advantages for me:

  1. Link to object model. Data stores on a DFD provide a really nice way to link the data produced / consumed to the object model. Very useful for consistency and ensuring your thinking is joined up.

  2. They de-emphasise control flow. Far too often designs over-constrain sequencing. Activity diagrams do support concurrency - but it requires the user to (a) remember and (b) use it. So the default is over-serialisation. DFDs don't. They lay bare the real sequence dependencies without any extra effort on the part of the user. Consequently they also make it easier to see causal relationships. If processes a and b both require data input D then it's obvious on the diagram. And hence parallel activity is obvious.

Don't get me wrong - I'm not against Activity diags. Where control flow is the primary consideration I'll use an AD over a DFD. But empirically I'd say I find DFDs a more useful tool in ~70-80% of cases.

Of course, YMMV.

like image 32
sfinnie Avatar answered Oct 18 '22 21:10

sfinnie