Trong bài viết phần 1 mình đã giới thiệu tổng quan về PlantUML, và một số ví dụ của các biểu đồ có thể thiết kế bằng PlantUML.

Ở phần này chúng ta sẽ tìm hiểu cụ thể cách thiết kế biểu đồ tuần tự (Sequence Diagram) bằng PlantUML.

1. Khai báo các thành phần tham gia

participant là keyword được sử dụng để khai báo một thành phần tham gia, việc sử dụng keyword này giúp kiểm soát được từng thành phần tham gia. Thứ tự khai báo sẽ là thứ tự hiển thị trên biểu đồ (mặc định).
Việc sử dụng các từ khóa dưới đây để khai báo sẽ thay đổi hình dạng của đối tượng tham gia khi hiển thị

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

Ví dụ:

@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  @enduml

※Sử dụng as để rename cho participant

Khi preview sẽ cho ra kết quả như sau:

2. Thông điệp (message)

・Dùng ký hiệu -> để thể hiện thông điệp truyền qua lại giữa các đối tượng tham gia trong biểu đồ.

・Format như sau: participantA -> participantB : {message content}. Có thể dùng để thể hiện cho trường hợp Message to Self: participantA -> participantA : {message content}. Tham khảo ví dụ minh họa dưới đây:

Ví dụ:

@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  Foo6 -> Foo : From collection to participant   Foo7 -> Foo7: From queue to queue  @enduml

Kết quả sẽ ra như sau:

・Có thể thay đổi style của mũi tên phù hợp với từng case message:

  • Thêm ký tự x cho trường hợp message
  • 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 bằng nét đứt
  • Thêm chữ "o" cuối cùng ở đầu mũi tên
  • Sử dụng mũi tên hai chiều <->

3. Message sequence numbering

・Đánh số tăng dần với keyword autonumber để đánh số tăng dần cho từng message: autonumber

・Có thể chỉ định số bắt đầu tăng dần: autonumber <start> <increment>

Ví dụ:

@startuml  autonumber  Bob -> Alice : Authentication Request  Bob <- Alice : Authentication Response    autonumber 15  Bob -> Alice : Another authentication Request  Bob <- Alice : Another authentication Response    autonumber 40 10  Bob -> Alice : Yet another authentication Request  Bob <- Alice : Yet another authentication Response  @enduml

Kết quả hiển thị như sau:

・Có thể truyền số chỉ định stop và resume để tạm dừng và tiếp tục đánh số tự động:

autonumber stop resume <increment> <format>

Ví dụ:

@startuml  autonumber 10 10 "<b>[000]"  Bob -> Alice : Authentication Request  Bob <- Alice : Authentication Response    autonumber stop  Bob -> Alice : dummy    autonumber resume "<font color=red><b>Message 0  "  Bob -> Alice : Yet another authentication Request  Bob <- Alice : Yet another authentication Response    autonumber stop  Bob -> Alice : dummy    autonumber resume 1 "<font color=blue><b>Message 0  "  Bob -> Alice : Yet another authentication Request  Bob <- Alice : Yet another authentication Response  @enduml

Kết quả hiển thị như sau:

Ngoài những nội dung được mô tả ở trên còn có các options khác hỗ trợ việc vẽ biểu đồ được hay ho hơn ví dụ như: đổi màu background, thêm title/header, hay thậm chí là tách biểu đồ (Splitting diagrams) ...v..v...

Các bạn có thể tham khảo chi tiết hơn ở trang: https://plantuml.com/sequence-diagram


This free site is ad-supported. Learn more