CheatSheet: Biểu đồ Tuần tự (Sequence Diagram) với PlantUML

0 0 0

Người đăng: H Hiếu

Theo Viblo Asia

CheatSheet: Biểu đồ Tuần tự (Sequence Diagram) với PlantUML

Biểu đồ tuần tự (Sequence Diagram) trong PlantUML là công cụ mạnh mẽ để mô tả các tương tác giữa các đối tượng hoặc tác nhân (actors) theo thời gian. Tài liệu này cung cấp hướng dẫn chi tiết bằng tiếng Việt, giữ nguyên các từ khóa trong code bằng tiếng Anh, dựa trên tài liệu chính thức từ https://plantuml.com/sequence-diagram.


1. Cú pháp cơ bản

1.1. Khai báo Participants

  • Participants là các đối tượng hoặc thực thể tham gia vào quá trình tương tác, ví dụ: người dùng, hệ thống, cơ sở dữ liệu.

  • Cú pháp:

    actor ActorName
    participant ObjectName
    
  • Ví dụ:

    actor User
    participant System
    
  • Các loại participants:

    • actor: Người dùng hoặc vai trò bên ngoài.
    • participant: Đối tượng chung (mặc định).
    • entity: Thực thể (thường dùng trong hệ thống).
    • boundary: Giao diện hoặc ranh giới.
    • control: Logic điều khiển.
    • database: Cơ sở dữ liệu.
    • collections: Bộ sưu tập hoặc danh sách.
  • Tùy chỉnh tên hiển thị:

    actor "Người Dùng" as User
    participant "Máy Chủ" as Server
    

1.2. Tạo Messages

  • Messages là các tin nhắn biểu thị tương tác giữa các participants.

  • Cú pháp:

    Participant1 -> Participant2: MessageContent
    
  • Ví dụ:

    User -> System: Login
    System --> User: Confirmation
    
  • Các loại messages:

    • ->: Tin nhắn đồng bộ (synchronous, chờ phản hồi).
    • -->: Tin nhắn bất đồng bộ (asynchronous, không chờ).
    • ->>: Tin nhắn tự gửi (self-message).
    • <--: Phản hồi (return).
    • -[hidden]->: Tin nhắn ẩn (không hiển thị).

1.3. Activation và Deactivation

  • Mô tả trạng thái hoạt động của một participant.
  • Cú pháp:
    activate Participant
    deactivate Participant
    
  • Ví dụ:
    User -> System: Send request
    activate System
    System --> User: Response
    deactivate System
    

2. Tùy chỉnh giao diện

2.1. Thay đổi màu sắc

  • Sử dụng mã màu hex hoặc tên màu để tùy chỉnh.
  • Cú pháp:
    actor Participant #ColorCode
    Participant1 -> Participant2 #ColorCode: Message
    
  • Ví dụ:
    actor User #FF0000
    User -> System #00FF00: Request
    

2.2. Số thứ tự (Autonumber)

  • Thêm số thứ tự cho các tin nhắn.

  • Cú pháp:

    autonumber
    
  • Ví dụ:

    autonumber
    User -> System: Login
    System --> User: Success
    
  • Tùy chỉnh định dạng số:

    autonumber "<b>[000]"
    

2.3. Tiêu đề và chú thích

  • Thêm tiêu đề, chân trang, hoặc ghi chú.
  • Cú pháp:
    title Title
    footer Footer
    header Header
    note left: Note content
    note right: Note content
    note over Participant: Note content
    
  • Ví dụ:
    title Quy trình Đăng nhập
    User -> System: Input credentials
    note right: Validate credentials
    System --> User: Response
    footer Hệ thống ABC
    

3. Cấu trúc điều kiện và vòng lặp

3.1. Điều kiện (Alt/Else)

  • Mô tả các kịch bản khác nhau.
  • Cú pháp:
    alt Condition1 Participant1 -> Participant2: Action
    else Condition2 Participant1 -> Participant2: Other action
    end
    
  • Ví dụ:
    alt Valid credentials System --> User: Login success
    else Invalid credentials System --> User: Error
    end
    

3.2. Vòng lặp (Loop)

  • Mô tả hành động lặp lại.
  • Cú pháp:
    loop NumberOfTimes or Condition Participant1 -> Participant2: Action
    end
    
  • Ví dụ:
    loop 3 times User -> System: Retry
    end
    

3.3. Nhóm (Group)

  • Nhóm các tin nhắn liên quan.
  • Cú pháp:
    group GroupName Participant1 -> Participant2: Action
    end
    
  • Ví dụ:
    group Authentication User -> System: Send OTP System --> User: Input OTP
    end
    

4. Phân chia thời gian và vùng

4.1. Phân chia (Divider)

  • Chia biểu đồ thành các giai đoạn.
  • Cú pháp:
    == DividerName ==
    
  • Ví dụ:
    User -> System: Request 1
    == Phase 2 ==
    User -> System: Request 2
    

4.2. Độ trễ (Delay)

  • Thêm khoảng thời gian hoặc độ trễ.
  • Cú pháp:
    ...DelayDescription...
    
  • Ví dụ:
    User -> System: Send request
    ...5 seconds...
    System --> User: Response
    

4.3. Vùng tham chiếu (Reference)

  • Liên kết đến biểu đồ khác.
  • Cú pháp:
    ref over Participant1, Participant2: Description
    
  • Ví dụ:
    ref over User, System: Payment process
    

5. Tính năng nâng cao

5.1. Tùy chỉnh giao diện toàn cục

  • Sử dụng skinparam để thay đổi giao diện.

  • Cú pháp:

    skinparam monochrome true
    skinparam backgroundColor #EEE
    
  • Ví dụ:

    skinparam monochrome true
    User -> System: Request
    
  • Các tham số phổ biến:

    • monochrome: Biểu đồ đen trắng.
    • backgroundColor: Màu nền.
    • arrowColor: Màu mũi tên.
    • actorBackgroundColor: Màu nền actor.
    • sequenceBoxBackgroundColor: Màu nền nhóm.

5.2. Sử dụng biến và macro

  • Định nghĩa biến hoặc macro để tái sử dụng.
  • Cú pháp:
    !define MacroName Content
    $VariableName = Value
    
  • Ví dụ:
    !define AUTH User -> System: Authenticate
    AUTH
    

5.3. Xử lý đồng thời (Parallel)

  • Mô tả các hành động xảy ra đồng thời.
  • Cú pháp:
    par Participant1 -> Participant2: Action 1
    and Participant3 -> Participant4: Action 2
    end
    
  • Ví dụ:
    par User -> System: Send request
    and System -> Database: Query
    end
    

6. Ví dụ minh họa

Ví dụ đầy đủ mô tả quy trình đăng nhập:

@startuml
title Quy trình Đăng nhập
autonumber
actor "Người Dùng" as User
participant "Hệ Thống" as System
participant "Cơ Sở Dữ Liệu" as DB User -> System: Input credentials
activate System
System -> DB: Check credentials
activate DB
DB --> System: Return result
deactivate DB alt Valid credentials System --> User: Login success
else Invalid credentials System --> User: Error
end deactivate System
@enduml

7. Mẹo và lưu ý

  • Kiểm tra cú pháp: Sử dụng trình chỉnh sửa PlantUML trực tuyến (http://www.plantuml.com/plantuml) để kiểm tra lỗi.
  • Tối ưu hóa: Sử dụng skinparam để làm biểu đồ trực quan hơn.
  • Tái sử dụng: Dùng macro và biến để tránh lặp lại code.
  • Tài liệu hóa: Thêm ghi chú và tiêu đề để làm rõ ý nghĩa biểu đồ.
  • Hỗ trợ tiếng Việt: PlantUML hỗ trợ UTF-8, cho phép sử dụng tiếng Việt mà không cần cấu hình thêm.

8. Tài liệu tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Phân tích thiết kế hệ thống thông tin sử dụng biểu đồ UML (Phần 2)

Trong phần 1 tôi đã giới thiệu với các bạn khái quát về phân tích thiết kế hệ thống thông tin sử dụng biểu đồ UML và 2 dạng biểu đồ ca sử dụng(Use Case Diagram) và biểu đồ lớp (Class Diagram). Trong phần này tôi sẽ tiếp tục giới thiệu tới các bạn một số dạng biểu đồ UML được sử nhiều trong các thiết

0 0 55

- vừa được xem lúc

Thiết kế Sequence Diagram sử dụng PlantUML

Tổng quan. Sequence Diagram (biểu đồ tuần tự) mô tả luồng hoạt động một số chức năng quan trọng/phức tạp.

0 0 36

- vừa được xem lúc

Sơ đồ sequence diagram: Tất tần tật thông tin quan trọng bạn cần nắm

Sơ đồ sequence diagram, hay còn gọi là sơ đồ tuần tự, là một công cụ quan trọng trong quá trình phân tích và thiết kế hệ thống phần mềm.sơ đồ này mô tả cách thức các đối tượng tương tác với nhau theo

0 0 17

- vừa được xem lúc

Thiết kế Sequence Diagram sử dụng PlantUML

Tổng quan. Sequence Diagram (biểu đồ tuần tự) mô tả luồng hoạt động một số chức năng quan trọng/phức tạp.

0 0 36

CheatSheet: Biểu đồ Lớp (Class Diagram) với PlantUML

CheatSheet: Biểu đồ Lớp (Class Diagram) với PlantUML. Biểu đồ lớp (Class Diagram) trong PlantUML là công cụ mạnh mẽ để mô tả cấu trúc tĩnh của hệ thống, bao gồm các lớp, thuộc tính, phương thức và mối

0 0 0

CheatSheet: Biểu đồ Lớp (Class Diagram) với PlantUML

CheatSheet: Biểu đồ Lớp (Class Diagram) với PlantUML. Biểu đồ lớp (Class Diagram) trong PlantUML là công cụ mạnh mẽ để mô tả cấu trúc tĩnh của hệ thống, bao gồm các lớp, thuộc tính, phương thức và mối

0 0 0