uml

UML: What is the best type of UML diagram to show information flow through a system


What is the best type of diagram to show information flow through a system?

Many people use UML classes connected by dashed 'information flow' connectors. ("The IFD approach"). What are the benefits and also downsides, if any, of this approach?

I note already that an IFD like this is not defined in UML taxonomy, although widely used.

What other diagram types could be better to show information flow? Again... benefits and downsides?

Thanks


Solution

  • I do not have evidence that many people use classes with dashed information flows. In fact, it's even the first time I read this.

    Dashed arrows in UML class diagrams have specific meaning, and in particular they show dependencies that exist between classes. This dependencies allow to express that one class creates instances of another for example, or that one operation of one class depends on attributes of another. These dependencies shall not be viewed as information flows.

    However, there is a less known UML information flow diagram. These are meant to show at a high level (i.e. not a class with all the details, just the class name), how entities can exchange flow of information. You'll recognise them with the stereotype «flow» that describes the kind of objects that are exchanged. It's mainly used for top-down analysis, i.e. before you arrive at the detail of the real classes.

    These information flows have the inconvenience that they cannot to express very well the sequence of events in a complex flow and how different flows a re linked. Only the exchanges between high level objects. Other diagrams are therefore usually preferred, when it comes to model end-to-end flows: