Hướng dẫn cú pháp sơ đồ thời gian PlantUML

Sơ đồ thời gian là gì?

Một Sơ đồ thời gian là một sơ đồ hành vi chuyên biệt sơ đồ UML được thiết kế để trực quan hóa chính xác thời lượng của các trạng thái và điều kiện chính xác khi các trạng thái đó thay đổi dọc theo một trục thời gian tuyến tính. Là một phần thiết yếu trong đặc tả Ngôn ngữ Mô hình hóa Đơn nhất (UML), loại sơ đồ UML này loại sơ đồ UML tập trung mạnh vào các ràng buộc thời gian cứng, chu kỳ đồng hồ và tín hiệu sóng. Nó theo dõi các dạng sóng hoặc các đường bước để minh họa chính xác thời gian một đối tượng duy trì trong một trạng thái cụ thể trước khi một tín hiệu bên ngoài làm thay đổi trạng thái của nó.

Các bản đồ thời gian được sử dụng rộng rãi bởi các kỹ sư hệ thống nhúng, nhà phát triển giao thức mạng và kiến trúc sư phần cứng để mô hình hóa các điều kiện cạnh tranh, theo dõi sự thay đổi vòng đời luồng hoặc bản đồ các chuyển đổi thanh ghi phần cứng. Với VPasCode, bạn không cần phải tính toán thủ công độ rộng pixel hay ánh xạ tọa độ trục thời gian. Bộ xử lý hiển thị của chúng tôi sẽ tự động xử lý toàn bộ lưới thời gian dựa trên các đoạn mã văn bản thuần túy của bạn.

Hướng dẫn cú pháp cốt lõi: Các thành phần và cấu trúc

Để thiết kế một sơ đồ thời gian UML chính xác, tuân thủ chuẩn trong PlantUML, bạn cần nắm vững các loại người tham gia, định nghĩa trạng thái, khoảng thời gian và các ràng buộc đồng bộ.

1. Khai báo người tham gia (Mạnh mẽ so với Súc tích)

Bạn có thể mô hình hóa các trục thời gian bằng hai phong cách trực quan khác nhau tùy thuộc vào mức độ chi tiết mà hệ thống của bạn yêu cầu. Bạn phải khai báo chúng bằng các từ khóa rõ ràng:

  • Trục thời gian mạnh mẽ:Hiển thị các trạng thái dưới dạng các hàng chồng lên nhau riêng biệt. Phù hợp với các quy trình phần mềm cấp cao.
    robust "Luồng Ứng dụng" as Thread
  • Trục thời gian súc tích:Hiển thị các trạng thái dọc theo một đường phẳng duy nhất, sử dụng các khối gạch chéo để chỉ ra các thay đổi. Hoàn hảo cho bản đồ tín hiệu phần cứng gọn nhẹ.
    concise "Thanh ghi CPU" as Reg

2. Xác định chuyển đổi trạng thái và các bước thời gian

Khác với các sơ đồ khác, bạn thay đổi trạng thái bằng cách khai báo một điểm kiểm tra thời gian sử dụng dấu @ ký hiệu, tham chiếu đến người tham gia của bạn, và sử dụng từ khóa is từ khóa. Tên trạng thái chứa khoảng trắng hoặc ký tự đặc biệt phải được bao quanh bằng dấu ngoặc kép:

@0
Thread is Idle

@10
Thread is "Processing Data"

3. Tạo tín hiệu đồng hồ

Để mô phỏng đồng hồ phần cứng nhị phân, hãy sử dụng từ khóaclock từ khóa. Bạn phải xác định chu kỳ chu kỳ, chu kỳ độ rộng tùy chọn và tên nội bộ:

clock "Đồng hồ Hệ thống" as CLK với chu kỳ 2

4. Thêm các ràng buộc độ chính xác và các khung thời gian

Để ghi chú các hạn chót thực thi nghiêm ngặt (ví dụ như đảm bảo một chuyển trạng thái hệ thống xảy ra trong một khoảng thời gian nhất định), hãy sử dụng<-> cú pháp để nối hai tọa độ thời gian bằng một nhãn mô tả:

@10 <-> @40 : {Ít hơn 30ms}

Các thực hành tốt nhất cho bố cục thời gian sạch sẽ

  • Giữ đơn vị thời gian thống nhất:PlantUML coi các số nguyên trên dòng thời gian là các bước tuần tự chung. Chọn một đơn vị thời gian thống nhất cho dự án của bạn (ví dụ: các bước, micro giây hoặc giây) và duy trì nó một cách nhất quán.
  • Sử dụng nhãn cho các chuyển tiếp phức tạp: Bạn có thể thêm các tin nhắn văn bản trực tiếp vào các thay đổi trạng thái bằng cách thêm dấu hai chấm ngay sau gán trạng thái (ví dụ,@10nReg đang Đọc : "Kích hoạt Ngắt").
  • Sắp xếp các khai báo một cách chiến lược:PlantUML xếp các đường sống theo chiều dọc theo đúng thứ tự chúng được khai báo trong tập lệnh của bạn. Luôn đặt các đồng hồ chính ở đầu cùng để dễ căn chỉnh hơn.

Các ví dụ về sơ đồ thời gian PlantUML trong thế giới thực

Ví dụ 1: Trạng thái Bộ nhớ đệm và Bộ nhớ thanh ghi vi điều khiển (Ngắn gọn và Sóng đồng hồ)

Bản thiết kế có thể chạy này minh họa một dòng thời gian kỹ thuật phần cứng nhúng kinh điển, chạy đồng hồ hệ thống chuẩn song song với một bộ nhớ thanh ghi lưu trữ dữ liệu ngắn gọn theo dõi trạng thái phần cứng.

@startuml
clock "Đồng hồ Hệ thống (CLK)" as clk với chu kỳ 2
concise "Bộ nhớ thanh ghi Bus Dữ liệu" as Reg

@0
Reg đang Trống

@2
Reg đang Đọc : "Lấy dữ liệu"

@6
Reg đang Ghi

@10
Reg đang Khóa

@14
Reg đang Trống
@enduml

Phân tích cú pháp: Câu lệnhclock tạo ra một sóng vuông nhịp điệu cao/thấp tự động. Bộ nhớReg dòng xử lý nhiều phép gán trạng thái theo thứ tự trên lưới thời gian tuyệt đối. Các chuỗi văn bản được thêm dấu hai chấm (như : "Lấy dữ liệu") được hiển thị như các chú thích gọn gàng ngay trên đường biên chuyển tiếp.

Ví dụ 2: Làm mới token người tiêu dùng web bất đồng bộ (Giới hạn đa luồng mạnh mẽ)

Bản thiết kế kiến trúc phần mềm tiên tiến, hoàn toàn chức năng này tận dụng định dạng bố cục mạnh mẽ để theo dõi luồng công việc ứng dụng web đa luồng, xác định các mốc thời gian chính xác giữa khách hàng web và công nhân xác thực.

@startuml
robust "Khách hàng Trình duyệt Web" as Web
robust "Công nhân Token Xác thực" as Auth

@0
Web đang chờ
Auth đang ngủ

@5
Web đang chờ Token
Auth đang xác thực

@15
Auth đang tạo

@15 <-> @25 : {Khoảng thời gian tạo}

@25
Auth đang ngủ
Web đang hiển thị trang

@40
Web đang chờ
@enduml

Phân tích cú pháp: Bằng cách sử dụng lệnh robust khai báo, các trạng thái được liệt kê rõ ràng trên trục Y cho từng hàng luồng sống riêng lẻ. Ràng buộc đánh giá thời gian (@15 <-> @25 : {Khoảng thời gian tạo}) vẽ một mũi tên kích thước hai đầu tiêu chuẩn xuyên qua đỉnh lưới thời gian, cho thấy giới hạn hoạt động nghiêm ngặt.

Lên đầu trang