Deployment Diagram Tutorial
The Unified Modeling Language (UML) is the standard language that many software engineers and business people use to look at broad overviews for complex systems. A deployment diagram is one type of diagram in this language.
After you review this page, you can draw your own deployment diagram with Lucidchart, a free chart-making editor that produces sleek, seamless diagrams.Demo now Sign up free
What is a Deployment Diagram
In the context of the Unified Modeling Language (UML), a deployment diagram falls under the structural diagramming family and describes an aspect of the system itself. In this case, the deployment diagram describes the physical deployment of information generated by the software program on hardware components. The information that is generated by the software is called an artifact. This shouldn't be confused with the use of the term in other modeling approaches like BPMN.
Deployment diagrams are made up of several UML shapes. The three-dimensional boxes, known as nodes, represent the basic software or hardware elements, or nodes, in the system. Lines from node to node indicate relationships, and the smaller shapes contained within the boxes represent the software artifacts that are deployed.
Deployment Diagram Example
Deployment Diagram Applications
Deployment diagrams have several valuable applications. You can use them to:
- Show which software elements are deployed by which hardware elements.
- Illustrate the runtime processing for hardware.
- Provide a view of the hardware system’s topology.
Deployment Diagram Symbols and Notation
There are two types of nodes in a deployment diagram. The first are device nodes--computing resources that have processing capabilities and the ability to execute programs. Some examples of device nodes are a PC, laptop, or mobile phone. The second type of node is called an execution environment node, or EEN. An EEN is any computer system that resides within a device node. It could be an operating system, a JVM, or another servlet container.
Represents any data stored by the deployed system. In the example, the database is represented as just another node, but sometimes you will see this shape as a database.
- Communication path A straight line that represents communication between two device nodes.
- Artifacts A box with the header "<<artifact>>" and then the name of the file.
- Package A package is a file shaped box that groups together all the device nodes to encapsulate the entire deployment.
- Component UML component notation is going to be the same here as in the component diagram section.
Deployment Diagram Elements
A variety of shapes make up deployment diagrams. This list offers an overview of the basic elements you may encounter. You can see most of these items illustrated in the image below.
- Artifact - a product developed by the software, symbolized by a rectangle with the name and the word “artifact” enclosed by double arrows.
- Association - a line that indicates a message or other type of communication between nodes.
- Component - a rectangle with two tabs that indicates a software element.
- Dependency - a dashed line that ends in a arrow, which indicates that one node or component is dependent on another.
- Interface - a circle that indicates a contractual relationship; those objects that realize the interface must complete some sort of obligation.
- Node - A hardware or software object, shown by a three-dimensional box.
- Node as container - A node that contains another node inside of it—such as in the example below, where the nodes contain components.
- Stereotype - A device contained within the node, presented at the top of the node, with the name bracketed by double arrows.
Deployment Diagram Guidelines
Use Lucidchart's UML software to construct deployment diagrams. In the meantime, you can give yourself some general guidelines for constructing a deployment diagram by asking the following questions:
- Have you identified the scope of your system? - You should know whether you are diagramming a single application or the deployment to a whole network of computers, for example.
- Make sure you have considered the limitations of your physical hardware. - What legacy systems will you need to interact with? Be sure that you know the operating software and protocols you will be working with and what monitoring you will be putting into place.
- Which distribution architecture are you using? You should be able to answer these questions:
- How many tiers will your application have?
- What is the application you will be deploying to?
- Do you have all the nodes you need? Do you know how they are all connected?
- Do you know which components are going to be on which nodes?
Deployment Diagram Resources
Use Lucidchart to collaborate and create UML diagrams when you start an account for free today! No plugins or download required.