Chào mừng bạn đến với một bài hướng dẫn masterclass khác từ đội ngũ kỹ thuật của Visual Paradigm! Khi thiết kế các kiến trúc doanh nghiệp phức tạp, việc giữ cho các sơ đồ của bạn sạch sẽ, có tổ chức và có cấu trúc vững chắc có thể là một thách thức. Các công cụ kéo-thả truyền thống thường làm chậm tiến độ của bạn khi bố cục thay đổi hoặc yêu cầu được cập nhật. Đó là lý do tại sao nhiều kiến trúc sư phần mềm và nhà thiết kế doanh nghiệp dựa trên quy trình làm việc sơ đồ dưới dạng mã.
Trong hướng dẫn này, tôi sẽ dẫn dắt bạn qua quy trình tư duy chính xác của tôi để xây dựng một sơ đồ kiến trúc ArchiMate đa lớp toàn diện cho mộtHệ thống Quản lý Thư viện. Sử dụng PlantUML bên trongtrình chỉnh sửa PlantUML miễn phítrênVisual Paradigm VPasCode, chúng ta sẽ phân tích cách cấu trúc các lớp doanh nghiệp, định nghĩa các phần tử một cách rõ ràng và lập bản đồ các mối quan hệ chính xác giữa các lớp.

Hiểu các lớp kiến trúc ArchiMate
Khi tôi bắt đầu mô hình hóa một hệ thống doanh nghiệp, tôi luôn bắt đầu bằng việc xác định các ranh giới cấu trúc. ArchiMate tách biệt các mối quan tâm thành các lớp kiến trúc riêng biệt, giúp các bên liên quan hiểu rõ giá trị kinh doanh, logic chức năng, các thành phần ứng dụng và cơ sở hạ tầng kỹ thuật chỉ trong một cái nhìn.
Đối với hệ thống thư viện của chúng ta, chúng tôi tổ chức sơ đồ thành bốn nhóm dọc và ngang riêng biệt:
- Lớp Động lực: Ghi nhận các mục tiêu cấp cao và các động lực định hướng tổ chức.
- Lớp Kinh doanh: Làm nổi bật các vai trò, dịch vụ và các quy trình kinh doanh cốt lõi như việc mượn/trả sách và đặt chỗ.
- Lớp Ứng dụng: Định nghĩa các dịch vụ phần mềm và các thành phần ứng dụng xử lý logic cốt lõi.
- Lớp Công nghệ: Đại diện cho các nút phần cứng vật lý hoặc ảo lưu trữ bộ ứng dụng của chúng ta.
Bước 1: Thiết lập Cấu trúc Nền tảng
Để bắt đầu viết mã, tôi bắt đầu bằng cách cấu hình các quy tắc hiển thị toàn cục và nhập thư viện chuẩn ArchiMate chính thức cho PlantUML. Việc đặt kiểu đường thẳng trực giao giúp giữ cho các đường nối sắc nét và căn chỉnh vuông góc, điều này rất quan trọng đối với các bản vẽ kỹ thuật doanh nghiệp sạch sẽ.
skinparam linetype ortho
!include https://static.visual-paradigm.com/plantuml-stdlib/Archimate-PlantUML/master/Archimate.puml
remove @unlinked
top to bottom direction
title Giới thiệu - Hệ thống Quản lý Thư viện
Bằng cách áp dụnghướng từ trên xuống dưới và loại bỏ các phần tử không liên kết, tôi đảm bảo bố cục chảy một cách tự nhiên từ các động lực kinh doanh cấp cao xuống đến cơ sở hạ tầng công nghệ.
Bước 2: Định nghĩa Các Lớp và Phần tử Cốt lõi
Tiếp theo, tôi điền vào mỗi container nhóm với các phần tử tương ứng của nó. Tôi thích nhóm các thành phần liên quan một cách rõ ràng bằng các khối nhóm PlantUML để các ranh giới trực quan khớp với các miền doanh nghiệp.
Grouping(motivation_layer, "Lớp Động lực") {
Motivation_Goal(g_ops, "Hoạt động Thư viện Hiệu quả")
Motivation_Goal(g_service, "Dịch vụ Người đọc Chất lượng Cao")
}
Grouping(business_layer, "Lớp Kinh doanh") {
Business_Actor(ba_librarian, "Thủ thư")
Business_Actor(ba_member, "Thành viên Thư viện")
Business_Service(bs_circulation, "Dịch vụ Lưu thông")
Business_Service(bs_catalog, "Dịch vụ Mục lục")
Business_Process(bp_checkout, "Mượn / Trả")
Business_Process(bp_reserve, "Quản lý Đặt chỗ")
}
Grouping(application_layer, "Lớp Ứng dụng") {
Application_Service(as_circulation, "Dịch vụ Ứng dụng Lưu thông")
Application_Service(as_catalog, "Dịch vụ Ứng dụng Mục lục")
Application_Component(ac_lms, "Hệ thống Quản lý Thư viện")
Application_Component(ac_catalog, "Cơ sở dữ liệu Mục lục")
}
Grouping(technology_layer, "Lớp Công nghệ") {
Technology_Node(tn_server, "Máy chủ Ứng dụng")
Technology_Node(tn_db, "Máy chủ Cơ sở dữ liệu")
}
Tại sao lại cấu trúc nó theo cách này? Việc đặt tiền tố rõ ràng cho các phần tử (như “ba_ cho các tác nhân kinh doanh, bp_ cho các quy trình, và tn_ cho các nút công nghệ) giúp việc viết các ánh xạ quan hệ phức tạp trở nên dễ dàng hơn rất nhiều sau này. Điều này ngăn ngừa xung đột tên và giữ cho kịch bản của bạn tự tài liệu hóa.
Bước 3: Ánh xạ các mối quan hệ qua các lớp
Với các phần tử của chúng ta đã được đặt sẵn, bước cuối cùng là kết nối chúng lại với nhau. ArchiMate dựa trên các loại mối quan hệ chính xác—như hiện thực hóa, phục vụ, kích hoạt và phân công—để mô hình hóa các phụ thuộc một cách chính xác.
' Các quy trình kinh doanh hiện thực hóa các dịch vụ kinh doanh
Rel_Realization_Up(bp_checkout, bs_circulation, "")
Rel_Realization_Up(bp_reserve, bs_circulation, "")
Rel_Triggering_Right(bp_checkout, bp_reserve, "")
' Các dịch vụ kinh doanh hiện thực hóa các mục tiêu động lực
Rel_Realization_Up(bs_circulation, g_ops, "")
Rel_Serving_Up(bs_catalog, g_service, "")
' Các tác nhân được phục vụ bởi các dịch vụ kinh doanh
Rel_Serving_Up(bs_circulation, ba_librarian, "")
Rel_Serving_Up(bs_catalog, ba_member, "")
' Các dịch vụ ứng dụng hiện thực hóa các dịch vụ kinh doanh
Rel_Realization_Up(as_circulation, bs_circulation, "")
Rel_Realization_Up(as_catalog, bs_catalog, "")
' Các thành phần ứng dụng hiện thực hóa các dịch vụ ứng dụng
Rel_Realization_Up(ac_lms, as_circulation, "")
Rel_Realization_Up(ac_catalog, as_catalog, "")
' Các nút công nghệ phân công (triển khai) các thành phần ứng dụng
Rel_Assignment_Up(tn_server, ac_lms, "")
Rel_Assignment_Up(tn_db, ac_catalog, "")
Bằng cách sử dụng các thẻ mối quan hệ có hướng như Rel_Realization_Up và Rel_Triggering_Right, tôi duy trì kiểm soát chính xác về cách các bộ kết nối định tuyến qua bảng vẽ, ngăn ngừa các đường nét chồng chéo lộn xộn.
Mã nguồn đầy đủ
Dưới đây là kịch bản PlantUML đầy đủ, sẵn sàng cho sản xuất cho sơ đồ kiến trúc Hệ thống Quản lý Thư viện của chúng tôi:
@startuml
skinparam linetype ortho
!include https://static.visual-paradigm.com/plantuml-stdlib/Archimate-PlantUML/master/Archimate.puml
remove @unlinked
top to bottom direction
title Giới thiệu - Hệ thống Quản lý Thư viện
Grouping(motivation_layer, "Lớp Động lực") {
Motivation_Goal(g_ops, "Hoạt động Thư viện Hiệu quả")
Motivation_Goal(g_service, "Dịch vụ Người đọc Chất lượng Cao")
}
Grouping(business_layer, "Lớp Kinh doanh") {
Business_Actor(ba_librarian, "Thủ thư")
Business_Actor(ba_member, "Thành viên Thư viện")
Business_Service(bs_circulation, "Dịch vụ Lưu thông")
Business_Service(bs_catalog, "Dịch vụ Mục lục")
Business_Process(bp_checkout, "Trả / Nhận")
Business_Process(bp_reserve, "Quản lý Đặt chỗ")
}
Grouping(application_layer, "Lớp Ứng dụng") {
Application_Service(as_circulation, "Dịch vụ Ứng dụng Lưu thông")
Application_Service(as_catalog, "Dịch vụ Ứng dụng Mục lục")
Application_Component(ac_lms, "Hệ thống Quản lý Thư viện")
Application_Component(ac_catalog, "Cơ sở dữ liệu Mục lục")
}
Grouping(technology_layer, "Lớp Công nghệ") {
Technology_Node(tn_server, "Máy chủ Ứng dụng")
Technology_Node(tn_db, "Máy chủ Cơ sở dữ liệu")
}
' Các quy trình kinh doanh hiện thực hóa các dịch vụ kinh doanh
Rel_Realization_Up(bp_checkout, bs_circulation, "")
Rel_Realization_Up(bp_reserve, bs_circulation, "")
Rel_Triggering_Right(bp_checkout, bp_reserve, "")
' Các dịch vụ kinh doanh hiện thực hóa các mục tiêu động lực
Rel_Realization_Up(bs_circulation, g_ops, "")
Rel_Serving_Up(bs_catalog, g_service, "")
' Các tác nhân được phục vụ bởi các dịch vụ kinh doanh
Rel_Serving_Up(bs_circulation, ba_librarian, "")
Rel_Serving_Up(bs_catalog, ba_member, "")
' Các dịch vụ ứng dụng hiện thực hóa các dịch vụ kinh doanh
Rel_Realization_Up(as_circulation, bs_circulation, "")
Rel_Realization_Up(as_catalog, bs_catalog, "")
' Các thành phần ứng dụng hiện thực hóa các dịch vụ ứng dụng
Rel_Realization_Up(ac_lms, as_circulation, "")
Rel_Realization_Up(ac_catalog, as_catalog, "")
' Các nút công nghệ phân công (triển khai) các thành phần ứng dụng
Rel_Assignment_Up(tn_server, ac_lms, "")
Rel_Assignment_Up(tn_db, ac_catalog, "")
@enduml
Đem kiến trúc của bạn đến cuộc sống với VPasCode

Vẽ sơ đồ dưới dạng mã trao quyền cho bạn kiểm soát phiên bản kiến trúc, cộng tác liền mạch và tạo ra các sơ đồ hoàn hảo chỉ trong vài giây. Dù bạn đang xây dựng các mô hình doanh nghiệp ArchiMate, kiến trúc phần mềm C4, hay các sơ đồ trình tự UML tiêu chuẩn, việc thực hiện nó trong một môi trường mạnh mẽ sẽ tạo nên sự khác biệt.
Sẵn sàng xây dựng sơ đồ của riêng bạn?
Thử nghiệm động cơ hiển thị thời gian thực của chúng tôi, thử nghiệm việc tạo sơ đồ dựa trên AI và xuất đồ họa vector sạch sẽ ngay lập tức.
Dùng thử công cụ Vẽ sơ đồ dưới dạng Mã miễn phí ngay bây giờ


