Skip to content

Dashboard

Sequence với PlantUML (Phần 2)

Created by Admin

1. Giới thiệu

  • Ở phần trước mình đã giới thiệu 1 phần về vẽ sequence với plant uml. Do nội dung dài nên mình chia nhỏ ra để mỗi bài viết không quá dài. Hôm nay mình tiếp tục chia sẻ về nội dung này.

2. kí hiệu, cách vẽ

a. Đánh số trình tự

  • Từ khóa autonumber được sử dụng để tự động thêm một số tăng dần vào thư.
  • vd:
@startuml
autonumber
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response
@enduml

Kết qủa:

  • Bạn có thể chỉ định một số bắt đầu với autonumber //start // và cũng có một số tăng với số autonumber //start// //increment//.
@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ả:

Bạn có thể chỉ định định dạng cho số của mình bằng cách đưa chúng vào dấu ngoặc kép. vd: "<b>[000]"

Việc định dạng được thực hiện với lớp DecimalFormat của Java.

Bạn có thể sử dụng một số thẻ html trong định dạng.

vd:

@startuml
autonumber "<b>[000]"
Bob -> Alice : Authentication Request
Bob <- Alice : Authentication Response

autonumber 15 "<b>(<u>##</u>)"
Bob -> Alice : Another authentication Request
Bob <- Alice : Another authentication Response

autonumber 40 10 "<font color=red><b>Message 0  "
Bob -> Alice : Yet another authentication Request
Bob <- Alice : Yet another authentication Response

@enduml

Kết quả:

  • Bạn cũng có thể sử dụng autonumber stop và autonumber resume //increment// //format// để tương ứng tạm dừng và tiếp tục autonumber.

vd:

@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ả:

  • Số bắt đầu của bạn cũng có thể là một chuỗi 2 hoặc 3 chữ số sử dụng dấu phân cách trường, chẳng hạn như.,;, ,,: hoặc kết hợp của các ký tự này. Ví dụ: 1.1.1 hoặc 1.1: 1.
  • Tự động chữ số cuối cùng sẽ tăng lên.
  • Để tăng chữ số đầu tiên, hãy sử dụng: autonumber inc A. Để tăng chữ số thứ hai, hãy sử dụng: autonumber inc B.

vd:

@startuml
autonumber 1.1.1
Alice -> Bob: Authentication request
Bob --> Alice: Response

autonumber inc A
'Now we have 2.1.1
Alice -> Bob: Another authentication request
Bob --> Alice: Response

autonumber inc B
'Now we have 2.2.1
Alice -> Bob: Another authentication request
Bob --> Alice: Response

autonumber inc A
'Now we have 3.1.1
Alice -> Bob: Another authentication request
autonumber inc B
'Now we have 3.2.1
Bob --> Alice: Response
@enduml

Kết quả:

b.Tiêu đề, Đầu trang và cuối trang

  • Title keyword được sử dụng để thêm tiêu đề cho trang.

  • Các trang có thể hiển thị đầu trang và chân trang bằng cách sử dụng "header" và "footer".

    vd:

@startuml

header Page Header
footer Page %page% of %lastpage%

title Example Title

Alice -> Bob : message 1
Alice -> Bob : message 2

@enduml

Kết quả:

c. Tách trang

  • Từ khóa "newpage" được sử dụng để chia một sơ đồ thành nhiều hình ảnh.
  • Bạn có thể đặt tiêu đề cho trang mới ngay sau từ khóa trang mới. Tiêu đề này ghi đè tiêu đề đã chỉ định trước đó nếu có. Điều này rất tiện dụng với Word để in sơ đồ dài trên một số trang.

(Lưu ý: điều này thực sự hiệu quả. Chỉ trang đầu tiên được hiển thị bên dưới)

vd:

@startuml

Alice -> Bob : message 1
Alice -> Bob : message 2

newpage

Alice -> Bob : message 3
Alice -> Bob : message 4

newpage A title for the\nlast page

Alice -> Bob : message 5
Alice -> Bob : message 6
@enduml

Kết quả:

d. Grouping message

  • Có thể nhóm các tin nhắn lại với nhau bằng các từ khóa sau:

    • alt/else
    • opt
    • loop
    • par
    • break
    • critical
    • group, followed by a text to be displayed
  • Có thể thêm văn bản sẽ được hiển thị vào tiêu đề (đối với nhóm, xem đoạn tiếp theo 'Nhãn nhóm phụ').

  • Từ khóa end được sử dụng để đóng nhóm.

  • Lưu ý rằng có thể lồng các nhóm.

vd:

@startuml
Alice -> Bob: Authentication Request

alt successful case

    Bob -> Alice: Authentication Accepted

else some kind of failure

    Bob -> Alice: Authentication Failure
    group My own label
    Alice -> Log : Log attack start
        loop 1000 times
            Alice -> Bob: DNS Attack
        end
    Alice -> Log : Log attack end
    end

else Another type of failure

   Bob -> Alice: Please repeat

end
@enduml

Kết quả:

e. Secondary group label/Nhãn nhóm phụ

  • Đối với nhóm, có thể thêm vào giữa [], văn bản hoặc nhãn phụ sẽ được hiển thị vào tiêu đề.

vd:

@startuml
Alice -> Bob: Authentication Request
Bob -> Alice: Authentication Failure
group My own label [My own label 2]
    Alice -> Log : Log attack start
    loop 1000 times
        Alice -> Bob: DNS Attack
    end
    Alice -> Log : Log attack end
end
@enduml

Kết quả:

f. Notes

  • Có thể ghi chú vào tin nhắn bằng cách sử dụng từ khóa note left hoặc note right ngay sau message.
  • Bạn có thể có một ghi chú nhiều dòng bằng cách sử dụng các từ khóa end note.

vd:

@startuml
Alice->Bob : hello
note left: this is a first note

Bob->Alice : ok
note right: this is another note

Bob->Bob : I am thinking
note left
a note
can also be defined
on several lines
end note
@enduml

Kết quả:

3. Phần kết

  • Để tránh bài viết quá dài mình sẽ chia làm các phần nhỏ. Bài hôm nay mình xin được kết thúc ở đây.
  • Nếu có ý kiến thì xin phép comment ở phía dưới. Mình sẽ ghi nhận tất cả các ý kiến đóng góp.
Source: https://viblo.asia/p/sequence-voi-plantuml-phan-2-m68Z04BQZkG