What's is the best diagram to show technologies used to develop a solution?

386 views Asked by At

When a fairly complex application is developed, it'll involved a number of different components.

E.g.: An multi-tier application with;

  • A data store
  • A processing server (implemented on an application server)
  • A web application
  • An android app

We can show there components clearly in component diagrams or deployment diagrams.

But, all above components will be implemented with different technologies such as MySQL, Tomcat, Java, JSP, Angular etc...

Is there a standard diagram that we can show the technologies used for the overall solution (in UML/ Archimate etc...)? Such a diagram can help to plan a software development project as well as to build the technology landscape of an organization.

1

There are 1 answers

3
Ister On BEST ANSWER

It is a bit beyond what I typically do but I would say the deployment and component diagrams are all you need.

The deployment diagram allows you to show the components of the system on the deployment level, indicating specific artifacts and environments on which those are deployed. It doesn't have a direct indicator of technology used, but you could easily use e.g. stereotypes for that. If you want a visual representation, combine it with profiles.

Note that environment can be any executable environment so for example a FE component deployed on TomCat run under Solaris server will have the Solaris as environment with TomCat deployed on it also as environment and eventually the component itself shown as component with artifact representing actual implementation (and language). The diagram below, taken from uml-diagrams.org may be a bit simplified view (for instance doesn't show specific technologies) but overall shows how detailed the listing of elements can be. Just add stereotypes and you have what you need.

Deployment diagram example from uml-diagrams.org

The component diagram obviously doesn't show deployment level so no environments are there. But again, using stereotypes (and with profiles - those can again be represented in a visual way) you can show the technology (programming language and frameworks) used to create specific components. It is more system logic architecture level.

The choice of diagrams will depend on what specifically you want to show.