SlideShare a Scribd company logo
3
Most read
4
Most read
PlantUML

Introduction
PlantUML

●

What is PlantUML?
● Why use it?
● Where to use it?
What is PlantUML?
PlantUML is a component that allows you to quickly write
UML diagrams.
It uses a simple and intuitive language to “write” the
diagrams.
The core component is a java jar and can be easly
integrated in other software.
Why use it?
Maintaining (UML) documentation can be a tedious task.
Separated diagramming tools are often separated from
developments tools. PlantUML can be an integral part of
the tools we love to use.
“Writing” the diagrams is a big advantage over drawing
them, mainly because the speed. It's almost like
programming.
Where to use it?
PlantUML

Use case diagrams
●Sequence diagrams
●Class diagrams
●
Use case diagrams
' options
title Order intake flow
left to right direction
' actors
Actor API as A
Actor Customer as C
Actor MQ
' relations
C --|> A
' package
package CINCO {
' Use cases
A -> (Choose package)
(Choose package) ..> (Choose options)
A -> (Submit order) : Customer Submits order
(Handle order) <- MQ
}
Use case diagrams
' options
title Order intake flow
left to right direction
skinparam usecase {
BackgroundColor DarkSeaGreen
BorderColor DarkSlateGray

}

ArrowColor OZlive
ActorBorderColor black
ActorFontName Courier

' actors
Actor API as A
Actor Customer as C
Actor MQ
' relations
C --|> A
' package
package CINCO {
' Use cases
Use case diagrams
' options
title Order intake flow
left to right direction
' actors
Actor API as A
Actor Customer as C
Actor MQ
' relations
C --|> A
' package
package CINCO {
' Use cases
A -> (Choose package)
(Choose package) ..> (Choose options)
A -> (Submit order) : Customer Submits order
(Handle order) <- MQ
}
Sequence diagrams
Actor Client
control Api
control MQ
Actor Consumer
Client -> Api:placeOrder(order)
Api
Api
Api
Api

->
->
->
->

MQ:connect()
MQ:channel('orders')
MQ:put(order)
MQ:disconnect()

Consumer -> MQ:connect()
Consumer -> MQ:watch('orders')
loop while(true)
Consumer -> MQ:reserve()
Consumer -> Biblio.Utils.OrderHelper:processOrder(order)
alt Success
Consumer -> MQ:delete()
else failed
Consumer -> MQ:release()
end
end
Consumer -> MQ:disconnect()
Class diagrams
interface iCommand {
+can(transition)
+execute()
}
abstract Command {
-options : []
-__construct(options)
+factory(options) : Command
}
iCommand <|.. Command
Command <|-- Null
Command <|-- Bevestiging
Command <|-- Go
Command <|-- Wacht
Command <|-- Introductie
Class diagrams
iCommand <|.. Command
Command <|-- Null
Command <|-- Bevestiging
Command <|-- Go
Command <|-- Wacht
Command <|-- Introductie
Command <|-- Extra1
Command <|-- Extra2
Command <|-- Extra3
Command <|-- Extra4
Command <|-- Extra5
Command <|-- Extra6
Command <|-- Extra7
Command <|-- Extra8
Command <|-- Extra9
Command <|-- Extra10
Class diagrams
iCommand <|.. Command
hide members
show Command members
show iCommand methods
Null -right-|> Command
Bevestiging -right-|> Command
Go -right-|> Command
Wacht -right-|> Command
Introductie -right--|> Command
Extra1 -down-|> Command
Extra2 -down--|> Command
Extra3 -down-|> Command
Extra4 -up-|> Command
Extra5 -up--|> Command
Extra6 -up---|> Command
Extra7 -up--|> Command
Extra8 -up---|> Command
Extra9 -up--|> Command
Extra10 -up-|> Command

More Related Content

PPTX
PlantUML
PDF
Hibernate Presentation
PPTX
Generic types and collections GUIs.pptx
PDF
Sequence and Traverse - Part 1
PPT
Java 8 Streams
PPTX
Encapsulation
PDF
Java 8 features
PlantUML
Hibernate Presentation
Generic types and collections GUIs.pptx
Sequence and Traverse - Part 1
Java 8 Streams
Encapsulation
Java 8 features

What's hot (20)

PPTX
Basic data types in python
PPTX
Function overloading
PPTX
Type casting in java
DOC
C fundamental
PDF
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
PPT
Java layoutmanager
PPTX
Python dictionary
PDF
Streams in Java 8
PPTX
Manipulation strings in c++
PPT
C by balaguruswami - e.balagurusamy
PPT
Java interfaces
PPT
Python Pandas
PDF
Java 8 Lambda Built-in Functional Interfaces
PPTX
Java 8 - Features Overview
PPTX
Concept of OOPS with real life examples
PPTX
JAVA AWT
PDF
10. funtions and closures IN SWIFT PROGRAMMING
PDF
Java - File Input Output Concepts
PDF
Python tuple
PPT
Difference between C++ and Java
Basic data types in python
Function overloading
Type casting in java
C fundamental
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Java layoutmanager
Python dictionary
Streams in Java 8
Manipulation strings in c++
C by balaguruswami - e.balagurusamy
Java interfaces
Python Pandas
Java 8 Lambda Built-in Functional Interfaces
Java 8 - Features Overview
Concept of OOPS with real life examples
JAVA AWT
10. funtions and closures IN SWIFT PROGRAMMING
Java - File Input Output Concepts
Python tuple
Difference between C++ and Java
Ad

Similar to PlantUML introduction (20)

PDF
Qt Quick in depth
PDF
Efficient Model Partitioning for Distributed Model Transformations
PPTX
A Brief Conceptual Introduction to Functional Java 8 and its API
PDF
Machine learning on streams of data
PPT
Unit 7 Java
PDF
Angular performance slides
PDF
CAPLQuickstart_Generic_2018____Final.pdf
PDF
Functional Programming 101 for Java 7 Developers
PDF
AUTOCAD RAHUL
PPTX
Java applet
PDF
R Programming Magrittrdfgdfsgfdgfdgfdgfdsg fsd gdfsgdf gdf gdfsgfd
PPTX
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
PDF
Building Production-Ready AI Agents with LangGraph.pdf
DOCX
Angular Interview Questions & Answers
PDF
Exploring Angular 2 - Episode 2
PDF
Introduction To Programming with Python
PDF
Java 8 - functional features
PPTX
Summer training matlab
PDF
Summer training matlab
Qt Quick in depth
Efficient Model Partitioning for Distributed Model Transformations
A Brief Conceptual Introduction to Functional Java 8 and its API
Machine learning on streams of data
Unit 7 Java
Angular performance slides
CAPLQuickstart_Generic_2018____Final.pdf
Functional Programming 101 for Java 7 Developers
AUTOCAD RAHUL
Java applet
R Programming Magrittrdfgdfsgfdgfdgfdgfdsg fsd gdfsgdf gdf gdfsgfd
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
Building Production-Ready AI Agents with LangGraph.pdf
Angular Interview Questions & Answers
Exploring Angular 2 - Episode 2
Introduction To Programming with Python
Java 8 - functional features
Summer training matlab
Summer training matlab
Ad

Recently uploaded (20)

PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
Chapter 5: Probability Theory and Statistics
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Tartificialntelligence_presentation.pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
Chapter 5: Probability Theory and Statistics
1 - Historical Antecedents, Social Consideration.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Agricultural_Statistics_at_a_Glance_2022_0.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Heart disease approach using modified random forest and particle swarm optimi...
Getting Started with Data Integration: FME Form 101
Tartificialntelligence_presentation.pptx
OMC Textile Division Presentation 2021.pptx
Programs and apps: productivity, graphics, security and other tools
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
A comparative study of natural language inference in Swahili using monolingua...
Hindi spoken digit analysis for native and non-native speakers
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
1. Introduction to Computer Programming.pptx
A comparative analysis of optical character recognition models for extracting...
DP Operators-handbook-extract for the Mautical Institute
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf

PlantUML introduction

  • 2. PlantUML ● What is PlantUML? ● Why use it? ● Where to use it?
  • 3. What is PlantUML? PlantUML is a component that allows you to quickly write UML diagrams. It uses a simple and intuitive language to “write” the diagrams. The core component is a java jar and can be easly integrated in other software.
  • 4. Why use it? Maintaining (UML) documentation can be a tedious task. Separated diagramming tools are often separated from developments tools. PlantUML can be an integral part of the tools we love to use. “Writing” the diagrams is a big advantage over drawing them, mainly because the speed. It's almost like programming.
  • 6. PlantUML Use case diagrams ●Sequence diagrams ●Class diagrams ●
  • 7. Use case diagrams ' options title Order intake flow left to right direction ' actors Actor API as A Actor Customer as C Actor MQ ' relations C --|> A ' package package CINCO { ' Use cases A -> (Choose package) (Choose package) ..> (Choose options) A -> (Submit order) : Customer Submits order (Handle order) <- MQ }
  • 8. Use case diagrams ' options title Order intake flow left to right direction skinparam usecase { BackgroundColor DarkSeaGreen BorderColor DarkSlateGray } ArrowColor OZlive ActorBorderColor black ActorFontName Courier ' actors Actor API as A Actor Customer as C Actor MQ ' relations C --|> A ' package package CINCO { ' Use cases
  • 9. Use case diagrams ' options title Order intake flow left to right direction ' actors Actor API as A Actor Customer as C Actor MQ ' relations C --|> A ' package package CINCO { ' Use cases A -> (Choose package) (Choose package) ..> (Choose options) A -> (Submit order) : Customer Submits order (Handle order) <- MQ }
  • 10. Sequence diagrams Actor Client control Api control MQ Actor Consumer Client -> Api:placeOrder(order) Api Api Api Api -> -> -> -> MQ:connect() MQ:channel('orders') MQ:put(order) MQ:disconnect() Consumer -> MQ:connect() Consumer -> MQ:watch('orders') loop while(true) Consumer -> MQ:reserve() Consumer -> Biblio.Utils.OrderHelper:processOrder(order) alt Success Consumer -> MQ:delete() else failed Consumer -> MQ:release() end end Consumer -> MQ:disconnect()
  • 11. Class diagrams interface iCommand { +can(transition) +execute() } abstract Command { -options : [] -__construct(options) +factory(options) : Command } iCommand <|.. Command Command <|-- Null Command <|-- Bevestiging Command <|-- Go Command <|-- Wacht Command <|-- Introductie
  • 12. Class diagrams iCommand <|.. Command Command <|-- Null Command <|-- Bevestiging Command <|-- Go Command <|-- Wacht Command <|-- Introductie Command <|-- Extra1 Command <|-- Extra2 Command <|-- Extra3 Command <|-- Extra4 Command <|-- Extra5 Command <|-- Extra6 Command <|-- Extra7 Command <|-- Extra8 Command <|-- Extra9 Command <|-- Extra10
  • 13. Class diagrams iCommand <|.. Command hide members show Command members show iCommand methods Null -right-|> Command Bevestiging -right-|> Command Go -right-|> Command Wacht -right-|> Command Introductie -right--|> Command Extra1 -down-|> Command Extra2 -down--|> Command Extra3 -down-|> Command Extra4 -up-|> Command Extra5 -up--|> Command Extra6 -up---|> Command Extra7 -up--|> Command Extra8 -up---|> Command Extra9 -up--|> Command Extra10 -up-|> Command