Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUzh_CNzh_TW

Hướng dẫn tham khảo Sổ tay PlantUML VPASCode

Danh sách bài viết được tuyển chọn từ Sổ tay PlantUML VPASCode, bao gồm các hướng dẫn cú pháp cho các quy trình biểu đồ mã hóa bằng UML và không phải UML.


Cốt lõi và Cơ bản cú pháp PlantUML

  1. Cơ bản cú pháp PlantUML: Nắm vững cú pháp nền tảng của PlantUML bao gồm khai báo biểu đồ với @startuml/@enduml, định nghĩa thực thể, toán tử quan hệ, chỉ thị định dạng, và các từ khóa phổ biến. Học cách cấu trúc các đoạn mã PlantUML sạch sẽ, dễ đọc để tự động tạo ra các biểu đồ chuyên nghiệp. [[34]]

  2. Hướng dẫn cú pháp biểu đồ trường hợp sử dụng PlantUML: Học cách mô hình hóa các yêu cầu chức năng và tương tác giữa các tác nhân bằng biểu đồ trường hợp sử dụng PlantUML. Bao gồm các tác nhân, trường hợp sử dụng, biên giới hệ thống, mối quan hệ include/extend, và các mẫu khái quát hóa cho tài liệu yêu cầu và bản đồ câu chuyện người dùng.

  3. Hướng dẫn cú pháp biểu đồ lớp PlantUML: Thiết kế các cấu trúc hệ thống tĩnh bằng biểu đồ lớp PlantUML. Nắm vững khai báo lớp/đặc tính/phương thức, các bộ sửa độ hiển thị, kế thừa (<|--), kết hợp (*--), tổng hợp (o--), và các mối quan hệ liên kết cho tài liệu kiến trúc hướng đối tượng. [[49]]

  4. Hướng dẫn cú pháp biểu đồ tuần tự PlantUML: Mô hình luồng tin nhắn và tương tác theo thời gian giữa các thành phần hệ thống. Học cách khai báo người tham gia, tin nhắn đồng bộ/bất đồng bộ (->-->), thanh kích hoạt, vòng lặp, khối alt/else, và cú pháp tạo/khởi động lại cho thiết kế API và biểu đồ giao tiếp microservice. [[51]]

  5. Hướng dẫn cú pháp biểu đồ hoạt động PlantUML: Trực quan hóa các quy trình kinh doanh và luồng công việc thuật toán bằng cú pháp biểu đồ hoạt động của PlantUML. Bao gồm các nút bắt đầu/kết thúc, hành động, nhánh điều kiện (if/then/else), vòng lặp (repeat/while), các nhánh song song, và các luồng phân vùng để tài liệu hóa logic quy trình. [[46]]

  6. Hướng dẫn cú pháp sơ đồ trạng thái PlantUML: Mô hình hóa máy trạng thái hữu hạn và các chuyển tiếp vòng đời đối tượng. Học cách khai báo trạng thái, các mũi tên chuyển tiếp (-->), các hành động vào/ra, trạng thái hợp thành, và các vùng đồng thời để thiết kế hệ thống dựa trên sự kiện và mô tả hành vi. [[36]]

  7. Hướng dẫn cú pháp sơ đồ đối tượng PlantUML: Minh họa các thể hiện đối tượng cụ thể và các mối quan hệ thời gian chạy của chúng tại một thời điểm cụ thể. Nắm vững cách đặt tên đối tượng, gán giá trị thuộc tính, cú pháp liên kết và các mối quan hệ ở cấp độ thể hiện để gỡ lỗi và trực quan hóa các tình huống kiểm thử. [[15]]

  8. Hướng dẫn cú pháp sơ đồ thành phần PlantUML: Bản đồ kiến trúc phần mềm theo mô-đun với các thành phần, giao diện và phụ thuộc. Học cách khai báo thành phần, các giao diện cung cấp/yêu cầu (<>), các mũi tên phụ thuộc và nhóm gói để tài liệu hóa hệ thống microservices và hệ thống dựa trên plugin. [[35]]


Các loại sơ đồ PlantUML nâng cao

  1. Hướng dẫn cú pháp sơ đồ triển khai PlantUML: Mô hình hóa cơ sở hạ tầng vật lý và cấu trúc triển khai thời gian chạy. Nắm vững nútmâykhungcơ sở dữ liệu, và tác phẩm các thành phần, cú pháp chứa lồng nhau và gán nhãn giao thức mạng cho sổ tay thực thi DevOps và sơ đồ kiến trúc đám mây. [[31]]

@startuml
skinparam shadowing false
skinparam defaultFontName "Arial"

' Định nghĩa phong cách
skinparam node {
BackgroundColor #F1F8FF
BorderColor #005CC5
FontColor #032F62
}

skinparam database {
BackgroundColor #FFF5E6
BorderColor #D96F00
FontColor #5C3000
}

skinparam artifact {
BackgroundColor #E6FFF1
BorderColor #008670
FontColor #004D40
}

trái sang phải direction

' Vùng mạng / Nút
node "Mạng phân phối nội dung" as cdn <<CDN>> {
artifact "Tài nguyên tĩnh đã được lưu trữ" as static
}

node "Cân bằng tải" as lb <<F5 / HAProxy>>

node "Máy chủ ứng dụng" as appServer <<Ubuntu Linux>> {
node "Container Docker" as docker {
artifact "app.war" as artifactApp
}
}

node "Máy chủ cơ sở dữ liệu" as dbServer <<Cluster>> {
database "Cơ sở dữ liệu sản xuất" as db <<PostgreSQL>>
}

' Kết nối với nhãn giao thức
cdn --> lb : HTTP/HTTPS (Cổng 443)
lb --> artifactApp : HTTP (Cổng 8080)
artifactApp --> db : JDBC / SQL (Cổng 5432)

@enduml

Ví dụ: Kiến trúc ba tầng cổ điển hiển thị CDN, cân bằng tải, máy chủ ứng dụng với tác phẩm lồng ghép, và tầng cơ sở dữ liệu với các kết nối được gán nhãn giao thức. [[1]]

@startuml

skinparam shadowing false

skinparam defaultFontName "Arial"

skinparam linetype ortho

' Định nghĩa phong cách

skinparam rectangle {

    BackgroundColor #F4F6F9

    BorderColor #A0AAB2

    FontColor #232F3E

}

skinparam node {

    BackgroundColor #E2F3FC

    BorderColor #4A90E2

    FontColor #111111

}

skinparam database {

    BackgroundColor #FFF2E6

    BorderColor #FF9900

    FontColor #232F3E

}

' Điểm vào cơ sở hạ tầng

node "AWS Route 53" as dns

node "Cân bằng tải ứng dụng AWS" as alb

dns --> alb : Định tuyến lưu lượng

' Vùng biên giới đám mây toàn cầu

rectangle "Vùng đám mây AWS" {

   

    ' Biên giới cụm Kubernetes xuyên vùng sẵn sàng

    rectangle "Cụm Amazon EKS" as eks {

       

        ' Vùng sẵn sàng 1

        rectangle "Vùng sẵn sàng us-east-1a" as az1 #line.dashed {

            node "Nút công việc EC2 (AZ1)" as node1 {

                rectangle "Pod Frontend" as podWeb1 <<Pod K8s>> {

                    artifact "Container Nginx" as containerWeb1

                }

                rectangle "Pod API Backend" as podApi1 <<Pod K8s>> {

                    artifact "Container ứng dụng Go" as containerApi1

                }

            }

        }

        ' Vùng sẵn sàng 2

        rectangle "Vùng sẵn sàng us-east-1b" as az2 #line.dashed {

            node "Nút công việc EC2 (AZ2)" as node2 {

                rectangle "Pod Frontend" as podWeb2 <<Pod K8s>> {

                    artifact "Container Nginx" as containerWeb2

                }

                rectangle "Pod API Backend" as podApi2 <<Pod K8s>> {

                    artifact "Container ứng dụng Go" as containerApi2

                }

            }

        }

    }

    ' Tầng cơ sở dữ liệu chung

    rectangle "Động cơ lưu trữ Amazon Aurora" as storage {

        database "Chủ Aurora (Người viết)" as dbMaster

        database "Sao chép Aurora (Người đọc)" as dbReplica

    }

}

' Ma trận định tuyến & lưu lượng

alb --> podWeb1 : HTTP/S (Cổng 80/443)

alb --> podWeb2 : HTTP/S (Cổng 80/443)

podWeb1 --> podApi1 : gRPC (Cổng 50051)

podWeb2 --> podApi2 : gRPC (Cổng 50051)

podApi1 --> dbMaster : TCP (Cổng 5432)

podApi2 --> dbMaster : TCP (Cổng 5432)

dbMaster .right.> dbReplica : Tự động sao chép lưu trữ

@enduml

Ví dụ: Triển khai Kubernetes bản địa đám mây trên các vùng sẵn sàng AWS với định tuyến cân bằng tải, nhúng pod và cụm cơ sở dữ liệu chung. [[1]]

  1. Hướng dẫn cú pháp sơ đồ thời gian PlantUML: Trực quan hóa thời lượng trạng thái chính xác và các ràng buộc thời gian dọc theo các dòng thời gian tuyến tính. Học cách bền vững/ngắn gọn kiểu người tham gia, @thời điểm gán trạng thái, đồng hồ sinh sóng, và <-> ghi chú ràng buộc cho hệ thống nhúng và tài liệu mô tả giao thức. [[30]]

@startuml
skinparam handwritten false
skinparam shadowing false
skinparam defaultFontName "Arial"

' Tiêu đề sơ đồ thời gian
title Dòng thời gian đồng bộ hóa thanh ghi Bus dữ liệu

' Định nghĩa sóng đồng hồ chu kỳ (chu kỳ 10 đơn vị, cao 5 đơn vị)
clock "Đồng hồ hệ thống" as CLK với chu kỳ 10 xung 5

' Định nghĩa người tham gia bền vững Bus dữ liệu
bền vững "Thanh ghi Bus dữ liệu" as BUS

' Thời điểm 0: Trạng thái ban đầu của thanh ghi
@0
BUS là Rỗng

' Thời điểm 10: Bus dữ liệu chuyển sang Đọc
@10
BUS là Đọc

' Thời điểm 20: Bus dữ liệu chuyển sang Ghi
@20
BUS là Ghi

' Thời điểm 22: Hiển thị nhãn văn bản tùy chỉnh trên dòng thời gian
@22
note top of BUS : T_GHI

' Thời điểm 30: Bus dữ liệu trở thành Khóa
@30
BUS là Khóa

' Thời điểm 35: Hiển thị nhãn văn bản tùy chỉnh trên dòng thời gian
@35
note top of BUS : T_KHÓA

' Thời điểm 40: Bus dữ liệu quay về trạng thái Rỗng
@40
BUS là Rỗng

' Thêm ghi chú ràng buộc thời gian sử dụng các điểm số cụ thể
@22 <-> @35 : {13 TU Thời lượng}

@enduml

Ví dụ: Dòng thời gian ngắn gọn hiển thị các trạng thái thanh ghi Bus dữ liệu (Rỗng → Đọc → Ghi → Khóa) được đồng bộ với sóng đồng hồ hệ thống chu kỳ. [[12]]

@startuml

skinparam shadowing false

skinparam defaultFontName "Arial"

' Tiêu đề sơ đồ thời gian đa luồng

title Đồng bộ hóa luồng Web Client và luồng Worker xác thực

' Khai báo các dòng thời gian bằng kiểu người tham gia bền vững

bền vững "Luồng Web Client" as CLIENT

bền vững "Luồng Worker xác thực" as AUTH

' Thời điểm 0ms: Trạng thái chờ ban đầu

@0

CLIENT là Đang chờ

AUTH là Đang xác minh thông tin đăng nhập

' Thời điểm 10ms: Client kích hoạt yêu cầu xác thực

@10

CLIENT là "Đang chờ xác thực"

AUTH là "Đang xác minh thông tin đăng nhập"

' Thời điểm 25ms: Client gửi thêm dữ liệu / Xác thực bắt đầu sinh token

@25

AUTH là "Đang sinh token JWT"

' Thời điểm 40ms: Xác thực hoàn thành sinh token và phản hồi lại client

@40

AUTH là Đang chờ

CLIENT là "Đã xác thực"

' Thời điểm 55ms: Client quay về trạng thái mặc định

@55

CLIENT là Đang chờ

' Ghi chú cửa sổ ràng buộc thời gian 30ms (Từ @10 đến @40)

@10 <-> @40 : {30ms Cửa sổ sinh token}

@enduml

Ví dụ: Dòng thời gian đa luồng bền vững mô tả trạng thái client web và worker xác thực với ghi chú ràng buộc cửa sổ sinh token 30ms. [[12]]

  1. Hướng dẫn cú pháp sơ đồ ERD PlantUML: Thiết kế sơ đồ quan hệ thực thể cho tài liệu mô tả lược đồ cơ sở dữ liệu. Thành thạo khai báo thực thể, gán kiểu thuộc tính, ký hiệu khóa chính/khóa ngoại và mối quan hệ cấp độ (1|o--o{) để mô hình hóa dữ liệu và lập kế hoạch di chuyển SQL.

  2. Hướng dẫn cú pháp sơ đồ ArchiMate PlantUML: Mô hình hóa các lớp kiến trúc doanh nghiệp bằng tiêu chuẩn ArchiMate. Học các thành phần lớp kinh doanh/ứng dụng/công nghệ, các khái niệm động lực và các loại mối quan hệ để lập kế hoạch chiến lược CNTT và tài liệu quản trị.

  3. Hướng dẫn cú pháp mô hình C4 PlantUML: Triển khai mô hình C4 để trực quan hóa kiến trúc phần mềm ở bốn mức độ trừu tượng: Bối cảnh, Bộ chứa, Thành phần và Mã nguồn. Thành thạo NgườiHệ thốngContainer, và Component các kiểu dáng với các container biên giới và định dạng mối quan hệ nhằm giao tiếp kiến trúc phù hợp với các bên liên quan.


Ghi chú về các sơ đồ nhúng: Tất cả các ví dụ mã PlantUML trong tài liệu VPASCode được hiển thị dưới dạng sơ đồ tương tác, có thể chỉnh sửa trực tiếp trong trình duyệt. Các liên kết hình ảnh PNG ở trên hiển thị các bản xem trước tĩnh của các sơ đồ ví dụ; để truy cập đầy đủ tính năng tương tác bao gồm chỉnh sửa trực tiếp, kiểm tra cú pháp và xuất ra PNG/SVG, vui lòng truy cập trực tiếp vào URL từng bài viết tại vpascode.com/docs. [[54]]

Tính năng của Trình soạn thảo VPasCode: Mỗi bài viết đều bao gồm các nút “Chỉnh sửa PlantUML trong VPasCode” giúp khởi chạy ví dụ mã trong trình soạn thảo miễn phí, dựa trên trình duyệt của VPasCode—không cần đăng nhập hay cài đặt. Các thay đổi được xem trước ngay lập tức với khả năng hiển thị thời gian thực. [[54]]


Tham khảo được tổng hợp từ tài liệu VPASCode. VPasCode là trình soạn thảo miễn phí, trực tuyến, dựa trên trình duyệt cho sơ đồ PlantUML, Mermaid và Graphviz, không yêu cầu đăng nhập hay cài đặt. [[54]]

Leave a Reply