UML 2 Deployment Diagramming Guidelines

A UML deployment diagram depicts a static view of the run-time configuration of hardware nodes and the software components that run on those nodes. Deployment diagrams show the hardware for your system, the software that is installed on that hardware, and the middleware used to connect the disparate machines to one another. You create a deployment model to:

There are guidelines for:

  1. General issues
  2. Nodes and Components
  3. Dependencies and Communication Associations

1. General

Figure 1. A project-specific UML 2.x Deployment diagram.

Figure 2. A network diagram for an organization.

  1. Indicate Software Components on Project-Specific Diagrams. Figure 1 depicts a UML Deployment diagram for a university administration system.
  2. Focus on Nodes and Communication Associations on Enterprise-Level Diagrams. Figure 2 is an example a style of UML Deployment diagram often referred to as a network diagram or technical architecture diagram, depicting the technical infrastructure of a simple organization. Note that Figure 2is a very simple example, many organizations would have tens if not hundreds of nodes on such a diagram.

2. Nodes and Components

A node, depicted as a three-dimensional box, represents a computational unit, typically a single piece of hardware, such as a computer, network router, mainframe, sensor, or personal digital assistant (PDA). In UML 2 nodes can also be software. Components, represent software artifacts such as file, framework, or domain component.

  1. Name Nodes With Descriptive Terms
  2. Model Only Vital Software Components
  3. Apply Consistent Stereotypes to Components
  4. Apply Visual Stereotypes to Nodes

3. Dependencies and Communication Associations

Communication associations, often called connections, are depicted as lines connecting nodes. Dependencies between components are modeled as dashed arrows, the same notation used on other UML diagrams.

  1. Indicate Communication Protocols Via Stereotypes
  2. Model Only Critical Dependencies Between Components