I'm currently an intern at a company. For my intermediate report I Received some feedback about displaying the relations between multiple applications.


So in my image all 3D rectangles are a deployed application. The database figures are a persistence layer (doesn't need to be a database, could be a file). The feedback I received is that this diagram doesn't adhere to any modeling languages. This is correct, I only modeled to make the relations between applications visible.

So I tried making a start with a deployment diagram using UML standards.


Unfortunately a deployment diagram doesn't properly show the relations between application. It just shows where an application is deployed.

So my question is: what kind of 'official' diagram could I use to show the relation between applications as shown in the first diagram?


I'm a student doing an internship at a company. The reason it needs to be an 'official' diagram is because it is a requirement for the report. Thanks for all the replies so far.

  • 2
    you first diagram is the useful one. lose the 3d – Ewan May 14 '18 at 15:02
  • 1
    Who is the audience and besides the information, what is the purpose of the diagram? Showing non-technical people how different applications rely on each other may have a different requirement. – JeffO May 14 '18 at 15:07
  • Why don't you ask the company which diagram they want you to use? – Robert Harvey May 16 '18 at 15:33

UML deployment diagrams (using only the notation defined in the OMG specification) can contain notes as well as annotations on the associations between nodes. You can add directionality to the associations if it helps, but do consider the nature of the communication - even if you aren't sending messages back and forth, the underlying protocol may.

A UML component diagram may also be useful. You can show the interfaces between components in the system, this will provide a useful notation. You can relate components to elements on the deployment diagram as well.

If you want to show a flow of communication between nodes, perhaps consider an interaction overview diagram. You can then delegate the specific details of what happens within various nodes to sequence diagrams.

The real question is why you need an "official diagram". First and foremost - consider the needs of your stakeholders. Identify who they are and what information they care about, then choose the appropriate tools to deliver that information.

Using a standardized modeling notation is useful. If you use UML, you don't need to explain your modeling notation to other people. You can simply follow the rules of the language and point people to the documentation. No need to create a key to understand. However, UML isn't the only modeling language out there that is standardized - consider the C4 model (which can use UML for the most detailed models) or ER modeling (which has a few standard notations - Chen's, Bachman's, Crow's Foot).

Also consider the idea of viewpoints and perspectives. In order to satisfy different stakeholders, you may need different diagrams. Perhaps even different diagrams of the same time. For example, in a distributed system, the operations stakeholders may care about things like communication protocols and ports between nodes while development stakeholders may care more about what types of messages flow and their directionality. This may require making two different deployment diagrams for the same system, with different details on each diagram.

  • 2
    I'd say this is the best possible answer. Just one thing to consider - since your diagram contains dependencies between applications and that's apparently your main focus, component diagram is probably the best choice for you. Also you may consider database stereotype to indicate your databases. – Ister May 14 '18 at 16:51

I also believe you should use a component diagram. Here's an example that is from Scott Ambler and is similar to your diagram:

UML 2.x component diagram

You can easily produce this kind of diagram with PlantUML, and here's a start:

enter image description here

Note, however, the layout will be controlled by the GraphViz algorithm. As a diagram grows in complexity, the layout may not be ideal for your needs. It's not possible with PlantUML to produce the layout that Scott Ambler showed, for example.

  • Thanks I created a component diagram according to the UML 2.0 standard. I feel like it's a good match between what I want and what my university requires of me. image can be found here: My component diagram I used text in my report to explain the relationships. – S B May 17 '18 at 14:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.