Sequence với PlantUML
Bài đăng này đã không được cập nhật trong 3 năm
1. Giới thiệu
- Sequence diagram là một loại biểu đồ rất quan trọng trong việc mô tả luồng xử lý trong lập trình. Thông thường tool được sử dụng để vẽ sequence diagram là StartUml, Astah, ... . Mình sẽ giới thiệu đến các bạn một công cụ khác để vẽ sequence là PlantUML.
2. Bắt đầu nào!
a. Cơ bản
- Kí hiệu "->" được sử dụng để vẽ một thông điệp giữa hai đối tượng tham gia. Những đối tượng tham gia không cần phải được khai báo rõ ràng.
- Sử dụng kí hiệu --> để thể hiện một thông điệp đáp trả của đối tượng đến một đối tượng khác. vd:
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: Another authentication Response
@enduml
Kết quả:
b. Khai báo đối tượng
Nếu từ khóa "participant" được sử dụng để khai báo một đối tượng. Thứ tự khai báo các đối tượng sẽ là thứ tự hiển thị chúng. Sử dụng các từ khóa khác để khai báo đối tượng, sẽ thay đổi theo từ khóa được khai báo:
@startuml
participant participant as Foo
actor actor as Foo1
boundary boundary as Foo2
control control as Foo3
entity entity as Foo4
database database as Foo5
collections collections as Foo6
queue queue as Foo7
Foo -> Foo1 : To actor
Foo -> Foo2 : To boundary
Foo -> Foo3 : To control
Foo -> Foo4 : To entity
Foo -> Foo5 : To database
Foo -> Foo6 : To collections
Foo -> Foo7: To queue
@enduml
Kết quả:
Bạn cũng có thể đổi tên đối tượng được khai báo bằng từ khóa: as. Thay đổi màu nền của đối tượng.
@startuml
actor Bob #red
' The only difference between actor
'and participant is the drawing
participant Alice
participant "I have a really\nlong name" as L #99FF99
/' You can also declare:
participant L as "I have a really\nlong name" #99FF99
'/
Alice->Bob: Authentication Request
Bob->Alice: Authentication Response
Bob->L: Log transaction
@enduml
Kết quả:
Bạn có thể sử dụng từ khóa order để tùy chỉnh thứ tự hiển thị của các đối tượng.
@startuml
participant Last order 30
participant Middle order 20
participant First order 10
@enduml
kết quả:
Bạn có thể sử dụng dấu ngoặc kép để xác định đối tượng. Và bạn có thể sử dụng từ khóa as để đặt bí danh cho những đối tượng đó.
@startuml
Alice -> "Bob()" : Hello
"Bob()" -> "This is very\nlong" as Long
' You can also declare:
' "Bob()" -> Long as "This is very\nlong"
Long --> "Bob()" : ok
@enduml
Kết quả:
c. Message to Self
Các đối tượng có thể gửi thông điệp cho chính nó.
@startuml
Alice->Alice: This is a signal to self.\nIt also demonstrates\nmultiline \ntext
@enduml
Kết quả:
d. Căn chỉnh text
Bạn có thể đặt văn bản của thông báo phản hồi bên dưới mũi tên, bằng lệnh skinparam responseMessageBelowArrow true.
@startuml
skinparam responseMessageBelowArrow true
Bob -> Alice : hello
Alice -> Bob : ok
@enduml
Kết quả:
e. Thay đổi kiểu mũi tên
Bạn có thể thay đổi kiểu mũi tên bằng một số cách: Thêm dấu x cuối cùng để biểu thị một tin nhắn bị mất Sử dụng \ hoặc / thay vì <hoặc> để chỉ có phần dưới cùng hoặc phần trên của mũi tên Lặp lại đầu mũi tên (ví dụ: đầu >> hoặc //) để có một bản vẽ mỏng Sử dụng - thay vì - để có một mũi tên chấm Thêm chữ "o" cuối cùng ở đầu mũi tên Sử dụng mũi tên hai chiều <->
@startuml
Bob ->x Alice
Bob -> Alice
Bob ->> Alice
Bob -\ Alice
Bob \\- Alice
Bob //-- Alice
Bob ->o Alice
Bob o\\-- Alice
Bob <-> Alice
Bob <->o Alice
@enduml
Kết quả:
f. Thay đổi màu mũi tên
Bạn có thể thay đổi màu của các mũi tên riêng lẻ bằng cách sử dụng ký hiệu.
@startuml
Bob -[#red]> Alice : hello
Alice -[#0000FF]->Bob : ok
@enduml
Kết quả:
Kết
Bài chia sẻ hôm nay mình xin dừng lại ở đây. Những nội dung tiếp mình xin chia sẻ ở phần tiếp.
All rights reserved