Question

Which UML diagram is the best for showing dependency between our IT system and other external IT systems?

For example I would like to show on diagram:

  1. system A gets data from system B
  2. system B can call some functionality from system A

I'm wondering between component diagram and sequence diagram.

What do you think?

Was it helpful?

Solution 3

Components definitelly, and dependencies. Dependency does not go in direction of the data-flow, but from the component that "knows" other component (invokes something from it, creates an object, etc).

The following diagram shows the idea.

enter image description here

It is common (and highly recommendable) practice, to use interfaces between the components and channel dependencies through interface. This permits clearer specification and better design (if possible of course).

Sequence diagram can further be used to specify concrete usage scenario and is also recommendable. So, components for structural, static dependencies and sequence for dynamic behavior.

OTHER TIPS

your question is not very specific as all UML diagrams display some kind of dependency or pathway how to get data or make a call, so I'm not sure if I got substance of your question right

1. there is no such thing as one best UML diagram to show it all

There is usually one system that you are modeling (+ some black boxes in its surrounding environment) and one UML model. At best the tool you use should support Model Driven Architecture (MDA) and perhaps even Executable UML so that the result of your modeling can be more then set of "pictures". It can become skeleton of source code forming the backbone of the application or it can be even model-click-and-run product.

In order to provide full or sufficient description of the system you'll usually need more UML diagrams each representing different point of view with focus on different aspects with different level of detail (yet all of them being parts of one model).

(This ↑ was the hard part for me to understand)

2. before deciding which diagrams to use make some paper & pencil prototypes

It is quite importtant to make sure which diagram fits your needs before you start drawing it in a good looking sharable form using a tool. Even drawing in Enterprise Architect takes some time to get used to and to get it right.

Very good guide how to do a paper & pencil diagrams and which of them is used for what and how to spend only as much time as is needed:

3. sequence diagrams are expressive simple and useful for programmers

There are even tools that can turn sequence diagrams into code or tools that can turn source code into a sequence diagram.

4. activity diagrams are expressive and useful for programmers

5. high level overview diagrams useful for programmers and others (not UML)

6. = 1 + 2 + you

make some paper & pencil sketches and decide yourself which diagrams best suit your needs

Further to your thoughts and what Aleks has said, people usually use a combination of both to articulate the inter-system relationships

EA allows you to reuse components in component diagram & Sequence diagram, which allows you to update model from one diagram and have the changes reflected in the other. Below snapshots show how two components in the model are used in a component diagram (for structural relationships) and sequence diagram(for behavioral flow)

Component diagrams & Sequence diagrams reusing same components

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top