The UML (Unified Modeling Language) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. This article is a guide for us to learn this important tool in software engineering.



There are many tools for implementing UML, here we choose PlantUML instead of common drawing software. It uses a descriptive language to build models, which has the following benefits:

  • Focus on content rather than typography and style
  • Plain text content, which can be versionlized
  • Readable, intuitive, and low learning cost


  • Functional Model: Shows the functionality of the system from the user’s perspective, including use case diagrams.
  • Object model: uses concepts such as objects, attributes, operations, and associations to display the structure and foundation of the system, including category diagrams and object diagrams.
  • Dynamic Model: Shows the internal behavior of the system. Including sequence diagrams, activity diagrams, state diagrams.


There are two main categories, behavioral diagrams and structure diagrams. The following are the different UML Diagram Types:

  • Behavioral Diagrams
    • Sequence Diagram
    • Use Case Diagram
    • Activity Diagram
    • State Machine Diagram
    • Timing Diagram
    • Communication Diagram
    • Interaction Overview Diagram
  • Structure Diagrams
    • Class Diagram
    • Object Diagram
    • Component Diagram
    • Deployment Diagram
    • Package Diagram
    • Profile Diagram
    • Composite Structure Diagram

Note: The bold font of diagrams are supported by PlantUML.

PlantUML Tutorial

Below are the supported participant in PlantUML:

  • actor
  • boundary
  • control
  • entity
  • database
  • collections
  • queue

Sequence Diagram

A sequence diagram or system sequence diagram (SSD) shows object interactions arranged in time sequence in the field of software engineering.

A system sequence diagram should specify and show the following:

  • Actor
  • Message
  • Lifeline
  • Activation

In PlantUML:

  • ->: Arrow is used for delivery message
  • -->: Dotted Arrow is used for return message
<img class="plantuml" src="">