UML Diagrams With planUML

This post describes how to use the free plantUML for a set of UML diagrams.

Make use of a text editor, or, as I do, install the extension for LibreOffice. There should also be an add-on for Microsoft Word.

Another option for working with plantUML is an add-on for Atlassian Confluence.

Table of contents


When using ubuntu as your operation system, the installation is just one command:

sudo apt install plantuml


Unified Modeling Language. The different types of UML.

** Behavioral
*** Activity Diagrams
*** Interaction Diagrams
**** Sequence Diagrams
**** Communication Diagrams
**** Timing Diagrams
*** State Machine Diagrams
*** Use Case Diagrams
** Structural
*** Class Diagrams
*** Component Diagrams
*** Composite Diagrams
*** Deployment Diagrams
*** Object Diagrams
*** Package Diagrams

Behavioral Diagrams

Activity Diagram

(*) --> “Receive Order”
--> === S1 ===
=== S1 === --> “Make Drink”
=== S1 === --> “Make Bakery”
=== S1 === --> “Make Payment”
“Make Drink” --> === S2 ===
“Make Bakery” --> === S2 ===
“Make Payment” --> === S2 ===
--> (*)

Sequence Diagram

actor Student as S
participant “Online Bookstore” as OBS
participant “Fulfillment Center” as FC

S -// OBS: Login
S -// OBS: Enter Course Code
OBS -->> S: Provide Total
S -// OBS: Submit Payment
OBS -// FC: Submit Payment
FC -->> OBS: Ship Book(s)
OBS -->> S: Ship Book(s)

Communication Diagram

rectangle “A Student” as S
rectangle “Online Book Ordering System” as OBOS
rectangle “Fulfillment Center” as FC
rectangle “Books” as B
rectangle “Book Order” as BO

S -right->> OBOS: 1: login
OBOS -down- B
OBOS -down->> FC: 2: submit books\n3: calculate price
FC -- B
FC -down- BO: 4: get quantity
B -right- BO

Timing Diagram

robust “Vault” as V
robust “Bio Security Sys” as BIO

V is Off
BIO is Off

V is On
BIO@5 <-> @20 : {15 ms}

V is On
BIO is On

V is Off
BIO is Off

State Machine Diagram

hide empty description
[*] -right-> Wait
Wait -right-> Vault
Vault -down-> [*]
Vault -up-> Enable
Enable -left-> Unlock
Unlock -down-> Wait

Use Case Diagram

left to right direction
skinparam packageStyle rectangle
actor :Student: as S
actor :Instructor: as I

rectangle “Online Grade Book”{
usecase (System Login) as (SL)
usecase (Select Class) as (SC)
usecase (Select Assignment) as (SA)
usecase (Upload Assignment) as (UA)
usecase (Select Student) as (SS)
usecase (Enter Text) as (ET)
usecase (Grade Assignment) as (GA)
S -- (SL)
S -- (SC)
S -- (SA)
S -- (UA)
S -- (ET)
(SL) -- I
(SC) -- I
(SA) -- I
(SS) -- I
(GA) -- I
(UA) -[hidden]> (ET)
(SS) -[hidden]> (GA)

Structural Diagrams

Class Diagram

class Kennel {

Component Diagram

component [] as in
component [] as cu
component [] as or

in .. or
cu .. or

Composite Structure Diagram

rectangle Microwave as MW
() “Power UI” )-right- MW
() “Time UI” )-down- MW
MW -right- () “Lightning API”
() “Display API” )-up- MW

Deployment Diagram

node “Client Terminal” as API{
[Admin Portal Interface]

node “Web Server” as WS {
[{web server = apache}]

node “Application Server” as AS {
rectangle Database as DB
component [Inventory Application] as IA
IA -down- DB


Object Diagram

object “College of Computer Science : OrgUnit” as CCS {
building = “Grace Hopper Hall”
object “Computer Science : OrgUni” as CS {
building = “Grace Hopper Hall”
object “CS Research Unit : OrgUnit” as CSRU {
building = “Bruce Lee Memorial Center”
object “VR Lab : OrgUnit” as VRL {
building = “Innovation Center”

CCS -- CS : parent
CCS -- CSRU : parent
CSRU -- VRL : parent

Package Diagram

package Java <<Folder>> {
package Object <<Folder>> {
package AbstractCollection <<Folder>> {
package AbstractList <<Folder>> {
class ArrayList

Reach out to me for professional support!