Architecture · Software

UML Deployment Diagram

Software release involves:

  • Separate libraries
  • An executable.
  • An installer.
  • Configuration files.
  • Other different pieces.

To make software ready to run, need an idea of how to fully deploy all the different files to a needed environment. To visualize it, can use the UML deployment diagram. The deployment environment (deployment target) can be very specific. The details on the deployment diagram will change accordingly.

The physical result of the development process is artifact. For example artifacts for video game can include an executable, installer, audio libraries, multimedia assets.

An artifact.png
An Executable artifact.

There are 2 types of deployment diagrams:

  • Specification Level Diagrams. – gives an overview of artifacts and deployment targets, without referencing specific details like machine names. It focuses on a general overview of your deployment rather than the specifics.
  • Instance Level Diagrams – is a much more specific approach, which can map a specific diagram to a specific deployment target. In particular, the instance level diagram can identify specific machines and hardware devices. Most commonly, this approach is used to highlight the differences in deployments among development, staging and release builds.

For the Deployment diagrams it is important to use the correct notations for various elements. One of the most important aspects of the deployment diagram is the node.

Node.png
A node.

Nodes are deployment targets that contain artifacts available for execution.

Hardware devices are also displayed in the same way as nodes:

Hardware device.png

Node relationships:

  1. Between deployment targets. It shows that 2 nodes have a communication path between them. Between nodes that are the software communication environments, this relationship typically identifies a particular communication protocol:
Between the nodes relationship Deployment Diagram.png
Between deployment targets.

When an artifact deployed to the node, the diagram depicts this dependency by drawing the artifact inside the node box. This also means that the artifact cannot function without this deployment target:

A node with an artifact.png
A node with an artifact.

2) Manifestation is shown in the manifests relationship here, where an artifact is an physical realization of a software component. The Player.class file manifests the player component, the encapsulated unit that contains all the functionality of a player. The player class file results from compiling the player Java file for the player component.

Manifestation Diagram.png
Manifestation example.

Full example of deployment diagram:

Video Game Example Deployment Diagram.png

Overall, the deployment diagram gives a high level look at the artifacts, libraries, main components, machines, and devices that your application needs to run. The diagram can be used to keep track of the files and executables needed in order to deploy and run your software. The diagram can be on an instance level specific to the deployment machines you are using or it can be general for a range of execution environments.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.