Hướng dẫn này cung cấp một phương pháp có cấu trúc, từng bước để chuyển đổi các yêu cầu của người dùng—được thể hiện thông quacác kịch bản sử dụng—thành một thiết kế kỹ thuật chi tiết bằng cách sử dụngbiểu đồ lớp. Nó nhấn mạnh sự cộng hưởng giữa các yêu cầu chức năng và kiến trúc hệ thống, đảm bảo rằng thiết kế phần mềm cuối cùng không chỉ phù hợp với nhu cầu của người dùng mà còn vững chắc về mặt kỹ thuật.
🔹 Giới thiệu: Vai trò của Các Kịch bản Sử dụng và Biểu đồ Lớp
Trong phát triển phần mềm hướng đối tượng,biểu đồ kịch bản sử dụngvàbiểu đồ lớpđóng vai trò bổ sung cho nhau:
- Biểu đồ Kịch bản Sử dụngxác địnhcái gìhệ thống làm gì — ghi lại các yêu cầu chức năng từ góc độ của người dùng.

- Biểu đồ Lớpxác địnhnhư thế nàohệ thống được cấu trúc ra sao — chi tiết hóa các thành phần tĩnh (lớp, thuộc tính, phương thức, mối quan hệ) thực hiện các chức năng đó.

✅ Điểm mấu chốt: Các kịch bản sử dụng mô tả hành vi; biểu đồ lớp mô hình hóa cấu trúc. Cùng nhau, chúng tạo nên nền tảng của một hệ thống được thiết kế tốt.
🔹 Mối quan hệ Cốt lõi: Kịch bản Sử dụng → Biểu đồ Lớp
| Khía cạnh | Biểu đồ Kịch bản Sử dụng | Biểu đồ Lớp |
|---|---|---|
| Trọng tâm | Hành vi, tương tác, vai trò | Cấu trúc, đối tượng, dữ liệu |
| Mục đích | Xác định chức năng hệ thống | Xác định kiến trúc triển khai |
| Góc nhìn | Lấy người dùng làm trung tâm (góc nhìn bên ngoài) | Lấy nhà phát triển làm trung tâm (góc nhìn bên trong) |
🔄 Sự tiến hóa của thiết kế
- Trường hợp sử dụng → Xác định mục tiêu (ví dụ: “Khách hàng đặt hàng”).
- Sơ đồ lớp → Xác định các thành phầncần thiết để đạt được mục tiêu đó.
- Sơ đồ trình tự → Đóng vai trò cầu nối, chỉ ra cáchcác đối tượng tương tác để thực hiện trường hợp sử dụng.

💡 Thực hành tốt:Không bao giờ thiết kế sơ đồ lớp một cách biệt lập. Luôn truy vết chúng trở lại các trường hợp sử dụng.
🔹 Quy trình từng bước: Từ trường hợp sử dụng đến sơ đồ lớp
✅ Bước 1: Xác định phạm vi bằng các trường hợp sử dụng
Bắt đầu bằng việc xác định:
- Vai trò (người dùng hoặc các hệ thống bên ngoài tương tác với hệ thống)
- Mục tiêu của Trường hợp sử dụng (điều mà vai trò muốn đạt được)
Ví dụ:
Vai trò: Khách hàng
Trường hợp sử dụng: Đặt hàng
Mục tiêu: Khách hàng chọn sản phẩm, xem lại giỏ hàng và gửi đơn hàng.

📌 Điều này xác định phạm vi và ngữ cảnh cho biểu đồ lớp của bạn.
✅ Bước 2: Xác định các thực thể miền thông qua phân tích Danh từ/Động từ
Phân tích văn bản trường hợp sử dụng để trích xuất các lớp và phương thức tiềm năng.
🔹 Phân tích Danh từ → Các lớp tiềm năng
Tìm kiếm danh từ đại diện cho các thực thể thực tế hoặc đối tượng dữ liệu.
| Danh từ | Loại lớp có khả năng |
|---|---|
| Khách hàng | Lớp thực thể |
| Đơn hàng | Lớp thực thể |
| Sản phẩm | Lớp thực thể |
| Giỏ hàng | Lớp thực thể hoặc lớp điều khiển |
| Hóa đơn | Lớp thực thể |
| Thanh toán | Lớp điều khiển hoặc lớp thực thể |
✅ Mẹo: Tập trung vào các đối tượng dữ liệu tồn tại lâu dài — những đối tượng này thường là Lớp thực thể.
🔹 Phân tích động từ → Các phương thức tiềm năng
Tìm kiếm động từ biểu thị hành động hoặc hành vi.
| Động từ | Phương thức khả dĩ |
|---|---|
| Đặt hàng | placeOrder() |
| Tính tổng | calculateTotal() |
| Thêm vào giỏ hàng | addToCart() |
| Xác thực thanh toán | validatePayment() |
| Tạo hóa đơn | generateInvoice() |
✅ Mẹo: Động từ thường trở thành các phương thức bên trong các lớp, đặc biệt là trong các lớp điều khiển và lớp biên.
✅ Bước 3: Áp dụng mẫu Entity-Control-Boundary (ECB)
Mô hình ECB là một chiến lược đã được chứng minh để phân loại các lớp được suy ra từ các kịch bản sử dụng.
| Loại lớp | Vai trò | Ví dụ |
|---|---|---|
| Biên | Giao diện giữa tác nhân và hệ thống | Giao diện biểu mẫu đơn hàng, Màn hình đăng nhập, Giao diện cổng thanh toán |
| Điều khiển | Quản lý logic và luồng của một kịch bản sử dụng | Bộ xử lý đơn hàng, Bộ quản lý xác thực, Bộ điều khiển thanh toán |
| Thực thể | Đại diện cho dữ liệu tồn tại lâu dài hoặc các khái niệm kinh doanh | Khách hàng, Đơn hàng, Sản phẩm, Hóa đơn |
🛠️ Cách áp dụng ECB:
- Đối với mỗi kịch bản sử dụng, hãy xác định một hoặc nhiều lớp điều khiểnđể quản lý quy trình làm việc.
- Xác định Lớp biêncho các điểm tương tác người dùng.
- Xác định Lớp thực thểcho dữ liệu cốt lõi.
📌 Ví dụ: Trong kịch bản sử dụng “Đặt hàng”:
- Biên:
OrderFormUI - Điều khiển:
OrderPlacementService - Thực thể:
Khách hàng,Đơn hàng,Sản phẩm,Giỏ hàng
✅ Bước 4: Tạo sơ đồ lớp ban đầu
Dựa trên phân tích ECB và trích xuất danh từ/động từ, phác thảo sơ đồ lớp sơ bộ.
Bao gồm:
- Các lớp (với tên, thuộc tính, phương thức)
- Mối quan hệ: liên kết, tập hợp, cấu thành
- Bội số (ví dụ: 1..*, 0..1)
Ví dụ (Đơn giản hóa):

Mã sơ đồ lớp PlantUML: (được tạo bởi Chatbot AI Visual Paradigm)
@startuml
skinparam {
roundcorner 8
ArrowColor #444444
ArrowFontColor #444444
BorderColor #444444
Class {
BorderColor #1A237E
BackgroundColor #E8EAF6
FontColor #1A237E
}
Interface {
BorderColor #A7C5C5
BackgroundColor #E0F2F1
FontColor #444444
}
Package {
BorderColor #6D876D
BackgroundColor #E6F0E6
FontColor #3D553D
}
}
package "Hệ thống Thương mại Điện tử" {
class "Khách hàng" {
-id : String
-name : String
-email : String
+placeOrder() : Đơn hàng
+viewOrder(order : Đơn hàng)
}
class "Sản phẩm" {
-productId : String
-name : String
-price : Double
}
class "Giỏ hàng" {
-items : List<Sản phẩm>
+addItem(product : Sản phẩm)
+removeItem(product : Sản phẩm)
+getTotal() : Double
}
class "Đơn hàng" {
-orderId : String
-date : Date
-items : List<Sản phẩm>
+placeOrder() : Boolean
+calculateTotal() : Double
+getTotal() : Double
}
}
' Mối quan hệ
Khách hàng --|> Đơn hàng : tạo ra
Khách hàng --> Giỏ hàng : quản lý
Giỏ hàng *-- "nhiều" Sản phẩm : chứa
Đơn hàng *-- "nhiều" Sản phẩm : chứa
Giỏ hàng --> Đơn hàng : được dùng để tạo
' Thêm phụ thuộc
Đơn hàng ..> Giỏ hàng : phụ thuộc vào
Đơn hàng ..> Sản phẩm : tham chiếu
' Tập hợp: Đơn hàng tập hợp các mục từ Giỏ hàng
Giỏ hàng o-- Đơn hàng : tạo nền tảng cho
hide class circle
@enduml ✅ Lưu ý: Đây chỉ là điểm khởi đầu. Việc tinh chỉnh sẽ đến tiếp theo.
✅ Bước 5: Sử dụng Biểu đồ Chuỗi như một Cầu nối
Để tinh chỉnh biểu đồ lớp, hãy tạo một biểu đồ chuỗicho mỗi trường hợp sử dụng chính.
Tại sao?
- Hiển thị tương tác giữa các đối tượngtheo thời gian.
- Làm lộ ra các lớp bị thiếu, trách nhiệm không chính xác, hoặc các mối quan hệ khiếm khuyết.
- Giúp xác minh rằng biểu đồ lớp hỗ trợ hành vi được yêu cầu.
Ví dụ: Biểu đồ Chuỗi cho “Đặt hàng”

@startuml
skinparam sequenceParticipant underline
skinparam {
' Phong cách tổng thể
FontSize 14
' Màu sắc
ArrowColor #4A4A4A
ArrowFontColor #4A4A4A
BackgroundColor #FFFFFF
BorderColor #DEDEDE
FontColor #333333
' Định dạng người tham gia
Participant {
BorderColor #0077B6
BackgroundColor #F0F8FF
FontColor #005691
}
' Định dạng diễn viên
Actor {
BorderColor #6A057F
BackgroundColor #F5EEF8
FontColor #510363
}
' Đặc thù chuỗi
Sequence {
ArrowThickness 2
LifeLineBorderColor #444444
LifeLineBackgroundColor #F7F7F7
BoxBorderColor #AAAAAA
BoxBackgroundColor #FFFFFF
BoxFontColor #333333
}
}
actor "Khách hàng" as CUS
participant "Giao diện Biểu mẫu Đơn hàng" as UI
participant "Dịch vụ Đặt hàng" as OPS
participant "Giỏ hàng" as CART
participant "Đơn hàng" as ORD
participant "Cổng thanh toán" as PG
CUS -> UI: Mở biểu mẫu
activate UI
UI -> OPS: validateCart()
activate OPS
OPS -> CART: getItems()
activate CART
CART --> OPS: trả về các mục
OPS -> ORD: createOrder()
activate ORD
OPS -> PG: processPayment()
activate PG
PG --> OPS: thành công
deactivate PG
OPS -> ORD: save()
activate ORD
ORD --> OPS: đơn hàng đã được lưu
OPS -> UI: hiển thị xác nhận
deactivate ORD
deactivate OPS
deactivate CART
deactivate UI
@enduml 🔍 Những hiểu biết thu được:
- Cần một
Cổng thanh toánlớp → Thêm dưới dạng Biên hoặc Thực thể. Dịch vụ Đặt hàngcó thể cần xử lý ngoại lệ → ThêmXử lý ngoại lệlogic.Giỏ hàngcó thể cần thông báoĐơn hàngkhi mục thay đổi → Thêm quan hệ liên kết.
✅ Cập nhật sơ đồ lớp dựa trên các hiểu biết từ sơ đồ trình tự.
✅ Bước 6: Tinh chỉnh Sơ đồ Lớp
Nâng cao sơ đồ ban đầu với:
- Thuộc tính (trường dữ liệu) từ chi tiết trường hợp sử dụng
- Phương thức (các thao tác) từ động từ và luồng trình tự
- Quan hệ:
- Liên kết: Liên kết chung (ví dụ: Khách hàng ↔ Đơn hàng)
- Tuyển tập: Quan hệ “có một” (ví dụ: Đơn hàng có một Giỏ hàng)
- Tổ hợp: Sở hữu mạnh (ví dụ: Đơn hàng chứa các Mục đơn hàng)
- Kế thừa: Tổng quát hóa (ví dụ:
Khách hàng cao cấpkế thừa từKhách hàng)
- Bội số (1, 0..1, 1..*, v.v.)
📌 Ví dụ về tinh chỉnh:
- Thêm
OrderItemlớp dưới dạng tổng hợp củaOrder. - Thêm
Paymentlớp dưới dạng tập hợp củaOrder. - Thêm
validate()phương thức choOrderlớp. - Quy định rằng
Ordercó mộtCustomervà nhiềuOrderItems.
✅ Bước 7: Hoàn thiện và xác thực biểu đồ lớp
Trước khi triển khai:
- Xem xét lại đối với tất cả các trường hợp sử dụng.
- Đảm bảo rằng mọi trường hợp sử dụng đều có thể được đáp ứng thông qua tương tác giữa các đối tượng.
- Kiểm tra các vấn đề sau:
- Các lớp thừa
- Trách nhiệm bị thiếu
- Quan hệ thừa kế hoặc số lượng (multiplicity) không chính xác
- Sử dụng công cụ UML (ví dụ: Visual Paradigm) để đảm bảo tính nhất quán và tài liệu hóa.
✅ Mẹo xác thực: Hãy tự hỏi: “Tôi có thể đi qua từng trường hợp sử dụng chỉ bằng cách sử dụng các lớp và mối quan hệ trong biểu đồ này không?”
✅ Bước 8: Sử dụng biểu đồ lớp để triển khai
Biểu đồ lớp đã hoàn thiện sẽ trở thành bản thiết kế cho việc lập trình.
Cách sử dụng:
- Tạo ra khung mã (các lớp, phương thức, thuộc tính).
- Xác định giao diện và kiểu dữ liệu.
- Hướng dẫn hợp tác nhóm — tất cả các nhà phát triển đều tham chiếu cùng một mô hình.
- Hỗ trợ kiểm tra mã và tài liệu.
📌 Ví dụ đầu ra (Mã giả):
public class Order {
private String orderId;
private Date date;
private Customer customer;
private List<OrderItem> items;
public void placeOrder() { ... }
public double calculateTotal() { ... }
public void save() { ... }
} 🔹 Tóm tắt các thực hành tốt nhất
| Thực hành | Tại sao điều này quan trọng |
|---|---|
| Luôn bắt đầu bằng các trường hợp sử dụng | Đảm bảo thiết kế đáp ứng nhu cầu thực tế của người dùng |
| Sử dụng ECB để phân loại lớp | Ngăn ngừa sự hỗn loạn trong thiết kế; thúc đẩy sự tách biệt các mối quan tâm |
| Sử dụng biểu đồ trình tự làm cầu nối | Kết nối hành vi (trường hợp sử dụng) với cấu trúc (biểu đồ lớp) |
| Lặp lại và tinh chỉnh | Biểu đồ lớp phát triển khi các trường hợp sử dụng trở nên rõ ràng hơn |
| Xác thực bằng nhiều trường hợp sử dụng | Đảm bảo tính đầy đủ và nhất quán |
| Sử dụng công cụ UML | Nâng cao tính rõ ràng, khả năng hợp tác và khả năng bảo trì |
🔹 Những lỗi phổ biến cần tránh
| Lỗi | Giải pháp |
|---|---|
| Tạo các lớp mà không có lý do từ các kịch bản sử dụng | Mỗi lớp phải ánh xạ đến một kịch bản sử dụng hoặc khái niệm miền |
| Quá tải các lớp điều khiển | Chia logic phức tạp thành nhiều lớp điều khiển |
| Bỏ qua tính đa trị và các mối quan hệ | Chúng xác định các ràng buộc thực tế và tính toàn vẹn của dữ liệu |
| Quên các lớp biên | Không có chúng, hệ thống sẽ không có lớp giao diện người dùng |
| Xem mọi danh từ đều là các lớp | Chỉ bao gồm các thực thể miền liên quan và có tính bền vững |
🔹 Kết luận: Sức mạnh của sự tích hợp
✅ Các kịch bản sử dụng cho chúng ta biết hệ thống phải làm gì.
✅ Sơ đồ lớp cho chúng ta biết hệ thống sẽ làm như thế nào.
Bằng cách hệ thống hóa việc tinh chỉnh sơ đồ lớp từ các kịch bản sử dụng thông qua việc sử dụng mô hình ECB, phân tích danh từ/động từ, và sơ đồ trình tự như một cầu nối, bạn đảm bảo rằng:
- Thiết kế là lấy người dùng làm trung tâm và lấy yêu cầu làm trọng tâm.
- Kiến trúc là mô-đun, dễ bảo trì, và có thể mở rộng.
- Các nhóm phát triển có một sự hiểu biết chungvề hệ thống.
Phương pháp tích hợp này là nền tảng cho việc phân tích và thiết kế hướng đối tượng (OOAD)và vẫn là một trụ cột của các thực hành kỹ thuật phần mềm hiện đại.
🔹 Tài liệu tham khảo & Đọc thêm
- Grady Booch, Phân tích và Thiết kế Hướng Đối tượng với Các Ứng dụng
- James Rumbaugh, Ivar Jacobson, Grady Booch – Sách Tham khảo Ngôn ngữ Mô hình hóa Thống nhất
- Martin Fowler – UML Tinh gọn: Hướng dẫn Ngắn gọn về Ngôn ngữ Mô hình hóa Đối tượng Tiêu chuẩn
- Craig Larman – Áp dụng UML và Các Mẫu: Giới thiệu về Phân tích và Thiết kế Hướng Đối tượng
- IEEE Std 830-1998 – Thực hành Khuyến nghị của IEEE cho Các Bản Đặc tả Yêu cầu Phần mềm
📘 Mẹo cuối cùng: Hãy giữ các sơ đồ lớp của bạn tài liệu sống. Cập nhật chúng khi yêu cầu thay đổi — chúng không chỉ là một sản phẩm thiết kế, mà còn là nguồn sự thật được chia sẻtrong suốt vòng đời phát triển.
✅ Bây giờ bạn đã có một hướng dẫn toàn diện và có thể hành động để chuyển đổi nhu cầu của người dùng thành thiết kế kỹ thuật.
Hãy sử dụng nó một cách tự tin trong dự án tiếp theo của bạn.
Tài nguyên
- Sơ đồ Use Case là gì? – Hướng dẫn toàn diện về mô hình hóa UML: Giải thích chi tiết này bao gồm mục đích, thành phần và các thực tiễn tốt nhấtcho việc mô hình hóa yêu cầu phần mềm.
- Sơ đồ lớp là gì? – Hướng dẫn cơ bản cho người mới bắt đầu về mô hình hóa UML: Một cái nhìn tổng quan cung cấp thông tin chi tiết về mục đích, thành phần và tầm quan trọngcủa các sơ đồ lớp trong phát triển phần mềm và thiết kế hệ thống.
- Sơ đồ trình tự là gì? – Hướng dẫn UML: Hướng dẫn này giải thích cách các sơ đồ trình tự trực quan hóa các tương tác đối tượng theo thời giantrong các hệ thống phần mềm.
- Visual Paradigm – Các tính năng mô tả Use Case: Tài nguyên này làm nổi bật các công cụ được thiết kế để giúp các nhóm phần mềm ghi lại các tương tác của người dùng và hành vi hệ thốngmột cách chính xác.
- Công cụ tạo sơ đồ lớp UML có hỗ trợ AI của Visual Paradigm: Một công cụ tiên tiến có thể tự động tạo các sơ đồ lớp UMLtừ các mô tả bằng ngôn ngữ tự nhiên.
- Công cụ tinh chỉnh sơ đồ trình tự có hỗ trợ AI | Visual Paradigm: Tính năng nổi bật này giải thích cách AI nâng cao thiết kế phần mềm bằng cách tự động cải thiện và tối ưu hóa các biểu đồ trình tựvới các gợi ý thông minh.
- Công cụ tạo mô tả trường hợp sử dụng bằng AI của Visual Paradigm: Công cụ này sử dụng AI để tự động tạo các mô tả trường hợp sử dụng chi tiếttừ đầu vào của người dùng, giúp tăng tốc đáng kể việc phân tích hệ thống và tài liệu hóa.
- Hướng dẫn toàn diện về biểu đồ trình tự trong thiết kế phần mềm: Một phần sách hướng dẫn chi tiết giải thích về cấu trúc và các thực tiễn tốt nhấtđể sử dụng biểu đồ trình tự mô hình hóa hành vi động.
- Học biểu đồ lớp với Visual Paradigm – ArchiMetric: Bài viết này mô tả cách Visual Paradigm cung cấp một nền tảng dễ sử dụngđể tạo và quản lý các biểu đồ lớp.
-
Tự động hóa phát triển trường hợp sử dụng với AI trong Visual Paradigm: Tài nguyên này khám phá cách các công cụ tạo bằng AI cải thiện tính nhất quánvà giảm nỗ lực thủ công trong phát triển trường hợp sử dụng.











